Diary?::2008-06

2008-06-01
Sun

(11:20)

何か風邪ひいたっぽい。熱は今のところないけど、喉の調子がどうにも。昨日雨だってのに無理して外出したのがマズかったか。それで雨の中無理やり買ってきたものってのが

コレ。いや待ってくれ、本当は買う予定じゃなかったんだ。とりあえず事の次第を時系列に書くと

  1. オールインワンの複合機プリンタを買いに行く
  2. 事前に調べをつけておいた機種がまったく売ってなくて途方に暮れる
  3. とりあえず一番安い奴について「メーカーから Linux 用のドライバは出てるか」と店員に聞くが、「出てない」と言われる
    • 後で家に帰って調べてみたら、ちゃんとドライバの提供されてる奴だった。前から思ってたが、やっぱ電気屋の店員は使えねー
  4. しょうがねえから楽器店を冷やかしにいく
  5. 今までベース録りは MTR のベースエミュレータでやってたので、ここらでマジもんのベースを弾いてみるかと思って試奏する
  6. そのベースが割と弾きやすかったのと、ちょうどギターの奴と同じブランドのマルチエフェクターがあったのでそれも試奏してみる
  7. 両方とも即金で買える値段だったので、ついつい買ってしまう

我ながら行動が行き当たりばったり且つデタラメでビックリだ。

(12:28)

割と今更な感じだけど、でもやっぱこれはひどいよなあ。

@IT と IT Pro で記事の印象が全然違うあたりからしてかなりアレだが、まあどっちにしろ言いたいことは「こんな白痴に公衆の面前で喋らせるな」。

まずそもそも「プログラマからエンジニア、プロジェクトマネージャ」というキャリアパスがバカだろ。プログラマとエンジニアをわけてる時点で終わってるし、もしもこのプログラマがコーダーのことだとしたら、単なるコーダーを職業として扱うのはやっぱりバカ。そしてエンジニアとマネージャではスキルセットが全然違うので、これ以外のキャリアパスを提示できないのは組織として物凄く問題があるだろ。まあ、日本じゃエンジニアの単価が相当低いところで打ち止めになるから、給料を上げるためにはマネージャにせざるをえないのだろうが、そういうところを改めてもらわねーと俺が困るんだよ!

あと IT Pro の次のくだりもすごいな。

「数として欲しいのは,金融システムなど企業の大型システムに従事する人間。こういった領域では,個人の能力よりは業務ノウハウが重要。プログラマとして優秀であっても,業務を理解しないと,よいシステムができない。技術だけを評価して処遇することは企業としては難しい」

いやー、正直ですねー。正直なのはとてもいいことなのですが、残念ながら十把一絡げに扱える一山いくらのコーダーの尻拭いに俺らエンジニアが終電帰りだの徹夜だのをやっているという現実がまったく見えていませんね。死ねや。

技術力不問で業務ノウハウ重要だってのなら、顧客側にトレーニング受けさせてエンジニアが監修しつつ作らせんのが一番だろ。そして俺は業務システムに関していえばその姿は割と正しいものなんじゃないかと思っているが、まだそこまで作りやすさや保守しやすさの高い環境は出てきてないから、まあ人海戦術でコーダーをかき集めるのもありだろう。なので人海戦術それ自体は決して否定まではしない。あくまでも理屈の上ではね。

じゃあそれで集まったコーダーのレベルがどうなってるかっていうと、まず使い物にならないだろ。「そこは俺の担当だからお前は一切関係するコードを書くな」っていっても問題の切り分けが出来ないから余計な事を書いて、それがちゃっかり納品されて、全体のアーキテクチャと不整合を起こして、俺がプロパーに頭下げつつ自分のとこで辻褄合わせをしたりするわけだ。あるいは VBA が出来ない人になぜか VBA で書かれた開発ツールの改修の指示が飛んで、誰にもどうにもできねーから俺がほぼ初見の VBA のコードのデバッグとかをやってたりするわけだ (Joel Spolski の野郎、こんなクソ言語をデザインしやがってただじゃおかねえぞ)。結局俺は前の現場じゃ自分の分の開発作業 (フレームワーク回りの基盤技術なんで結構大変) の他に 10 人分のコードのレビューとかまでやってて、それで俺の年収が 300 万切るかどうかのラインなんだから何コレって感じだよな。ってか腕利きが Google にばかり行かれても困るんだよ!

まあコーダーの話は置いとこう。 @IT の記事の最後の方で情報系の修士以上の学歴持ちが少ないって話が出てるが、そりゃ仕方ないだろ。だって学費が払えないんだから。最近では国公立の学費に関してまたグダグダ問題が持ち上がってきてるが、学費ってのはただにならねーといけないんだよヴォケが。北欧諸国を見てみろ、大学まで学費ゼロの国がごろごろしてんだろ。本音を言えば俺だって大学院まで行ってみたかったが、あいにく学費が払えそうもなかったんでな。それで学部卒程度が現場で経験を積んだところで、大学に戻って教授になるなんてのはまずありえないわけだ。かといって博士号持ちが企業で有効活用されているかというと、これもまた疑問で、これは日本の大学教育の問題の一端じゃねえのか。学費が高い、大学院に進むメリットも薄い、これじゃダメだろ。確かに低学歴のスーパープログラマもいるっちゃいるが、そんなのはレアキャラ。はぐれメタルと普通のスライムを同じスライムとして扱うんじゃねえぞ。

そして一番「死ねや」と思ったのが、「10 年は泥のように働け」発言。そもそも引用元である丹羽宇一郎氏の意図は「経営者は 10 年スパンで社員を育てろ」っていうものだったんだけどな。それで 10 年って期間だけど、ぶっちゃけこれもう無理だろ。そもそも俺だって「次にクソな現場に放り込んだら辞める」「あなたのソフトウェア開発従事者としての底が浅いとわかったら辞める」と上司に宣言してるしな。既に 10 年下積みしてどうのこうのって時代は終わってるんだよ。きちんとした専門知識のある人間を雇って、 10 年も下積みさせないような会社にしないとダメだっての。

いろいろ書いたけど結論:

  • コードすら書けない奴を雇うな
  • 国は学費をタダにしろ
  • みんな Google にばかり行くな
  • 俺の給料を上げろ

(14:41)

さっき少し書いた日本の大学の学費だが、これがいかにふざけた状況かは「教育格差と国際比較」が詳しい。いやー、実に酷いね。というか北欧諸国だけでなくチェコとかスロバキアなんかも学費がただなんだな。そして学費がただでない国のうち、アメリカ、オーストラリア、日本、韓国、ニュージーランド以外の国々は 10 万円かそれ以下で、日本のぼったくり学費とは雲泥の差である。あとアメリカあたり出ている数字ほどには実質的な負担は大きくないような制度になってるとか聞いたこともあるな。

それにしてもスウェーデンとフィンランドの高等教育の公費負担率はすげえな。税金を始めいろいろあるとは思うけど、本当に高等教育を国民すべてに受けさせようとしたらこうなるよな。あと聞いた話だとフィンランドの大学院はマジで凄まじく、特に博士論文の発表ともなると命のやりとりじゃねえのかこれってレベルのデスマッチが教授と学生の間で繰り広げられるそうだ。

じゃあそれで学費に見合った教育がされているかというと、うーんどうでしょう。スウェーデンモデルとか変な事言ってた頭の悪いダメ左翼連中も、こういう教育関係を真似しろって言っていれば支持してもいいんだがなあ。

