Archive for the ‘Uncategorized’ Category
HABTMリレーションシップは悪であるという論争
Ruby On RailsやCakePHPといったフレームワークのORマッパに存在するHas And Belongs To Manyという機能(通称:HABTM)があります。HABTMとは2つのデータモデルを中間のデータを介して関連させるデータモデルで冒頭の図のようなデータモデルです。筆者がこの省略形の読み方などについてTwitterで話していたところ、興味深いリプライを受け取りました。
俺らはHABTMなんか使わない。なぜならHABTMは悪だからだ。
HABTMについて検索したところ見つかったのがThe evil, unnecessary has_and_belongs_to_manyと題された記事。それによると下記の理由からHABTMを使うべきではないとしています。
- joinテーブルが隠蔽されて過度に魔法的である。また
- たいていの場合、ジョインしたモデルにデータが増える。これをHABTMから追うのは難しい。
- HABTMではなくHMTを使えばなんの問題もない。
- データが大きなってしまってからHMTに移行するのは難しい。
文中に出ているHMTとはHasManyの:throughオプションの事で、HMTを利用すれば中間のモデルを介さずに同様のデータ構造を実現できます。蛇足ですがこれまでは「HABTM」を「はびたむ」と発音していましたが、助言に従って「エイチエービーティーエム」と発音していくことにします。
HABTMはRailsにインスパイアされたCakePHPにも実装されていますが、Railsのコミュニティではすでにバッドプラクティスになっているというギャップが興味深いですね。おそらく他にもこのような例があるのではと思います。
via:http://archive.culann.com/2008/03/the-evil-unnecessary-has_and_belongs_to_many
New York にソフトウェアエンジニアリング高校

