Web + DB Press Vol.66

小飼弾Perlハッカーに会いたい

あまりPerlコミュニティに馴染みのない自分でも「豪華だ」とおもえる面子の対談だったので、Perlコミュニティに傾倒しているならもっと興奮するとおもう。

RJBS氏の (自然言語における) 外来語の吸収についての言及がおもしろい。日本に限らず、外来語がその国の言葉として根付き、しかも新たな意味が与えられることもある、というのはプログラミング言語についても言えるだろう、という話は頷ける。言語は生き物なのだから、そういう進化もあるはず。

余談だけど、最近、Perlコミュニティが気になっている。RubyコミュニティはRubyのエコシステムそれ自体に熱い思い入れのある人が多い。「より『楽しいプログラミング』を追い求めたらRubyに行き着いた」みたいな話をよく聞く。だからコミュニティへの参加もより熱くなって、たまにその過熱した様子は他のコミュニティに迷惑をかける、ということもある。

対してPerlコミュニティは、外野からの私見だけどもっとドライに見える。道具としてのPerlを気に入っていて、それ以上でも以下でもない。イベントなどのレポートひとつとっても上品というか、「感極まった話」はそんなに聞かない。よくいえば大人っぽい、わるくいうとおっさんくさい。

言語自体も (クラスベースの) オブジェクト指向プログラミングに対するアプローチがRubyのそれとはぜんぜん違う、後付けであるからこそのやり方で、賛否や好き嫌いはあれど、おもしろいとおもう。コンテキストは半端な静的型付けっぽくていまだにダサいとおもうけど。

HTML構造化指南

いまいちなにが言いたいのかわからない。

p.22のフォームの例は定義リストや表でもよい気がする、いきなり見出しレベルが4で始まっている理由がわからない。

プレゼンテーションを前提としてHTMLを捉えているのに、プレゼンテーションに依らないHTMLの説明をしようとしていて、意味がわからなくなっているところが多い気がする。

In-validであることと間違い (Error) であることはきちんと区別すべきだし、それらについて言及するならばブラウザのフォールバック処理についても言及してもよいとおもう。

p要素を「段落を構成する要素」と「ブロック要素」とHTMLのコンテキストとCSSのボックスモデルのコンテキストをごちゃごちゃにして表現している。

ワイヤフレームをHTMLアプリケーションとしてマークアップしていく人のために、プレゼンテーションではなくセマンティクスを表現する書き方を提示する、みたいな主旨なのだという理解でいるから、実際にプレゼンテーションの現場にいる方にとってはしっくりくる、わかりやすい内容だったのかもしれない。僕はちんぷんかんぷんだった。

きっちりわかるアルゴリズム

コンピュータ・サイエンスや高等数学を体系的に学んできたことがないので、アルゴリズムには積極的に関わってこなかったけど、最近になってアルゴリズムやデータ構造についての基礎知識がないとつらい、と実感することがあったので嬉しい内容だった。

個々のアルゴリズムの詳説ではなく、文字列検索、圧縮、レコメンドという三本立ての目的について「データ構造のどの部分について着眼し、どのようなアプローチをとるべきか」という、アルゴリズムを発明する思考をなぞる形式で、とてもわかりやすかった。

「なぜその問題について考えるべきなのか」「なぜ提示した解法が適切 / 不適切なのか」「対案としてどういった解法が考えられるか」という、学習資料に重要な要素がきちんとちりばめられていて、学習資料の作例としても参考になるメタためになる内容だった。しかも、文字列検索や圧縮、そしてレコメンドのどれもタイムリーで実践的な目的なので、「マージソートなんて書けてなにが嬉しいの?」みたいなツッコミを避けられるし、ほんとうにすばらしい。

クックパッド 開発ノウハウ大公開

200ミリ秒を切るインフラ

クックパッドとそのインフラの概略。

バレンタインデーが年間を通してのピークシーズンだとはおもわなかった……。しかし考えてみればなるほど納得。秋から冬にかけてアクセスが増加しているのが印象的。
しかし4月が両端にあるので、たぶんある一年のアクセス分布を切り取ったものであって、複数年のアクセスログを月ごとに分布したグラフとかではないのだとおもう。

大規模でも高速な開発サイクル

テストとかCIとか実装手法とかの話。Chankoの話もある。

デプロイひとつとってもいろいろ考えることあるんだ……。個人でいろいろやったり、あるいは単にソフトウェア・エンジニアとしてコードを書いているうちは、なかなか気付けない話だった。

ユーザを向いたものづくり

精神的な話。「Goodはやらない、Bestに集中する」というのは言うは易し行うは難し、というかんじがする。

ユーザインタビューとかにきちんとリソース割いている現場に関わってみたい。来年度からはちゃんと大学いきます……たぶん……。

効率的なスマートフォン開発

スマートフォン向けアプリケーション開発の話。

UIの再利用の現状解としてスニペットが紹介されている。

垣根を越えるチームづくり

ちょっと精神的な、中の人の話。

やっぱりしっかり運営しているところはインフラ監視とかはやるものなんだなあ。

DevOps, よく知らないので資料みておく。

Entity Frameworkによるデータベースのコードファースト開発

最近、Web + DB Pressを読んでいて一番おもしろい連載が .NET Framework に関するこれで、毎回楽しみにしてる。Macで .NET Framework をつかったアプリケーション開発ができたらいいのに。

Entity FrameworkはRubyのActive Recordっぽい、CoCなO/Rマッパっぽいもの、という理解でいる。コードの字面だけみると ActiveRecord::Base + ActiveRecord::Migration みたいなかんじ。しかし、シードデータの注入の責任まで持てたり、なかなかおもしろい思想になっている。継承するクラスによってビルド時にデータベースを作り直すとかが決められていて、とてもおもしろい。

以前の連載で紹介されていたLINQもおもしろそうだったし、.NET Frameworkだけ遊びたい。