じゃあ実際日本がどうなろうとしてるのかっていうと、国立大学の授業料を私立並にみたいなバカな意見が出てるわけだ。今でも国公立の授業料は決して安くないし、下宿なんてしたら私立並。俺は家から通える範囲に俺が受かるレベルでなおかつきちんとした国公立が無かったんで学費の安い部類の私立に通ってたけど、どっちにしろ今でも大学への進学は相当な負担だ。俺の場合は祖父が高等裁判所の判事だったこともあって、年金と奨学金 (ってかローンだよこれ) で学費を払えたけど、そうでもない連中の中には家計の悪化で途中で辞めざるを得なくなったってのもいたぞ。それが今度は国立大学にまで波及するってわけだ。

俺が大学を出られたのはぶっちゃけ前述の殆どチート行為のような財源があったからで、多分それを抜かせばうちは国公立へ通う体力すら怪しかったはずだ。そして身内に借金と前科にまみれた爆弾を抱えていた俺が起死回生の逆転をするには教育機関に頼るのが一番で、もしも国立大学の授業料の大幅引き上げがされたら同じように逆転を狙っている連中からそもそもチャンスを奪うことになる。そのくせ中国とかの留学生にはバカみたいに税金使ってんだろ? 死ねよ。

2008-06-02
Mon

(22:52)

「風の症状が出始めたのは土曜日、日曜日はきっちり睡眠取ったし大丈夫だろう」「治ってなくても一日ぐらいもつだろう」などというバカな発想で出社したら見事に仕事中に症状悪化。半ば無理やり帰させられて、そんで医者行った後今までずっと寝てた。我ながら何やってんだ。これで明日中にやんなきゃいけない仕事が増えたなあ。まあ、二つあったバカでかい課題の一つは今日の内にケリがついたからいいか。

で、すごくどうでもいいけど、プログラミング言語というか DSL の構文解析って、凝ったことしないなら全然難しくないんだよな。例えば次のような文法の言語を考える。

def func {
  foo = "foo bar";
  if condition {
    var = some_function arg1, arg2
  } else {
    var = another_function arg1,
                           arg2,
                           arg3,
                           arg4;
  }
}

とりあえずこの言語はかなり特殊な目的のための DSL なんで、以下のような制約がある。

  • 演算子は代入と比較のみ
  • 関数呼び出しに括弧とか付けない
    • なので関数呼び出しのネストは出来ない。func1(func2()) なんてのは無理
  • 行末のセミコロンは省略不可
  • ブレースの省略は不可

こういう制限があれば、もう何も考えずに

  1. ブレースが出てくるまでトークンを読んでいく
  2. ブレースが出てきたら状態をシフト
  3. 対応するブレースが出てきたら、ブレースで囲われた中に対して再帰的に処理
  4. ブロック構造の解析の最中に、式の解析も行う

という風に処理していけば、難しい事は何一つ考えずに済む。処理した後にキャッシュするんで、多少非効率でもそこまで問題ないしな。最初は JavaCC を使おうかな思ってたけど、この程度だったら yacc の類を持ち出すまでもないなあ。それでも文字列処理を Java でゴリゴリ書くのは面倒なんで Jython で書いちまったけど。俺以外に Python 技術者がいないからそのうち全部 Java で書き直す事にはなると思うけど、どうせプロトタイプだからいいか。

2008-06-03
Tue

(21:30)

医者から処方された風邪薬、やためったら眠くなるんだけど。おかげで今日はいろいろアレなヘマをやらかしてたな。テストするバージョン間違えるとか。

2008-06-04
Wed

(08:03)

洗顔料と歯磨き粉を間違えそうになった。というか、歯ブラシに付けた時点で気がついた。

(22:35)

Rosegarden でリズムトラックを打ち込んでるんだけど、これはこれで大変だ。流石に MTR のリズムエディタよりは幾分楽だけどさ。

MTR でもリズムパッドを叩きながら出来ればそれでいいんだろうけど、どうにも押した感触がアレで馴染めなかったんだよな。

2008-06-05
Thu

(09:06)

風邪の方は良くなってきてはいたんだけど、昨日食った何が悪かったのか、主に消化器官の方がダウン。

いやー、昨日のうちに仕事に一区切り付けておいてよかったわ。

2008-06-06
Fri

(21:26)

えーと、タイトルしか読んでないんだけど。

俺よりも 13 万近く給料いいじゃねえか。

まあ、俺は一人身な上に男が大金を使うであろう「車」「女」「博打」に縁がないから、不自由してないっちゃしてないんで別にいいんだけどな。

しかし 34 万か……。

(22:09)

企業がフリーソフトウェアを支持して、プロジェクトにコミットしたり基盤技術ととして採用するするのは勿論良い事なんだけど。でも、それって相当大変なんだよな。

俺の最近の仕事はとあるフリーソフトウェアの ERP・アプリケーションフレームワークの調査、評価およびそれを用いての開発なんだけど、ぶっちゃけそれってまだビジネスになってないからな。理想を言えば ERP5 の Nexedi みたいに社員がコミットして、会社がインテグレータになってというものだけど、とてもじゃないけど俺一人じゃそれは出来ないし、そもそも今は安定版をベースに開発手法を探ってる段階で、中身をきちんと理解して本家にコミットなんてところには程遠い (勿論、予定はあるんだが)。第一、それだけの事を出来る技術者の頭数が絶対的に足りてない。

それじゃあ俺の給料はどこから出てるかっていうと、そりゃもう他の社員が外部のプロジェクトで稼いだ金なわけだ。俺も本社に持ち帰る事の出来る仕事をやったりとかはする予定なんだけど、それは結局日銭稼ぎでしかないからな。それで何で今の会社が俺にフリーな ERP なんていう蝶々を追いかけさせているかというと、要するに俺と会社の利害関係が以下のように一致したからだ。

  • 会社側の思惑
    • プロプライエタリな技術ベースだと、社内にノウハウを蓄積しにくい
    • 本社にある程度以上レベルのある技術者をキープしたい
    • 会社のイメージ戦略として、それなりの腕前の技術者がいることをアピールしたい
  • 俺の思惑
    • フリーソフトウェアをより広めたい
    • 会社で蓄積したノウハウを自由に使いたい
    • 自分以外の技術者のレベルの底上げが欲しい

というかだな、ぶっちゃけかなりの部分が売名行為なわけだ。そういうわけで俺は開発した成果をできるだけ短いタームで公開して、それについてのドキュメントを最低限でも揃えて、それを企業ブログに書いて、就職・転職サイトの取材に答えてとやっているわけだ。実際それで今までよりは外部からのアクションも多くなって、より多くの応募者が来てはいるんだが。

そして俺にはこれから新人の教育という仕事が待っているわけだが、第二新卒が相手だったり同業他社からの転職者が相手だったりして、要するに大半が俺よか年上で、そういう人らに試用期間中に一通り研修して、作業を手伝わせて、それであまりにダメっぽかったら採用取り消しの判断をせにゃあならん。つまりフリーソフトウェアをずっといじっているわけにもいかんのだよ。っていうか俺と同程度の技術者ってそこらに転がってないのか?

えーと何が言いたいかというとだな、企業でフリーソフトウェアの開発とか、フリーソフトウェアを用いたプロジェクトがやりたいってのなら、会社と利害が一致してないとまず厳しいんだってこと。あと当たり前だけど、きちんと会社の連中にプレゼンテーション出来ないとダメだからな。本社に戻ってから最初に降ってきた仕事で、俺はマルチメディアデータにフリーなフォーマットを使うことを提案して通したんだけど、そん時は各種フォーマットやライブラリのライセンスと料金形態を一通り調べて、なぜフリーなデータフォーマットとライブラリを使うと自社及び顧客の利益になるのかを説明して、それで実際に自分でそれを使ったプログラムを書いてシステムに組み込めることを証明したりしたからな。というか営利事業でフリーソフトウェアを採用するんだから、それぐらい出来ないと全くお話にならないんだけどな。

