24時間でウエブサービスを作る

去年の夏の始め、「個人ウエブ・サービスを作る」という目標を決めた。決めたにも関わらず、他の事に重点をおき結局何もやらずに去年の夏は終わった。やらなかった人で終わって良いのか?リベンジしなくて良いのか?

今日は2008年8月12日のランチタイム。妻と娘が日本から戻ってくる18日まで5日程ある。今やらなくていつやれるのであろうか?今夜から始めて、17日、日曜日の夜まで、上手く時間を使えば、24時間位時間を作れるだろう。今夜始める。

何を作るのか?

既にありふれたもので、新規性は全くないのであるが、ブックマーク・サービスを作る。理由、ブックマークサービスの一つであるdel.icio.usは、僕がもっとも頻繁に使う、ウエブサービスだから。一年以上前からマイ・バージョンのブックマーク・サービスを作ろうと思い続けてきたのも理由である。どうか、今あるサービスを模倣(クローン)しても意味ないじゃないかとはおっしゃらないで下さい。

プロジェクトのゴール?

マイ・バージョンのブックマークサービスを開発し、パブリックな場所に置く(ホスティングする)。二つの基本機能:1.ブックマークの管理。2.友人とのブックマークの共有。

なぜ24時間?

日本で働いているRuby Hacker、DominiekのBuilding a .com in 24 hoursに影響されて。

なぜ個人ウエブ・サービス?

個人サービスを作るコツのリンク先のブログエントリーに激しく影響を受けたので。

開発環境?

一年前はJava&Tomcatで行こうと考えていたが、ここ半年程、スクリプト言語に思いっきり惹かれている。今回はPythonとDjangoを中心に開発して行く。ツールはIDEから離れて、テキストエディタであるvim。

今夜、8月12日夜、プロジェクト開始

8月12日(火)

Software development Manager – 1時間30分

Unfuddleにアカウントを作成。レポジトリーにGitを選択。Gitは今話題のVersion Control Systemです。今日までGitを殆ど使った事がなかったので、チュートリアルから始めいきなり苦戦。UnfuddleのHelpにてUnfuddleがらみのところは解決。あと下記のリンクが役にたった。

Gitに何かコミットするために、Djangoプロジェクト及びアプリケーションの元となる部分を作成した。そしてチェックイン。

Unfuddleを選んだ理由:200MBの無料ストレージ、かつプライベート用Gitレポジトリーを提供している所は他にあまりない事。ReadWriteWebでも紹介されていた事。

つまずいた点:gitを使う為にssh用にパブリック・キーを設定しなければいけないのだが、その辺りの理解が浅く時間をロスした。

今日中(8月12日)に、レンタルサーバーを借りるところと、ドメインを取得するところまでしたかったのだが、これ以上やっていると明日に響くので、一旦中止。

8月13日(水)

ドメイン登録 及び レンタルサーバー - 2時間

ドメインは評判が高い、Gandiで登録。登録自体は簡単だった。登録ドメイン名はyou29.com、日本語発音でユニークと発音する。ちょっと無理やりだが。税金込みで$15でした。僕の意見だがHelpが読み難い。フォントも小さいし。

レンタルサーバーは、slicehostで一番安い256sliceを借りた。DominiekのBuilding a .com in 24 hoursでも紹介されていたが、自分が知る限り一番安いVPSホスティングです。slicehostも評判が良いのが決め手。価格は$20/月でした。初回は3ヶ月分購入しなければならない。Linux DistroにはUbuntuを選択。ここの設定もスムーズ。

つまずいた点:取得したドメインとレンタルサーバーのIPアドレスをDNSに登録して結びつけなければならないのであるが、Gandi、slicehost共に、DNS Hostingを提供していて、僕は、slicehostで提供されているものを使用したかったのであるが、Gandiのものがデフォルトで有効になっていて、GandiのDNS HostingからslicehostのDNS Hostingに切り替える方法を見つけるのに1時間以上費やしたと思う。Gandiのヘルプが読みやすければ、、、、、

今は、Peets Coffeeからこれらの作業をしたのだが家に帰って、レンタルサーバーにApache、MySql、Git、Djangoなどの設定をしようと思う。

サーバーの設定もろもろ – 3時間

Apacheをインストールする前にユーザー作ったり、SSHの設定したりやる事いっぱい!おー。
UNIXシステム・アドミニストレーターのお仕事って大変なんですね。今日まで分からなかった。Linuxサーバーの設定が良い経験になっている。
MySQLのインストールはコマンド1発。
Apacheのインストールもコマンド1発。これでyou29.comにアクセスすると”It Works!”の文字が表示されます。
一応PHPも入れとこうかな?いつか使うかもしれないし。今のところ使用しないのでa2dismod php5 で無効にする。
次はEmailの設定:Riverse DNSの設定がDNSに反映されるまで時間がかかるので後回し。
Djangoのインストール。
次はGitの設定:git-coreのインストール、Public-Keyの設定、初めてのClone成功。
RDNSがアップデートされないので、Emailの設定は明日以降。
slicehostはヘルプが充実している点がGREAT!

