ロンドンで一番ひどいバス停を見つける – ビッグデータ活用事例

ビッグデータ解析サービスの英コグニシオ社(Kognitio)が公開している、ロンドン最悪のバス停(The worst bus stop in London)は、ロンドン交通局の運営するバス運行に関する膨大なデータを使って、運行状況に関して優秀なバスやひどいバスを見つけるというプロジェクトです。 対象となるデータの規模は以下。 データ数 4,938,534,706 バス停の数 19,687個 バス路線数 675本 バスの台数 9,641台 ロンドン交通局のオープンデータというページがあるので、ここから入手できるのでしょうね。 これらのデータから、たとえば、7つの運行ゾーン毎に、「バスがとても遅れるバス停」「時刻表より前にバスが来がちなバス停」などのランキングが求められています。 これは「ロンドンで最も出発が遅れる路線」。走ってて遅れるのではなく出発が遅れるってどういうこと? と思いますが、運転手が遅刻するとかそういうのもあるんでしょうか。 こちらなんかは良い方の結果で、最も時間に正確なルート。路線のバスのうち85%が時刻表から外れずに走っているそうです。 郵便番号でランキング バスが正確な地域、不正確な地域をランキングするには、郵便番号(の上3桁)が使われています。 なんで郵便番号?

CSSスクロールで(マリオ風)横スクロール、(マリオカート風)キャラクター操作

CSSだけで(JavaScript無しで)動くページを作る、というお題でこんなものが AキーとDキーで車が左右に動いています。 こちらが作者のステファン・クックさん(Stephen Cook)による解説ページで、13行のhtml以外はすべてCSS、画像ファイルも使っていないということです。 CSS内に定義したデータから絵を描くのは、グラデーションとbox-shadow を使っています。1ピクセルごとに色を指定しているんですね。 キー入力の方はというと、こちらのCSSだけで検索エンジンを作るという記事(デモはこちら)にあるように、inputフィールドの value 属性に反応させればと思ったそうですが、ユーザーの入力に応じて value の値がアップデートされるということは無く、こちらの検索デモでは1行のJavaScriptを使っていることがわかりました。 クックさんは数週間前に間違ってブラウザのJavaScriptをオフにしてしまい、未だに戻す方法を見つけられていないということで、JavaScript を使わない方法を探さざるを得なかったよう。たいへんですね。 疑似セレクタ :valid, :invalid で、フォームフィールド内のタイプ内容がaを含むかどうかを場合分けし、さらにフォームフィールドにプレースホルダーを表示してるかどうかの :placeholder-shown と併せて、キー入力に応じて3値を見分けることにしたそうです。 レースゲームとして背景が動くところは、アルシデス・ケイロスさん(Alcides Queiroz)が公開していたマリオ風横スクロールにヒントを得たということです。 See

学生の小論文を代筆してくれるサービスがYouTuberで宣伝しすぎてBBCに見つかる

宿題の小論文を代わりに書いてくれる、という EduBirdie というサービスがあるそうです。 どんな感じで小論文を発注できるのか、注文画面を見てみました。 「推薦入試用」「研究」「ビジネスプラン」「書評」などから種類を選び、書くタイトルと分野を指定します。 分量(ページ数/単語数)、納期(短いと高くなるんでしょうね)、一から書くか・既存の何かをリライトするか・編集だけ頼むか、他の論文をどこから何本参照するか、関連する画像や図などがあればそれらもアップロードし、送信すると、この注文を受けたいという代筆者達が料金を提案してくる、という仕組みですね。 YouTuber を多数起用したプロモーション BBC が先日報じたのは、この EduBirdie をいろいろな有名 YouTuber が動画の中でオススメしている、という現象。BBC が調べただけでも250名以上が動画の中で EduBirdie を薦めていて、これらはたぶん EduBirdie からお金が出ている動画内宣伝なんでしょうね。 それらの宣伝コーナーの動画を、EduBirdie

子供の歌声を腕のイレズミにした母親