例えば Web アプリケーションフレームワークだと、 Struts あるいはそれベースの奴なら採用率は高いだろうけど、それ以外の選択肢ってそんなに無いだろ。いや、自分からそういうのを提案できる立場の会社なら出来るだろうけど、二次請け中心のソフトウェアハウスだとそんなの出来るはずないんだって。実際俺が先に書いた奴なんて、一次請けからこっちに完全スルーだったからねじ込めたわけだしな。

何かもうグダグダ書きすぎなわけだけど、今後の俺の課題はとにかくスケジュールされてる社内向のシステムを作って、それの開発中に得たノウハウを公開して、人 (要するに応募者) なり金 (要は仕事) なりを集めにゃならん。いや、金はともかく人は集めてもしかたがないとか思われそうだけど、二次請けの仕事ってのはつまり、頭数を揃えないと利益にならんわけだ。俺が他の現場に出されない理由は、技術力を最大限に評価に組み入れてもせいぜい一月あたり 60 万かそこらで、俺一人じゃ会社全体の稼ぎのうちの一部分でしかなく (俺は入社初年度から利益出してたから、これでも条件はいい方)、だったら本社で使った方がいいだろって判断なんだよな。あとはまあ、俺が会社の上層部に「次に前と似たような現場に出したら辞める」と脅しをかけているからでもあるんだが。

要するに特に零細のソフトウェアハウスがフリーソフトウェアに目を付けるのは、

  • 客寄せパンダにして仕事をもらう
  • 同じ発想で応募者を釣る
  • 社員の技術力の底上げで単価アップを狙う

という割と生臭い事情があってのことで、「フリーソフトウェアで社会貢献!」なんて痛い発想のガキはとっとと現実を見てくれって事だ。

2008-06-07
Sat

(00:05)

ここしばらくまったく読んでなかった「範馬刃牙」を 13 巻まで読んだんだけど。……何でこんな事になってんの?

いや、これはマジで意味がわからない。編集は何をやってるんだ。元から少年チャンピオンの編集の仕事は作家の狂気を好き放題に伸ばし、狂気の原液をインク代わりに描かれた奇怪な原稿を発行するものだとは思っていたが、これはクレイジーじゃなくて単にバカだろう。俺が読みたいのはキチガイであってバカではないのだ。

「餓狼伝」の方はなんだかんだいって面白いのに、どうして刃牙はこうなっちゃうかなあ。

(23:02)

体調も戻ってきたことだし、早速ベースの練習も始めるかと思って弾き始めたんだが……俺にとってはギターよりもベースの方が難しそうだ。

  • フレット間隔がギターよりも広いので、小指が届かないことがしばしば
  • ギターはフレット付近を抑え損ねてもどうにか誤魔化せるが、ベースは無理
  • 必要な握力がギターの比じゃない
  • 音を濁らせると大抵アウトなので、よりシビアなミュートが必要

あとどんなに深爪しても指弾きのときに爪が弦に当たってノイズが出るんだけど、これは俺の指の形状の問題な気がしてきた。まあどうせ俺はヘヴィメタルとハードロックの二択だから、ピック弾きでも問題ないっちゃ問題ないんだが。

2008-06-08
Sun

(19:14)

前にも書いたが、ようやく MIDI シーケンサーでリズムトラックとか伴奏とかを打ち込むようになった。

どうにもまだ Rosegarden の使い方がよくわからんが、どうせ俺はリズムトラックの打ち込みが殆どで、やったとしてもバックにシンセでコードを流すぐらいしかやらんだろう。

それで打ち込んだ音源を聴きながらギターやベースを弾くには、このミキサーに PC からの出力をつないで、同様にギターとベースをつなぐ。この Blend6 というミキサーはギターとかのインピーダンスに合わせた入力チャンネルを二つ持ってるんで、ダイレクトインプットなしでも普通につなげられる。今の状態でもかなり配線が泥沼なんで、直結可能なこれは非常にありがたい。

録音したい場合は MTR につなぐんだが、俺はマルチエフェクターで音作りをしてるんで MTR のギター/ベース用のエフェクターはそれほど使ってない (録音した後さらにいじるってのもありかもしれないけど)。なのでミキサーから MTR につないで、コンプレッサーだけかけて録音してる。

後の機材も前から紹介してるやつと同じ。どうせならギターもベースもエクスプレッションペダル付きの奴にすれば良かったかも知れんが、ペダル別売りモデル二つ + ペダルの方が安かった気もするので別にいいか。それに、ペダルなんぞギターにワウをかます程度でしか使わん。というわけで一通りの録音環境がようやく整ったのだが、実際のところアパートで暮らしてるとたった一つの重大な問題がある。それはヴォーカル録りだ。

考えてもみろ、いきなり同じアパートの住人が甲高いシャウトをおっ始めたり、よくわからんデス声で叫び始めたら、普通文句言うだろ。場合によっちゃ警察呼ぶだろ。っていうかこれは殺されても文句が言えんぞ。というわけでヴォーカルだけは練習スタジオで録らざるを得ないのだが、今日は非常に運が悪くて 21:00 から 22:00 の間でしかスタジオを押さえられんかった。

……何か読者の方から壮絶なツッコミを喰らってる気もしないでもないが、とりあえず 21:00 からスタジオ行って歌入れしてくるので、完成品のアップはまたそれから。

簡単に今日これまでの経緯を書くと、

  1. ベースの練習がてらにとある曲を弾いてみる
  2. 何か弾けそうだったのでリズムトラック打ち込んで録音してみる
  3. ついでにリズムギターの録音もしてみる
  4. 別に難しい曲でもないので、ほぼ一発録りだったが割とマシな感じになる
  5. ギターソロを何テイクか録ったら、前にやったときよりも全然ありなテイクが録れてしまう
  6. 大いなる勘違いの可能性が極めて高いが、なんとなくこれはこれでありな気がしてきたので楽器店に電話してスタジオが開いてないか確認
  7. 「21:00 から 22:00 の間でしか開いてないぞ」と言われるが、こういうのは勢いでやるものなので予約してしまう
  8. 準備をしつつ、日記にゴチャゴチャ書いてる <- 今ココ

というわけで、自分でもまったく何も考えていなくてビックリだ。

えーと、歌入れで失敗しなかったら歌入りで、やっちゃったらカラオケで録音した物をアップするんだけど、今日中に終わるのかこれ。録音して飯食ってそれで帰宅してからミキシングとマスタリングなのだが、ちとこれは無謀かも知れん。まあ、やってみるか。

(23:13)

帰宅。ファミレスで飯食いながらさっき録ったテイクをチェックしていたら、 OK を出せるテイクが何一つとして見当たらなかったので、レコーディングマジックを使わないといかん。というかバッキングもよくよく聴くとダメだこりゃな部分があるので、これからヤバいパートを全部編集しないとマズい。

いよいよ間に合わなくなってきた。

(23:27)

ヤバい。マジで歌の出来が最悪だ。あまりに酷いので演奏がまともに聴こえるぐらい酷い。

……とりあえずリバーブをガンガン効かせてダブリングかけるのは確定。

あ、それでもどうにもならんかったらカラオケの可能性も当然あるからな。

(23:45)

マスタリング中。切腹したくなってきた。

(23:55)

えーと、とりあえず作業自体は終わった。 01:00 までにはアップしたいところ。あと死にたい。

2008-06-09
Mon

