«前の日(12-28) 最新 次の日(12-30)» 追記

Matzにっき


2003年12月29日

_ [家族]帰省

妻の実家の山口市に移動。R9を240Kmほど西に。

私の実家も、今のうちも、妻の実家も国道9号線から少しだけ入ったところなので、 この国道沿いに移動するだけですむ。楽といえば楽だが一般道240Kmはちと遠い。

夕方には到着するが、移動するだけで疲れ切って、到着後昼寝(というかなんというか)。 こんな調子で原稿終わるんだろうか。

なお、帰省中はAirH"しかネット接続手段がないので、応答性が悪いことでしょう。 すぐ切れるし。

_ [原稿]LL Magazne

「Update」と「Foreword」は書いた。問題は「LLとは?」という文章だ。3ページもなに書くのよ。

_ [OSS]オープンソース生活の別の視点

はんばあぐさんのHysteric Programmer 日記 によれば、

議論にあたって、別の視点も必要だと思います。企業に雇われる場合と個人(自営業)の場合は、事情がかなり異なるので、わけて考えるべきです。さらにもうひとつの視点は、既存のオープンソースか自分が創設したものかです。場合分けは、合計4通りあります。

ふむ、考えてみたことなかったな。 ここでは「自分で創設」というよりは「主開発者かどうか」が重要でしょうな。

となると、えーと、

  1. 雇われ - 主開発者
  2. 自営 - 主開発者
  3. 雇われ - 開発協力者
  4. 自営 - 開発協力者

の4つか。しかし「自営 - 主開発者」ってのは現実的じゃないだろう。 「経営をなめるな」って感じか。あるいは「主開発者の苦労を知らないか」かも。

残り3つ。

残りのものについては「プレゼンス(存在感)があれば有効」というモデルはあまり変わらないような気がする。

たとえば、私は(1)のパターンだ。これについては以前に述べた。

他のものとしては、うちの会社には(3)のタイプの開発者もそれなりにいる。 これは「優れた技術者」としての立場を武器にオープンソースへの貢献を認めてもらっているタイプか。 同時に自分が優れていることを示す道具としてオープンソースの貢献を利用しているとも考えられる。 うまくいけば理想的なケースだろう。

最後のケースはどうだろう。うちの社長は新しいプログラミング言語を覚えるたびに その言語で逆ポーランド電卓プログラムを作る習慣があるが、 そういうのはここでいう「開発協力者」でも「主開発者」でもないだろうな。 オープンソース関連の事業をすることでオープンソースの間接的に開発に協力しているというケースは良く聞く。

日本ではあまりないような気がするが、たとえばDave Thomasのような独立系コンサルタントは、 自営に分類できるかもしれない。彼は仕事が忙しくない時にオープンソースソフトウェアをいくつか開発している。 最近の彼のヒット作はRuby版JavaDocとでも呼ぶべきRDocである。 こういうのは、あるいは「自営 - 主開発者」に分類してもよいのかもしれない。 小粒なプロジェクトが多いけど。

そういえば、Eric Raymondとかも小さなプログラムを開発しては、 他の人にメンテを譲ったりしている(fetchmailとかbogofilterとか)。 彼が自営と呼べるかというのはよくわからないのだけど。普段なにやってるか知らないので。


2004年12月29日

_ 片付け・来客

大変散らかっている自宅を片付ける。ついでに廊下をぞうきんがけ。

夕方から来客。早めの夕食を一緒にいただく。 楽しい時間を過ごした。

_ [言語]A crisis of faith

先日の続き

Prototype版PythonことProthonの作者、Mark Hahnが、その後、.NET上の動的言語の開発を始めたが、

  • C#がスクリプティングにも十分に使いやすい
  • それは豊富なライブラリのおかげである
  • Visual Studioはすばらしい
  • 静的言語はタイプ量は多いがツールでカバーできる

というようなことから、動的言語への「信仰」を失ってしまった、とかいう話。

もっとも、動的言語の利点は

  • Duck Typingによる柔軟性
  • 生のコードがコンパクトなため読みやすい

ことにあり、これらはツールによってカバーされるものではないと思うが。


2005年12月29日

_ 回復

妻はたいしたことなく終わったらしい。

私もだいぶマシになったが、それでもまだ調子悪い。 食欲ないし。

子供たちは長女を除いては回復したようだ。 長女だけは少し回復したと思ったら、 食べ過ぎて具合が悪くなることをもう数回は繰り返している。食い気があると言うか何と言うか。


2006年12月29日

_ [Ruby] How To Think Like a Computer Scientist: Learning With Ruby

Elizabeth Wiethoffの「How to think like a computer scientist」シリーズの新作。 まだ「書きはじめたばかり」だそうだが、 すでに完成している最初の方は結構出来がよさそう。

