hogeとはワイルドカードのようなものです。日々起こった、さまざまなこと −すなわちワイルドカード− を取り上げて日記を書く、という意味で名付けたのかというとそうでもありません。適当に決めたらこんな理由が浮かんできました。
07/01/2009 はて [長年日記]
07/02/2009 むう [長年日記]
07/06/2009 あー [長年日記]
■ [Perl] 眠れぬ夜に return %hash
眠れないので今日数分悩んでしまったことでも書くか.
いまだに Perl の言語仕様にハマることがある. 気付けば大したことではないのだけれど.
use strict; use warnings; sub unko1 { my %hash = ( 'unko' => 'buriburi' ); return %hash; } sub unko2 { my %hash = ( 'unko' => 'morimori' ); return \%hash; } if ( $0 eq __FILE__ ) { print keys( &unko1() ), "\n"; print keys( %{ &unko2() } ), "\n"; }
keys( &unko1() ) は動かないが keys( %{ &unko2() } ) は動く. 気付くまでは「ハァ?」って感じなのだが, Perl の関数はスカラーかリストかしか返せないので, &unko1() の返値であるリストを keys に食わせられないと.
まあリストしか返せないこと自体「ハァ?」と言いたくもなるのだが, そこは Perl を使う以上,もう触らぬ神にたたりなしか.
ただエラーメッセージが分かりにくいのが困りもので, "not subroutine entry" とか出るせいで逆に混乱する. 実行時でなくコンパイル時のエラーなのでこう出てしまうのはしょうがないと言えばしょうがないのだけれど,何だかなあ. プロトタイプ宣言した時のような挙動.
Type of arg 1 to keys must be hash (not subroutine entry) at hoge.pl line 15, near ") )" Execution of hoge.pl aborted due to compilation errors.
プロトタイプ宣言と言えば,&@ とかでプロトタイプ宣言した時の挙動も気にかかる. 例えばこんなの↓. 便利なのは分かるけど,なんだかなあ... $_ の参照もきもい.
use strict; use warnings; sub unko (&@) { my $func = shift; map { $func->() } @_; } if ( $0 eq __FILE__ ) { unko { print "$_!!\n" } qw/anta gata doko sa higo sa higo doko sa/; }
ここまできたらもう 1 つこんなの↓. Encode.pm でも使われている有名テクとはいえ, 知らない人が見たら「ちょwww おまwwww」ですよ. リファレンスならいざ知らず,まさか殻ごと破壊されるとは思うまい...
use strict; use warnings; sub hoge { $_[0] = 'omae no ka-chan debeso'; return 'uhihi'; } if ( $0 eq __FILE__ ) { my $val = 'umu'; print &hoge($val), "\n"; print $val, "\n"; }
そりゃこんなんもりもり書いてたら Write once, Read never とか揶揄もされるわ.
□ hoge [perlのハッシュに関する記述、役立ちました。ありがとう。]
07/09/2009 んー [長年日記]
■ [日記] はて
「ロードアベレージ」って奴は I/O wait 中のプロセスについてもカウントされると思いこんでたし,以下の記事を見ると実際 Linux ではそうっぽいんだけど...
しかしながらロードアベレージは正確にはワークロードを示している訳ではない。実行待ちにある理由がページフォールトによる物である可能性もあれば、Linux等であれば単にI/O待ちをしている可能性もある。
[ワークロード - Wikipediaより引用]
今まさに実行可能なプロセスの TASK_RUNNING が含まれるのは想像がつきますが、ディスク I/O 待ちなどのプロセス数もロードアベレージに加えられているというのもポイントではないでしょうか。
[負荷とは何か - naoyaのはてなダイアリーより引用]
Linux では TASK_INTERRUPTIBLE 状態のプロセスはカウントされないくさいので,sleep 中はカウントされないのだろうな. アプリケーション側がノンブロッキング I/O で sleep しながら回すような処理をすると (ブロッキング I/O に比べて) ロードアベレージが下がることがあるという感じだろうか?
が,以下は一体どの OS のことを言ってるんだろう. FreeBSD とか Solaris とかだとまた全然違ったりするんだろうか.
ロードアベレージは、最も簡単に説明すると、実行プロセス数の平均だ。説明によっては実行待ちプロセス数や実行可能プロセス数となっているが、正確には実行プロセス数(実行中プロセス数+実行可能プロセス数)だ。つまり、I/O待ちのプロセスはカウントされない。
[CPU使用率とロードアベレージ - 教えて!gooより引用]
追記
聞いた話によると FreeBSD では I/O wait 中のプロセスはカウントしないらしい.なんと...
あとでソースコード追ってみようかな.
07/11/2009 ふむ [長年日記]
07/15/2009 n- [長年日記]
■ [日記] ち
WBS/ガントチャートに謎のプロジェクト管理ツールを用いるばかりか,ついに無理が生じてきて .xls 的なものを扱う羽目に. 巷に溢れてる OSS およびフリーソフトに結構散見される特徴, 「果たしてこれを成果物として提出できるのか?」問題と相まって, もうカオティックあげるよ的な.
まあそれ以前に何で俺がそんなものを使わざるを得ない状態にあるのかという方が先だがな.
最近,無意識に頭の中で「死ね死ね死ね死ね死ね」と唱えてることがある. 別に誰に対してというわけでもなく,何かに対して殺意があるわけでもない.何の意味もないただの言葉として.
とはいえこれは自分でもヤバイと本気で思う.
追記
選ばれた単語があまりにセンセーショナルだったせいかあらぬ誤解を与えているようなので一応補足しておくと,別に単語は「肉」とか「めそ」とか何でも良かったわけで. 何の意味もないただの言葉としてなのだから,「飲め飲め飲め飲め飲め」とか唱えてるのと何ら変わらんのよね.
まあ,とはいえ,そんな中この単語が偶然でも選ばれてしまったところに問題があるのだろうけれど.teehee
07/21/2009 むう [長年日記]
07/22/2009 ふむ [長年日記]
■ [日記][音楽] プリブラ
後輩に勧められてプリミティブブラックメタルを聴いてみたんだけど.
何か普通に聴けてしまって拍子抜けしたというか何というか. まあ,とはいえ,好きかと問われると限りなく No に近いけどな. たまに妙にかっこいいメロディが出てくるのがドキッとするけど.
■ [戯言][Perl] うーん
自分は & を付けてしまう人なので気になって Perlの謎(その10)サブルーチンの呼び出し方 - 燈明日記,404 Blog Not Found:perl - & はいつ使うべきか を読んだんだけど,& を使うべきではない理由がさっぱり分からなかった...
「ビルトイン関数と同名のユーザ定義関数の区別のために & を使うのは上策ではない」という話にとどまっていたならあまり気にならなかったんだけど,「& が必要な場面」の話にさしかかった時にわけが分からなくなった.スコープが広がった??
結局 & を使うことによる害悪は何なんだろう. 誰か教えてえろい人.
自己解決
第124回 サブルーチンの頭に&は普通つけない - bingo_nakanishiの他言語出身者のためのPerl入門
思いっきし refer されてたや.
まあ廃止された仕様と言いつつ & つきでも動くのも仕様みたいなものだから害悪と言える害悪はないに等しいのかも知れんけど...
07/23/2009 n [長年日記]
07/29/2009 ふむ [長年日記]
■ [戯言] なんというか
僕はもう完全に職業プログラマと化していて,コードを書くことに何の喜びも感じない.むしろ苦痛だ. 最近はもはや業務時間のうちコーディングの占める割合の少なさから,プログラマというよりも SE に近い気がするが. まあ,SE 的な調整だの管理だのという業務はもっと苦痛だ.
はっきり言って,誤解を恐れず言い放ってしまえば,僕は僕自身が面白いと思えるものを作ることができないのなら,そんなものには何の魅力もないと思っている. それが他人にとって有益かどうかなど知ったことではない. もちろん,僕と他人の利害が一致して双方が幸せになるのなら,それはそれで嬉しいのだが.
対価を貰っている以上,個人の好き嫌いでコードを書けるわけなんかない. 嫌いでも退屈でも納得いかなくても,要求に応え一定以上の成果を収め続けるのがプロというものだ (もちろん,信念を曲げてまでと言うつもりはない) が,これがあまりにも長いこと続くとさすがに辟易もしてくる. そういう意味では僕はまだアマから抜け切れていない.
何が言いたいかというと,別に何も言いたくはないのだけれど, プログラミングというか IT 技術というか, とにかくそういうものが嫌いになりそうなのよね. プライベートで「こんなの作って」って言われても 0.3 秒で No と答える自信がある.
まあもともと IT とかいうものはそんなに好きじゃなかったんだって,かなり前に気付いてたんだけどね. 好きだったのは創造であって,それが IT かどうかなんてどうでもよかったのさ.
■ [戯言] はて
Kalevala の Ty zh mene Pidmanula の冒頭がおよげたいやきくんを思い出させてびびる.
□ RYo [プロ=要求に応えて対価をもらうだけではなく、対価をもらうために提案するというのも十分にありだと思います。 それ以外の..]
□ 雪だるま [まぁまぁ飲もうじゃないか! ]
□ atzm [> RYo そこで言う提案というものは品質工学とかそういった分野的に「潜在要求」と呼ぶのだよ. > 雪だるま 膳を..]
□ rethi [趣味は趣味とするか、ってとこかねぇ。 職業サラリーマン化するかどうかとも言うかもしれん。 自分もそうだったし、最近..]
□ atzm [対価の質と量は客観的な評価基軸になるので,あくまで主観である満足感のあるなしで対価の要求度合いが変わるのはあまりいい..]
□ rethi [理屈で言えばその通り。 とはいえ、理屈で納得できなくなってくると(感情的になると?)、 現実として要求しちゃう人のが..]
□ kou [おぉ!!! ライブ・ア・ライブ!!! ]
□ atzm [実は僕はプレイしたことないんですけどね :-) ]
□ kou [まじ!? 自分の中じゃトップクラスなんだけど! ]
□ RYo [ライブ・ア・ライブ最高です! 懐かしい。。。 ]
□ atzm [おもろいらしいとは聞いてるけど. 暇作ってやってみようかなあ. ]