(00:50)

というわけで弾いて歌いましたよ、 Paranoid を。いやまあ、俺が一日でどうにかできる曲がこれしかなかったってだけなんだが。流石にこれはみんな予想できただろう (できなかった人は Black Sabbath 検定に合格できないぞ)。というわけでここからいつも通りの負け犬の遠吠えタイム。

歪ませ過ぎ。いや、最初はこんぐらい歪ませた方が 21 世紀にはちょうどいいのではなかろうかと思っていたんだけど、今聴いてみたら単に耳障りなだけだった。本当、弾いてるときはノリノリだったんだけどなあ。微妙に音量とか音質が不安定だけど、勢いだけで弾いていたらこうなっちまった。あと途中で微妙にベースの音量が低くなってるんだけど、原因は不明だ。ミキシング〜マスタリングの最中に何かがあった物と思われる。何しろ今回はすげえ急いで作業したからな。

相変わらずギターソロがあれだが、これは 5 回ほど録ってみて一番良かった奴だ。一番良くてこれだ。最初はねえ、完コピしようとしたんだよ。ところが途中で突然「やっぱり微妙に違うバージョンにしよう。 Tony Iommi 先生もライブじゃアレンジしてるし」などとアホな事を思いついてしまい、それでまあこうなったわけだ。微妙に CD のバージョンの通りに弾く気が多少はあるのが余計アレだ。使ってるエフェクターは実はバッキングと同じなんだが、イコライザーで中域をブーストして低域をカットして高域を抑え気味にしてある。今思えばバッキングも同じセッティングにしとくんだった。

今回はベースシミュレータじゃないほんまもんのベースを使ってみたんだが、当たり前だけどこっちの方が遥にいい。あんまりベースを活かしたミックスになってねえけどな。あとこの曲は Black Sabbath の中では多分一番簡単なのだろうけど、それでもベースが微妙にオクターブ違いで弾いていたりしてビギナーにはちと厳しいパートもあったかも。基本的にギターもベースもバッキングは全部ダウンストロークだけど、コーラス裏のオクターブ奏法のところだけはオルタネイトで弾く羽目になった。ノイズがそこまで出なかったのが幸いだ (ギターは多少カッティングノイズが出てもいいんだけどな)。

ヴォーカルは……みんなそこだけは突っ込まないでくれ。やっぱ練習しないとダメだという当たり前の事が再確認できただけだった。これねえ、何テイクか録って一番出来の良かったパートをつないで、その上からリバーブをかけて、コーラスをかけて、ダブリングをかけて、コンプレッサーできつめのアタック感を出して、エンハンサーで音の輪郭をはっきりさせて、それでこれだからな。元のトラックは頼まれても聴かせられない。っていうか Ozzy のキーが高すぎてついていけんかった。

ところで俺の愛用してる MTR の BOSS BR600 だけど、これってバーチャルトラックっていう機能がついてるんだよな。それはどういう機能かというと、まず BR600 は基本的に同時に 8 トラックまでしか録音できない。さらに 5, 6 と 7, 8 はステレオ用なので、実質的に 6 トラックと思って良い。そしてこれだと 6 トラックまでしか録音できないように思えるが、実際には各トラック毎に 8 トラックずつ、バーチャルトラックが用意されている。このバーチャルトラックを使うと、「トラック 1 にギターリフを 6 本」「トラック 2 にベースを 4 本」などと複数のテイクを保存可能で、あとは出来のいい部分をつなげるってわけだ。あとリズムを MIDI シーケンサーとかで打ち込んでおくと、 MTR のリズム機能をクリック代わりに使えるんで結構便利だった。クリックに合わせてこれかよと自分でも情けなくなるが。

さて、明日 (じゃねえや今日だ) も仕事なんで風呂入って寝る。そういや、明日新人が来るんだよなあ。

(20:40)

今日来た新人は半年ほどとはいえ同業他社に勤めていたので、全くゼロからやらせるよりも遥にやりやすいな。コード自体はちゃんと書けるしクラス分けとかも基礎は押さえているので、研修課題がまったく出来ないとうことはまずないだろう。この分なら、課題を順に出して行って解かせて、それに対してテクニカルな部分でチェックをしていけば良さそうだ。この子には採用取り消しを宣告しなくて済むだろう。

問題は来月から来るという全くの未経験者だな。

(23:23)

今になって「あんな音源アップしなきゃよかった」と頭を抱えているが、既に 17 人ほどダウンロードしていきやがったので無かったことにするのは理論上不可能であり、もう完全に開き直るしかない。

2008-06-10
Tue

(21:59)

ペプシブルーハワイを飲んでみたが、これまた健康に悪そうな味だ。というか、パイナップル & レモンと言われてもそういう味には思えんぞ。全力で拡大解釈すればそういう味に思えなくもないんだけど。とにかくこれは一生に一度飲めばいいし、一度も飲まなくてもいい。

ていうかキュウリ味のペプシもそうだけど、何で俺はこういうのを買ってしまうかねえ?

2008-06-12
Thu

(02:36)

どうにも年に何回かある「睡眠サイクルがぶっ壊れる日」にぶち当たったらしい。昨日は帰ってきてすぐに凄まじい睡魔に襲われてぶっ倒れ、それで今になって目が覚めちまった。

(23:35)

上司から「会社の Web サイトに『当社へのリンクは自由に行ってよいです』のようなリンクポリシーのページを作ろうと思うんだがどうか」と相談され、とりあえず「そんなページがある事が本来は異常です。あといちいちリンクポリシーを確認するようなヘタレからはリンクなんぞされなくて結構」と答えておいた。まあ、俺にその手の事に対する決定権は無いので、最終的にどうなるかはわからんが。

大体だな、そういう「ここへはリンクを自由にしていいですよ」という宣言をするって事は、暗に「無断リンク禁止のページにリンクしちゃダメです」という妄言を肯定するものであり、その手の勘違いをするどうしようもない電波野郎を間接的に増やすことにつながるのだ。なのでその手のリンクポリシーとか呼ばれるページは作らないのが正解で、他は基本的に間違い。というか有害。

2008-06-13
Fri

(23:56)

Gentoo マシンのカーネルをいい加減アップデートしようと思って、コマンド引っ叩いた後にちと外出してたんだが。

帰ってきたらさ、不自然に速くコンパイルが終わってんのよ。

よくよく見たら、 /usr/src/linux へのリンクを更新し忘れてるの。

死にたい。

2008-06-14
Sat

(00:22)

NTTデータと真昼の対決」を読んで、どうにも疑問に思ったことが一つ。もしかしてみんな、スキルの低いプログラマもルールで縛ればマシなコードが書けると思ってる? 俺、これは確実に効果があるとは思えないんだけど。

これは俺の乏しい経験以外の根拠はないんだけど、出来ないプログラマってのは大抵の場合、何かしらルールが定められていてもその意味までは理解しない。「これはやっちゃダメ」と規約に書かれていたら、なぜやっちゃいけないのかを考えず、字面をそのまま覚えるだけなのだ。これの何がまずいかというと、あるルール A が定められていたら他のルール B が暗黙のうちに成立することもあるんだけど、ルールの意味がわかってないとルール A は守ってもルール B は無視とか、そういうことをやられてしまう。

そしてこれはまだ良い方で、ルールの意義がわかってないからルールその物を無視していても深刻にとらえてないとか、あるいは例外的な状況だから一次請けとかに交渉して特例を認めさせるべき所で、そのまま無理やりルールを適用するとか。そういう事態が結構起こっていたので、ルールで縛ってまともなコードを書かせるというのはあまり良い考えではないと思っている。

