«前の日(05-22) 最新 次の日(05-24)» 追記

Matzにっき


2003年05月23日

_ [OSS]ハッカー甲子園

朝日新聞の記事によると 経済産業省はこの夏「ハッカーの甲子園」を開くのだそうだ。

で、そのハッカーの甲子園では

だそうだ。

ここで疑問がある。この「ハッカー」はいわゆるハッカーなのだろうか。 つまり、我々が言うところの「ハック」するところのプログラマである「ハッカー」、 あるいは言葉を変えれば「ハッカーはクラッカーではない」の「ハッカー」なのか、 それとも、最近指摘するのもあきらめそうなマスコミ用語としての「ハッカー」、 すなわちシステム侵入者としての「ハッカー」なのか。

このハッカー甲子園(正式名称は「第1回セキュリティー甲子園」らしい)の競技内容がシステム侵入である以上、 この「ハッカー」は「クラッカー」と同義でシステム侵入者の意味であることが推測できる。

ところが、一方、 朝日新聞の当該記事には、

とあり、経産省もこの大会の目的として

を掲げているらしいので、集めたい人材は「破壊活動に長けた人物」ではなく、「優秀なソフトウェア開発者」としてのハッカーのようにも思われる。

これは一体どういうことなのだろうか。

「ハッカー」と「クラッカー」が混同されているのは周知の事実だが、 そのねじれが生んだ偶然のいたずらなのだろうか。 あるいは、高いシステム侵入能力を持つ人間は、情報を集め、 実践する能力と知識の故に優秀なソフトウェア開発者になれると考えたのか(スクリプトキディーは優秀な開発者にはなれそうにないけど)。

はたして、システム侵入能力の高い人物は、ソフトウェア開発において「優秀な人材」たりえるのだろうか。

いや、待てよ。

  • 大会を通じて(システム侵入に関して)優秀な人材を集め
  • 英才教育を受けさせることで
  • 他国のIT経済をコントロールできる優秀な工作員に育て上げ
  • ある種の秘密活動(!?)を通じて、情報入手や妨害を行い
  • ソフトウエア産業の国際競争力をつけるねらいだ。

という流れが考えられないだろうか。なんとっ、恐るべしニッポン、恐るべし経産省っ。

いやいや、考えすぎに違いない。


2004年05月23日

_ [教会]出雲支部大会

年に一度の支部大会。いろいろなことがあったが、ほとんど略。

印象に残ったお話、2題。

私の知人の会社に、SI屋が営業に来た。 ひょんなはずみからRubyの話になり、 知人は「Rubyのまつもとなら知り合いだ」と言う。 営業は「えー、雲の上の人なのに」と驚く。

私は死んでるのか。

もうひとつ。

別の知人(教会では上司にあたる人)の本職は、日本刀の研ぎ師である。

彼は独立する前、7年間師匠について修行したそうだ。 が、この師匠、7年間ちっとも仕事を見せてくれない。 どういうふうに研ぐのか教えてもくれない。 ただ、自分の作品を見せに行くと、「ここは良い、ここはダメ、こっちはまあまあ」と評価だけはしてくれる。 おかげで自分で工夫を編み出す必要があり、えらい苦労したのだそうだ。

7年の修行が終わる時、ひとつだけ「ここはこうするんだ」と奥義(?)を教えてもらえた。 それは5分だった。

...7年で5分かあ。

しかし、自分で創意工夫して学んだことは忘れないので、 これはこれで良かったのだと思う、とのこと。

ソフトウェア業界でも同じやり方で伝授するというのはどうだろう。 7年は修行。師匠の仕事は見せない。 プログラムをもってくると「ここは良い、ここはダメ、こっちはまあまあ」と評価だけ。 自分で創意工夫する。

あ、オープンソースじゃ師匠の仕事がいくらでも見えちゃうな。

オープンソース、ダメじゃん(苦笑)。


2005年05月23日

_ 入院と主夫

妻の具合はなかなかよくならないので自宅作業。 とはいえ、子供のお守りもあったりして、実質的にほとんど仕事できないから、 会社的には休みと同じだな。

午後、妻は病院に行く。いくらなんでも長引きすぎだから。

その後、いつまでたっても帰ってこないなあ、と思ってたら電話がかかってきて 「入院」だそうだ。そうか。出産以外では初めての入院ということになるなあ。

で、急遽身の回りのものを取りそろえて病院に。近いのがまださいわいか。 まあ、単なる肺炎で心配することはないのだけれど、 弱いながらも感染の危険があることと*1、休息を取る必要があるということで。病院側も事情を理解してくれて、できるだけ早く退院できるように取り計らいます、ということだった。

