コンテキストについて学んだよ。今回もとぴあさんくらむさんに親切に教えてもらったよ。

Perl ではコンテキストっていうのがあって、意識していないとハマるらしい (というかハマった)。サブルーチンを呼ぶところだけを見ても、そのサブルーチンが何を返すかがわからない。

$ perlsh
main[1]$ @arr = localtime;
56
21
1
18
4
106
4
137
0
main[2]$ $scr = localtime;
Thu May 18 01:22:02 2006

最初、なんでただの配列がスカラ変換のときに、タイムオブジェクト?のように見なされて時刻文字列になるんだ?って思ったんだけど、これは localtime がコンテキストによって挙動を変えた (!) 結果らしい。localtime っていう部分だけを見ても、localtime が何を返すかはわからない。


そのコンテキストとやらには、大きくわけてリストコンテキスト・スカラコンテキスト・void コンテキストがあるようだ。

sub context {
if (defined wantarray) { # void context では undef
if (wantarray) { # list context では true
print "List Context!\n";
} else {
print "Scalar Context!\n";
}
} else {
print "void Context!\n";
}
return;
}
@arr = context;
$scr = context;
context;
__END__
List Context!
Scalar Context!
void Context!

という感じで、サブルーチン内で wantarray を呼ぶことによりコンテキストの分岐ができる。wantarray っていう名前はおかしい (配列とリストは区別がある) みたいだけど、歴史的事情がきっとあるんだろう? perldoc でも wantlist であるべきだった的なことが書いてある。

たぶんコンテキストの理解は Perl では必須だろうけど、こういうのって他の言語だとあんまり見ないよね、っていう感じだった。


他今日知ったこと

  • use vars は obsolete。変わりに our
  • 擬似ハッシュには触るな (obsolete)
  1. トップ
  2. perl
  3. 今日のぺるる コンテキスト
  1. トップ
  2. prog
  3. 今日のぺるる コンテキスト

学校だけじゃなくて、しばらくじっとしていたい。

余計なことを言う人とかから離れたい。

あー本当にいやだ。課題をやりたくない。なんでこう暗に脅された感じがするんだろう。すごい嫌だ。もうやめたい。

思うにあれは誠実じゃない。誠実なふりをして実はかなりてきとーだ。嫌だ。それを気付けるんだろうか。無理だろうなぁ。自分では誠実だと、思っているんだ。

起きていても朝がくる。早寝早起きなんてできるわけないだろう。

時間足りないときはどうすればいいんだろう。時間が足りないと連鎖的に何もできなくなる。

  1. トップ
  2. life
  3. 学校いきたくねぇ

ちゃんとサイトにきて見て欲しいとかいう目的で要約しか提供しないっていうのもたまにあるみたいだけれど、要約しか提供されていないなら、よっぽどのことがない限り要約しか読まない。

全文提供されてるとなんとなく全部眺める。

  1. トップ
  2. net
  3. 要約フィード
  1. トップ
  2. web
  3. 要約フィード

やっぱり凝縮されているわけで、共通部分を見つけていくと、どうすればいいのかっていうのが見えるのかもしれない。

Syrup16g の「汚れたいだけ」についていろいろ考えていたのだけれど、なんとなく BURGER NUDS の「指輪」が思い浮かんだ。

「ちょっと……人間ってちょっといい人になりたいとかね、自分がよく生きたいっていうのがあるじゃないですか。そんでやっぱ負けるのは嫌だし、できれば閉じこもってたいけど、でもそんで自分を壊していっちゃうようだったらもう汚れていったりとか、傷つけたりとか傷つけられたりとかしてるほうがまだいいんじゃないかっていう気持ちはあるんですよね」

っていう部分を読んでいて、それが指輪に繋がった感じ。「指輪」で描かれる表面的にも良くあろうとしている状態から、まぁ表ぐらいは汚れてしまっても (錆びてしまっても) いいだろうっていう変化が coup d'Etat においてはアルバム全体として出ているんだなっていう、そういう感じ。


関係ないけど、遺伝子レベルで組み込まれたなんちゃらって誰かもいっていたような気がする。ACIDMAN だっけかな。

  1. トップ
  2. music
  3. syrup16g にしても BURGER NUDS にしても
  1. トップ
  2. thinking
  3. syrup16g にしても BURGER NUDS にしても

もっとよく考えたいのだけれど、なんか時間があんまりないのでもうてきとーに思いつく限り書いておくことにしよう。それが本来の日記ってもんだ。頭に浮かんだらすぐに書けばいい。

