友人がハッカーになるまで:自分のサービスを世に出す快感

検索レンズ  厳選サイトをまとめてサイト内検索

というサイトを友人がリリースしました。何はともあれ、自分で考えてつくったサービスを世に出す気持ちよさを理解する友人が増えたことに乾杯です。

彼はプログラミング歴は短いし本業ではないのですが、仕事のない休日にも嬉々としてプログラム書いちゃう人ならハッカーですよね。

ことの始まりは1年ぐらい前に、飲み会か何かの折に僕が「PHPは簡単だよー、3ヶ月あれば使えるようになる」とけしかけてその気になった彼にちょっと教えることになったのでした。ちなみにサンプル数の少ないアンケートによると、レゴブロックで小さい頃に遊んでいた人はプログラミングも好きになりやすいようです。

最初に出した課題は掛け算の九九表を出力せよ、です。81回printする不届き者もいますので10行で、が条件。結構難しい。PHPの場合、HTMLのtableで出力するのが簡単なので「24」の項を太字にする、を次の課題にすると必要な構文はだいたい使うことになります。今まで何人かに九九表を書いてもらいましたがそれなりにいい課題なのでは、と思ってます。

そんな感じでスタートしてからすでに1年経過していますが、リリースするのとしないのとではまさに0と1の差なので世に出せてよかったなぁ、と思います。これで人から評価される機会を得て、うまくいけば誰かが使ってくれてコメントを寄せてくれたりすればモチベーションが上がって発展していく、ステキなスパイラルに入ればしめたもの。

とまぁ、ちょうど5年前の今頃、PHPに初めて触れた日を思い出すのでした。ちゃんちゃん。

  1. #1 by 氏久 on November 4th, 2006 - 2:19 am

    >最初に出した課題は掛け算の九九表を出力せよ、です。81回printする不届き者もいますので10行で、が条件。結構難しい。PHPの場合、HTMLの tableで出力するのが簡単なので「24」の項を太字にする、を次の課題にすると必要な構文はだいたい使うことになります。今まで何人かに九九表を書いてもらいましたがそれなりにいい課題なのでは、と思ってます。

    面白そうなのでちょこっとrubyで書いてみました。
    20行も使っちゃいました…。

    # 二次元配列→HTMLのテーブル
    def darray2table(darray)
    tmp = ['']
    darray.each do |array|
    tmp ‘
    array.each {|val| tmp #{yield val}” }
    tmp ‘
    end
    (tmp ‘).join(”\n”)
    end

    darray = []
    (1..9).each do |i|
    darray #{v}” : “#{v}” }

  2. #2 by 氏久 on November 4th, 2006 - 2:22 am

    おっとっと、表示が崩れてしまいました。
    ちょこっと置換して再投稿です。

    # 二次元配列→HTMLのテーブル
    def darray2table(darray)
     tmp = ['gt;']
     darray.each do |array|
      tmp gt;’
      array.each {|val| tmp gt;#{yield val}gt;” }
      tmp gt;’
     end
     (tmp gt;’).join(”\n”)
    end

    darray = []
    (1..9).each do |i|
     darray gt;#{v}gt;” : “#{v}” }
     

  3. #3 by 氏久 on November 4th, 2006 - 2:24 am

    おっとっと、表示が崩れてしまいました。
    ちょこっと置換して再投稿です。

    # 二次元配列→HTMLのテーブル
    def darray2table(darray)
     tmp = ['<table>']
     darray.each do |array|
      tmp << ‘<tr>’
      array.each {|val| tmp << “<td>#{yield val}</td>” }
      tmp << ‘</tr>’
     end
     (tmp << ‘</table>’).join(”\n”)
    end

    darray = []
    (1..9).each do |i|
     darray << (tmp = [])
     (1..9).each do |j|
      tmp << i * j
     end
    end

    puts darray2table(darray) {|v| v == 24 ? “<strong>#{v}</strong>” : “#{v}” }
     

  4. #4 by ませう on November 4th, 2006 - 10:53 am

    PHP歴数ヶ月の自分がやってみました・・・
    どうでしょうか?

    0 ; $a \n”) , $b = 1 ){
    for( $b > 0 ; $b ” .$a .”×” .$b .”=” .$c .”\n” );
    }
    else{
    print( “” .$a .”×” .$b .”=” .$c .”\n” );
    }
    }
    }
    ?>

  5. #5 by ませう on November 4th, 2006 - 10:54 am

    のおお。おかしなことに・・・(´・ω・`)スイマセン

  6. #6 by funaki on November 4th, 2006 - 11:19 am

    コメント&コードありがとうございます。
    Rubyはfor文を使わないでも自然に書けるんですね。

    ませうさんのはHTMLが含まれていたから変になっているんでしょーか。コメント欄はコード書くのに向いてないです(^^;

  7. #7 by ませう on November 4th, 2006 - 12:45 pm

    コメント欄汚してすんませんデシタ(´・ω・`)
    素直に鯖に上げました。添削お願いします・・・。

    ソース
    http://us-lab.com/99.php.txt

    実行結果
    http://us-lab.com/99.php

  8. #8 by funaki on November 4th, 2006 - 10:33 pm

    九九表、というのは

    1 2 3 4
    2 4 6 8
    3 6 9 12
    4 8 12 16

    こんな感じの表のことですー。

  9. #9 by めっち on May 8th, 2007 - 4:50 pm

    <?php
    echo(”<table border=\”1\”>\n”);
    for($i=1;$i<=9;$i++)
    {
    echo(”<tr>”);
    for($j=1;$j<=9;$j++){echo(”<td>”.($i*$j).”</td>”);}
    echo(”</tr>\n”);
    }
    echo(”</table>\n”);
    ?>

  10. #10 by めっち on May 8th, 2007 - 4:55 pm

    こんなのは愚解ですかね…。
    <?php
    echo(”<table border=\”1\”>\n”);
    for($i=1;$i<=9;$i++)
    {
    echo(”<tr>”);
    for($j=1;$j<=9;$j++){if($i*$j==24) echo(”<td><strong>”.($i*$j).”</strong></td>”); else echo(”<td>”.($i*$j).”</td>”);}
    echo(”</tr>\n”);
    }
    echo(”</table>\n”);
    ?>

(will not be published)
Subscribe to comments feed

SetPageWidth