Etsy のコードを deploy する Fred Wilson
New York 市長 Michael Bloomberg の最近のテック産業への入れこみようは目を見張るものがあります。昨年の NY Tech Meetup でスピーチをしたり、2012年の個人的な抱負はプログラミングを学ぶこと と語ったとか。今度はソフトウェアエンジニアリング専門の高校を作るようです。
新しい高校の名前は The Academy for Software Engineering。今回のプロジェクトの出資者であり、多くの New York テックシーンのメンターである、Fred Wilson も Union Square Venture を構える、New York の Union Square に2012年の秋学期開校します。
Bloomberg Announces New Software Engineering High School, Opening in the Fall
Betabeat の記事は、Bloomberg 市長の挨拶をメインに据えていますが、stackoverflow や、ソフトウェア開発に関するエッセイで有名な Joel Spolsky もこのプロジェクトには関わっているようで、ブログエントリがありました。
New York City gets a Software Engineering High School
Joel Spolsky 曰く、新しい学校について以下の4点を熱く語っています:
- “限定/選抜なし”の学校です。学校の成績や出席は合否に大きく影響しません。それよりも生徒の興味が重要です。(特に New York の)多くの移民は、英語が十分でなく、そのせいで科目の成績も今ひとつなことがありますが、彼らだってすばらしいソフトウェアを作ることができます。優れた成績の生徒だけを集めるより、バラエティ豊かな生徒の方が学校をより豊かなものにするでしょう。
- 我々はソフトウェアエンジニアがもっと必要です。米国の教育システムはテクノロジー産業の要求を全く満たすことができていません。
- 我々はもっと多様性も必要なのです。多くの名門大学で、コンピュータサイエンスは、白人とアジア人の男性という非常に限られた枠内から成り立っています。マイノリティや女性はほとんど見かけません。
- 職業訓練学校ではありません。多くの職業訓練学校と違って、厳格にアカデミックな分野と大学への準備という側面があります。
コンピュータサイエンスといえば外国人が多いという感じがしますが、これは高校の話なので、若いアメリカ人へのアピールなんですね。Bloomberg 市長のスピーチに『Yelp や General Assembly があるNew York テックコミュニティの成長拠点である Union Square に、新しい学校は開校します。新しい学校の生徒たちには、是非そうした会社で働いてもらいたい、もしくは新しい会社を初めて欲しい。』とありました。この学校がこの先の 10年、New York のテックシーンを大きく変えることになるかもしれません。
起業家向けサンフランシスコ沖の水上ハウス
日本でもコワーキングやシェアオフィスに関する話題が増えていますが、アメリカではさらに一歩進んだ(クレイジーな)アイデアが飛び出したようです。Blueseed社は「ビザ問題の心配の無い洋上起業家」というスタイルを生み出そうとしているようです。プランによるとリノベーションしたクルーザーをサンフランシスコから12マイルの沖合に停泊させ、そこに居住スペースと執務スペースを設けるとの事だそうです。最大で1000人ほどが居住できるようになる予定で、テレビメディアのニュースでも既に話題として取り上げられたそうです。
サイト上のFAQでは「船酔いしませんか?」「津波やハリケーンは大丈夫ですか?」「海賊は?」といったかなり個性的な項目が並ぶ一方で、税金についての質問も上がっています。本当に実現に至かどうかは別としてスケールのでかいネタであることは間違いないですね。
via:http://www.geekwire.com/2011/startup-incubator-takes-seas
makeコマンドでのサンドイッチ調理が現実に
コマンドでピザを注文できる未来はずいぶんと前にやって来ていましたが、今度はサンドイッチを調理できる未来が現実になったようです。TUMの製作したロボットはすでにパンケーキやバーバリアンブレックファストの調理を実現したきたそうです。今回のサンドイッチの調理については調理法をプログラムするのではなく、インターネットなどのリソースから調理法を学べるようにロボットが改良されているようです。ただし手際が悪いのか調理時間が長いため、動画は10倍速になっています。また待ち時間を潰すためのポップコーンも同時に調理します。
詳細は動画をご覧ください。問題のコマンドの実行は動画の45秒あたりからです
美し過ぎるギーク、ベロニカの新たな活躍の舞台
筆者の愛して止まない美し過ぎるギーク、ベロニカに動きがありました。2008年4月からホストを勤めていたソニーのPS3向け動画番組Qoreを卒業し、新たなゲーム系Podcastのホストを務めるとの事です。新しい番組名は「Game on」。現在ベータ版のエピソードが公開されていますが、PCゲームを中心にその他のデバイスについても取り上げて行く形式のようです。
冒頭ではトピックとしてオンラインゲーム配信サービス、Steamがクラックされた話題を取り上げていました。ベロニカは「私は同じパスワードを使い回したりしないで、12文字以上の長さのパスワードをサイト毎に1passwordで生成してるよ!」と弁解していました。またどうやら現在はSkylimにハマっているようで、この撮影の前日には7時間もプレイしていたそうです。ベロニカ、ガチのゲーマーですね。
次回の配信は1月の予定との頃です。楽しみですね。
via:http://www.veronicabelmont.com/2011/11/game-on-on-twit-tv/
EメールにBASICのコードを書いた男
歴史の長いコードスニペット共有サイト、PasteBinで共有されたメールが話題になっていました。Rayさんから送信された遅刻を知らせるメールにはBASICのようなコードで内容が書かれていましたが、このコードが物議を醸す事になります。
以下はこのメールに対してメンバーが返信したレスの一部。
- 行 20は絶対に実行されないぞ。gosubの間違いじゃないの?
- 無限ループを修正した。
- リファクタリングして、謝罪の言葉も出力するようにしました。
- テストしないでコードを書いてるのか?
- 少なくともプロフェッショナルな品質検査を受けているな。
その後、Wikiページを作成してという所までやりとりはエスカレートしていきます。原文の方が面白いのでご覧になってみてください。また機会があれば遅刻メールをコードで書いてみるといいかもしれません。
via:http://pastebin.com/JLRJxm4g
ニューヨーク在住のソフトウェアエンジニアがYelpへ寄せる要望
日本への進出も噂されているレビューサイト、Yelpに対しての不満をグーグルのソフトウェアエンジニア、Matt Jonesさんが綴ったエントリが話題になっていました。Mattさんは「Yelpは最良のビジネスデータベースだ。私はいつもレーティングを信頼して判断をしているし、別のサイトを使う事は稀」とYelpを賞賛しつつも下記の点について改善が必要であると要望しています。
検索
- YelpのCEO、Jeremy Stoppelmanによると25%のトラフィックは”Yelp”をキーワードの一部にしたGoogle検索からのアクセス。(Yelpの検索よりもそちらのほうが使いやすいと思われている)
- Yelpの検索は速度が遅く、ソート順も納得感がなく使いづらい。スペルミスがあってもヒットしない。
- Yelpが検索を修正しないとユーザーはキーワードにYelpを入れずに検索するようになるだろう。
パーソナライゼーション
- 店をレビュー無しで評価する事ができない。
- レビュー無しの評価を店の評価に影響を与えずにできると良い。。
- グループでディナーに行く際に全員の好みを元にリコメンドできると良い。
モバイルアプリ
- モバイルで輝くべきなのに、少なくともAndroid版はいまいち。
- ランディングページから2クリックしないとサジェストが見れない。
- 知らない街などで好みの店があったら知らせてくれたりすると良い。
有用なデータをたくさん持っているのにそれを活かしきれていないのがもったいないという論調ですね。またUIやパーソナライズ、検索などについては具体的な改善点がまだあるという風に考えているようですね。こういった点を改善したYelpが日本にも参入してくると面白くなりそうです。
via:http://notes.mrjon.es/2011/12/expecting-more-from-yelp.html
ChromeとFirefoxの自動アップデートの効率比較
頻繁なバージョンアップと自動アップデートを採用しているChromeとFirefoxですが、どうやらFirefoxの自動アップデートはあまりうまくいっていないのではと言われています。Royal Pingdomでは複数の図表を使ってこの現象を解説しています。
状況の比較