少し前に OOエンジニアの輪! ~ 第 20 回 高林 哲 さんの巻 ~ を読んでいて、すごくひっかかったというか、うわーって思ったのがあってそれが以下の部分。

なんだかいわゆる「業界人」っぽい文体、内容、主義、主張なんですよね。考え方が妙に爺くさくて、似通っていることががあって、なんだか皆均一化されちゃってるなと感じることがままありますね。これはどういうことかというと、高校生が書いてる日記と、 40 歳近い人の日記も区別つかないんですよね。あまりにも似通ってて。

なんか妙にここが気になって気持ち悪くてしかたがない。本当にそう思うから。

いろいろ読んでて、特にもうフィードリーダーとかで読んでると「この人って誰だっけ」とか結構思う。さっきも似たようなのを読んだな、とか。でもって仕方ないからサイトに飛んでみるんだけど、CSS も似てたりして、もうわけがわからない。実は全部同一人物が書いているんだろうか……とか思ったりする。怖い。

だからなのかなんなのか、そういう人たちの主張って全然こっちに入ってこなくて、なんていうんだろう、説得力がないっていうか、読んではいるけど頭に入らない。数の水増しみたいな。そんな感じがする。

ちょっとまえに書いたあなたがストリクターになるべきでない10の理由の二番目に「文章の書き方がソレっぽくなるから」って書いたのは実はこれのことを言っていて (人によって捕らえかたが違うだろうから、もし別の意味でとったのであれば、それも別に間違っているわけではないです)、いやストリクターに多いってわけじゃないと思うんだけど、どっかの誰かが非ストリクトなことを言ったときとかのそういう人たち (自分も含めて) の動きっていうのがみんな同じで、すごく気持ち悪くて、なんともいえない。


じゃあ自分はどうなのか (どうありたいのか) っていうのはすごく難しいのだけど、どっちかといえば、そういう同じような感じになりたくない。でもみんな同じようになったほうが楽だなっていうのも思う。だからどっちでもない中途半端な感じに今のところしておきたいし、どっちにしてもなりたくてなれるものじゃなくて、いつの間にかなっていて、それはそれでいいのかもしれないと思う。なんなんだ。Not at all

まぁいいか

  1. トップ
  2. life
  3. 同じような人たち。追いかけるもの
  1. トップ
  2. thinking
  3. 同じような人たち。追いかけるもの

やっぱ二面性が重要だよなぁ。むしろそこから生まれるジレンマとか、そういうの好きだなぁ。ファンタジーとして、だけれど。

究極的には 死にたいようで死ねない 生きたいなんて思えない なんだけど、もっと近いところでもそういうのって沢山あって、まぁ例えばツンデレなんかもそうなんだけど、「嫌いたいようで嫌えない 好きだなんて思えない」ぐらいの状態がちょうどいいとか思うわけで、そういう状態がでてくる女の子っていいなぁって思った。ファンタジーとして。

最近のだともののけ姫みてて思った。「人間なんてきらいだ」ってモロに顔を埋めていうシーンのサンがなんとも可愛くて素晴らしかった。意味不明じゃないよ。意味不明じゃないよ。きもい。


ようはジレンマって切なさを誘発させるからいいんだろうな。いや逆かな。よくわからない。

  1. トップ
  2. life
  3. 最近・二面性
  1. トップ
  2. thinking
  3. 最近・二面性

#hxxk@ircnet に新しく入った。


IRC は良いです。メッセンジャーとかだと、1:1とか、話そうとするたびにセッションを張るという行為が必要になるので話しかけづらいのですが、IRC は常駐という形でぼーっと眺めていられるのでよいです。かなりやる気がないときでも、情報が入ってくるのでよいのです。

  1. トップ
  2. irc
  3. IRC /join

grep とリファレンスがわからなかった。

ちなみに一通りドキュメントは読んでみて、概念っぽいのはわかっているんだけど、実際の挙動がわからない、という感じ。ようするにだめだめ。とぴあさんに助けてもらいつつちょっとわかってきた。

[{:foo=>:a, :bar=>:b}, {:foo=>:c, :bar=>:d}].find {|i| i[:foo] == :a}[:bar]

っていう Ruby のコードを Perl で書きたい場合。

# 答え
(grep { $_->{foo} eq "a"} [{foo=>"a", bar=>"b"}, {foo=>"c", bar=>"d"}])[0]->{bar};
#以下間違い
# クロージャのあとにカンマは要らない
grep { .. }, [..];
# -> 演算子によって左辺がスカラ文字列に変換されてしまうらしい
# この場合 grep でヒットした配列の数の文字列に対してハッシュ操作を
# 行おうとするので、エラー
(grep { .. } [])->{bar};