完成が楽しみである。

本シリーズには他にも「Java」、 「C++」、 「Python」、 「Logo」があるそうだ。

_

松江地方は今年最初の積雪。朝目が覚めたら10cm以上積もっていた。 びっくり。確かに昨日あたりからぐっと冷え込んでいたけれども。

この雪の中、娘たちは映画を見に行くとのこと。 まあ、この辺の人たちはこれくらいの積雪、どうということはないので、 さしてトラブルもなく映画は観れたらしい。

_ [言語] Yariv's Blog >> Introducing ErlyWeb: The Erlang Twist on Web Frameworks

ErlyWebはErlangにおけるRails相当。

「やるじゃないかErlang」というのが正直な印象。 いつまで待っても「Lisp on Rails」とか出てきてないものね(Lispにはそんなもの必要ない、というのはあるかもしれないけど)。

で、final words:

After reading all this, some of you may be thinking, “This is weird… I thought Erlang is some scary telcom thing, but what I'm actually seeing here is that Erlang is very simple… Heck, this stuff is even simpler than Rails. What's going on here?”

If that's what you're thinking, then you are right. Erlang *is* simpler than Ruby, and that's why ErlyWeb is naturally simpler than Rails. In fact, Erlang's simplicity is one of its most underrated aspects. Erlang's creators knew very well what they were doing when they insisted on keeping Erlang simple: complexity leads to bugs; bugs lead to downtime; and if there's one thing Erlangers hate the most, it's downtime.

...、えーと、Erlangの言語仕様がRubyよりも小さいという点と、 Erlangerがダウンタイムを毛嫌いする(好きな人はいないと思うけど...)ことには、 完全に同意するけれども、 ここで紹介されているErlyWebから「Railsよりシンプル」という印象を受ける 人はそんなにいないと思うなあ。

普通、「シンプル」っていう時には「ツールの単純さ」よりも、 「ユーザ作業の単純さ」を言うんじゃないかなあ。 ツールデザイナーはついつい「ほら、このツール。こんなにシンプルな仕組みでこんなに強力」とか 言いたくなるけど、ほとんどのユーザはそんなこと気にしないんじゃないか。

ErlyWebのできが悪いとは思わないし、 もうほんのちょっとだけツールサポートが篤くなれば Rails(とかTurboGearsとか)に匹敵するWebアプリケーションフレームワークになると思うけど、 現時点で「ほら、こんなにシンプルだろ」と言っちゃうのは 逆効果なんじゃないかなあ。

_ [Ruby] まつもとさんインタビュー - xe-kdoo

私の日記に反応がない理由について。

  • まつもとさんと十分議論できるほどに言語に対する知識を持ち合わせていない。
  • 数日分まとめて更新されることが多いので、意識がいろんな記事に分散されてしまう。
  • あるいは見逃すことも。
  • コメントすると多くの人の目に触れることに人する気後れ。
  • (一生懸命考えても、なかなか答えが出ないような問題は)反応するには難しすぎる。
  • (微細な問題であり自分に影響はない、という意味で)他人事だと思っている。

いや、いずれもごもっとも。

で、私が対処できることはほとんどないんだけれど、 二番目の「数日分まとめて更新される」ことだけは なんとかしたいと思う。2007年は「毎日日記更新」を目標のひとつにしよう。


2007年12月29日

_ Thinkpad X61

届いた。来年になると思っていたので、予想外の喜び。 が、それはインストールの苦しみでもある。

巨大な箱が二箱、ラップで包んでつながっている。 二つめの箱にはメモリの小箱と拡張保証の紙が入っているだけ。 なんて過剰包装。

もう一つのほうは本体。 X31は梱包材を含めて全体が段ボールで感心したが、 X61はウレタンフォームらしき材質の梱包材が使われていた。

取り出す。

  • IBMマークがなくなっている
  • 全体にX31より小さく、軽い
  • キー配列がちょっと違う。Windowsキーとか右ALTの代わりにメニューキー(ってなに?)とか。
  • 画面が小さい気がするが、これはここのところ外部ディスプレイ(15インチ)を使ってたせいだろう。慣れって恐いわ。

電源を入れる。無事起動し、Vista (BASIC)のEULA画面が出てきた時点で電源オフ。 EULAには合意しない

で、会社から借りてきたDebian SargeのインストールCDで インストール開始。

先日のHDD破損で再インストールした時の記憶が フレッシュなので、さほど問題なし。引っかかったのは、 CD-ROM単体からのインストールはうまくいかず、 ネットからのミラーを使わなければインストールできなかった点。 手を抜かず、最初のネットワーク初期化をきちんとすること。

