2008/08/20

m9(*´〜`) (C language memo)

http://d.hatena.ne.jp/keyword/m9%A1%CA%A1%B0%A7%A5%A1%B0%A1%CB%A5%D7%A5%AE%A5%E3%A1%BC%A1%BC%A1%BC%A5%C3

最近俺的にプギャーな出来事が多い。C言語に関して。
  1. static *char func() {} ってナニ!?
  2. 「変数はブロックの初めに宣言しなければならない」というANSI(C89) なルールを巡って「gccなんてゆとりコンパイラ使ってるからだ」といわれのないDISをくらう
  3. 以前 /.J で書いた このコードがセグる 理由を思い出すのに3分かかった
俺は何も学んでいないのかと唖然とするばかり。書きまくるしかないんだよね(´ー`; )

----

Cが体に染み付いている人には釈迦に説法でしかないが、自分へのメモとして上記を解説しておく。

※ 1. は当然 *char なんて型はないのでエラーになる(char* はあるけどね!)。関数の引数や変数宣言については絶対に間違わないのだが、関数の戻り値については上記のような間違いを未だによくする(´ー`; )
※ 2. は gcc4 が C99 なモードでデフォルトは動くから、 int a; a = 1; int b = 100; などというコードをブロックのはじめに書いていても通るのであって、gccが悪いわけではない。こうしたC++的なコードについて、ANSI C 的な警告を出させたければ、-Wall では駄目で、-pedantic オプションをつけてコンパイルする必要がある。
※ 3. は *p == "\n" が、ポインタと文字列の先頭アドレスを比較しているだけであって、実際に文字列比較を行っていないために、無限ループがbreakせず、(たまたま連続して格納されていると思われる) char *envp[] および、それ以降の領域を読んでしまってセグるというもの

2008/08/19

silly assumption

「XXさんは優秀なんだからこれくらいをメールで伝えればわかってくれるだろう」という思い込みはやめましょう。仕事を実際に一緒にやってみないと、相手の能力についてはわからないことが沢山あります>自分

2008/08/10

KI-SE-RU

煙管(きせる)を楽天市場で買った。きっかけは PHP Conference 2008 の帰りにたまたま話した人と盛り上がったことから。

本来は刻み煙草を詰めて吸うものであるが、そうでなくても、既存の紙巻き煙草を火皿の部分に入れて吸うこともできる。やっぱ紙巻きだと妙な感じだ(´ー`; ) 刻み煙草買わないとね。

煙管といえば鬼平犯科帳のイメージが凄く強い。和風の邸内で吸うアレである。今の俺はそんな家に住んでいるわけではないが、将来は相方と縁側で煙管を片手にまったりしてみたいかも。相方はお茶をズズズっと(笑) そんなことを思ってみる。

2008/08/09

perl-mongers.org

http://perl-mongers.org/2008/08/catalystcontrolleratompub.html

Perl な世界に殴り込みを掛けてきました(ぶ

・・・という冗談はともかく、書いてみると、纏めることと説明することの難しさを実感した。雑誌の記事を執筆した感覚に似ている。そう、動作確認しながら、資料を確認しながら丁寧に書く感じ。アレ。

俺が技術的なまとまったことをアウトプットしようとすると、どうしてもこういう感じになってしまう。過剰に力が入ってしまうのだ。その点、気軽にアウトプットできている皆さんが羨ましかったりする。

----

Catalystのほんの一端しか触れていないわけだけれども、こうして自分の言葉にすることは意味があることだと思う。自分がわかっていることとそうでないことの境が明確になるわけだし、ネ(*´〜`)

2008/08/08

bye bye PHP4! Go PHP5!

http://www.php.net/archive/2007.php

PHP4 end of life は1年も前からアナウンスされてきたのだが、ようやくその時期がやってきた。自宅で管理しているサーバでも 2008/08/09 0:00 JST の時点でようやくオサラバできる。

唯一心配なのはユーザが 「XXの挙動が違うんですけど!」的な隠し球を未だ持っていることなのだが。大丈夫ですよね? ですよね? 1年前からリバースプロキシまで使って検証環境用意してあったんだから、今更泣かないでね!(`ー´)

仕事でも維持管理しているものを除いては PHP4 とはオサラバ。Ethna については、PHP5で既に動く以上、いつbyebyeするかはまだ考える時期にない。

----

某掲示板(何)にいない人で、www.mumumu.org を借りている人向けに、変更点を以下の通り示しておきます。
  1. public_html が PHP5用ドキュメントルートになります
  2. 1. に伴い、public_html_php5 は廃止されます。そこにこれまで置いていた
    コンテンツは削除されませんが、Webからは一切見られなくなります
  3. PHP5移行用に、動作確認用として用意していた php5.mumumu.org も廃止になります
  4. これまで php5.mumumu.org でリンクを張っていた人も考慮して、php5.mumumu.org
    へのアクセスは www.mumumu.orgへすべてリダイレクトされます

2008/08/07

Cascading Style Sheet

http://matthewjamestaylor.com/centered-menus/
http://www.y-adagio.com/public/standards/tr_css2/selector.html
http://www.y-adagio.com/public/standards/tr_css2/visuren.html

最近他人のサイトのCSSを読むのがマイブームである。特に「ブラウザのウィンドウを拡大縮小させたときどうなるか」をどう考えて作っているのかに興味がある。きっかけは上の「Centored CSS Menu」というエントリを読んで、標準にまつわる文書を読み始めたのがはじまりである。

ウィンドウサイズが固定であることを前提に作ってるサイトもあれば、そうでないサイトもある。可変長にしてるサイトって、多分データが横長にならないことを前提に作ってるんだろうな。とか、いろんなことを考える。いろんなテクニックも見えて興味深い。

そしていろいろ試してみる。標準通りの動きをブラウザがしてくれれば面白いし、そうでなければ悲しい思いにはなるけれども、やっぱりこういう過程が幸せに感じるのはプログラマ故なのだろう。

Commit Bit

http://www.eisbahn.jp/yoichiro/2008/08/post_213.html
http://d.hatena.ne.jp/higayasuo/20080805/1217896276

別にプロジェクトリーダが決めることだけど、Commit bit を貰えてる人って、以下の3点は割と備えている気がする
  1. (単なる文句でなく)(新規に何かをする|改善等の)貢献をしたいという意欲がある
  2. 1. のゴールをメンバに説得できる
  3. 1. のゴールを達成するために行動する力がある
----

1. と 2. は前提になると思う。これらが揃わないと多分コミット権限を貰っても役に立たないかもしれない。と思ったり。

最後の点は、コードを書くことだけにとどまらない。ソフトウェアの世界だとそれがコードを書くこと、の比重が大きくなるわけだけど、コードを書くことだけがOSSの唯一の仕事とは限らない。そこはプロジェクト(コミュニティ)毎に異なる文化かもしれないけれども、コードを書く人は偉くともなんともない。と個人的には思う。

逆に、オレは上記3点を備える人である、と自信がある人なら、名乗り出ても一向に構わないんじゃないかな、と思ったり。(注:それをメンバが認めるかは別問題。Act Firstしてる人は認められやすいだろうし、そこはプロジェクト毎に事情があると思う) そんなコミット権限って固いもんじゃないと思う。(投票等のお固い手続きが必要だったりする)規模が大きなプロジェクトでもない限り。