リファレンスを実データに戻す文法がわからなかった。

$a = [1, 2, 3]; #=> $a is reference of array
@{$a}; #=> で array に戻る
# @($a) と書いて構文エラー

それと Hash ref, Array ref から直接アロー演算子使って中身を取り出すときの構文

$a = ["a", "b", "c"];
$a->[1]; #=> "b"
$h = {0 => "a", 1 => "b", 2 => "c"};
$h->{1}; #=> "b"

一番なるほど!て思ったのは $_

grep { $_ eq "a" } ("a", "b", "c");
foreach (@{$a}) {
print $_;
}

$_ ってよく見るけどなんやねんって思ってた。

grep {|$_| ..}

っていう Ruby 風の説明をされてよくわかった。


疑問

foreach (@{$a}) {
foreach (@{$b}) {
$_;
}
$_; #=> スコープは?
}

あとで実行してみよう。

foreach $i (@{$a}) {
foreach $j (@{$b}) {
print "$i, $j";
}
}

みたいにかけるのかな。my をつけるべき? (つけられる?) っていうか for と foreach は同じなのね

コメントでの指摘で修正

  1. トップ
  2. perl
  3. 今日のぺるる - grep, リファレンス
  1. トップ
  2. prog
  3. 今日のぺるる - grep, リファレンス

すごく視野が広い。そして集中力がある。

レッテルに拘ったりしないし、変な色眼鏡を付けず、いいものをいいものと言ってる。すごいよなぁ。誰でもできることじゃないんだ全然。

  1. トップ
  2. life
  3. すごいなぁと思えるような人は
  1. トップ
  2. thinking
  3. すごいなぁと思えるような人は

Humans on Rails

透明な日々って本当に悪いんだろうか。レールが敷かれて次にいく場所がわかっていることは本当に悪いんだろうか。

色が付くって、レッテルが貼られることなのかもしれない。言い換えると少し疑問になる。でもそれが正しいとは確実にいえない。あんまりピンとこない。

一番良くないのは、レールが終わることじゃなくて、レールが途切れてもガタガタと砂利道を走らないといけないことだと思う。新しいレールを敷くのは難しい。既存のレールは錆びていても機能はする。


レッテルを貼られるのが一番良くない。他人からでも自分からでも。だから、なんらかの組織に所属するのは、できる限り、避けないと。自分が作ったものとか、全体が見渡せるぐらいの大きさ (で、それがちゃんと信用できるなら) ならいいけど、それができないとだめだ。俺は普通に普通でありたい。


今日は寝れる講義が無いから、早く寝ないと

  1. トップ
  2. life
  3. 透明な日々は本当に悪いのか
  1. トップ
  2. thinking
  3. 透明な日々は本当に悪いのか

くせもの。

text/html なドキュメントでは <hr /> と書いても <hr> と表示される。application/xhtml+xml なら問題なし

View Selection Source がパース済みドキュメントを改めてソースとして書き出すからだろうけど、ちょっと混乱する。でもパース済みドキュメントを見せてくれるおかげで、JS で生成した要素とかも見れるから直ってほしいのか直ってほしくないのか微妙。別々の機能として実装してくれればいいんだけど

  1. トップ
  2. soft
  3. Fx の View Selection Source
  1. トップ
  2. web
  3. Fx の View Selection Source

さて、ゴールデンウィーク中にやるべきだったタスクを消費しはじめた。

というか、今日提出の課題どうしよう。やらないとなぁ。やらないとなぁ。


奥歯がぐらぐらする感覚がする。虫歯とかじゃなくて、ね。

  1. トップ
  2. life
  3. タスク--

ヘッドフォン

potrace で 1bit なやつをベクターデータに変換してみた。bmp -> eps。svg にも変換できる。

この絵はそのあと Illustrator でパスの簡略化とかして補正してあるけど、そのままでも結構いい感じ。っていっても使う機会があんまりないんだけど (そもそもいい感じな絵が描けない)


Fx ってネイティブに SVG 描画できるのはいいんだけど、拡大とか縮小とかってできないのかな? というか、SVG 開くとすごい重くなる。