腕の刺青に対してスマートフォンをかざすと、スマートフォンから子供のかわいらしい歌声が再生される、という動画がありました。 https://www.youtube.com/watch?v=xxzaEtrmdBI 見た目のインパクトはあるし、音声波形らしき入れ墨なのでイレズミとして実際の声の波形を彫り込んだのかと最初思ったのですが、どうもそうではなさそう。これは、Skin Motionというサービスが生成した「波形風のバーコード」で、このサービスのスマートフォンアプリを使って認識させて、サーバ側にアップロードしておいた音楽/音声を再生させているということのようです。 二次元バーコードの刺青で参照先のコンテンツを再生する、という話だとそれほど珍しいわけでもなくて、QRコードのイレズミが5,6年も前のものがいくつも見つかります。 https://www.youtube.com/watch?v=hWQDq4mMMaQ https://www.youtube.com/watch?v=aDhqgZjP_Yk 普通の一次元バーコード刺青となると、それこそスマートフォン以前からありますし。 この手の「実体はインターネット上などにあって、そこをポイントしているだけ」の情報の体への埋め込みは、リスクが高そうな気がしますねえ。サービス提供者が停止したらどうするんだ、とか。イレズミの場合は、皮膚に傷がついたり、シミやシワが増えたりしただけで、読み取りできなくなりそう、というのもありますし。 さらに、このSkin Motion、アプリの登録に39.99ドル、毎年のサービス料も9.99ドル掛かるようです。 背中のイレズミに財宝のありかが隠されている、だと伝奇小説によくありそうな話ですが、毎年お金を払って維持するようなもの、となると刺青を彫るのが普通という文化の人にとっても、賢い選択とは言いにくいのではないかなあ... via

太陽発電だけで国中の電気を支えようとしたとき必要な面積を可視化したインタラクティブな世界地図

Area of Solar Panels Needed to Power a Countryは、世界各国の消費電力を賄うために必要な電気を、もし全部ソーラーパネルで発電しようとしたら、どんな広さになるか、というのを可視化してくれるページです。 下の世界地図から国を選ぶと、その国の地図と、その上に必要なソーラーパネルが占める面積が正方形の集合で表されます。 人口密度が高いのか、電力消費が多いのか。一番効いてるのは日照量の少なさかもしれません。 大きな国はいいですね。 人口が少なかったり、そもそも電気を使わないライフスタイルの国だと、こんな割合でも電気が賄えてしまうんですね。 87%の国は、国土の5%以下の広さで、すべての電力を賄えるそうです。このサイトの調査では日本は8%ということ。山だらけの日本で8%はかなり困難かも。 また、国土すべてにソーラーパネルを敷き詰めても足りないのは、シンガポール、香港、バーレーンの3国だということ。 もちろん、これから先の発電効率の進化もあるので、消費電力が増えすぎないように気を付けていけば、必要な面積は漸減していくことが期待できるのでは。 # 計算に使われたデータ、発電効率等の数字は、リンク先記事の末尾で提示されています。 via Maps

The Waiting Game – 入国収容所の難民を追体験できるブラウザゲーム

ProPublica と ニューヨーク公共ラジオ(WNYC)の制作によるブラウザゲーム The Waiting Game は、アメリカに入国して難民申請を出している人たちの体験をできるゲームです。 まずはプレイヤー選択。選べるのは5人。 エルサルバドルで、家庭内暴力(DV)から逃げてきた母子 バングラデシュで、信仰の異なる相手と結婚していた人 コンゴ民主共和国で、抗議活動に参加した学生 ネパールで差別に遭ったチベット人 国籍のせいでエチオピアからエリトリアに追放された人 ゲームの選択肢は基本的に「続けるか」(Keep going)、「諦めるか」(Give up)の2択しかありません。自国を脱出するまでは匿われている場所でじっと潜伏していなければいけない日々だし、拘置所や米国に移ってからの収容所では、毎日毎日なんの変化もないまま、刑務官らに人扱いされなかったりまずい食事を出されたりがひたすら続きます。 今回選んだ「デモで政府から目をつけられた学生活動家」の場合は、一度拘禁されて拷問を受けた後、親戚の手配でなんとか釈放されるものの、そのあとさらに学生たちへの弾圧が強まる中で偽造パスポートを入手してアメリカへと逃げることになります。 アメリカに着いてから難民収容所に移されてからも、自国で逮捕された時ほどひどい扱いではなくても、手続きも遅々として進まず、自由のない暮らしは続きます。 あまりに毎日の進捗がなく、陰鬱な描写が続くことから、Give upすると、これまで何十日が経過していたか、そしてこの実話の難民が実際に難民認定を受けるまでに何日かかったのか、が表示されます。ゲームならGive upできますが、この待ち続ける生活の中で実際に諦めることができるとしたら、甘んじて逮捕されるとか収容所で狂うとかですかね。 読んでいるだけでも辛いこの体験は、すべて実際に体験してきた難民たちの聞き取りから再構成された内容です。ゲームとして考えると、自由度もなければ嬉しくないイベントばかりのダメなゲームなのかもしれませんが、その自由のなさや辛さこそが、実際に難民の人たちに起こった/起こっている事だ、という意味で、リアルなゲームとも言えます。 共同でこのゲームを制作した WNYC ラジオの関連ニュースはこちら。 via

