なおとの思考/n3

Prev Next HOME

LL Weekend 2004 1日目

2004-8-7 Sat.

Lightweight Language Weekend 2004

「Perl使い」である自負はあって、仕事(Web系)でも使っている。Webアプリケーションそのものだけでなくて、ちょっとした「使い捨て」に便利です。このごろ、Pythonが良いんじゃないかと思い始めている。とりあえずインストールだけはしたし、glucoseも最新版をインストールしなおした。

8時半に家を出る

20分遅れで入場した。Curlの話の途中だった。午前のセッションでは、SqueakToys?に感銘を受けたので、さっそく昼休みに書籍販売コーナーでCD-ROM付きの本「PLAY WITH SQUEAK スクイークであそぼう」を購入。2回目の休憩時間にインストールした。ちょっと遊びたくなったので、しばらくは暇を作っていじってみるのもいいかと思う。

それと、プレゼンテーションをSqueakでやるというのはいい方法だと思った。掴みは十分。その場で動くインタラクションが仕込まれていると受けが良し。そういった目的で使いこなせる程度にはなりたいな。

あとはオライリーで購入候補だった本をいくつか。おまけでTシャツをもらった。どういうわけかその場の思いつきでOS XのTシャツを選択した。理由はパンサーのイラストが良さそうに思えたから。他の候補はもっとオライリーらしいもので、Cookbookシリーズのものなど。2日目はこれを着て行こうか。なお、私はOS Xは使っていないし、その予定もない。昼はパスタ・バールでカルボナーラを食べた。

LLを仕事に

まつもとさんによる植木等ライクな発言が飛び出す。

「LLで仕事したい人は雇います。キャッシュフローに限りがあるので無限にというわけには行きませんが、意気込みの強い人が優先します。」

(編注:要旨は大体こんな感じだと受け取りましたが、この通りの発言だったかは定かではありません。)

じーん。感動した。もし私に、Ruby界隈で(プチでいいから)存在感を醸成できる程度のスキルか自身があったなら、すぐにでも駆けつけたい。しかしながら私はRubyを触ったがないし、オブジェクト指向をよく理解しているとは言いがたい。手続き型なら、データ構造の設計とか少しは(オブジェクト風味も取り入れつつ)やれそうな気もしてきてる(思い上がり)けどなぁ。

最近自己鍛錬を怠っているので、学習曲線が停滞している。これはマズいというか、うれしくない。今の仕事を辞めてでも、(1年程度の)学習期間を確保することを真剣に考え始めている。

議論を聞いてて思ったこと。

ベンダーによるサポートがあるLLといえば、すぐにPHPを思い浮かべた。大規模に使いたい⇒アクセラレータを導入⇒サポートも購入、というのはある話では?うまくいっているかどうかは知らないのだけど。

認知の拡大の問題は、高等教育に負う部分がおおきいのでは。工学部なら誰でもトヨタ方式などの生産管理は習うだろうし、同様にソフトウェア工学も一般教養化するといいと思った。それと70年代は工業高校出身の技術者がもてはやされたように、今後は現代的な一連のソフトウェア技術(Javaだけじゃないし、VBだけでもないよ!)を学んだ十代の若者を育成するといいし、その取っ掛かりは9年前から始まってるんだよね?ちなみに私はその直前の世代。

ls-lRシェル


  • Perl Tips: local $/ = ''; #ファイルを読み込むとき、空行区切りで取り出す
  • Pythonはイテレータとジェネレータ
  • Rubyは540行位(失念)
  • Pythonは312行
  • Perlは164行
  • Haskellは197行

補足。Rubyの行数に関して。

ちなみに、全564行から、class/module/def/end/空行をのぞくと238行だったりする。

デザインパターンの利点

  • 「コミュニケーションの道具としての機能。共通の用語・表現で会話できる。」(前田さん他)
    • 仕様書を簡略化できる、とかはアリかな?
  • 「モチベーションの要因。」(自己の満足感や陶酔)(早川さん)
    • これに関連しては、「思いつきでモノをいう」上司を煙にまく効果、あるいはマーケティング用語を使いたいがためのダシにする、なども考えられそうか。
  • 「デザインパターンそのものがえらいのではない。」
    • 適用するときは、適材を見極める。固執は害悪。

