TopCoderが流行ってるみたいなので
April 25th, 2008 | Published in Uncategorized
自分の戦歴を晒してみる。
戦歴
2007.4.18 にRating 933 からスタート。乱高下の末、2008.1.15 に ハイスコアである Rating 1073 をマークしてGreen Coderになるも、深夜に参加する度Ratingを落とし、現在 Rating 822。
現在の目標はBlue Coderになることです。先は遠い… Challenge phase はおいといて、コンスタントに250,500,1000のすべてを解けるようになること。
なんでTopCoderに参加してるかというと、修行ですね。アルゴリズムの勉強、速く正確なコードを書けるようになること、他人のコードを読む力。
プログラミングしたいけどつくるネタをおもいつかないよー、という人がいると聞きます。 そんなときは、TopCoderにログインして、Practice Roomに入り、250点問題を解いてみてはどうでしょうか。わりと取り組みやすいので、自分の背中を押してあげるにはなかなか良いとおもうのです。
IDAvailability
April 24th, 2008 | Published in Uncategorized
I made a small web application, IDAvailability that checks how available the entered ID is in the world.
Web services
I added only 8 web services at the begenning. However, web service information is stored in wedata, a wiki-like data store that everyone can edit, everybody can add web services to it (for now, 28 web services has been added). Database is here.
You can add a web service from Create New Item, and enter following information.
- name : name of web service (any)
- urlToCheck : URL embedded #{ID} variable (like http://nantokakanto.ka/user/#{ID})
- condition : a XPath expression to check whether the ID is used when the server response is HTTP 200 , not ”404 Not Found” while accessing urlToCheck. (for example, see flickr)
Code
ToDo
- Move check functions to client-side (retrieving HTML via Ajax, examining XPath…)
- Better looks
Try and enjoy it, also add your favorite web service missing.
Tags: idAvailability, webapp
IDAvailability updated
April 24th, 2008 | Published in hack
おととい公開した IDAvailability にいくつか改善を施しました。
1. IDをURLのどこにでも書けるようにした
チェックするURLの末尾にしかIDを書けなかった (‘http://website/user/ここ‘) ので、登録できないサイトがいくつかありました。 そこで、#{ID} という値があれば入力されたIDで置換するようにしました (‘http://#{ID}.website/ → ‘http://置換された.website/’)。 mattnさんのコメントによる指摘 を反映させたものです。
2. HTTP 404 以外を返すサイトへの対応
ユーザがいない場合に、HTTP 404 を返すのではなく、3xx などを返してくるサイトがあります。 これまでサイトのHTMLをとってくるのには、サーバサイドのRubyスクリプトでopen-uri をつかっていました。 open-uri はとても手軽でよいのですが、3xx を受け取ると自動的にリダイレクトし、その結果が返ってきます。 これだと、正常にリクエストが行われたように見えてしまい、ユーザがいるかいないかの判定に使えませんでした。
よりローレベルなNet::HTTPをつかうことで、HTTP レスポンスのstatus codeをチェックするようにして問題を回避しました。
3. 横並びに
縦にずらずらっとサイトを並べていたのを横に並べることで、俯瞰性を高めました。
2008.04.24 8AM 現在で、サイト数が28 になりました。 wedataというオープンなデータストアだからこそですね。
ToDo
Tags: id, idAvailability, webapp
IDAvailability
April 22nd, 2008 | Published in Uncategorized
IDAvailability というWebアプリをつくりました。 入力したIDが、世の中のWebサービスで既にどれくらい使われているかをチェックする、というだけの簡単なものです。
Webサービス
チェックするWebサービスは、ぼくが追加したものだけで8つ。 しかし、Webサービスの情報は wedata にあるので、誰でも対応Webサービスを追加できるようになっています。データベースはこれ。
Webサービスを追加するには、Create New Item から進んで、以下の項目を埋めればOKです。あとは、Webアプリ側がうまいことデータをひっぱってきます。
- 名前 : Webサービス名 (なんでもOK)
- urlToCheck : http://nantokakanto.ka/user/#{ID} の ‘http…user/’ の部分
- condition : urlToCheckにアクセスして404 Not Foundじゃなかったときに、そのページが「そんなユーザはいませんよ」的メッセージを出していることを確認するためのXPath表現
たいていのWebサービスでは、ユーザが存在しなければ404を返すようになっていますが、たとえばflickrでは別のページを表示するようになっていました。そういう場合は、XPathで検出しています。
コード
Coderepos/websites/idavailability にあります。 ライセンスは修正BSDで。 コードがひどい!とかデザインがかっこよくないよ! とかあれば、遠慮なくコードをいじってcommitしてください。
ToDo
- XPathによる判定はクライアントサイドでやる
- Ajaxで外部サイトのHTMLをもってくる方法を調べる (不可能?)
- HpricotだとXPathの演算子が使えなくて判定しづらいので、別の手段を探す
- かっこよくする
- うまくいかないWebサービスがある (YouTube, NetVibes…)
なぜこんなものをつくったか
これからインターネットをはじめていく人々が、どこでも使える可能性が高いIDを選べるような助けをつくりたいと思ったのでした。 自分も mootoh というハンドルに行きつくまでなかなかの試行錯誤を繰り返しており、こんなのは手動でやってられないよ、と。
もうちょっと背景を
インターネットの世界では、いいIDをとるのは早い者勝ちです。 でもこれって、これからインターネットをはじめていく人々にとって、とても不利な状況なのではないでしょうか。 短くてすてきなIDなんて、そうそう残っているものではありません。しかたなく生年月日をハンドル名につけたりしているのが現状です。将来的に、ここをなんとかしたい。若いひとはもっと不平を言ってもいいんじゃないかな。
ともあれ、いいIDを求めて探求してみたり、Webサービスを追加してみたりしてみてくださいね。
Tags: id, webapp
Make Tokyo Meeting #1 に行ってきた
April 21st, 2008 | Published in Uncategorized
Makerのはしくれ として、Make Tokyo Meetingに行ってきました。
真空バズーカでキャベツの芯がぶち抜かれるのを間近で見たり、
3次元プラネタリウムに感動したりしていました。プラネタリウムはほんとうにすごかった。
akio0911 さんのHMD+位置情報+コンパスのやつ,インパクトありました。もうそろそろスカウターが市販されてもおかしくありませんね。
takkawさんにリクエストされていたので、どこでもゆびピアノ++ を持参していました。Gainerのワークショップの横で広げてもおもしろかったかも。しまった。
Makerのみなさんは、とてもしゃべるのが上手ですね。プログラマとちがって、ライブで人に見せることが勝負だから、鍛えられてるんだろうな。 あと、MacBookでやってるひとがたくさんいるのが意外でした。Makerのひとなら、中をいじくりたおせないMacよりもふつうのノートPCつかってばりばりにカスタマイズするものだ、という先入観があったもので。
こども連れのひとがけっこう来ていて、彼らが実際に触って動かして体感できる場だったのがとてもよかった。自分もコンピュータの画面の中だけで動くものばかりつくっていちゃいかんなと。発明おじさんを目指さねば。
第2回は、2008年10月に開催されるそうです。次はMakerとして参加したいですね!
重要だけど急じゃない、をなんとかする
April 11th, 2008 | Published in Uncategorized
ちょっとしたRTMのtips紹介。
よく言われることですが、重要だけど急じゃないタスクをいかにたくさんやるか、が何かを成し遂げるために重要です。主体的に生きる、というやつですね。上の図では青いところ。 意識していないと、ついつい電話の応対 (赤) やマリオカートDS (緑) だけをやる日ばかりを過ごしてしまいがちです。
去年、CartesianTaskというものをつくっていました。 RTM のタスクをドラッグアンドドロップで二次元に配置する、というものでした。 これはこれでおもしろかったのですが、もっと簡単な方法があったのでメモっておきます。
RTMの検索オプション
ここにRTMの検索オプション一覧があるので、どう組み合わせるか考えてみます。
ぼくのところでは、重要だけど急じゃない は、なんらかのpriorityがついていて、締切がないもの だと考えました。 そこで、(NOT priority:none) AND due:never という検索式でタスクを検索します。 よさそうだったら検索結果をリストとして保存しておきましょう。ぼくのところでは30件ありました。多い。
参考までに他のエリアの検索式も書いておくと、以下のようになります。
- 赤: priority:1 (そのうち、かならず実行されるタスクのリスト)
- 黄: dueWithin:”1 week of today” (1週間以内にやらないといけないものを急だと見なした。これもまた、時がきたら実行されるだろう)
- 緑: priority:none AND due:never やらないほうがいい。週次レビューのときに、ここのリストにあるタスクばっかりがこなされてるのを見たら、ちょっと考えなおすべき。
まとめると、RTMの検索式をうまくつかうことで、自分が抱えてるタスクを見る切り口を変えることができる、ということです。RTMはすばらしいリストサービスですね。
まとまってないけど、眠いので今日はここまで。
永続ストレージ
April 10th, 2008 | Published in Uncategorized
あるいは、ほんとうのPermaLinkが欲しい。
Webサービスをつくるのが流行ってますね。 ひとりでつくったものを世界中のひとに使ってもらえる、というのはものすごいことです。 たとえばぼくはここのところ、蔵書をWebでまとめておきたくてWeb本棚サービスをいくつか物色してました。本棚.org とか、Booklog とかありますね。 AmazonのデータとAPIをつかって個人がWebアプリをつくる。みんながつかえる。しあわせ。 ぼくも自宅にサーバをたてていて、自分用ではありますがいくつかWebアプリをつくって使ってます。 どこからでもアクセスできてしあわせ。手ぶらの知的生産、というやつですね。
しかしはたと、これは永遠に続くわけじゃない と気づきました。もったいない!
たとえば、自分がいま死んでしまったとする。 そしたら、これまで自宅サーバで動いていたサービスはメンテされない。 葬儀やら引っ越しやらしてるうちに、サーバは止まることでしょう。 そしたらそこにあったコンテンツはもう存在しない。 たくさんの胸踊るコメントが散りばめられたブログは失われてしまうのです。
レンタルサーバとかにコンテンツを置いてる場合もまた然りで、 契約が切れてしまうとコンテンツはなくなってしまいます。 企業がホスティングしてるブログサービスだから、自分がいなくなっても残ってるよ! と言っても、その企業が煙のごとく夜逃げしてしまったりするとアウトですよね。 いかにGoogleといえ、100年後にいまのまま存在してるとは思えない。
となると、Webサービスに自分がすごく大切にしてることを残す、というのはなかなか難しいものがあるんじゃないでしょうか。 個人としてつくっているWebサービスに対しては、楽しむ/体験する といったことまでしかできないのか、と。 インターネットそのものがベータ版であり、たくさんの実験をして遊ぶ場所だといってしまえばそれはそれで納得なんですけどね。
全人類のライフログ
人類はいま史上はじめて、すべてのひとの人生を後世に残すことができるようになったはずです。インターネットと膨大なストレージのおかげで。 これまでは限られたひとのライフログだけが伝記として存在していたのに対し、いまや万人がブログを書き、あるひとはTwitterで日々のあれこれを世界中につぶやいているのです。
しかし現状はまだまだ過渡期です。 いまのインターネットはみんなが楽しいことを実験するという遊び場以上のものになってない (ビジネス的なことを抜きにすると)。
個人のライフログは永遠に残り得る 時代になってきてます。 ぼくはとうとう90歳にして往生するときになっても大した人物になれていないかもしれない。 それでも、ぼくという人間のいろんな側面を、ひ孫や1,000年後にいる誰かがぐぐって見ることができればいいなと思う。そして、それは技術的には既に可能なのです。これはすごいことだと思う。
どうするか
永続ストレージをつくるしかない。 方法は2つあるのではないでしょうか。
個人の寿命を越えるには組織をつくるという方法がありますね。 現在、archive.org という試みがありますが、一極集中だと全人類という規模に対してスケールしないはず。
ぼくという情報をどこかに保存しておくんじゃなくて、ネットワークそのものに保存すればいいんじゃないかと考えると、P2Pが選択肢にあがります。でも、誰からも参照されなくなるとネットワークから消えてしまうか。うーん。
現在に局所最適化せず、未来をつくっていくにはどうするか。 100年、300年後にはどんな世界になってるか、というのを考えながら書いてると、えらいまとまりのない長文になってしまいました。ご指摘やコメントいただければとてもありがたいです。
Tags: P2P, web
197Xs パーティ #1 LT で話してきた
April 6th, 2008 | Published in Uncategorized
第1回 197X’s オフパーティー でLTしてきました。QSTwitterの宣伝という演目。スライドはこちら。
伝えたかったことは、ニッチな世界で1番になる → チャンス! ということでした。いわゆるラストマン戦略ですね。
期せずしてトリになってしまって、笑いをとる構成をつくっていなかったことを悔いました。埋め合わせとして、QSTwitterを紹介する本編よりも、質疑応答でふろグラミングについて熱く激しく語ってみました。パートナー持ちプログラマには多少啓蒙できたんじゃないかな。
30歳になったこと を言ってみようかしらと突発的に思いつき、QuicksilverのLarge Type機能をつかってでかでかと文章を表示するというQuicksilver プレゼン をやってみました。プレゼン中にどうしても言いたいことを思いついたときに使えるかもしれませんね。
よかったこと
- あんまし緊張してなかった。場数がだいじですね。
- 多少笑いをとれた
1000speakers:3 のとき の反省を踏まえることができたかな、と。
よくなかったこと
- 手際わるい ><
- テンション低そうに聞こえる (覇気がないね) ><
- 間違ってページめくってしまっても、戻らないほうがよいよね
- やっぱり語尾の「〜ですねー」が多い >< 言い切ってページをめくるのがいいよね
次回は温泉旅館をハックする (厨房占拠で Live Cooking、露天風呂でみんなでペアふろグラミング) という楽しい企画になっているらしいので、197X生まれのひとは参加するといいんじゃないかな!
Turned 30
April 3rd, 2008 | Published in Uncategorized
30歳になりました。
25歳から今日までは、あっという間でした。 それまでの5年区切り (20-25, 15-20, …) のときと全然ちがう。大人時間は速く流れる。 ぼんやりしてたらたちまちおじさんです。10年後のぼくは何を考えているんだろうか。
基盤となるものをしっかり固めつつ、たくさんのチャレンジをする30代にしよう。ハッピーバースデーツーミー。