ソースコード検索とコピペプログラミング

プログラマー向けにまた新しいサービスが出たようなのでご紹介。

code fetch { は、ソースコードに特化したソースコード検索エンジン。”{” 記号もサイト名の一部のようだ。

関数名などを検索すると、関数名を含むサンプルを、書籍のサンプルコードから抜き出して表示しているようだ。

言語ごとに検索することができる。以下はいくつか試してみた結果。

サイト自身は、紹介した書籍を買ってもらうことでビジネスとするつもりらしい。

ある関数を使うとき、関数の挙動はわかっていても、それを実際にどのように呼び出すのかが、マニュアルからだと簡単に把握できないことがある。

PHP のマニュアル などでは、マニュアルの末尾にユーザのディスカッションをつけて、そこでサンプルコード的なものが流れているが、サンプルから使い方のあたりをつける、という点ではこれも役立つ気がする。

ソースコード検索エンジンとしては、日本にも高林さんの gonzui があるが、同じような技術を基盤に、公開されているサンプルコードと amazon アフィリエイトを組み合わせてビジネス化しよう、という試みと言える。(検索してほしくない本の著者は連絡してくれ、とあるので、このあたりに問題点をはらんでいる可能性はある)

ビジネス的にこれがいけるのか、著者によってはこれを許したくないのでは、という話は別として、こういったソースコード検索によって「他者のソースを見る」という機会は重要なのではないかと僕は思っている。

究極的には、僕らプログラマーが書いているコードのほとんどは、過去にどこかで見た他人のコードを真似て、再構築しているといってもいい。本質を理解せずにコピーした粗悪なコードの氾濫も大きな問題ではあるものの、読むことや真似ることそのものが悪だとは僕には思えない。

ペアプログラミングなども「よいソースを書いている状態を目の前で見る」ことの教育効果が評価されている理由の一つではないだろうか。

検索によって良いお手本が簡単に見つかるようになっていくことは、決して悪いことではないな、と思うがどうだろう。

この記事は移転前の古いURLで公開された時のものです

  • ブックマークが新旧で分散している場合があります。
  • 移転前は現在とは文体が違い「である」調です。(参考)
  • 記事の内容が古くて役に立たなくなっている、という場合にはコメントやツイッターでご指摘いただければ幸いです。最新の状況を調べて新しい記事を書くかもしれません

日曜は PHP 勉強会

昨日の Java 読書会に続き、日曜は PHP 勉強会に参加してみた。

mixi の PHP コミュニティから発生したらしいこの勉強会、会自体は3回目のようだが、当然これまでは参加していない。何か発表するものを、という話だったので、自分が書いたわけじゃないが CyDE2 の開発環境を持って行き、インストーラとユニットテストをどうやってるかあたりをちょろっと紹介させていただいた。他の発表を聞いてみて比べると、あまり技術的じゃない。宣伝臭いし。

他には、PHP フレームワーク Maple の作者の方が、AOP による DB アクセスの Maple へのウィービングについて実装発表されていて、面白かった。

あとは、PHP に関する洋書のレビュー発表など。アメリカに居たとき本屋でパラパラと見ていた本がいくつか出てきて興味深かった。

全体的に、昨日の Java 読書会が「最近面白い本出てないねぇ」といった感じだったのに比べて、PHP 勉強会のほうが活気があるように見えた。

でも、土曜日にあった Lightweight Language Day and Night (LLDN) に参加されてた方も多く、そちらでは Ruby や Perl のヒトタチが元気だったということで、PHP もがんばらないとね、という雰囲気もあった。

それと、いつも PHP 関連の雑誌記事などでお世話になっている著者のみなさんと直接お会いできたのは非常によかったと思う。来月もあるようなのでぜひまた参加したい。

この記事は移転前の古いURLで公開された時のものです

  • ブックマークが新旧で分散している場合があります。
  • 移転前は現在とは文体が違い「である」調です。(参考)
  • 記事の内容が古くて役に立たなくなっている、という場合にはコメントやツイッターでご指摘いただければ幸いです。最新の状況を調べて新しい記事を書くかもしれません

土曜日は Java 読書会

Java 読書会 に参加してきた。一冊の本を、毎月一回集まって「読む」というもの。インターネット協会の部会ということになっているが、参加者は興味のある有志の集まりだ。

僕も、転職でアメリカのサイボウズに行く前はよく参加していた。今回はひさしぶりの参加となる。

今回は翻訳者の瀬谷さんにも来ていただき、読んでいて難しい点など直接解説していただくこともあり、非常によかった。

今月分で読了となった、「アジャイルソフトウェア開発の奥義」だが、今回読んだ中で「付録C: 皮肉な運命」が読み物として面白かった。

同じプロジェクトを実施することになった二つの会社の話を、横に二つ並べて小説風に描く、というもので、一つはガチガチのウォーターフォールで大混乱になり、もう一方はアジャイル的な手法でなんとか成功する、というオチ。

悪い方の例では硬直したプロジェクト管理や理不尽な上司の要求、と言ったものが書かれている。思わず「あるある」と言ってしまうところも多い。ちょっとだけ触りを抜粋すると

上司「即刻開始する必要がある。分析にはどれくらいの時間がかかるかね?」
あなた「仕様要求がわからなければ分析にかかる時間を申し上げられません」
上司「仕様要求が出てくるまでには4~5週間かかるだろう。だから、仕様要求が今君達の目の前にあるものと仮定したまえ。君達は分析にどれぐらいの時間が必要なのかね」

さて上記の流れは変だ、とあなたは思うだろうか? あるいは、いったい何がおかしいというのだ、と思うだろうか。

アジャイル開発についての本なので、アジャイル開発に対してちょっと甘いかな、という気もするが、二つを並べて読むことで、果たして自分達の開発プロセスはどうだろうか、という良い自省ができる話かなあ、と思った。

もちろん、本文の方も充実した内容で、XP、デザインパターンについて実例をなぞりながら勉強することができる。いい本だと思った。

Java 読書会 は9月から新しい課題書(まだ決まっていない)で最初からスタートするので、会社の外で業務とは別に勉強してみたい、という方は参加してみてはどうだろうか。

こういった社外の勉強会は、Java 読書会の場合は「Java」というキーワードはあるものの、ウェブサービス系や組み込み系などさまざまな業務をしている人(もちろん仕事は全然 Java じゃないが自分で勉強してる人も)が集うので、見聞を広めるのにも役立つと思っている。

この記事は移転前の古いURLで公開された時のものです

  • ブックマークが新旧で分散している場合があります。
  • 移転前は現在とは文体が違い「である」調です。(参考)
  • 記事の内容が古くて役に立たなくなっている、という場合にはコメントやツイッターでご指摘いただければ幸いです。最新の状況を調べて新しい記事を書くかもしれません

商用アプリ開発に関する PHP の利点と欠点

現在サイボウズ本社でいちばん使われているコンピュータ言語は、と訊かれれば、それは PHP という言語になるだろう。

PHP はそもそもウェブサイトを作るために開発された、目的のはっきりとした言語で、ウェブアプリケーションの世界では非常にユーザー数の多い言語である。PHP のエンジン部分を開発している Zend 社の調査では、インターネット上のウェブサイトの 20% 超は PHP で書かれているともいう。

また、PHP の言語としての文法は C 言語に似せて作られていて、C 言語風のスクリプト言語といえる。専門学校や大学などの授業で C 言語や C++/Java など C 言語に似た言語が使われることも多いため、比較的とっつきやすいとも言えるだろう。

そういった普及度からすると、PHP を多用することには、プログラマーが足りなくなったときに社外から人材を集めやすい、あるいは協力会社を探しやすい、という利点がある。

2年以上前から準備され、今回発売となったガルーン2 では、この PHP が大きな部分を占めている。それ以前は独自のスクリプト言語(Cybozu Labs 社長でもある畑の名前を冠した、Hata-Script である)を使っていた。これもまぁ、Office6 までのサイボウズ製品を見ていただければわかるように、軽量できびきび動く、いい言語ではあったのだが、やはり PHP のユーザベースの大きさというのは意味がある。

この変更では、内製も含めて様々なオプションが検討されたわけだが、サイボウズ製品の特性や技術者の確保のしやすさ、などいろいろな観点を総合し、PHP が選定された。

ただし、その選定の際には、満場一致ですぐに PHP を使うことに決まったわけでもない。(主に反対していたのは僕だが)

どんな言語も完璧ではありえない。PHP にも危惧されている問題点はあった。言語としての出来、や、インタプリタの安定度、リソースの消費量、処理の速度、利用できるライブラリの量や質、利用や配布に関する制約、などなど、について、問題があるかどうか、あるとしたらどう解決するか、解決法が現実的な対処であるか、といった事柄について多数の討論をおこなった。

そういった技術やライセンスの問題については一つずつ問題点をつぶしてきており、今のところ大きな問題点は残っていないと言ってもよさそうだ。僕自身は早い段階で CyDE2 のプロジェクトから離れており(==米国の子会社に帰った)、実際にそれらの改善を辛抱強くおこなってきたのは本社の開発部の面々である。

それでも残る問題は、一部の硬派プログラマーから、PHP は「初心者向けの言語」と思われていることにある。こればかりは、サイボウズの開発部ががんばるだけで解決する問題ではない。

まぁ、現在主流のバージョン 4、PHP4 では、言語としていいかげんなところや使いづらいところもたくさんあり、技術力のあるプログラマー達の多くが「一番好きな言語」とか「一番使いやすい言語」に選ぶ言語だ、とまでは言えないだろう。

「弘法筆を選ばず」というから、真にできるプログラマーならどんな言語であってもちゃんとした成果を残せるのかもしれない。しかし、実際問題として、そのとっつきやすさ、はじめやすさがかえって災いし、「PHP ができます」という人の中に「PHP *しか*できない人」も多い。

理想としては、どんな言語でもすばやくマスターでき、PHP インタプリタの挙動に疑問点があれば、PHP のソースまで遡って調査することも全然苦にならない、といった人がたくさん来てくれるといいんだろうな。ま、これは主に本社側の話だが。

サイボウズ・ラボでのこれからの開発は、必ずしもサイボウズ本社と同じ言語を使う必要はないため、たとえば PythonRuby のような言語を使ってもよいし、LispJSF/Java でもいい。それは入ってきた人が自分で先導して決めていってしまえばいいのだ。いまのところ、そのへんはまるっきり流動的だ。

むしろ、自分の好きな言語や環境について熱く語れて、まわりを引っ張って巻き込んでいけるような、そんな人であれば面白いし、僕もぜひその人からいろいろ学んでみたいものだ、と思う。

この記事は移転前の古いURLで公開された時のものです

  • ブックマークが新旧で分散している場合があります。
  • 移転前は現在とは文体が違い「である」調です。(参考)
  • 記事の内容が古くて役に立たなくなっている、という場合にはコメントやツイッターでご指摘いただければ幸いです。最新の状況を調べて新しい記事を書くかもしれません

成功する Web2.0 企業になるための 10 のステップ

成功する Web2.0 企業になるための 10 のステップ より。

  1. 利用者の問題をよく理解したうえで、最小単位から解決せよ
  2. 反応のよい、意見を言ってくれる利用者を獲得せよ
  3. 今すぐ公開せよ。明日公開せよ。毎日公開せよ
  4. データを配布しまくれ
  5. 利用者のデータを囲い込まないこと
  6. おどろくほど単純にせよ
  7. 無料でありつづけよ
  8. マーケティング費用は無駄
  9. 投資しすぎないこと
  10. どのサービスにも見るべき点がある

詳細は元エントリをどうぞ。いくつもの実サービスを例にあげて、成功したネットサービスに共通の要素を解説してくれている。

この記事は移転前の古いURLで公開された時のものです

  • ブックマークが新旧で分散している場合があります。
  • 移転前は現在とは文体が違い「である」調です。(参考)
  • 記事の内容が古くて役に立たなくなっている、という場合にはコメントやツイッターでご指摘いただければ幸いです。最新の状況を調べて新しい記事を書くかもしれません

Google Talk 登場

Google の新サービスが水曜日に登場か で書いた、噂の Google 新コミュニケーションツール、やっぱりあったようだ。その名も Google Talk

ベータということだが、早速ダウンロードしてぶちこんでみた。Gmail のアカウントが必要ということ。入れるとほどなくログイン状態に。

Google Talk は gmail のアドレス帳と連動していて、検索窓に名前やメールアドレスを入れると過去に gmail でやりとりした相手がリストアップされる。相手が Google Talk を使っていなければ、使うための招待メールが送れる。

メールも IP 電話も、個人と個人を結ぶメッセージングツールという点では同じなので、gmail と共通アカウントにしてきたのはうなづける。

この記事は移転前の古いURLで公開された時のものです

  • ブックマークが新旧で分散している場合があります。
  • 移転前は現在とは文体が違い「である」調です。(参考)
  • 記事の内容が古くて役に立たなくなっている、という場合にはコメントやツイッターでご指摘いただければ幸いです。最新の状況を調べて新しい記事を書くかもしれません

akky's work blog