この図はブラウザシェアをバージョン毎に細分化したもので、Firefox4から頻繁なリリースに移行した事が一目で分かります。これだけ見るとわりとうまくいっているようにも見えます。同じ期間のChromeの状況を見てみましょう。

この図でもユーザーが速やかにブラウザをアップデートしている事が見て取れます。またChromeの場合はバージョン毎にユーザー数が増加している事もわかります。ですがこの記事の主題はユーザーの増加ではなくアップデートの効率という事でさらに異なる尺度からの分析が続きます。
ユーザーへのリーチ率
マーケットのシェアは外部要因に左右されてしまう為、ブラウザ毎の数値を分離しまた自動アップデートが使えるFirefox5以降を対象にした図表を元記事では示しています。この数字が下がっていれば、自動アップデートがあるにも関わらずユーザーが古いバージョンを使っているという事になります。

まずはChromeの場合。新しいバージョンが以前のバージョンをすぐに置き換えている事がわかります。各バージョンが約90%のユーザーにリーチしていてとても効率的です。

Firefoxの場合、どうやら以前のバージョンでのアップデート率に及ばないという状況が続いています。この理由については反響として「プラグインがクラッシュするので自動アップデートを無効にしている」という声が複数寄せられたそうです。元記事ではMozillaがこの状況を好転させる事に期待を寄せつつ、Googleのアップデートプロセスが非常に成功している事に賛辞を寄せています。
via:http://royal.pingdom.com/2011/12/06/comparing-chrome-and-firefox-automated-updates-study/
あの名機の価格を現在の物価に換算したら?
激動の2011年ももうすぐ終わり。今年も多くのガジェットが発売され、そのうちのいくつかを皆さんもお買い求めになったと思います。新製品で気になるのが価格ですが、歴史上の名機達が発売された当時の価格を現在の物価に換算したリストがRoyal Pingdomで記事になっていました。隔世の感のあるリストは下記のとおり。
IBM PC
現在のPCのアーキテクチャに繋がる元祖IBM PCは1981年に発売されました。当時の価格、$1,565(12万2208円)は現在の物価だと$3,898(30万4388円)に相当するそうです。
Apple iPod
5GBの容量とFireWireのみの接続で発表された初代iPod。2001年当時の価格、$399は現在の物価だと$510に相当。
JVC HR-3300(VHSビデオデッキ)
VHSテープを利用する最初のビデオデッキは1976年に発売されました。当時の価格、 $1,400(10万9323円)は現在の物価だと$5,571(43万5030円)に相当。
Apple II
アップルの最初のヒット製品、Apple IIは1977年から生産が開始されました。当時の価格、$1,298(10万1358円)は現在の$4,816(37万6073円)に相当。
どの製品も現在の物価になおすとかなり高額ですね。物価の変動と技術の進歩のおかげで現在の私たちはお手頃な価格で製品を入手できるようになったんですね。
それぞれのガジェットの画像やその他の名機の価格などについては元記事でどうぞ。
via:http://royal.pingdom.com/2011/12/09/what-would-they-cost-today-10-classic-pieces-of-tech-history-at-todays-prices
2011年の定番オープンソースソフトウェアリスト(開発編)
日常の開発に欠かす事の出来ないソフトウェアといったら何が思いかびますか?数多くのソフトウェアの中から昨今のトレンドを元にInfoWorldがセレクトした2011年のオープンソフトウェアランキングが発表されていました。10本のソフトウェアに選ばれたのは下記のソフトウェアです。
- CakePHP
Ruby on Railsの影響を受けたPHP用のフレームワーク。習得の容易さとコミュニティの活発さで人気。 - CoffeeScript
インターフェースやサーバーサイドに欠かす事のできないJavaScriptをより記述しやすくする中間言語 - git
バージョン管理の標準になりつつある分散型SCM - hadoop
大規模分散処理を実現するフレームワーク - Hudson / Jenkins
継続的ビルド(Continuous Integration)を行う為のサーバーソフトウェア - jQuery mobile / Sencha Touch
スマートフォン向けのUIを実装する為のフレームワーク - MongoDB
NoSQLデータベースの中でも抜きん出ているスキーマレスデータベース。 - Node.js
サーバーサイドまでもJavaScriptで記述しスレッドを使わない事で効率的なメモリ利用を実現する。 - Web2py
デポール大学のMassimo Di Pierro氏が開発した使いやすくパワフルなWEBアプリケーションフレームワーク
どのソフトウェアも大きな知名度を持ち、実際の活用を聞く事が増えて来たようなものではないでしょうか。選定の条件はいまひとつ不透明ではありますが、この中で利用した事がないものがあれば一考の価値はありそうです。なおリンク先にはデスクトップアプリケーションやデータセンターソフトウェアなどのランキングも掲載されており、7ZipやEucalyptusなどが選定されています。