つまずいた点:サーバーの設定がこんなに大変だと思わなかった。Linux回りの知識をもっと鍛えないと!

サーバーの設定に飽きて来たので、ロゴを作ってみた。-> LOGO

既に合計で6時間30分経過。24時間で出来るのか?まだコード書き始めてないし。

今日まで、Djangoを使ったアプリはローカルのコンピューターで開発用サーバーでしか動かした事がないので、明日はコードを本格的に書き始める前に、アプリケーションのディプロイ方法に付いて確認しないと。

8月14日(木)

開発環境及びサーバー環境設定(続き) – 1時間30分

  • mod_pythonのインストール、Linuxにインストールするのは初めてなのでテストコードも書く。確認完了。
  • メール・サーバー (postfix)のインストール。その前に、DNSの設定。ヘルプを読みながら何とかこなす。オー、自分のホストから
  • メール・サーバのセッティング一つとっても、アドミニストレーターの仕事って結構難しいんだなー!
  • メール・サーバー・ホスティングする場合はブラック・リストに載らないようきっちりセキュリティの設定をする必要がある。

レンタル・サーバーの設定はこれで大体完了。初めてなので、ちょっと苦労したが、良い勉強になった。システム・アドミニストレーターの皆様、お疲れ様です。皆さんの凄さが分かりました。

コーディング – 2時間30分

  • 作業をしている間にDjangoのBetaがリリースされた。昨日、インストールしたばかりだが、Betaにアップグレード
  • モデル(ORM)の定義
  • MySQLインストールしっぱなしで設定がデフォルトのままだった。又設定だ。ウエブ・アプリのホスティングってサーバーの設定の仕事が多いのね。見積もりが甘かった。
  • アプリケーションをディプロイする為のsetup.pyを書く。Python初心者なので、全て調べながら書かなければならず、時間がかかる。何とかコマンド一つでアプリをディプロイできるようになった。
  • Django Adminを使用する為の定義を書く。
  • ホームページをDjangoから出力されるように書き換える。
  • 開発環境でテスト後、サーバーにディプロイしてみる。とりあえず、Mainページ、Django提供のアドミンページは動いた。

既に合計で10時間30分経過、ちょっと時間が足りないような。今のところ、モチベーションだけはある。明日は、ユーザー・レジストレーション・ページ、ブックマーク登録ページ、ユーザー用ブックマーク表示ページなどをViewとテンプレートを書く予定。

8月15日(金)

コーディング – 4時間

  • 昨日の作業の確認
  • Viewとテンプレート
  • CSS書いていたら時間を浪費した。

今現在、合計で14時間30分。残り、9時間30分。出来るのか?

8月16日(土)

コーディング – 8時間30分

  • 今日もCSS書いていたら時間を浪費した。
  • メイン・ページのデザインなど
  • ユーザー登録機能
  • ブックマーク登録機能
  • ユーザー用ブックマークページのデザイン+CSS
  • 進捗があまりないのに、時間は過ぎる。。。。

UIのデザイン及びCSSは苦手なのだが、そこに時間を取られて前に中々進めない。

今現在、合計で23時間。残り1時間。明日一日あるので、どこまで出きるのかな?予定通りにはいかなさそう。最低限の部分はがんばって作ろう。

8月17日(日)

コーディング – 7時間30分

  • まずはコードがなくなると困るので、Gitでチェックイン。Gitはまだまだ使いこなせていない。
  • UIの続き。苦手な部分に時間がかかる。
  • 今まで作った分を試しにサーバーにディプロイしてみる。”しかし”まずは、スタティック・ファイルをインストールするためのPythonのsetup.pyを書いたのだが、書き方が分からず1時間ロス。そして、ローカルのマシーンのApache + mod_python環境にディプロイしたのだが、また動かない。開発用Pythonウエブ・サーバーでは動いていたのに。。。ネーム・スペースの問題でした。そして、また時間のロス。そして、プロダクション・サーバーにディプロイ、今度はイメージが表示されない。環境設定の問題のようだ。これでOKかなと思って、一通り動くか試してみるが、いきなりログインできない。またバグFixだ。** Djangoで開発している人は結構いるようで、解決方法はインターネットですぐ見つかった。**
  • ブックマークの共有方法に付いて考える
  • 細かいバグの修正
  • 明日は寝坊できないので、後1時間程で今回のプロジェクトは終了しようと思う。
  • 今日2度目のディプロイをこれからしよう。
  • 今まで苦労した甲斐あってディプロイはスムーズ。Gitを使ってコードを全てUnfuddle上のGitリポジトリーにチェックイン、そして、サーバー側から全ての変更をGitリポジトリからPULL(コマンド名)して、そしてインストールスクリプトを走らせるだけ。多分、Apacheを再起動しなければならない修正は加えていないが、念のため、再起動。リリース完了。
  • アカウントを作って、テストしてみた。機能は少ないが一応動いている。
  • これで、今回のプロジェクトは終了とする。