ということで、今日からいきなり生後6ヶ月の娘の面倒を見ることになる。 とりあえず家事ひととりはできるつもりだけど、末娘は 今まで母乳のみで育ててきたのに、大丈夫かいな。夜はちゃんと寝るのかな。

*1  でも、今日まで一緒にいた家族には「感染の危険」は今さらだけど


2006年05月23日

_ 依頼

ある程度名前が「売れてしまった」せいか、最近、仕事の依頼が多い。

まあ、「原稿書いてください」くらいなら、分量がたいしたことなければ ほいほい受けてしまうのだが、なかには躊躇するものもある。

たとえば、O'Reilly Networkから来た以下のようなもの。

200行くらいのプログラムをサカナに「コードの美しさ」について語ってください。 2000ワードくらい(もちろん英語で)。

ここまでなら、どうということはない。しかし、次の部分を読んで驚愕した。

他にも何人かに頼んでいます。 すでに引き受けてくださった人にはBrian Kernighan, Guy Steele, Diomidis Spinellisなどがいます。あなたも引き受けてくださるとありがたいのですが

えーと、こんな有名人の中でなにをしろ、と。

_ 日経Linux初校

日経Linux 7月号初校を校正。 今回は39行もオーバーしたので削るのに奔走する。 しかし、いつもながら、日経の編集の人はプロの仕事をするなあ。

_ 『メガネっ娘のほしのあきがPSPに熱中! - SCEI「カズオ」イベント開催

「カズオ」ってのは数独のことなんだね。 数独についてはRubyQuizのネタにもなっていて、 少し知ってはいたんだけど、こんなに注目されていると走らなかった。

で、ルールは知ってても遊んだことはなかったので、実際にやってみる。 ksudokuをインストールして遊んでみると....これは面白いわ。 あっという間に時間が過ぎてしまう。

_ [Ruby] argument list 2.0

Ruby2では、引数リストについて修正を加えようと思う。

具体的な変更点は以下の通り。

  • 引数を渡す側では「*」単項演算子(リストの展開)を任意個置けるように。
  • 引数を受け取る側では、「*」単項演算子(リストとして受け取る)の後ろにも必須引数を置けるように。「*」単項演算子は最大1個。

つまり、

def foo(a,b=1,*c,d)
  p [a,b,c,d]
end

a1=[9,8,7]
a2=[6,5,4]
foo(1,2,*a1,3,*a4,5)
# => [1,2,[9,8,7,3,6,5,4],5]

という感じ。

ただ、問題が二つ。

  • nodeの構造が変わるのでripperとYARVの対応が手間
  • このあたりyacc記述が入り組んでいて、どこから手をつけていいのかよく分からない

取り掛かる前には「やればすぐ」と思ったのだが、 特にyaccが難物で、全然進まない。


2007年05月23日

_ [Ruby] Radium Software - はじめてのプログラム

子供に最初にプログラムさせるという話になると、 まずテーマに選ばれるのは、キャラクタを動かす、図形を描く、そして、ゲームくらいだろう。 しかし、それは適切ではないかも、という話。

Hackety Hackでは、ゲーム以外の手段でプログラムを学ぶ。 それはゲームのプログラミングは難し過ぎるから(_whyによれば)。

確かにそうかもしれない。私でもゲーム(でも難しいからBASICの頃の古典的キャラクタゲーム)を 題材に選びそうだものな。

_ [言語] 404 Blog Not Found:君は新言語xtalを知っているか?

弾さんによる 「Matzさんでさえ言及した様子がない」新言語Xtalの紹介。

うーむ、実はこっそりブログでの開発状況を観察し 密かに愛でていたのに。

個人的な経験から言えば、言語仕様がある程度安定するまでは 人の意見を聞かず、自分が「これ」と思うところを追求した方が 最終的に良い物ができる可能性が高まると思っているので(独り善がりになる危険性も高まるんだけど)、あまり人に知られない方が良いんじゃないかなあ、と思っていたのだ。

が、弾さんのところみたいな大手からリンクされたんじゃ もう隠しておく意味はなくなったな。

個人的にはXtalは

  • Rubyを意識した文法と仕様
  • でもendじゃない(一部の人にとても重要)
  • イテレータとファイバー
  • 内部イテレータのように見える外部イテレータ
  • ちょっと仕様が揺れている多値
  • ローカル変数のスコープ

など面白いところがたくさんあると思う。

でも、メジャーになるには冒険しすぎかもしれないと思ってしまうのは 私が年を取って安定指向になってきたせいかしら?