じゃあルールで縛ってもダメならどうするかっていうと、やっぱレビューしかない。前の現場ではやたらめったら細かくて厳しいルールの他に、クライアントの検証が入る前に各パートナー企業内でのレビュー、一次請けのレビューと二段階のレビューが設計書にもソースコードにもあって、それでもとんでもないコードが納品されていて基盤技術者の事実上のリーダーだった俺は頭を抱えてたわけだ。

無駄に厳しいルールがやたらと多いと何が困るかって、くだらないチェック項目の検証にも労力が割かれて、本当にヤバい部分を見落とすリスクが高まってしまう。何しろ Excel ファイルの罫線の太さが不統一とか、そんなのでも容赦なく突き返されて、そして組織が全体的に鈍重だから行って返ってに一日かかるわけだ。そしてどこのチームもリーダークラスの人はみんなオーバーワーク気味で、一次請けに至っては上から下までオーバーワークで、とてもじゃないけど万全なレビューなんてものからは程遠い。

そういう状況だとどうなるかっていうと、大体において二つに一つだ:

  • 末端の開発者レベルでもレビューを行って、消耗しつつも品質をあげようとする
  • ボロボロなものを納品して、後の工程で死ぬ

俺のチームは前者を採用して、それでまあ結果どうなったかは散々書いてきたので繰り返さない。でもおかげで俺が離任した後にバカでかい問題は起こっていなかったらしいから、それなりに効果はあったのかな。

というわけで俺のいた現場では、スキルの低いプログラマ向けにルールで縛ったところでそれほど大きな効果はあがっていなかった、という状況だった。もしかしたら効果をあげているところもあるのかもしれないけれど、細かいルールについて何故そのルールが定められているのか理解できているような開発者が集まってるんなら、そもそもルールなんて厳しく運用する必要ないよな。何ていうか、人海戦術だとしても開発者のスキルに最低限の閾値を求めないか。

(23:38)

GUI の OK ボタンは左右どちらに置くべきかってのはこれまた宗教戦争が始まるネタなんだが、これについては OK を右に置く以外に正解はないだろう。例えばファイルを編集した後に「ファイルの内容にに変更があります。保存して終了しますか?」というダイアログを出すとして、そこでは左から「キャンセル」「保存して終了」「保存せずに終了」と出す他ない。何故なら、誤操作の結果編集内容が失われるってのが最悪のパターンだからだ。

もう少しきちんとした言い回しにするなら、メニューの一番左にはユーザが選んで一番問題のないものを置いた方が良い。先の例でいうと、キャンセルボタンがもっとも問題の無いボタンとなる。他二つは、ユーザがダイアログの内容を確認せずについついボタンを押してしまった場合、一体何をやらかしたのかわからないままアプリケーションが終了してしまう。これは明らかにダメだ。もっともキャンセルにしたところでダイアログの内容をわからないまま押してしまったことの不安感はあるだろうから、ウィンドウの下部にステータスバーみたいなのをつけて、そこにメッセージを表示するのが良い (「アプリケーションの終了をキャンセルしました」とかね)。

残念ながら Windows は OK が左にあるのでこれを採用することは出来ないが、次善策としてデフォルトでフォーカスしているボタンを変える、というやり方がある。アプリケーションごとにフォーカスしているボタンの位置が異なるという問題が出てくるが、ボタンの並び方がバラバラよりは幾分マシだ。

もっともボタンの位置よりも問題なのは、最初に出した例に Yes/No で答えさせるアプリケーションなんだが。ボタンに書かれている内容は、ユーザの操作を反映するべきだっつーの。

2008-06-15
Sun

(11:42)

昨日書いたことの続きといえばそうかもしれないけど、いわゆる「プログラム設計書」について。それでこの「プログラム設計書」の定義が人によってちとバラバラな事があるので、ここではプログラムの各行をそのまま日本語化したようなドキュメントと定義する。例えば次のようなソースコードと Javadoc だ。コードの中身は適当なんで、そこには突っ込まないでくれ。

/**
 * <概要>
 * <ul>
 * DB を検索して FooBar テーブルのエンティティを返す API。<br>
 * </ul>
 * <処理内容>
 * <ul>
 * ・Connection, Statement, ResultSet それぞれのワーク変数を null 値で確保する。<br>
 * ・DBUtil.createConnection でコネクションを取得し、 conn に設定する。<br>
 * ・DBUtil.createStatement でステートメントを取得し、 stmt に設定する。<br>
 * ・stmt.execute で検索操作を実行し、結果を rs に設定する。<br>
 * ・rs を FooBarEntity のコンストラクタに渡し、そのエンティティを返す。<br>
 * ・処理途中で例外が発生した場合
 * <ul>
 * ・メンバフィールド logger の error メソッドでログ出力を行う。<br>
 * ・null を返す。<br>
 * </ul>
 * ・例外の発生の有無に関わらず、 DBUtil.close に conn, stmt, rs を渡し、後処理をする。<br>
 * </ul>
 * <br>
 *
 * @param key テーブルの検索キー
 * @return Foobar テーブルのエンティティ
 *
 */
public FooBarEntity search(String key) {
  Connection conn = null;
  Statement stmt = null;
  ResultSet rs = null;
  try {
    conn = DBUtil.createConnection();
    stmt = DBUtil.createStatement(conn, "Entity", key);
    rs = stmt.execute();
    return new FooBarEntity(rs);
  } catch (Exception e) {
    this.logger.error(e);
    return null;
  } finally {
    DBUtil.close(conn, stmt, rs);
  }
}

この Javadoc のフォーマットはとあるプロジェクトでマジに使われていた奴をちょっと変えたもので (実物はもっとタルいフォーマットだった)、似たようなフォーマットがゴロゴロしている可能性は十分にある。そしてもしもそうだった場合、途方もない労力が浪費されていることになる。最悪の場合はプログラム設計書が Word や Excel などで書かれている場合もあり、その場合は Javadoc バージョン以上にメンテナンスに手間が掛かる。もっともそのプロジェクトでは納品する時に Javadoc の HTML ファイルを手作業で PDF に変換させられていたので、どっちもどっちはであったが。

それで上記のプログラム設計書の何が問題かというと、<処理内容>に書かれていることがそのまま全部ソースコードに書かれていることの引き写しであり、つまりこれは二重管理だ。二重管理が一体どれほど愚かな事かはよほどの白痴でもない限りわかるはずなので、ここでは詳しく書かない。

じゃあその悪しき二重管理が何故行われるかだが、その背景は三つあって、そのうちの一つは日本語で書いた方がわかりやすいという驚異的にバカな誤解だ。何故それがバカなのかというと、プログラミング言語で書かれたソースコードを曖昧さのないように自然言語に変換する事は困難だからだ。例に出したソースコードではどこからどこまでが try 文のかかる範囲なのかが明示されておらず、その点について解釈がずれる可能性は十分にある。また、 finally 文を使う事を読み取れというのも無理な話で、次のようなソースコードも十分考えられる。

FooBarEntity entity = null;
(中略)
  entity = new FooBarEntity(rs);
} catch (Exception e) {
  this.logger.error(e);
}
DBUtil.close(conn, stmt, rs);
return entity;

もちろん規約をガチガチに固めることで防ぐことは出来るが、それが効果をあげるかどうかは極めて疑問だということを昨日の日記では書いた。そしてどれだけ厳しい規約で記述方式の統一を図ったところで、自然言語で記述する故の不自然さや曖昧さからは逃れられないだろうし、曖昧さを排除すればするほどプログラミング言語のキーワードを日本語に置き換えただけになっていき、自然言語の文章ではなくなる。