実はこの点でかなりひっかかったが、 分かってしまえばそんなに難しくない。

で、無事起動。問題なし。

さて、実用のためにはもうちょっといろいろと手を入れなければならない。

まず、最初に前のPCからデータを持ってこなければならない。 X31からディスクを外し(この点Thinkpadは楽勝だ)、ケースにつないで USBディスクとし、ホームディレクトリといくつかのデータをコピー。 これが結構時間がかかる。X61はHDDがSATAなので、 USBディスクは/dev/sdbになる。

それと平行して、/etc/apt/sourcesを書き換え、 sidにアップグレード。これまた結構時間がかかる。 xorgまわりで矛盾が発生するが、 update-managerのsmart updateを使うと魔法のように解決してくれる。

あと、解決すべき問題は

  • ビデオ
  • 無線LAN
  • 電源

である。

音についてであるが、X61のサウンドカードはIntel 82801H HD audio controllerであり、 Debian sidであればALSAのバージョンが新しいのでなんの問題もなかった。

ビデオも(当面は)問題なし。Driverは"intel"を選択。

無線LANはlinux-image-2.6.23にはiwl4965ドライバーが添付されているが、 ファームウェア(firmware-iwlwifiパッケージ)をインストールしても カードを認識してくれない。

そこでndiswrapperを使うことにする。 ndiswrapper-sourceとndiswrapper-utilsパッケージをインストール。 module-assistでndiswrapperをコンパイル、インストール。

% cd /usr/src
% m-a prepare
% m-a a-i ndiswrapper

次に、ドライバファイルをダウンロード。どこから入手してもよいが、 IBMかインテルからダウンロードするといい。

まず、サポートカードのリストを見ると、 X61やIntel Wireless WiFi Link 4965AGNは載っていない。 が、IBMのドライバダウンロードページあたりから当たりをつけて、 ドライバファイルをダウンロードする。

わたしがダウンロードしたのは7kwc27ww.exeというファイルだったが、 今、探したら7rwc09ww.exeというファイルしか見つからなかった。 こっちでインストールできるかどうかは不明(ごめんね)。

Vista用ではなく、XP/Windows2000用をダウンロードすること。 これは自己解凍ファイルだが、wine-safeで解凍できる。

たくさんドライバが入っているが必要なのは NETw4x32.INFというファイル。

このディレクトリで

% ndiswrapper -i NETw4x32.INF

とするとドライバのインストールは完了。 ESSIDの設定に手間取ったが、とりあえず無事接続完了。 ただし、

# iwlist ap

でアクセスポイントを見つけてくれない。scanはできるのであまり困らないけど。

最後は電源。ポイントはクロックのコントロールが出来るかどうかと サスペンド/リジュームができるか、という点。

さんざん試行錯誤したが、 結論からいうと完全ではないものの、動作はした。

まず、クロックのコントロールだが、いろいろと試行錯誤の結果、 結局はpowersavedパッケージのインストールだけで うまく動いた。X61のCPUはCore2 Duo T7500 (2.2GHz)だが、 クロックは両方同時に変わるのね。まあ、当然か。

次はサスペンド・リジューム。 まずはuswsuspとhibernateをインストールする。

これでハイバネーションは出来るようになる。 が、サスペンドはできない。どうもs2ramがX61を知らないみたい。

% s2ram
Machine is unknown.
This machine can be identified by:
    sys_vendor   = "LENOVO"
    sys_product  = "7675A31"
    sys_version  = "Thikpad X61"
    bios_version = "7NET29WW (1.10 )"
See http://suspend.sf.net/s2ram-support.html for details.

If you report a problem, please include the complete output above.

強制的にs2ramを実行するとs3_mode,s3_biosでは(ある程度)正しく動作するようだ。

% s2ram -f -a 3

たまにリジュームしないという問題があるんだけど(ダメじゃん)。 おおむねうまく動いているみたい。

これは将来のバージョンで対応すると思われるのだけど、 当面これをどうするか。要するにホワイトリストにX61が載ってないのがいけないので、 これをなんとかすればいい。残念ながらホワイトリストは s2ramに組み込みで、ファイルとかになってないみたい(なってたら楽だったのに)、 ソースを調べると「Thinkpad X61」にマッチするルールはあるようだったので、 バイナリエディタ(わたしはEmacsを使ったけど)で、むりやり「X60」を「X61」に 書き換え。

あと、/etc/hibernate以下の設定ファイルをいくつかいじって(もう忘れたけど、 今となってはあまり変更する必要はなかったと思う)、 gnome-power-managerを導入すれば、完了。

あとは外部ディスプレイへの出力ができてないんだけど、 ここで時間切れ。くたびれた。


«前の日(12-28) 最新 次の日(12-30)» 追記