いや、別にメジャーにならなくても全然問題ないんだろうけどね。

_ あらゆることがうまく行かなければどれくらいかかるか?

最悪のケースを想定することでより良い見積もりが出せる、という話。

まあ、単純に「見積もって」と言われたら、 こんな作業が必要そうだから、と思いついたものを積み上げて見積もるわけだが、 ソフトウェアの場合、「必要そうな作業」は恐らく本当に必要な作業のごく一部に過ぎない。 「最悪のケースを想定して」と言われると 最悪のケースを想定するためにいろいろな状況を考慮する必要があるわけで、 より多くの状況を考慮することでより正確な見積もりが出せるということなのだろう。

考えてみれば当然のことだが、見積もりは悲観的に。

個人的には、(〆切のある)仕事でソフトウェア開発の見積もりを行う時には、 普通に(特に悲観的でなく)見積もった時間に1.5から2.5までの係数を掛けることにしている。 最初はかなり罪悪感があったが、最終的にはいつもちょうどいいか、ほんのちょっと余るくらいで 収まるので、こんなものかな、と思っている。

この方法を実践するまでは、いつも見積もりばかり甘くていつも火の車だった。 健康を壊しかねない。

_ [Ruby] HOW DO YOU LIKE SILICON VALLEY? | SFBETA Geek Sessions Ruby on Rails: To Scale or Not to Scale

Railsに関するGeek Sessions。 今回のテーマはスケーラビリティ。

レポートを読むだけでも面白そうなネタが満載であることがわかる。 こういう交流も重要なんだろうなあ。

もうちょっと詳しいレポートは「geekSessions I: Ruby on Rails: To Scale or Not to Scale」に。


2009年05月23日

_ プログラマーのジレンマ

プログラマーのジレンマ 夢と現実の狭間(スコット・ローゼンバーグ)

日経BPから献本をいただいた。

実は、原著『Dreaming in Code』も「絶対面白い本だから」と言って、 かなり前にもらっていたのだが(えーと、誰からだっけ? 恩知らず*1)、 英語の本はついつい後回しになっていたのだった。 ながらく本を読む(心の)余裕がなかったし。

しかも、今回、送っていただいてから同じ本であると気がついた始末。 ほら、邦題が全然違うし、新訳なのに原著はずいぶん古い本だし(言い訳モード)。

まだほんのさわりしか読んでないのだが、 少なくとも最初の部分を読む限り、

  • ソフトウェアプロジェクトの多くは失敗する
  • 人間にはムーアの法則が適用されない

などなど、私の講演などでたびたび言及することと共通点があって 興味深い。読み終わったらちゃんと書評できるといいな。

その他にも最近(主に飛行機の中で)、

も読んだ。面白かった。これらも書評...できるかなあ。 どちらももう弾さんに取り上げられてるしなあ。

*1  確かGoldman Sachsのセミナーで話した人

_ コードの世界

まつもとゆきひろ コードの世界‾スーパー・プログラマになる14の思考法(まつもとゆきひろ)

  • 表紙が...
  • タイトルが...

などと、一部で不評な本ですが、私だって恥ずかしいのを我慢してるんだから、 せめて書店で中身を眺めるくらいはしてください。 面白くなかったら買わなくてもいいから。

なぜかアマゾンではサブタイトルが「スーパープログラマになるための14の掟」になってるけど、 「掟」は日経Linuxでの連載時のタイトルで、本当は「思考法」なんだけどな。

で、「思考法」もかなり苦しくて(だって「思考法」を想定して連載原稿書いてないし。書き下ろしコラムでなんとかつじつま合わせようとしたけど)、なかなか書籍と言うのは難しいものだなあ、と。 それに比べると連載は気楽だ。

いや、毎月、〆切前はそれなりに苦しいけど。

で、恐ろしいことに、今日(5/23)の時点でAmazonのプログラミング部門とLinux部門で 売り上げ1位という。やっぱ、表紙のインパクトの成果か。

表紙案を見た時に「タイトルといい、表紙といい勝間さんの本みたいだよなあ」と 思ったもの。売れる本には一定のフォーマットがあるのか。賛否あるとしても。

ただ、残念なことにプログラミング関係書籍は順位の割に部数は出ないし、 「夢の印税生活」というわけにはいきそうにない。 今回は連載の再利用なので、さらに印税率が低いし。

一般書を目指すべきなのかもしれない。ビジネス啓蒙書とか。

と思ったら、私、ビジネス分野で成功してないじゃん。 書けないじゃん。


«前の日(05-22) 最新 次の日(05-24)» 追記