2008年02月10日(日) [過去の今日]
#1 PHPの本当の利点
PHPが嫌われる本当の理由。 という記事。
たぶんネタだと思うし真に受ける人もいないとは思うんだけど、一応。
PHPは別に他の言語やプログラミング理論の価値を引き下げたりはしないし、既存のものがPHPに置き換えられるなんてことは絶対あり得ない(一部ではあるだろうけど)。
まるで時代がPHPを向いてるかのような思い込みがもしあるんだとしたら、それは思いっきり勘違いしてる。そんなことは絶対ありえない。
なんでかって、PHPは元々Perlから派生したものだし、Perlの悪いところをおもいっきりひきずってるから。
まあ別に議論しようってんじゃないからこれについては深くは触れない。
ただね、PHPを擁護したいなら、PHPの本当の利点や美点をあげようよ、と思うんだよな。
実を言うと俺はPHPは決して嫌いではない。むしろ積極的に使うことがあるくらいだ。
それはもちろん、そうするメリットがあるからだ。
@ 美点1 標準ライブラリの充実:
コンパイルオプションなりで明示しないと入らないものも多いので「標準」と言うにはちょっと気が引けるけど、基本的にそれらが全部入ってるとみなして書いていいというのは実に心強い。
各種DBから日付処理、ネットワーク関連に至るまで、一通りの関数がぞろりと揃っている。そのほとんどがそこらの300円とかで借りれるレンタルサーバにすらしっかり入っている。
PerlみたいにCPANの依存関係で「いつになったら全部入るんだよ!!」みたいなこともない。
とりあえず使える手札が揃ってるというのは本当に心強い。
@ 美点2 ドキュメントの充実:
初心者向けかどうかは、実はここで決まるんじゃないか。
PHPのマニュアル を見ると、これが本当に素晴しいものだということがわかる。
入門・チュートリアルから、各種関数リファレンスまで全部ひとつところに納まっている。しかもほとんどの関数には例文まで載っている。
実はこの例文というのが初心者にとっては非常に重要。ドキュメントに書いてあることだけじゃ、どう書いていいのかわからない事もけっこう多いものなのだ。
そういうときとりあえず「正しい書き方」の例が載ってて、書き写して実行してためせるっていうのは、初心者には実にありがたい。俺もずいぶん助けられた。
正直いってPHPの最大の美点はここだと思う。このドキュメントの充実っぷりは他の追従を許さない。
@ 美点3 ある意味では速い:
よくPHPは速いと言われる事があるのだが、実を言うともの凄く遅い。単純ループでもある程度の回数を回してやるとPerl/CGIのほうが高スコアが出たりする。
この遅さはコマンドラインで比較するとすぐわかる。
$ time php -r 'for($i = 0; $i < 1000000; $i++) { print "$i\n"; }' >/dev/null real 3.23 user 2.40 sys 0.33 $ time perl -e 'for($i = 0; $i < 1000000; $i++) { print "$i\n"; }' >/dev/null real 0.92 user 0.78 sys 0.01
しかし、apacheを経由すると事前にコンパイルされているせいか、けっこう速い。しかもmod_perlなどと違ってファイルが更新されてもウェブサーバを再起動せずに反映してくれる。
レンタルサーバなんぞに置くときは非常に重宝する。
@ まとめ:
PHPは確かに言語仕様的にも処理系の性能や信頼性にも難があると俺も思う。実際バージョン差で挙動が変わって頭を悩ませた事もある。
しかしレンタルサーバに比較的小規模な動的ページを設置するのに、PHPほど向いた処理系を備えた言語も無い。
そして初学者に学びやすいドキュメント、環境が揃っている。レンタルサーバならインストールに手間取る事もない。
たとえていうなら「二本目のナイフ」として備えていてもいい言語だし、「一本目のナイフ」としても、若干怪我しやすいというのはあるにせよ、とっかかりを掴みやすい。
決してPHPは「悪い言語」じゃあない。使いようによっては大活躍してくれる大きな武器でもある。
「言語」として初心者向けかと言われれば、むしろドラクエのごとく「ちゃんと出来る」までエラーを出してくれるRubyのほうがいいのかもしれないが、ドキュメントの充実等まで考えればPHPが一歩リードしてるんじゃないか?
なによりレンタルサーバとの相性がいい。作って公開するコストが一番安いのはPHPだろう。
ただ、「PHPしか使えない人」というのはいただけないと思う。他のどんな言語でもそうだと思うけど、その言語だけにこだわり続けるのは決してよろしくない。
違う言語に触れることで自分のホームグラウンドの言語の特徴も見えて来るし、プログラミングのやり方もけっこう変わる。PHPをよりよく書くためにも、PerlやRubyにも触れておいたほうがいいと、俺は思う。
(@524)
2007年02月10日(土) [過去の今日]
#1 ミハエル・シューマッハの本当の価値
若干疲労してるのか何も手が付けられなかったので、忙しくて見れなかったブラジルGPをやっと見た。
「運」という言葉がある。あいつは運がいい、今日は運が悪かった、そんな言い方をする。
ブラジルGPでのミハエル・シューマッハは、「運が無かった」と思われるだろう。予選でのトラブル、10番手から5番手へ上がったとたんのタイヤバースト、信じられないような運の悪さが見られた。今までのシューマッハには、こんなことは無かったのに。
いや、そうだ。今までは無かったのだ。今まで無かったのはただ「幸運」なだけだったのか? 否、そうじゃない。運だけで7度も世界王者になれるものか。
機械が壊れる、トラブルを起こすのには、理由がある。保管、運搬、使用状況、いろんな要素がそこに絡む。だからこれだという原因をあげることはできないが、それでも理由は存在している。
ある種の気くばり、ささやかな見逃し、小さなミスの蓄積。思えば日本GPでエンジンが壊れたのは、そういう事もあったのかもしれない。
それは運じゃない。今までできてたことができてなかった。それを人は衰えと呼ぶ。
ミハエル・シューマッハは衰えた。だからアロンソに勝てなかった。運が悪かったわけじゃない。
おそらく、ミハエル自身がそれを一番よく知っているだろう。若いころはそれこそ たくさんのタスクを同時にこなしていながら「これくらいできて当り前だろ、なんでできないの?」って本気で言 うような人間でも、年を取れば衰える。集中力も下がる。若いころはできてた事ができなくなる。それは自分自身の事だからこそ、よくわかる事なのだ。
だから引退を決めたのだろう。
しかし同時に、ミハエル・シューマッハの価値は勝利することではない事も、このブラジルGPは教えてくれた。
F1ファンは異口同音に言う。ミハエル・シューマッハは後方から追いあげてる時が一番おもしろい、と。
ブラジルGPでのミハエルは、耀いていた。10位からスタートして、5位にあがった。そのあとタイヤがパンクして最後尾にまで落ち、トップからほぼ1周遅れにまで後退した。それでも次々に他車を抜き去り、ラスト3周で自分自身が後継者に指名したライコネンをも抜いた。このオーバーテイクは抜いた方も抜かれた方も見事な、これぞF1というバトルだった。気付いてみれば4位。他のどんなレーサーでもありえないリザルトだった。
ミハエル・シューマッハの価値は、決して諦めない事、くさらず最後の最後まで全力を尽くす事、絶対に後ろ向きにならない事、努力し続ける事、そういう正論すぎるような当り前の事を本当に実行し続ける事にこそあるのだ。
ミハエル・シューマッハは天才ではない。天才とはセナやハッキネンのような奴を言うのだ。その天才を、シューマッハは誰にも負けない努力で越えてきた。決して諦めずに。
この偉大なチャンピオンのラストランは、自分自身の本当の価値を体現したと言っていいだろう。勝ち負けが結果に過ぎない事を、改めて感じた引退レースだった。
ありがとう、ミハエル。ただ、それだけを言いたい。
(@941)
2005年02月10日(木) [過去の今日]
たまたま別件で検索してて見付けた記述。なるほど鋭いな、と思った。確かに実現のアイディアを保護するなら我々素人にも納得がいきやすいし、そうあるべきじゃないかと思う。
特許に付いて詳しいわけじゃないが、「思い付き」を保護するシステムじゃあないんだよね? もし思い付きを保護するシステムなら、特許はいいものとは言えなくなるなあ。今回の松下の特許にしても、これは思い付きであって実現のアイディアではないよな。
誰か太陽にゴミを放りこむ特許取っとかない? 実現するのは後の技術者で、彼らは保護されなくてもいいみたいだし。
(@923)
フォントサイズは可変ってことも知らないらしい。760pxで横幅を固定するのが一番読みやすいんだとさ。あんたにとってはそうだろうけどよ。
まあ、そういうわけで彼の主張を検証すべく、 760pxで横幅を固定したページ を作ってみた。友達に見せたら、見やすいという人も確かにいたが……。
(@658)
@ ハッケソ元書き忘れ:
World Wide Walker でハッケソ。
(@686)
わはは、またマカーの「Macがオリジナル、他はパクリ」主張か! 松下の特許もMacオリジナルじゃなきゃ気が済まないのか!
と思って読んでみたのだが、もしかして言ってることけっこう妥当? アイコンじゃないけどメニューにそういうヘルプは既にあったよってことか? これ既知技術として使えるのかな? 使えるならJust Systemにタレコんでやっとくれ。
(@651)
2004年02月10日(火) [過去の今日]
#6 /usrに10Gはもう古いのか
/usrなんて10Gもあればいくらなんでも足りるだろうと思ったのが1〜2年ほど前だったろうか。寝る前に何気に df -h したら見事に溢れていた。
とりあえず /usr/srcが3G以上食ってたのでさくさくと古くなったカーネルソースを削除。まだ2.2Gも食ってるので、いれっぱなし放置なkernel関係のパッケージを削除。まだまだ食ってるので、/usr/src/*.debを別の場所にバックアップ。ようやく1.2Gほどに収まってくれた。
これでようやく/usrも2.6Gほど空いたわけだが、このままじゃ不安だなあ。でかいHDD買ってまたパーティション切り直すべきだろうか。こないだ交換して容量のあまってる/homeにでもsymlinkを張るべきか。うーむ。
(@602)
#5 お茶
今日は練り餡の和菓子を頂いたとかで、急にお茶会をやることになった。小さい頃はよくやってたのだが、最近はとんとご無沙汰。
久しぶりに母が茶をたて、うつわも楽しみながら、お茶を飲む。うつわを眺めようと思うと自然に回すものだね。三回まわして、なんていう儀礼めいた話もあったけど、あれで本当に楽しめるんだろうか。
頂いた和菓子も絶品で、それだけで幸せな気分だった。お茶もうまい。こういう茶の楽しみ方を、今の子たちは知らないのだろうなあ。抹茶は苦いものだと思ってるらしいぞなんて話で盛り上がった。意外と身近なところに、楽しいことはころがっているものなのにね。
(@499)
#4 SVG & MNG
うーん、これら新しい二つの画像フォーマットにネイティブ対応してるのが mozilla のウリだったと思うんだが、今見てみるとMNGは見れないわ、SVGもsodipodi付属のサンプルが見れないわ、わけわからんな。
どっかサポートの現状まとまってるサイトないかなあ。
(@398)
#3 MNG
#2 mozilla -remote
mozillaはなんだか知らんが新しいウィンドウを開くのが異様に遅い。普段はTabExtensinosを使ってシングルウィンドウモードにしてるので問題無いのだが、端末から
$ mozilla hoge.html
などとやるとなぜか新しいウィンドウがあがってしまって泣けて来る。
$ mozilla -remote openURL(file:///path/to/hoge.html)
とかやればいいのだが、非常にめんどくさい。
しょうがないので mozilla-remote なるシェルスクリプトを用意。
#!/bin/sh FILE=`find $PWD/$1 -print` mozilla -remote "openURL(file://$FILE)"
フルパスを得るのにちょっと悩んだが、書いてみればたった2行か。なんだかなあ。
@ げげ:
引数に/からはじまるフルパス与えたら動かないじゃん(馬鹿)
#!/bin/sh if [ `echo $1 | grep ^/` ]; then FILE=$1 else FILE=`find $PWD/$1 -print` fi mozilla -remote "openURL(file://$FILE)"
むー、まあこうするしかないか。
#1 Debian Loves Mikachan
久しぶりにTeXを使ったら、ゴシック体がすべて みかちゃんフォント になっててびっくり。NECの人が書いたであろう真面目なCannaの付属マニュアルがなんともかわいらしい見出しになってしまい、微妙に鬱。いや、決して嫌いじゃないんだが、時と場所の問題というか。
そんなわけで東風に戻せないのかと思ってたのだが、戻し方がわからん。defoma管理下にあるようなので、昔のようにviでさくさくというのも危険そう。うーむ。
とりあえず、 defoma-app update vflib2 してみたらなぜか東風に戻ったのでヨシとするか。こういうの、ちゃんと設定できるようになってるのかなあ。どうもdefomaはいまいち好きになれんなあ……。
(@310)
2003年02月10日(月) [過去の今日]
これはすごい。NLSってなんのためにあるのかよくわかんなかったのだけど、CP932(ShiftJIS Super Set)のファイル名をEUCに変換しつつ読み込めるとは。
しかもやり方も簡単で、mountのオプションにcodepage=932,iocharset=euc-jpというふうに入出力の文字コードをいれてやるだけ。
実際にやってみたが、ホントに読み込めて、なおかつ書き込んでも正常にCP932に変換して書き込んでくれるのでまったく問題が出ない。こりゃいいや。Unicodeにも対応してるようなので、MacOS Xなんかのファイルシステムも読めそうだなあ。
(@580)
#2 MLとBBSの融合システム、仕様検討
前から作りたいと思ってたMLとBBSの融合システムの仕様を検討することに。ようするにMLとして使ってる人にはMLにしか見えないし、BBSとして使ってる人にはBBSにしか見えないシステムが欲しいのだ。
既存のMLシステムをベースにメールを投げるCGIだけあればいいかななどと考えていたが、それだと掲示板としてアレゲなので却下となった。あとはMLの記事をDBに登録して、CGIから呼び出すという案。これもシステムが大げさになりすぎるので却下。ていうかDBわからんし。
ということで、/etc/aliasesで即席メアドを作り、.forwardでmail2dat.plとかに流してFromが合致すればBBSデータを生成してやる、というのがいいかな、と思い至る。しかし、これだと俺にメールが届くたびにこのスクリプトが動作するわけで、サーバへの負担が心配。やはりaliasesじゃなく、新規ユーザを作るべきか? また、登録ユーザにメールを投げる動作もこのスクリプトが受け持つことになるので、その方法もよくわからん。どうせなら汎用性も持たせてみたいし、悩みどころが多い。
(@260)
#1 blogとか日記とか呼ばれるもの
俺としては、このへんは「記事単位でURIを持つ」のが最低条件だと思ってる。それが相互にリンクしあって世界が広がるのが楽しいのだと。
そう思ってると、ある人からツッコミが入った。リンクで返事を書くのは(その人が使ってるシステム上)めんどくさいし、そもそもそういうページを持たない者はどうするのだと。
コメントを受け付けるblog/日記システムはいくつもあるし、slashcodeなんかは最たるものだろう。俺が使ってるhnsも、コメント機能が付いてる。
それをオンにしてないのは、コメントがいらないからではなく、むしろリンクして欲しいからだったりもする。リンク元はたまに見てるし、そういう所にも遊びに行きたい。あんまりリンク張ってくれる人いないけど。
でも自分のページを持ってない人や持ってても書くのが面倒な人のコメントを受け付けることも考えた方がいいのかなあ。そのへんはメールでもちょうだいよとは思うし、受け付けるなら受け付けるで中途半端にせず、slashcodeみたいなシステムを使いたいと思うのだが……。
妥協点で掲示板でも設置しようかなあ。ちょうど作りたいシステムもあるし。
(@129)