また、今回は try, catch, finally だけしか使っていないが、これがもしも条件分岐やループのネストが起こったとしたら一体どのような惨状になるのか検討もつかない。そしてこうやって厳しいルールで縛らなければいけないレベルの連中が書くコードは本当に凄まじく、一つのメソッドが数百行とか平気で書いてくる。そんな状態でプログラム設計書を書かれて、それ検証できるのか?

もしもこのようなプログラム設計書を読むに耐えうるレベルに持っていくとするなら、それこそしっかりとした構造化のされたソースコードにする他ない (それでもあやしいが)。ところがそういったコードを書けるレベルの技術者に関しては、やたらと厳しい規約がむしろ足かせになってしまう。

二つめの背景はプログラム設計書を書く奴と実際にコードを書く奴が別というものだ。俺のチームはそんなバカな事はやっていなかったが (一応精鋭部隊だった。あれで精鋭部隊かよと情けなくなるが)、他のチームではむしろそれが当たり前だった。こうなってくると、たとえプログラム設計書の書き手がどんだけ構造化を推し進めようとしても、実際にコードを書く奴がさっぱり理解できないという事態に陥る。自然言語とプログラミング言語の間に横たわる断絶を考えれば、プログラム設計書をそのままソースコードに落とし込むなんていうのは夢物語で、結局はコーダーのレベルに合わせざるを得ないこともある。

それにプログラム設計書の書き手が高いスキルの持ち主かというとそうとも限らず、例の 10 年泥のおっさんがいっていた「必要なのは業務ノウハウ。技術力は必須ではない」というのを真に受けたようなバカチンもいて、そういうのがスパゲティ設計書を書き始めるのだ。

そして三つの目の背景だが、これが恐らく一番の害悪で、それは日本語で書いてやらないと検証できないという終わっている奴が検証過程に入り込んでいるのだ。これについては結構確定的な証拠があって、本来クライアント側で決めなければいけない仕様のうち、 Java のノウハウが必要なものについては俺に丸投げされたことがある。なので、あちらのメンバーに Java の知識がそれほどなかったというのが一番考えられるケースだ。そういった人間がプログラムの詳細部分にまで口出ししなきゃいけない状況というのはどう考えてもクレイジーだ。

結論としてはこのようなプログラム設計書の存在自体が間違い。釈明の余地なし。開発中に作られるドキュメントには、それが何であれ、誰が何のために読むのかが定義されている必要があり、そしてプログラム設計書の場合は

誰が?
程度の低いコーダー、プログラムの事がわからん奴
何のために?
コーディング (製造とも呼ばれる)、コードの検証

となっており、要するに開発の現場から叩き出した方がいいバカのためにあるわけだ。じゃあ何でこういったバカが開発に携わっているのかというと、

  • とにかく人手不足で猫の手も借りたい状態
  • 末端のコーダーのレベルでシステムに影響があるなんて思っていない

これが理由だろう。前者に関しては、使えない奴にヘルプを仰ぐぐらいなら猫を連れてきて癒し要員にした方がマシだ。後者に関しては、そのコーダーのやらかしたヘマがとあるサブシステムのアーキテクチャーを根本からぶち壊していて、俺が一次請けに頭下げながら辻褄合わせしたことがあり、つまり使えない奴にコードを書かせちゃダメなんだってことだ。他にも別の会社の落ちこぼれからの質問に答えていたせいで俺とか別チームのリーダーの仕事が阻害されたとか、そういうところでも使えない奴のもたらす弊害は大きい。

もういい加減こういう不毛な事は終わりにしてくれと思うんだがなあ……。

(19:39)

百万ゴールドの男」を読んでいたら、せっかくの休日が潰れてしまった。いわゆる制限プレイをする人ってのは結構多いけど、それをこうやってリプレイ記録の設定に使うってのは聞いたことがなかったな。凄い発想だ。

あと俺は親父が 5000 万とかいう借金抱えておっ死んで、危うくそれを相続するところだったからな。妙なところで感情移入しながら読んでた。

2008-06-16
Mon

(22:37)

Machine Men って全然タブ譜を採譜してる人がいないのな。いいバンドなのに。しょうがねえから全然耳コピは得意じゃねえけどやるかと思って、とりあえずイントロのフレーズだけちょろっとコピーした。リズムとか適当だしノイズも残ってるけど、とりあえず晒しとく。

フレーズ自体はこんな感じで、あとはツインギターで録ればそれっぽくはなるかな。ちなみにオリジナルはとてつもない神曲。 "Scars and Wounds" というアルバムに入っているので、北欧メタルが好きな人でまだ持ってない人はとっとと買いなさい。っていうか俺は "The Gift" と "Silver Dreams" の二曲で 2,500 円払える。

あと違う曲だけど Machine Men のライブ動画を二つばかり。

2008-06-17
Tue

(22:52)

久しぶりに大学時代の友人連中のサイトを探してみたけど、更新停止か閉鎖かのどっちかで二人除いて全滅。……と思いきや、約一名は新天地で活動してた。まあ、勝手に見つけっからいいんだけどよ。

2008-06-18
Wed

(22:18)

昨日今日と画面設計というか画面のモックアップを作成してるんだが、先に作業させていた新人の作ったデータが案の定ボロボロで、結局俺が書き直すハメになっている (ちなみに作った本人は配属先が決まって既にいない)。それで引き継いだデータの何がダメか、というかダメになった要因が二つあって、恐らくこれは結構いろんな現場で起こっているものと思われる。

まず最初の要因だけど、これは仕事の進め方の問題。システムの規模事態はそれほどでもないので、作る画面は 26 画面程度。でもさあ、だからといって全部一気に作ってほいと渡すのはやめようや。まず間違いなく根本的なところでダメ出しが入るんだから、最初に一つの処理の流れに対応する数画面、あるいはいっそ一画面だけ作ってレビューに回してくれ。全部の画面を「グローバルメニューの位置が変」という理由で修正するのって明らかにバカらしいだろ。こっちも新人がいきなり全部完璧に仕上げるなんて期待してないから、出来たところから見せてくれ。

次は本人の技術力というか知識の問題。作業を始めるときに「デザインはスタイルシートでやってくれ」という指示を出したんだが、

  • center 要素使いまくり
  • 無意味なテーブルレイアウト
  • style 属性に直書き

というテンパイっぷりで、それを見た瞬間俺は全身の力が抜けていくのを感じた。いや、俺がもうちっときちんと監督してれば違っていたのかもしれなかったけど、俺は俺で社内用のバグトラッキングシステムの開発してたしなあ。そもそもフレームワーク側の HTML 出力エンジンの都合で物理要素やテーブル要素を使ったレイアウトが根本的に出来ないってのに、そういうレイアウトをされても困るっての。

前の現場というかどこの現場でもそうだけど、やっぱり新人に仕事をさせるのは難しい。というか新人にやらせた仕事の結果ってのは、いっちゃあ何だけど後で大幅に修正するか、いっそ破棄するか、あるいは別ラインで他のメンバーがきちんとしたものを作るかするしかないんだよな、多分。

これは教育段階にある以上は仕方がない事で、こういったマイナスの生産性の期間を考えると、新人教育にかかった費用がペイされるのは相当先だよな。そういや俺は入社して二週間で配属が決まったんで初年度から利益を出してたけど、やっぱり普通の新人が利益を出せるようになって、教育にかけた費用が回収出来るのは二年目から三年目にかけてらしい。だから新人がバタバタ逃げ出す会社ってのは、はっきり言えば資産の運用がなってなさ過ぎといえる (教育を殆どやってないヤクザな会社は除く)。採用するにも教育するにも金がかかるんだからさ、金をドブに捨てるような真似はやめような。