n-Queensゲーム

結果はまつもとさんの日記に書いてあります。時間切れ多発していました。アルゴリズム勝負という段階に達していないそうなので、単独のゲームでは先手有利か。でも負け抜けで試合すると、1ゲームがプレイヤーを1順しないうちに終わる場合、後手番有利。

ところでPythonのyield関数は「継続」なのでしょうか。

懇親会

1件だけ名刺交換できた。この日のために作ったお手製名刺を渡す。裏面に(あることないこと)キーワードを書いたのだが、その中のiptablesというのが異質感を放っているとのコメントをいただきました。

のんびり会場入りしたら、開始時間前にあらかた席が埋まっていた。縁故もないのだが、最奥部の席に座ると、そこはスタッフさんの面々の場所だったらしかった。無駄に捻り込んでしまって申し訳ないです。濃淡まじえたお話を伺って楽しかったです。ちなみに私はJUS主催のイベントは3回目だったです。隣の席の法林さんは懇親会でも大回転の働きぶりをされてました。みなさんおつかれさまです。

残念ながら抽選には漏れてしまいましたが、目をつけた「Perl/CGI 職人気質」はさっそく買って帰りました。これでスポンサー企業に多少は報えることになるかなと。いやー本が重かった。計6冊か。久しぶりに大漁。これで積読堤防もより高くなって安心?天井川になる前に読み崩す必要があるよなー。



" dc:title="" dc:identifier="http://isnot.jp/n3/200408.html#20040807_1091903592" dc:publisher="なおとの思考/n3" /> -->

LL Weekend 2004 2日目

2004-8-8 Sun.

Lightweight Language Weekend 2004

昨日より1本早い電車で出発。速めに歩いて12分早く到着。書籍コーナー(全品1割引き)のめぼしい物はすでに入手済みなので、今日は荷物をダウンサイジング。欲しいオライリー本候補は消化し切れていないが、暫くは見送りましょう・・・。

LLとblog

入場すると、miyagawaさんの発表中だった。何とか間に合った模様。うっかりBLOG HACKSを持ってこれなかったのでサインはあきらめムード。

ビジネス話はその手のひとたちの間ではすでに行き渡っていて、もう良いかなと。今回新しい見聞はなかった。SEO、SEMを絡めるとまだまだ発掘の余地が残っていると思う。

はてなはmod_perlで1億5千万のリクエスト(月間で、かな?)をさばいているという話が興味深かった。当然単独のApache+mod_perl(同時アクセス100が限度だっけ?)ではない。はてなは専用ケースで組んだサーバが50台程度というのもまたどこか(はてな引越し実況中継)で聞いた話。