まとめ

今回初めてウエブ・アプリと言えるもの(<-???)を、個人サービスとして作った。組織の中でのウエブ開発とは違って一歩踏み出せたと思う。作業に付いて:サーバーの設定にかなりの時間を割かれた。システム・アドミニストレーターの人達の大変さを、少しだけ垣間見れた。開発作業では、苦手なユーザーインターフェースのデザイン及びCSSにかなりの時間を割いてしまった。もう少し効率的にCSSを書けるようになるために、日々鍛錬が必要だな。今回は、時間がなかったのでJavaScriptの使用は控えた、そこでハマッテ前に進めないことが目に見えていたから。開発言語に選んだPythonに付いて、一ヶ月程前から始めたのだが、シンタックスを覚えてなくて苦労したが、特別なコードを書くような事もなかったので、なんとかなった。フレームワークに選んだ、Djangoに付いて、かなりの部分をフレームワークが行ってくれるので、開発するのが楽です。達成度に付いて、当初考えていた、タグ・クラウドとか、友達機能とか、RSSフィードとかまで実装する時間がなかった。最低限の機能しか実装できなかった。時間を見つけてコツコツアップグレードしていきたい。一時間作業したらリリース(ディプロイ)みたいな、アジャイルな開発を実践して行きたい。

トータルの開発時間: 24時間 + 6時間30分(オーバータイム) -> 30時間30分

ウエブサービスへのリンク you29.com

Hidekiのブックマーク: Hideki’s Bookmarks

you29は日本語読みで”ユニーク”と発音します。音の通りいつかは”Unique(ユニーク)”なサービスを目指します。今のところは、ぜんぜんユニークではないですが。

最後に、機能的にまだまだなので、使って下さいとは言えませんが、それでも使ってくださる人がいたら幸いです。

おしまい

「ウエブ時代5つの定理」を読み始めた

昨日、注文しておいた「ウェブ時代 5つの定理 この言葉が未来を切り開く!」(梅田望夫著)が本屋に届き、受け取ってきた。今日、娘が珍しく昼寝をしたのでその間に第1定理を読んだ。

本の一番最初に「High-Tech Ventures: The Guide for Entrepreneurial Success」(C. Gordon Bell著)からの切り出した文が喝采されていて驚いた。なぜ驚いたかって?僕は10年程前ダメダメな英語力でアメリカに渡って来た。その当時、知り合いも殆ど居なかったので、週末はよくBorders(本屋)でコンピューター・コーナーかビジネス(起業)コーナーで本を取っては、ぺらぺらめくっていた。その頃は本を読む英語力がなかったので、本当にぺらぺらめくっていただけだった。なぜビジネス(起業)コーナーかと言うと、起業を夢描いていたので。この夢は未だに実現していない。ぺらぺらめくった本の中に「High-Tech Ventures」があった。その当時この本の中には何か特別な事が書いてある気がした。この本を読んだら起業できる気がした。そして買って、家に持って帰った。あまりにも英語力がなくすぐ挫折。今日開いてみたら、Preface7ページ、Chapter1を15ページ読んでいた事が判明。ページの中に英単語の日本語訳がそこらじゅうに書いてある事から。それ以来、10年間、いつか読まなきゃ、この本の中には絶対重要な事が書いてあると思いながら、引越しのたびに持ち歩いて、今でも家の本棚の重要なところに置いてある。 今日「ウエブ時代5つの定理」を読み始めたら、一発目に「High-Tech Ventures」からの引用ではないか?僕が良い本だと思い込んでいる本(実際には読んでないので分からない)を、梅田さんが10年以上前(←?)に読み、影響を受けていた事に驚いた。梅田さんがこういった本に影響を受けている事が、僕が「英語で読むIT記事」以来、梅田さんの文書を読み続けている理由なのかなと少し思う。梅田さんがこの本をどのようなきっかけで読んだのか?どのような気持ちで読んだのか?凄く気になる。同じシリコンバレーに住んでいるので、いつか梅田さんに会える機会がいつかあると思うのでその時聞いてみたい 。今こそこの本を読みなさいとの神のお告げのような気がした。

