Feb 22, 2008

ドアラのひみつ かくさしゃかいにまけないよ

ドアラ先生の新刊が出ました。

ドラゴンズファンとしては買わざるを得ません。すっかり、金の鯱、味噌煮込み、きしめん、味噌カツ、櫃まぶし、寿がきや、シロノワール、100メートル道路、ナナちゃん人形などに並ぶ、「名古屋のアイコン」になっちゃいましたね。

この本は、スポーツのコーナーに置かれるべきかサブカルのコーナーに置かれるべきか。

Feb 9, 2008

言語を覚える時のたった3つの練習問題

新しくプログラミング言語を覚えたいときに行うべき10の練習問題 | IDEA*IDEA

なんちゅうつまらん問題!興味も沸かないし、達成感もないし、プログラミング自体の練習になっていない。特定のライブラリの使い方などはオンデマンドで調べればいいこと。

プログラミング言語を覚えたいなら以下のような問題を解くと良い(SPA2006の余興の翻案)。

問題1

キーボードの「e」を使わずに「Hello, world!」と表示するプログラムを作れ。

※作れない言語もある。その場合、「なぜ作れないのか」を説明してみよ。

問題2

echoサーバプログラムを作れ。どんな手抜きをしても構わない。

問題3

47都道府県庁の所在地を示すKMLをファイルを以下に与える。

pref.kml

このとき、北海道庁を起点として、残り46都府県庁を一回ずつ訪問して北海道庁に戻ってくることを考える。どのような順番で訪問すれば移動距離を最短にできるだろうか(巡回セールスマン問題)。

最短の訪問経路を生成するプログラムを作り、その結果をKMLファイルで示せ。

pref-path.kml (出力ファイル例)

※地点間の距離は適当に定義せよ。

念のため、このサイズの問題は分枝限定法を使って真っ当に解くか、GAなどの近似解法を使うかしないと難しい。組み合わせを生成してナイーブに解きたい人のために1道6県のデータも作っておいた。これならたった(n-1)!/2=360通りで済む。
pref-7.kml

それぞれの問題はだいたい以下のことを意図したもの。

  1. 言語がサポートする、文字列型などの基本データ型を知ること。
  2. システムプログラムを書くための言語サポートを知ること。どんなシステムライブラリがあるのか自力で調べること。
  3. 言語がサポートするデータ構造を知ること。アルゴリズムが分からなければ自力で調べること。それを実装すること。他の問題でもいいのだが、TSPはGoogle Earthなどで簡単に結果を閲覧できるので達成感がある。

Feb 4, 2008

Movable Typeとオープンソース

MTOSはMovable Typeのオープンソース版であるという「誤解」が流布している。

実際、MovableType.org - Home for the MT Community: Welcome to the Movable Type Open Source Projectを見ると、

The Movable Type Open Source Project is a community effort, led by Six Apart, devoted to creating an open source version of Movable Type, the award winning, ground breaking and revolutionary blogging platform. This open source version (or MTOS for short) will be free for anyone to modify, redistribute and use for any purpose that they choose.
(強調は引用者による強調)

などと書かれており、「MTOSはMovable Typeのオープンソース版である」という字面は間違っていない。だから冒頭では括弧付きで「誤解」と書いたのだが、これは、「Movable Type」という製品を販売する会社であるSix Apart側から見た「オープンソースであるMovable Typeパッケージ」を説明するための表現である。これを「MTOSはオープンソース版だから製品版とは異なる、製品版の劣化版である」と「誤解」するのは曲解と言うものだ。そうではなくて、GPLソフトウェア利用者の観点に立って、この表現の意味するところを分かりやすく言うなら、

  • Movable Type Core(以降、MT Core)は、オープンソースソフトウェアである。
  • MT Coreの著作者は、Six Apartである。
  • MT Coreは、デュアルライセンス(GPLと商用ライセンス)で配布される。
  • MT CoreのGPLでの配布パッケージの名前を「MTOS」と呼ぶ。
  • MT Coreの機能は、概ねMTOSパッケージの内容物で規定される範囲である。
  • MTOSパッケージと、商用ライセンスが適用されるMovable Type製品パッケージは、物理的に異なる配布物である。後者には、addonソフトウェアを含む場合があるため、また商用ライセンスが適用されることを明示するため、である。

というのが正しい。逆に、

  • MTOSは、Movable TypeやMTとは異なるソフトウェアである。
  • MTOSは、Movable Typeのオープンソース版・開発版である。製品版と比較してバグが多く、不安定である。
  • バグが見つかったときに製品版の方がオープンソース版より対策が早くて巧くて確実。

などの言説は正しくない。

MTOSパッケージは、Six ApartのMovable Type製品と同等のMT Core機能を含む。両者は同等だから安定性において差はない。むしろ、addonsソフトウェアに起因する障害を心配する方が理にかなっている。

(現在は両者とも4.1をベースにしているが)両者のリリースが異なるMT Coreをベースに実施される可能性があるではないかという指摘もあるかもしれない。例えば、最新のMTOSパッケージがより新しく実験的な機能を含んだMT Coreを用いて実現されるのに対して、最新のSix Apart製品がより古く安定したMT Coreをベースに開発される、という事態を想定してみればよい。この場合でも、Six Apartが製品化のためにMT Coreへ行った改変は、安定版ブランチへの改変としてコミュニティに公開されるはずである。これをしないと、Six ApartはGPLソフトウェアの同等品ないし派生物への改変内容の公開義務を果たさないことになって、厄介事に巻き込まれる危惧がある。だから公開するはず。したがって、コミュニティは常に製品版に対応する、つまりは同等の、MTOSパッケージを(パッケージング作業自体はボランティアベースで行う必要があるかもしれないが)自由に入手することができる。

そういうわけで、Movable Typeのコア機能はオープンソースである。

追記: このエントリーで伝えたかったのは、オープンソース化によってSix Apartがコミュニティに与えた貢献、これから与えるであろう貢献を過小評価しない方がいいよ、ということ。ユーザも重要なのは言うまでもないんだけど。

About Me

My Photo

つくばで働く研究者

Total Pageviews

Amazon

Copyright 2012 Ogawa::Buzz | Powered by Blogger
Design by Web2feel | Blogger Template by NewBloggerThemes.com