「poundで分散サーバ環境を構成してC10K」(Shibuya.pm techtalks #4)のようなこともあるし、スケールアウトとはこういうことか。サービスプロバイダーを本当にやろうと思ったら、自社でiDC持ってるとこが強い。最近のblogホスティング業界M&Aの流れもそういう方向で進んでいるし。
懇親会でも、楽天でホストしているサーバ群をメンテしている方の話を聞いて、サーバ管理者の仕事の仕方を聞いて参考になることも多かった。

Bulkfeedsの100万PV(某資料)も半分以上はロボットUAらしい…。まぁ当然といえばそうだなぁ。似たもの検索とか、jsでrssで配信とかも、全部ボットなわけで。「100% Web Serviceに特化したプロバイダー」が現れる日も割合にすぐに来るのかも。

今回、やっとアジャイルという用語を覚えたのだけど、樋口さんの言では「JavaよりPHPで開発したほうがアジャイルだ」(脳内変換済み)ということらしい。

昼休み

昼はカレーバーでゆで卵入りのカレー。インドスタイルで、店員も渋いインド人。ライスはサフランライスで、ナンは注文を受けてから専用のオーブンで焼くこだわりよう。

書籍販売に行くと昨日買ったSqueakの本は完売らしかった。さまざまなウェブロで取り上げる人も多く、今回最も注目度上昇した言語はSqueakということで間違いなさそうです。

昨日オライリーのコーナーで貰ったマーチャンダイズは以下のとおり。

  • 「JAVA & XML, 2nd Ed.」のしおり。かなり厚手で立派なもの
  • A5サイズのメモ帖。リスのイラスト入り
  • 「History of Programming Langueges」横長の大判ポスター
  • 書籍カタログ summer 2004

さらに8,000円以上購入の方にはTシャツ3種から1つを選択。昨日もらったOS Xのヤツをさっそく着たが、やはり選択は間違ってなかったと自分で納得した。でもXLでかい。

帰ってきて着席してみると、隣とその隣は大向さんに山下さん。さらにBLOG HACKSを持ってこなかったことを後悔する。

Lightning Talk

ごめんなさい。Lispのような記法はどうにも受け入れがたい。Emacsと決別してしまった私には、もはや無理らしい。それと、Haskellのような関数型もちょっと・・・。高尚過ぎる気がして。あくまでも喰わず嫌いなのだが。
それでも、Perlなどより先進的な言語思想には見るべき点が多くて、とてもためになる。

このあたり、Pythonはいいトコはどんどん取り入れられているようで、発展しているという点で非常に面白そうである。逆に言うと、Perlの枯れ具合は仕事に使うなどの局面で威力を発揮し、基本の処理系が行き渡っているのでWebアプリの開発と公開にも○(マル)です。これはべつに言語を限ったことではなくて、PHPでも、日本ではRubyも選択肢になる。(私はPerlが好きだから・・・フォローしておかないと。)

安達さんの発表を楽しみにしていた。聞くところによると、今朝書いただの、まとまらないから寝ただのとか。その発表でじつは見所は1ページ目にありました。有限会社グルコース、設立したそうです。あとで代表取締役と肩書きの入った名刺をいただきました。おぉ光って見える。事業内容はとか、募集はとか、気になったけど聞けなかった。

他の発表でも、Python開発者を募集してる話が出ていたし、私の中でPythonパワーを導入すべしとの機運が高まった。

その場でどう書く

始まると、私の隣に小飼弾さんがやってきた。座るとPowerBook?を開きつつ500ml缶のコーラを流し込むDANさん。覗き込むとなにやら書き始めてる!?ってそれ、お題のプログラムじゃぁないですか。どういうわけか解らず頭が混乱した。一方で、あぁEmacs使ってるなぁと冷静に観察。

Haskellの発表とコードを見て、言語仕様上、コードが短くなるというのに納得。そういうことか。でもそれ、へたが書くと読みにくくなりやすい気もする。今回どうもみていると、Haskellは年齢層が他の言語より若いという発見があった。

発表が続くが、なにやら野次めいたツブヤキが隣から発せられる。完成したようで(横でリアルタイムで観察できる機会などあるものじゃないので気になってしょうがない。)すると3人目の発表の質疑でついに、乱入宣言出たー。そのあとも何度か、思い出したようにリファクタリングをされてるコードを弄っているご様子。そうか、思いつきで(なのかは聞いてみないと解らないが)リファクタリング改造や追加というものを私以外でもしてるんだなぁと納得。比べる先が間違っていますが。

注:角谷さんの日記での指摘を読んで「リファクタリング」を誤用していたことに気づきました。なので一部書き直しました。

まぁ私も、Webアプリ開発で何らかのテンプレートを使わないのはアレだなぁというのはある。発表者とお題のミスマッチがあったそうで悔やまれる。

僭越ながら松本さんがPerl4スタイルでコーディングしていたことの訳を考えると、それはWebminの中で動かすということから来ているのだと想像した。WebminはSolaris7やFreeBSD2.2系やら、広範囲なOSをサポートする必要から、Perlのバージョンもまちまちなケースに対応する必要があって、そこにPerl5.005以降とかを要求するかわりに、最小のコードを書いて対応するという方針なのかなと勝手におもいました。

Pythonの磯さんの話は、これからPythonはじめようという人にためになること満載でした。私的にはその場でどう書くの1等賞です。

DANさんの発表。するとたださんも飛び入り。たださんが発揮したコロンブスの卵プレーは反則技とは言わず、LLによって開発手法もパラダイムシフトするという教訓を示唆しているようで面白い。要求仕様をバカ正直に実装しては良い仕事にならないわけで、設計で練る、そのとき1段階あがった視点を持つのが肝要。さらには早いデモとか、フレームワークの力を生かす開発とか。とはいえ今回はあくまでゲームだし…その技は・・・。

終わったあと

新宿でそぞろ歩き。早めに帰って、気づくと寝ていた。そして起きるともはや夕方。夏休みとっておいて良かった。(良いのか悪いのか。)



" dc:title="" dc:identifier="http://isnot.jp/n3/200408.html#20040808_1092054338" dc:publisher="なおとの思考/n3" /> -->

LL Weekend 2004 後日談

2004-8-11 Wed.

Lightweight Language Weekend 2004

反応リンク集

羊堂本舗 ちょきの反応リンク集に補足された。どなたかが検索だかPingサイトだかで見つけてくださったのだろう。ここのリンク集に載ることがひとつのステータスと考えている私にとって、これはうれしい。8日早朝に書いた記事が、夜帰ってから見るとリストされていた。さすがだね。なんだけども、名前が「ISHIDA Naoto」になっていたものを「いしだなおと」に修正。この手がかりから、RSS経由での発見だったのではと推理。おそらくはBulkfeedsでセンスしていたんだろうか。

公式サイトのTrackBackうまくいかない

  • 手製html+ブラウザからでは無反応で失敗。UA規制を実装済みなのかも
  • PingProxyからは、先サイト側に埋め込みRDFがないのでNG
  • みらのさんのFree TrackBackでは成功の表示。しかし届かず
  • ありみかさんのトラックバック発射台では、「リファラがおかしくないですか」エラー
  • ぷろっぐぴんぴんは持ってない
  • ローカルのtb-standaloneから打とうか?

あおしまさんもうまくいかないそう。「奥ゆかしい」以外にもこういった要因もある。

乗り換えの新宿ルミネのテナントの書店

1日目の懇親会が終わった後、まだ時間があったので、新宿ルミネ1、2のブックファーストへ行った。青山ブックセンターだった頃もこの2店は比較的よく利用していたと思う。平日の帰りにおそい時間までやっていて、電車に乗る時間も読みやすいので、立地的には新宿ではベストだった。ルミネ1のほうはABCの棚配置を踏襲しているようで、コンピュータ関連の技術書もそれなりにあって引き続き使える店であるように思う。ただ、コミックスのコーナーは印象が違って、平々凡々なラインナップになっていた。面白味にかけるかな。ルミネ2のほうは、棚そのものも配置換えされ、まったく様子が一変したように思う。こちらもコミックスは平凡化。一部在庫を引き継いだ部分もあるのだろうが、印象ではそんな感じです。

2日目の終了後は、新宿西口を軽く流す。1年前から17インチCRTが故障したままなので、その代替に液晶パネルを物色中なのだが、適時打はやってこない。モノは目星がつていて、SamsungのSyncMaster 172X、NEC三菱のDiamondcrysta RDT179Sが候補か。他はメリットがないか、質が一段落ちるように思えた。Samsungは以前からずっと最高級品質だと思うよ。ただし、キャンペーン中でついて来るあのパネルはいらないなぁ。単に写りこみや室内照明の反射が出るだけで、いいことない。マットな画面が苦手な人はソニーやなんかのモデルが良いかもね。

そして西口のKirin-Cityで食事(ノンアルコールで)。カウンターから「3度注ぎ」の点前を愉しむ。ウィンナーとパスタをいただく。

そのあと高田馬場に移動。BOOK OFFに行くと、さんざん探し回っていた「アズマニア2」を発見!この機を逃さず即座にゲット。そのあと芳林堂書店にも行く。ここではなんと「アズマニア1、2、3」が揃っている。あるトコにはあるもんだ。しかしこの書店はスバラシイ。新宿でハシゴして廻るよりさっさとここにきたほうが見つかりそう。コンピュータ関連もコミックも特A級の蔵書数で、かつ押さえどころと掘り出し物がともに満足できる。

帰りの電車の乗り換えでBOOKガーデンによって、特集がよさげなUU誌と、いつもの日経Linuxを確保。UU誌巻頭のニュース記事にPerl6の話があってタイムリー。質疑であったUnicodeキャラクタの演算子の件はこの話か。

ローカルのWikiで書く

先月の旅行記と同様、現場ではWikiのコメント機能でメモって、あとでゆっくり編集・推敲。そしてソースをそのまま日記に持ち込むという方法が定着しつつある。日記のほうでおなじWikiパーサを利用しているからできる技(ただし改善の余地アリ)。一度日記に持ち込むとhtmlに変換されて、そちらでの再編集はhtmlでする。そのときbrタグ問題とかを解決してないので、これは早めに改良したいなぁ(メモ)。大抵の人はこれを読んでもなんのことかさっぱりだと思いますが。

次への課題、反省点、活かしたい点

名刺交換を3件させていただいた。そのうち2件はすでにお会いしていた方。少ないと思う。このあたり、要改善。

前日にサイトで発表されていた資料モロモロをすべてプリントアウトして持ち込んだ。当日のプレゼンでは改定されていたりといったこともあるが、これはそれなりに良かったと思う。ただ、MagicPointでPNGにされた資料を印刷するのは大変だった…。ps文書も意地が悪いというか、ps2pdfで簡単に変換できるのだからそれを配布していただいたほうがうれしいと思う。パワポもOOoでPDF化しておいていただけると助かります。

自分自身で発信できることを持とう。これは1年近く前からの課題で、いまだ達成しているとは言いがたい。それでもaki2rss.cgiのようなものを喜んでいただいている方もおられるのはありがたいです。



" dc:title="" dc:identifier="http://isnot.jp/n3/200408.html#20040811_1092163443" dc:publisher="なおとの思考/n3" /> -->

CSS and Encodings (tDiaryテーマ)

2004-8-13 Fri.

さて、Blogging on Akiaryにてコメントつけたネタなのですが、長くなりそうなので伝統的な日記者スタイルで応酬していきたいと思います。

じつは私のサイトでは、コンテンツによって3つのエンコーディングを使い分けていて、その中で、上記リンク先と同様のcssの問題に遭遇したことがあります。外部ファイルのcssを読み込む時だけ問題は起こります。原因はエンコーディングのミスマッチにあります。

tDiaryテーマの仕様によりcssのエンコーディングはEUC-JPと決まっているのですが、ほとんど全てのテーマでは「@charset "EUC-JP";」のようなエンコーディングの提示がありません

これをUTF-8であるコンテンツから読み込んだときの挙動がUserAgent?によって違ってきます。IE6は、個別のcssで@charset指定子がない場合に自動判別して解釈します。Firefox/Mozillaは、個別に自動判別しないようです。バグというよりは設計思想の違いというか、まぁキッチリやっていれば無問題ですけど。(そういえば、JavaScript?で「//〜」スタイルのコメントを使えるかどうかという違いもあるな。)

  1. cssで2バイト文字を使わない…間違いない
  2. htaccessでエンコーディングを強制する・・・うまくいくかどうか試したことはない
  3. @charset指定子でエンコーディングを明示する・・・これでは解決しない(解釈しない)UAもある
  4. htmlと同じエンコーディングに変換する…httpdが嘘をつかない限り、最良の方法
  5. 中間に“緩衝用”のcssを挟む・・・あくまで対症療法であり、本質的な解法ではないかもしれない

Sample Akiary(Shift_JIS)では5を採用しています。SUPER RNA(UTF-8)では4を採用しています。

Sample Akiaryで採用しているcssの構成では、静的生成の各htmlで最後に示すような内容を持つakiary.cssをmeta要素に指定(linked css)しています。ポイントは、このファイルでは2バイト文字を使わないことと、@charset "Shift_JIS";(html側に合わせる)で特定のブラウザを騙す?効果を得ることです。

こうすると@import指定子で読み込むimported cssはEUC-JP(テーマそのまま)でも良いのです。副作用として、日記のテーマを変えるときに各月のログを「再構築」し直さなくて良いという重要な点を指摘しておきます。

@charset "Shift_JIS";
@import url(default.css);

/* Last-Modified plugin */
div.lm {
padding: 2px;
margin: 0px;
font-size: x-small;
text-align: right;
font-weight: 600;
font-family: Verdana,Arial,Osaka,sans-serif;
}

/* footer */
div.footer {
font-size: small;
text-align: right;
margin-top: 0.5em;
margin-right: 1em;
clear: both;
}

/* Akiary week */
span.weekday {color:black; background-color: transparent;}
span.saturday {color:blue; background-color: transparent;}
span.sunday {color:red; background-color: transparent;}

" dc:title="" dc:identifier="http://isnot.jp/n3/200408.html#20040813_1092338351" dc:publisher="なおとの思考/n3" /> -->

コミュニティ形成の兆しはあるか

2004-8-13 Fri.

D.K.C(-_-x)ことkkojimaさんがはじめた「Blogging on Akiary」は、趣旨としては当サイトのAkiaryネタのそれと近いものがあるように思います。以前から「埒もないたくらみ Akiary改造logs」でAkiary応用改造テクを公開されていましたが、今度はより柔軟で汎用性の高い方法論に基づいた手法に狙いをさだめたものになるようです。

総本山であるやーとさんも、バージョンアップをにらみつつ日記、White Gaussian Noise再開されています。すわ、Akiary“コミュニティ”が盛り上がるのかという展開。いいですねぇ。面白い。

いっぽう私はというと、仕事でデスマーチ系プロジェクトに配置されてからというもの、まるでHACKする時間が取れません・・・。うおー、今って時に!



" dc:title="" dc:identifier="http://isnot.jp/n3/200408.html#20040813_1092338489" dc:publisher="なおとの思考/n3" /> -->

Sample Akiaryの最終更新日時

2004-8-27 Fri.


はりつけてみる。

<script type="text/javascript" charset="Shift_JIS" src="http://isnot.jp/39_akiary/sample/last.js"></script>

2004年8月26日(木) hpuds.cgi
(『White Gaussian Noise』より)
この日記が書かれていまや遅しですが、1ヶ月前に書きかけてお蔵入りになった原稿を掘り出してみる。

2004年7月25日(日) akiaryバージョンアップ?
で言われているようなことは、現行バージョン(0.51)でだいたい実現可能であったり。(昨年の夏秋はこの辺の試行錯誤をかなりやりこんだものです。)

こんな感じ↓のオプショナル日記を「last.js」というファイル名で生成するように設定しておいて、それを貼り付ければOKです。

// <!-- akiary_diary latest_times="1" -->
document.write('<!--akiary_date-->');
// <!--/akiary_diary-->

document.writeしてる中身をJavaScript?でゴニョゴニョして書き換えるとさらに良くなります。

/* <!-- akiary_diary latest_times="1" --> */
document.write(new String('<!--akiary_date-->').replace('a href="','a href="http://isnot.jp/39_akiary/sample/'));
/* <!--/akiary_diary--> */


それをやってみたのが上の表示というわけです。

……ツッコミどころはそこではなくて、Akiaryのバージョンアップに言及されてますヨ、というのがオチだったのですが、イマイチなのでお蔵入りしてました。さらにイマサラを追加。


" dc:title="" dc:identifier="http://isnot.jp/n3/200408.html#20040827_1093543787" dc:publisher="なおとの思考/n3" /> -->

サーバ移転の真っ最中

2004-8-30 Mon.

さくらレンタルサーバーのスタンダードに引っ越しました。



" dc:title="" dc:identifier="http://isnot.jp/n3/200408.html#20040830_1093811760" dc:publisher="なおとの思考/n3" /> -->
Prev Next
Akiary v.0.61+n3kit 2006-09-18