あれ? 課題やろうとしてたんだけどな。なんか朝がきてる。おかしいな。時計壊れた?

  1. トップ
  2. graphic
  3. potrace おもろい
  1. トップ
  2. soft
  3. potrace おもろい

  1. View Page Source ばっかりやるためウィンドウが増えるから
  2. 文章の書き方がソレっぽくなるから
  3. 非ストリクトなソースを徹底的に批判する病になりやすいから
  4. コンテンツを作ったほうが有意義だから
  5. 油断するとよくわからん他人の存在証明に付き合わされるから
  6. かっこいいサイトを見てもソースを見て「ふん、ストリクトじゃないわね! 認めないんだから!」とかなるから
  7. とりあえず Another HTML-lint にかけて戦闘能力を測ろうとするから
  8. パンピーには通じないのにチャットでインライン要素を使いたくなるから Another HTML-lint が Accept: application/xhtml+xml してないことが気になるから
  9. W3C って MIT と Keio と、あと一つなんだっけ?とか思うから
  10. 最良の教科書は仕様書、とか思いはじめるから

指摘を受けて修正置換

  1. トップ
  2. life
  3. あなたがストリクターになるべきでない10の理由

  1. 初心者には何も考えずに入れさせる。(ブラウザがなんであろうが関係ないので、まともかつ IE に似ている Fx に)
  2. IE以外のブラウザを使ったことがない人には勧める。
  3. IE以外のブラウザを常用してる人には勧めない。(何か宗教的だったりするので関わらない)

PC にそんなに詳しくない友人はみんな Fx になりました。


Fx が拡張を入れないと使えないってのは中級者以上の話で、拡張を入れるのが面倒くさいとか、そういう人は Opera なり Sleipnir などを使えばよろしくて、無理して Fx を勧める意味がない。

でも Fx は拡張を入れないでも IE 代替には十分すぎる。母親に Fx 使うようにしむけたけど問題なく使えてた。

  1. トップ
  2. net
  3. Firefox を勧めるとき

コミュニティ加入数が40以上になってると見ないみたいだ。

そんなにキャッチしたい情報がないし30ぐらいが限界でいいかな、と、おもった。

  1. トップ
  2. net
  3. mixi のコミュニティ

だれかしょしんしゃにもわかるようにフィードリーダーのよさをアピールしてください><

うまく説明できないんだよなぁ。「フィード」とかいう謎の横文字がでてきた時点で拒否されたらもうだめじゃん。いやそういう人はいいのか、いやよくないのか、どっちだ。


道具を使って楽をしよう、そのためにとりあえず道具を探してみようっていう人じゃないとだめなんだよなぁ。でもって、使いこなすとなるとさらに一段階上で、道具を隅々まで知っていないと気持ち悪い!とか感じないとだめだよなぁ。感じても使いこなせない人はいるけどさ。例えば俺とかだ。

それで、楽をさせてくれる道具がなかったら作ってしまえってまでいくともうアレなんだけど、そうなったときにいつでもその道具を作るためのスキルっていうのが、欲しい。


ああ、何か作りたいって思ったとき、すぐにそれを実現できるスキルや環境って、すごくそろえるのが難しい。結構誰かの作ったのを見て「そんなの誰でも作れる」なんて思うこともあるけれど、やっぱり作れないんだよねぇ。「そんなの誰でも作れる」ようなのを作れる人は、すごく上の人だ。「これはすごい」ようなのを作れる人は、雲の上の人だ。

  1. トップ
  2. net
  3. フィードリーダー使わないなんて信じられない

GDHM

やりたいことをやりまくった。でも、本当にやりたいことはやってない。なぜならそういうのはやりたくでもできないことだから!

Most beautiful in the world (Good Dog Happy Men) が予想以上に良くて、聴いているとすごく幸せな気分になる。まぁけっこう、独りで切ないんだけどこれ。


なんていうんだろうか、Most beautiful in the world の雰囲気って、文化祭の準備期間みたいな雰囲気で、なんかすごく楽しくて、でも目標の日が終わったらあっけなく終わってしまうような感じがあって、気持ちいい。


学校が始まっても、GDHM の歌が悲しく聞こえないように願う。

  1. トップ
  2. life
  3. ゴールデンウィークは幸せだった。
  1. トップ
  2. music
  3. ゴールデンウィークは幸せだった。

土曜日なので友人と集合した。

常任メンバーのほかに時々参加する友人 (割と一般人。逆に常任メンバーはみんなヲタク) がいるんだけど、今日はそいつの家へどーん。うちは狭いので何人も入れないのです。

まぁ、基本的に IRC で必要な要件はすんでるから話すことがないんだけど、集まればなんか話す的な流れ。というか物理的な貸し借りで集まるんだけどね。んで、まだ誰も20になってないのに枯れた話をしたりとか、ニートとかネオニートとかニート2.0 (嘘) とかの話をしつつ、あとはゲームを見て帰ってきた。パワプロが萌えに走っているっていうのを学習した。いろいろへこんだ。

  1. トップ
  2. life
  3. 枯れた