2008-06-19
Thu

(20:24)

Firefox 3.0 が portage 上で Hard Mask から解けたので、早速インストールしてみた。うん、確かにパフォーマンスの向上は感じられるな。 Gmail のようなアホみたいに JavaScript を使ってるサービスで顕著だ。まだ対応していないアドオンが結構あるようだけど、俺は別にそんなにアドオンは使っていないのでそれほど問題にはなっていない (ってか NoScript と Stylish さえあればいい)。強いていえば MiniFirefox と Vertigo がないのが気になる程度で、これらはそれぞれ「メニューバーを隠す」「タブを縦に置く」というもので、ないと死ぬって訳でもないからな。

(22:31)

Editra っつーテキストエディタを見つけたんで試してみたけど、流石に重くて使いものにならないな。やっぱ wxPython はデカすぎるのかな。そもそも俺のマシンが非力だってのもあるんだが。

機能的には結構いい線行ってると思うんだけど、やはり動作が重いのはちょっとな。あとフォントのレンダリングがちと酷いんだけど、これは Gnome 使ってないんでそのせいかな。フォントのレンダリングの良し悪しもかなり重要なので、その意味でも俺の環境では使えないな。

2008-06-20
Fri

(22:57)

先生、あんた何やってんですか。

(23:57)

まあ、何だかんだ言ってロックギターの最高峰は Mattias "IA" Eklundh だと思うけどな。

そもそもどうやって音を出してるのか一見しただけじゃ不明で、見ても「多分こうなんだろう」という予測しか出来ん。っていうか左手だけでタッピングハーモニクス出して、そこにワーミーバー + バイオリン奏法とか音だけじゃ絶対にわからん。なにせこの人、いわゆる「特殊テクニック」とか「変態技」は全部出来ると思って間違いないからな。

この動画の 03:00 あたりから始まる "Samba Caramba" の種明かしは特に必見で、そして種がわかっても俺には多分一生弾けそうにない。他の部分の種がさっぱりわからんし、動画で種明かしされてる部分をやってみたら、案の定全然出来んかったし出来る見込みはまったくない。「死ぬまでに弾いてみたい曲」の一つなんだけどなぁ。

あと何気に Mattias ってヴォーカリストとしてもなかなか魅力的なんだよな。

さらに楽曲もキャッチーでどこかユーモラスで、本当に天才だわこの人。

2008-06-21
Sat

(20:59)

駅の近くにあった漫画喫茶が潰れてた。本棚が既に完全破綻している俺にとって、漫画喫茶は相当便利だったんだけどな。一回読んだら多分二度と読み直さないだろうって漫画は基本的に漫画喫茶で読んでたからな。じゃあそういうのも今後は買うのかというと、ただでさえ本棚が破綻してるところに本を増やすのは……。

(22:35)

俺にとっては凄まじくどうでもいいことだけど、

  • アキバ
  • ホコ天
  • ネットでの犯罪予告
  • トヨタの派遣
  • ネット規制法案と前後

とまあ、これだけ揃えば親の数え役満だというのはわかる。でもだから何? こういう問答無用のキチガイは他にもいるし、キチガイの出現に対する普遍的な対策なんぞないだろうに。

あと政府の作ろうとしてる犯罪予告の検出システムだけど、これは二重の意味でダメダメだ。まずそもそもネットで犯罪予告するバカが年間何人いるか、そのうち何人がガチで犯罪の準備をしていたか、年間に起きる凶悪事件の件数はどれぐらいかこういった点についてデータを集めて発表して、システムの提案を公にするのはそれからだろ。多分実際には費用対効果悪すぎって事になると思うぞ。

じゃあ仮にこれを作るとして、その場合は予告inよりも凄いシステムである必要がある。つまり、

  • より Web の広範囲を探索する
  • かなりの精度で誤検出・検出漏れを防ぐ

ということだ。これら二つは車輪の両軸で、規模が予告inと同程度の場合はそこまでの検出精度がなくてもオペレータの運用でカバーでき、そこに費用を突っ込むのは得策ではない (そこまで費用がかかるかについては後述)。なので差別化を考えるなら確実にスケールアップをする必要があり、スケールアップすればするほどオペレータへの負荷はかかり、つまりかなりの精度でのデータの振り分けが必要なのだが、これは非常に大変だ。

大変な理由は自然言語である以上は文脈というものを考慮せざるをえず、例えば「ぶっ殺す」という言葉一つとっても、

  • たまたま議論がフレームになって勢いで言っちゃった
  • 小説などの台詞
  • たちの悪い冗談
  • etc...

と様々な文脈で使われるわけで、これをきちんと判別するというのは人工知能そのものだ。そして「ネタにマジレス」という言葉が象徴するように、人間だって確実にネタなのかマジなのか判断できるわけじゃない。俺は自然言語処理や人工知能は専門外だが、俺の知る限りではどちらのアプローチでもこの問題には対処出来そうもない。仮に出来るとしても、それだけでどんだけ費用がかかるかわかったもんじゃなく (結構な数の企業とか研究機関に協力してもらわにゃならんだろ)、確か予算は二億ぐらいっていう話だったけど、いくらなんでもそれは舐めすぎだ。まあ、実際に要件定義書見たわけじゃないから全然違うこと書いてるだろうけどな (下手するとマジで予告inみたいなのを二億で作ろうとしてたのかもしれんし)。

というわけで俺は実効性と開発の困難さの両方の視点でダメだと思っていて、こういうシステムの提案がされる事が不可解としか言いようがない。いくらなんでも情報システムに夢を見すぎだ。あとこれって運用次第で検閲と言論封殺に使えなくもないよな。そういう意味じゃ有害システムで、予告inはその点でだいぶマシとも言えるか。

追記:もしも政府の考えてるシステムがマジで自然言語処理で文脈解析してどうのこうのという代物で、その案件が何かの間違いで俺のところに降ってきたら、俺のあらゆる知識と人脈を使って全力で阻止したいね。

2008-06-23
Mon

(20:56)

俺はちょくちょくここでソフトウェア開発についての意見を書いてるけど、俺の勤務先はいわゆる SIer じゃなくてそっから召集されるソフトウェアハウスなんで、まあなんつーか誤解しないように (読めば大体わかると思うけどさ)。

2008-06-24
Tue

(20:36)

実は今週からまた一人新人が増えたのだけど、その人とその前に来た人が同じ会社から転職してきたってのは興味深い。まあ、事情は大体わかるから詳しく聞こうとは思わなかったけど。

しかしやっぱ経験者相手だと研修が楽だ。基礎的なところはわかってるから、あとは気になったところを指摘していけば OK。その人たちが前にいた所はどうも結構ルーズなところだったらしく、あんまりロジックの共通化とかリファクタリングとかを徹底していなかった模様。なので力を入れて教えてるところはクラスやメソッドの分割方法あたりで、それもあんまり教えるのに難儀していない。

でも来週からはまた完全に未経験の素人がやってきて、こっちはまた苦労しそうなんだよなあ。今の二人は現場に出しても全然問題ないレベルだからいいんだけど、来週から来る方はあんまり出来が悪いと採用見送りの判断を俺がしないといけねーんだよなあ。出来ればその判断は下したくないのが本音だけど、現場の混乱を防ぐにはダメ過ぎる人を可能な限り早い段階で見切らないといけない。

2008-06-25
Wed

(21:10)

俺の中では「だんご」と「パフェ」はありえない組み合わせだったので、なんつーか思わず買ってしまった。