マイクロソフトのサイトでHigh-Tech Venturesの全文が読めるようです。興味のあるかたはどうぞ。
http://research.microsoft.com/users/gbell/High_Tech_Ventures/

ChikaさんとJoiさんのDigital Lifestyles Japanセミナーに参加して(3)

今日12月18日(火)、JAPAN SOCIETY OF NORTHERN CALIFORNIA主催のChika Watanabe(渡辺千賀)さんとJoi Ito(伊藤穰一)さんのセミナーに参加してきました。セミナーのタイトルはDigital Lifestyles Japanです。

このエントリーでは、Joi Ito(伊藤穰一)さん担当のプレゼンに付いて記憶に残ったものについて書きます。

Joiさんは、日本でベンチャー投資をしていたが、日本のベンチャー市場があまりよくないので、海外のベンチャー投資にシフトしたそうです。

Joiさん担当は日本での起業/ベンチャー投資に関して:

  1. In Japan, hard to find entrepreneur. In SillionVally, it is also hard, But easier than Japan.
  2. In Japan, money goes to old style innovation, Not goes to true innovation.
  3. Risk Return
    1. In Japan, people respect authority. In US, we should be fair, Not authority.
    2. How is he/she えらい(Privillage)?
    3. If えらい, Not take risk.
    4. In Japan, number of えらい increase. So nobody take risk.
  4. Do you fear to start company?
    1. 60% in Japan
    2. 25% in US
  5. Do you respect entrepreneur?
    1. 5% in Japan
    2. 89% in US
  6. Japanese consumers are innovative!
  7. In Japan, Money does not go to the fundamental investment/innovation.

要するに日本での起業は環境的にハードルが高いようだ。そこで成功している人達はすごい。

ChikaさんとJoiさんのDigital Lifestyles Japanセミナーに参加して(1)

今日12月18日(火)、JAPAN SOCIETY OF NORTHERN CALIFORNIA主催のChika Watanabe(渡辺千賀)さんとJoi Ito(伊藤穰一)さんのセミナーに参加してきました。セミナーのタイトルはDigital Lifestyles Japanです。
このエントリーはセミナーの後にJoi Itoさんに起業に付いて質問をする機会があったので、そこで伺ったお話を書きます。

私(質問):今日プレゼンテーションでは、「日本がなぜ起業に適していないのか」と言った内容だった思います。しかし、日本で起業する場合に、投資家はどのような個人やグループ(アイデアを含む)にだったら投資するのでしょうか?

Joiさん(返答):自分が投資する場合、アメリカだったら投資案件に対して他の投資家達とグループで投資するので、自分の負担が少ないけど、日本だと一緒に投資する仲間がいなく、自分で全てを面倒見なければいけないから、そこで腰が引けちゃうなー。 アメリカの方が投資も受けやすいし、投資もしやすいなー。僕が投資する企業は下記のようなケースだな。TechnoratiSixApartlast.fmなど。

  1. チームのサイズは3人から5人、内訳はマネージャー的な人、エンジニア、UIデザイナー(ユーザービリティを考える人)
  2. まず自己資金で10万人位のユーザーが集まるサイトを作る。
  3. その時点で、もし2年以内に1000万人位ユーザーが集まるサイトになる見込みがあれば 僕は投資します。

お金はアイデアの段階ではなくて、10万人くらい集まるサイトが出来てからの方が投資を受ける方にとっても良いと思うよ。
最後にJoiさんからのアドバイス: アメリカに居るんだから色々な仲間を作ってがんばってみなよ。

*** 会話の内容は正確ではないです。***

今日まで、Joiさんの事はネット上での情報でしか知らなかったのですが、お会いしてみての感想は大変丁寧に質問などの受け答えをする方だなーという印象を持ちました。

いきなり10万人のユーザーを集めれるサイトを作るのは無理なので、今年の夏に実行出来なかった、ウエブ・サービースを一つ自分で作るところから始めたいと思います。

成功した日本人企業家

今日は小里文宏さんのスピーチを聞きにJetroのイベントに参加して来た。小里さんは日本人唯一の、アメリカで企業し、会社をNASDAQに上場させた人です。かれのスピーチから感じ取った、起業にあたって重要な事2つ。1)人材、特に起業メンバー。2)根性、あきらめない気持ち。スピーチから感じ取った小里さんのイメージは、見かけは普通のビジネスマンであるが、困難にぶつかった際に、心の折れない人なのではないかと思う。色々な困難にぶつかる起業、やはり心の強い人が最終的に成功できるのであろう。大変為になりました。