元ネタ:バラード禅問答@tss_ontap氏「IPv6の理想と現実〜若者に未来を託して〜」IP網は「自由に使える環境」ではなく「統制されている環境」になりつつあるのではないか?という話。若者にはもっと自由に挑戦してほしい、とのことであった。SmalltalkでTDDを行う場合に、その準備をするのに(コードを書くのも、IDEの操作をするのも含む)かかる時間を比べたもの。Javaの場合はコンパイル時に型のチェックが入るので、一旦「失敗するテストを書く」までに時間がかかる、という特徴が挙げられた。これは確かに自分も、C++でテストファーストで単体テストを書くときに感じた。@tomooda氏「HaskellとSmalltalkの会話」「画面ゆらゆら系デモ」Smalltalkの開発者であるアラン・ケイが目指していたオブジェクト指向は、「利用者が認識する対象に対してプログラミングする」(例えば、ウィンドウに対して「掴む」という操作をするとか)ものであった一方、実際にオブジェクト指向でコードに書くときは「ウィンドウに、ものを掴める場所を作ることを指示する」にとどまっていることを指摘している。「HaskellとSmalltalkの会話」という観点では、何か強力な連携を見せると見せかけて、SmalltalkからHaskellのコードを呼ぶだけ、というオチ付きであった。分散型ストレージ「Hadoop」を、実際に業務で使うためのフレームワーク。Hadoopはあくまで分散ストレージ「だけ」を担っているソフトで、実際にそれを用いてソフトウェアを作るには別途フレームワークが必要になってくる、とのことであった。Hadoopは「軽いデータに対して使うとオーバーヘッドが大きい」という弱点があり、かと言ってHadoop向けとふつうのRDB向けの処理を混在させなくてもよいよう、分散しないHadoopを入れられるようにしているとのことであった。深夜LTが終わると23時になっていたのだが、それでもみんな話したいことが多くてしゃべっていた。宿にあったホワイトボードを持ち出してモナドの概念を説明したりとか。あと@sumim氏が相変わらずのSmalltalk力を発揮しており、Smalltalkから派生した言語「SELF」についてデモを交えて説明されていたりした。発表:@nakayoshix氏モナドを語る上でさらに基礎となる数学がどんなものであるかの説明。氏いわく「1時間でモナドまで行くのは厳しい」とのことであったが、その手前の概念である群論はちゃんと説明した上で、モナドの定義に入っていた。群論における重要な特性として、演算が閉じている、すなわち定義されている演算を繰り返し適用できるということが挙げられていた。ルービックキューブを例に示されていた。途中から「じゃあ実際のプログラミングではどういう意味を持つの?」という議論に。扱うことは出来ないため、IOモナドはそれを包括する役割がある」という話だった。発表:@okachimachiorz1氏データベースにおけるTX(トランザクション)について。ANSIのSQL規格には不備があり、それを指摘している論文を解説するというものであった。TXの性質として「ACID」と呼ばれる4つの性質があり[1]、ANSIの規格ではこれらを満たせないケースが挙げられていた。そのために数学が用いられていることも分かった。具体的にどこが問題かまでは理解できませんでした...いつか復習する。発表(6)「本当は怖いDNSの話」インターネット上でコンピュータを、IPアドレスの代わりに「hhiro.net」などの名前(ドメインネーム)で指定する仕組み(DNS)が問題を抱えているという話。通信先のドメイン名だけ知っているコンピュータは、DNS情報を提供するサーバ(DNSサーバ)に問い合わせてIPアドレスを取得し、それによって通信が可能になるのだが、そこに悪意のある通信が割り込むことで、本来通信を行うべきコンピュータと異なるものを指し示され、情報漏えいなどが起きることがある(DNSポイズニング)。この発表ではその具体的な手口が示され、DNSは信頼し切れるものではない、ということが述べられた。←ちらし寿司ディスカッション@小樽商大まず@asami224氏の導入セッション(発表資料)。関数型言語とオブジェクト指向言語の考え方について述べられた。関数型言語の背景知識として、伝統的な関数型言語はラムダ計算がポイントとなっているが、最近のものは圏論などが関わってくる、とのことであった。関数型言語とオブジェクト指向言語はどう連携させるべきか?という話で、表側の処理はオブジェクト指向で、裏側の【数学的な意味での】関数(前述)として書けるものは関数型言語で、という話があった。最後の1時間では、@c255氏がHaskellで作ったシューティングゲームのコードリーディングが行われ、どのようにモナドが用いられているか(ちなみにシューティングゲームでは、画面の書き換えやキー操作の受け取りが頻繁に起こるため、そこは全部モナドが必要になってくる。前述)ということが示されていた。懇親会には8人が参加。話し足りないことを語りました。←ピザその後2次会へも。出来なかった[2]ので、深く理解するには至らなかったのは少々残念でした。関数型言語とかOOPとかDBとかネットワークとか、今までそれほど突っ込んで勉強してなかった分野において、面白いトピックがたくさんあるということが分かって、しかもそれが自分の数学好きな心をくすぐるようなものが多かったので、いい刺激になりました。おまけ合間の時間で将棋板をいじっていたら、詰将棋を思いついたので置いておきます。Perl5.026001。