味の方は可も不可もなく、これで 270 円はちと高い。普通に別のパフェか団子を買った方がよかったな。

2008-06-26
Thu

(20:11)

ダビング 10 だの補償金だの言う前に CD とかを廃盤にするのをやめてくれ。

(23:52)

中途で採った子が早々と研修課題を終わらせたんで、昨日から Linux マシンを一台与えていろいろやらせてる。趣味に走っていいなら Gentoo だけど、流石にそれはあれなので Fedora で。なんつーか、うちで請け負ってる仕事で Linux が関わる場合、まず間違いなく Red Hat だからな。その系列のディストリビューションの方がいいだろ。

それでやっぱり Linux = コマンド端末のイメージがあったらしく、最近の Gnome とかを見て結構驚いてた。もっとも、実際の作業の大半はコマンドラインからになりそうではあるが。

2008-06-27
Fri

(23:29)

そういや妹二号から「Dark Moor の CD 持ってたら貸してくれ」というメールが来たんだが、残念ながらお兄ちゃんはそういうバンドにあんまり興味が無いんだ。つーかやっぱメタルの入り口はそういうバンドなのかなあ。

そして手持ちの CD を見てみると、改めて自分の業の深さに気がつく。というか、普通の人は Cathedral の 1st なんて聴かないよな……。

Cathedral? 何それ? って人向けの説明: 初期の Black Sabbath により提示された「重くて遅くて暗い」、ぶっちゃけ不穏極まりない音楽に誰も頼んでないのに「ドゥームメタル」という名前を付けてジャンルとして成立させてしまったのが Cathedral である。その中心人物の Lee Dorrian は前に在籍していた Napalm Death で「グラインドコア」というやっぱり「誰もこんな音楽作れなんて頼んでねえよと言いたくなるジャンル」を開拓した凄まじい経歴の持ち主で、早い話がキワモノ/エクストリーム/バカメタルの世界のビッグネーム。ちなみに Napalm Death の歴代メンバーにはのちに Carcass を結成してメロディックデスメタルの創始者となる Bill Steer が居たりする。

2008-06-28
Sat

(12:25)

流石に Rosegarden と Qsynth を立ち上げてると、 Flash とかの再生がすっとろくなる。いくら何でもマシンスペックが貧弱過ぎるか。やっぱメモリをもうちっと増設した方がいいだろうな。このご時世に 512MB というのはちと無謀か。 CPU も Celeron の 2GHz 程度だし。

まあ、別に Rosegarden とか使ってるときに動画見たりしなけりゃいいだけだから、現状維持でもいいんだけどさ。

(19:11)

たまたま立ち寄ったタワーレコードで Sleep の "Dopesmoker" が売っていやがった。当然購入。

この Sleep というバンドはドゥームメタル/ストーナーロック/スラッジコアの世界では伝説的な存在らしいのだが、その理由は彼らの 3rd アルバムの "Jerusalem" にあるのだという (これは未聴)。このアルバムは 52 分の曲が一曲だけ入っているという超絶にふざけた代物で、しかもその曲はお経のような歌とほぼ単一のリフで構成されたアバンギャルドを通り越してあっちの世界の逸品。あまりにアレな出来栄えだったので当時所属していたレーベルから「こんなもん売れるか」「レコーディング費用を返せ」と迫られたらしいが、当のメンバーが「これが俺たちの音楽だ」「金? 全部マリファナに使っちまったよ」と凄まじい切り返しをした結果大喧嘩になり (というふうに聞いている)、結局バンドは解散、アルバムはお蔵入り。結局ドゥーム専門レーベルの Rise Above Records に拾われて販売されたが、このレーベルの社長は言うまでもなく Lee Dorrian で、まあなんていうかそこまで綺麗に落ちを付けなくてもいいだろお前ら。

そしてこの "Dopesmoker" は "Jerusalem" でカットされたトラックを復活させた完全版ということで、なんと一曲 63 分。さらに "Sonic Titan" という曲のライブテイクまで収録された凶悪な代物で、これは普通の人は聴いたら怒り出すだろう。普通じゃない人はかなり笑えると思う。取り返しの付かない人は相当な感銘を受けると思うので、踏み絵代わりに聴いてみるのも一興だ。俺はちょっとばっかり感銘を受けたので若干取り返しが付かなくなってるんだと思う。

ちなみにこの曲は歌詞の内容が強烈にバカで、

Drop out of life with bong in hand
Follow the smoke to-uh the riff-filled land
Drop out of life with bong in hand
Follow-the-smoke-Jerusalem

マリファナでラリったボンクラ集団が究極のドゥーム音楽を求めてエルサレムへ巡礼するという内容。まったくもって救いようがない (褒め言葉)。

あとこれは全人類の 99.999999% にとって完全にどうでもいいことだが、一応ドゥームメタル/ストーナーロック/スラッジコアの三つはそれぞれ別物ということになっている。

ドゥームメタル
遅くて重くて暗くてマリファナでラリっていてヘヴィメタルが根源にある音楽。
ストーナーロック
遅くて重くて暗くてマリファナでラリっていてヴィンテージロックへの回帰を意図してる音楽。
スラッジコア
遅くて重くて暗くてマリファナでラリっていてハードコアの影響を受けている音楽。

「何が違うんだ」と聞かれたら「全部同じ」と答えてしまうかもしれないが、まあなんていうか一般人が逃げ出すジャンルというのは往々にして無闇に細分化されるものだ。ちなみに俺にはあんまり聞き分けが付かない。

2008-06-29
Sun

(23:44)

「ラブやん」の 10 巻と「レイモンド」の 2 巻を購入。相変わらずどっちも無茶やってて満足、というか「レイモンド」のあれはよく原稿が通ったな。

しかしラブやんの方はついにカズフサが「ロリ・オタ・ニートの 30 歳」という大台に乗ってしまったなー。俺は「カズフサ 30 歳でバッドエンド」という予測を立ててたけど、どうやら外れたようだ。

2008-06-30
Mon

(07:32)

OCN から「2008年8月1日から一日 30 GB 以上の大量のデータを送信してる奴を取り締まるぜ」という趣旨のメールが届いた。そういや、どっかで読んだことあったなその話。主に P2P というか Winny 対策の意味合いが強いんだろうけど、まあなんつーか仕方あるまい。 ISP が用意できる帯域は有限なんだから、あんまり一部のユーザがバカ食いしてるのは相当困るだろう。

それでこのサーバがどうかっていうと、まあいくら何でも一日 30 GB は使ってないだろ。この日記のトップページが三日分の日記を表示して 10KB 行くかどうかで、 RSS はもっと重いけどそっちはサーバサイドの RSS リーダーで使われるのが殆どだからな。世界樹の迷宮のページは画像をバカみたいに貼ってるけど、あっちは一時期に比べて順当にアクセスが落ちてるので全然問題はない。多分。

追記: ってか元々世界樹のページは全データの合計が 30MB 弱だから、ユニークアクセスで 1000 以上かつ全員が全ページ見るという状況じゃないと帯域制限には引っかからんのだった。全然大丈夫じゃん。

(22:50)

最近電車の中でやるゲームがほぼなくなってしまったんで、前に友人から進められたような気がする "Call of Duty 4: Modern Warfare" を購入。電車の中でやって酔わないかとか思われそうだが、俺は乗り物の中で本とかケータイのメールとかの静止物を読むのが苦手な割に、最初っから動いてるゲームについては全然平気だ。

で、最初のステージをクリアした感想: 俺これクリアできないかも。

いやなんつーか、難易度ノーマルでやってるんだけど途中で死ぬ死ぬ。こりゃあ挫折してイージーでやってしまうかもしれん。