Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
黎明日記
[go: Go Back, main page]

黎明日記 このページをアンテナに追加 RSSフィード

2007-11-20

自粛……したい 01:32 このエントリーを含むブックマーク このエントリーのブックマークコメント

しばらく長文を自粛したいと思う。最低でも週末ぐらいまでは……。がんばろう。

トラックバック - http://d.hatena.ne.jp/scinfaxi/20071120

2007-11-19

起床 04:54 このエントリーを含むブックマーク このエントリーのブックマークコメント

久々に二十二時に眠れたと思ったが一時ぐらいにしょんべんしたくなって起きたらそれ以来眠れず。眠る方向に調整しながらテキストを書くことにする。

精神科精神障害者にとって有用なのか 07:07 このエントリーを含むブックマーク このエントリーのブックマークコメント

精神科の守秘義務はどの程度守られているのか - 黎明日記が何故か話題になっているようなので、もう少し詳しく書いてみる*1

簡単に治りません。馬鹿?とか、「薬で」は治りませんでしたが何か?とか、お前が簡単に治っただけの話じゃねえの?皆が一緒とは限らないんだよお前は運が良かっただけとか、「死ねばいいのに」タグが付いていたりとか、とにかく悲惨なことになっているけれど、とりあえず落ち着いてくれ。どうも私のことを知らない人が多いようなので書いておくけれど、私は一年か二年ぐらい前まではずーっとそちら側にいたんだ*2

包丁持って暴れて「警察官の通報」によって、大阪府知事太田房江の名の元に緊急措置入院を経て措置入院になり*3レボトミンをケツに注射された、悪名高い BPD で、メンサロ/メンヘル板をリアルタイムでチェックしていたクソ野郎が、薬は対症療法ということを知らないわけがないだろう。お前は運が良かっただけなんていうけれど、俺はあんたの三倍は頭がいかれている。あんたは治るかもしれないが、俺のは一生モンだ。要するにお前みたいなんが不幸とかどうとか言ってると胸糞悪いんだよ!*4 本物のキチガイなめんなボケカスあほんだら。

罵倒して落ち着いたところで、いい加減本文に入ろう

そういうわけで、まず書いておかなければならないのは、「病気というものは一枚岩ではない」ということだ。症状(eg. 抑鬱状態)と症状を引き起こしている原因(eg. 恋愛において弱者であること/トラウマがあること)は違う。私が書いた薬で簡単に治る程度の苦しみというのは症状のことだ。薬がその原因までなんとかしてくれるとは思っていない*5

鬱病*6の場合、原因が人間の内面や環境にあることがある*7。その場合、結局のところ原因を取り除くのは医師や看護師カウンセラー心理学者ケースワーカーや警察官の仕事ではなくて、本人がやらねばならないことだ。そして、それというのは大概困難だ。容易ならば、そもそも気づかぬうちに原因を排除しているだろうから。その困難な仕事を鬱に押し潰されつつある状況で行えるのかというと、ほとんどの人はそうではないだろう。大事なことなのでもう一度書くけれど、鬱に押し潰されつつある状態で、その原因を取り除けるわけがない。で、 id:hashigotan(heartbreaking.の人) が、「ほとんどの人」に含まれるならば、馬鹿な人だ。薬で簡単に治る程度の苦しみに一生苛まれ続けるといい。という話になるわけだ*8

もし違うなら謝ろう。精神科など必要ない人間か、医者に原因まで取り除けるケースか、そもそも幸せになどなりたくないと思っているならば、謝ろう。そうでないならば、俺は上に書いた理由であんたは馬鹿だと主張する。 PTSD だそうだが、少なくとも俺の知っている限りでは、 PTSD を医者に頼らず自力でなんとかしようとするのは愚かな行為だ。世の中の精神科医のほとんどがデリカシーの欠片もない人間ならば、あるいはあんたがベトナム戦争以前の世界に生きているならば、それもありだろうと思うが、なんにもしてくれない「社会」とやらのご機嫌をうかがう為に精神科に行かないというのならば、「一生苦しんでいろ」とも云いたくなる。一体あんたの信じている古い価値観や、大事にしている社会とやらが、何をしてくれたんだ! あんたを苦しませているだけじゃないか。人間らしい暮らしを取り戻したいと思うのならば、さっさと行け。

……まあ、今はカッカしていると思うので、何をいわれてもどうとも思わないでしょう。ほとぼりがさめて落ち着いたらよくよく考えてください。

なんというか……

「どうせ誰も読まないし、この手の話は散々書いてきたことなので、省略していいだろう」と思ったらこれだ(精神科の守秘義務はどの程度守られているのか - 黎明日記のことね)。

閉鎖病棟のススメ

そら、昔は違ったさ。保護室というのは治安維持の為だけに存在し、例えば反体制派を拘束しておく為に使われたりもしただろう。しかし今の日本ではそうじゃない。せいぜい不法滞在の外国人や、超レアキャラの宅間守のような人間を閉じ込めておくぐらいのものだ。突然いきなり「二枚の書類」とともに保護室に突っ込まれて、これでもかというほどに拘束されたとしても、「自殺しそう」とか「人を殺しそう」とかそういう状況が収束して落ち着けば、病室で食事を喰うことさえなくなる。

そして保護室というものは入っている本人にとっても有益なものだ。少なくともメンヘルで無職で自宅で苦しんでいるぐらいならば、入った方がいい。ケースバイケースだけれども、まあびっくるするぐらいに落ち着くよ。まず死ぬにせよ生きるにせよ、今後のことを考えようという気力が戻る。そして、今後のことをゆっくり落ち着いて考えるだけの時間が与えられる(ペンは与えられないけど)。

整形手術でお金がないそうなので書いておくけれど、誰かみたいに包丁持って暴れると入院費がタダになります。話がうますぎるぐらいだ*9

心療内科精神科

精神科も金が要るじゃないですか、私は整形手術の借金が残ってるので金銭的余裕は無いです。また過去のトラウマだけではなく、肉体的な悩みが精神に大きく影響しているので、行くとしたら心療内科かな。で、そこで整形手術について説明するのが嫌なんですよ。整形って偏見の目があるじゃないですか…

heartbreaking. 根源的な問題は風化するのが早い

それはやめておいた方がいい。心療内科の連中は何もしてくれない。奴らは患者を治そうなんて思っていないし、症状が進行して、三日三晩眠れなくてもラムネかと間違えるようなものしか出さない。本物の心療内科医はどうだか知らないが、駅前でよく見かける心療内科は大体ウンコだ。精神科医にもウンコが多いけれど、心療内科なんていっている奴は更にウンコだ*10。ラムネもどきを飲まされて、余計に症状がひどくなるだけさ。

あー、そうだ

症状と原因をごっちゃにする人々だからまた間違えそうなので書いておくけれど、措置入院は「精神保健及び精神障害者福祉に関する法律」です。人を殺しそうとか、自殺しそうな場合に適用されます*11。実際に人を殺してどーちゃらこーちゃらの場合は「心神喪失等の状態で重大な他害行為を行った者の医療及び観察等に関する法律」です。

疲れた

なんでこんな文章書いてんだろ。起きたばっかりなのに本当に疲れた。

精神の深淵を覗き込むととにかく消耗する。怪物と闘う者は、その過程で自らが怪物と化さぬよう心せよ。おまえが長く深淵を覗くならば、深淵もまた等しくおまえを見返すのだ。という言葉のとおりだ。少なくとも抑鬱状態でやれることじゃないと改めて実感した。抑鬱状態でこれをやると容易に怪物になってしまう。風邪をひいて熱が38度あるのにマラソンに出るようなものだ。

しかし、これが必要になる時は大抵抑鬱状態だ。だから薬が必要なんだ。薬を飲んででも、キチガイと呼ばれても、戦うべき相手がいるのだ。

政治的な抗争

おー、そうか。俺はこんなことに巻き込まれていたのか。そして丈夫なはずの胃を痛めながら三時間もかけてこんな長文を書き上げたのか。胃酸というのは酢酸よりも凄いもんなんだな。

アホらしくて笑うに笑えない。おやすみ。

ごめん

後から読み直したんだけど、心療内科のくだりはひどく書きすぎだ。ただまあ、経験上そう思うんだ。

早速反応をまとめてみる

  • 2007年11月19日 Vr6ubqg Vr6ubqg マスコミが「発言の前後を見ないで都合のいい部分だけ切り取る」とか言われますが、実はblogもそんな感じで、都合のいいエントリだけ見られてブクマされることが多いと思いました。他人は自分をぜんぜん見てないw
はてなブックマーク - 精神科は精神障害者にとって有用なのか - 黎明日記

ですねぇ……。自分もわりとそう(というか、前後のログまで追ってられない)なので気を付けます。

関連

まったくそのとおり。しかし「可哀想な人」であり続けることがそれほどにも幸福なのかねぇ。私は問題を解決してゆく方が結局のところ幸せになれると思うのだけれど。

そういえば思い出した

散々措置入院の話書いたのに忘れていた。私が緊急措置入院になった決定的な理由はheartbreaking. 問題の文章 −修正済み− 〜二人連れの男女は少しは遠慮して独身者に場所を譲ってくださいの修正前バージョンと同じことをやったからなんだ。つまり当直の医師相手に如何に誰々が憎くて、殺してしまいたいぐらいだということを延々と語ったからだった。

同じ轍は踏んでくれるなよ……。いわなくても解っているだろうが……。

まあ……なんだ……

がんばれはしごたん。モテを攻撃するのもよいけれど、辛い症状を緩和したり、自分がモテになる為の方策を考えるのもいいと思うよ。

経験したことしか話せない 16:30 このエントリーを含むブックマーク このエントリーのブックマークコメント

プログラマは細心の注意をはらって情報を集め、自分の考えをまとめる。例えば、新しい話題を見つけようと国内・海外のサイトを巡回し、そにかかれていることを試しもせずに自分のブログで紹介するなどといった軽々しいことは決して行わない。プログラマは常に自分のコードに書いてある条件分岐が正しいかどうか、変数の取りうる値は適切であるかどうかを気にけるとともに、自分の考え・行動が正しいかどうかを自分自身で確かめるのである。

対して非プログラマインターネット掲示板ブログに書いてあることを鵜呑みにし、さも自分が特別な情報源を得たかのように他人へ間違った知識を吹聴するのである。

プログラマでない人を見分けるライフハック

それはあるわ。いや、変なテキストリンクすることじゃなくて、自分で文章を書く時、知らない経験していない領域に踏み込むのが非常に怖い。自分が書いたものであれ、人が書いたものであれ、なかなか信じられない。例えば長文を書くとふと気づくまでデバッグしてしまう。

どう考えても正しく見えるコードが致命的なバグを孕んでいるという状況によく晒されるからかもしれない。正しいように見えるものほど怖いものはない。

コメントの義務化に見る『mixi疲れ』の秘密 17:04 このエントリーを含むブックマーク このエントリーのブックマークコメント

最新で取り上げられていたので、なんか書こうと思ったんだけど、書くことがないことに気づいた。

そういえば最近 mixi してねぇなぁ。一週間に一回ぐらいしかログインしてないわ……。黎明日記もそんな感じになったら(そしてこの時間をコードに注げれば)ハッピーなんだけどなぁ。

実践『マネーロンダリング』講座 18:00 このエントリーを含むブックマーク このエントリーのブックマークコメント

この連載もっと読みたい。面白い。

松浦大悟議員が「有害サイト規制」「学校裏サイト」などについて質問 18:06 このエントリーを含むブックマーク このエントリーのブックマークコメント

いいたいことをいってくれた。

しんちょく 19:07 このエントリーを含むブックマーク このエントリーのブックマークコメント

Rui さんが書かれた Object Prevalence を出来るだけ頭に詰め込もうとしたんだけど、あんまり入らんかった。寝不足で頭がぽやぽやしたせい。

とりあえず、書き溜めたコンポーネントベースに徐々に上に乗っける奴を書いていくことにします。とりあえず Web サーバとの I/F まわりのデバッグから。

うーむ、しかし朝は何をあんなに怒っていたのだろう。件の人が不幸であることと、俺がプログラミングに行き詰まっていることにはなんの関係もないじゃないか。いやまあ、彼女の文章にムカついたのは確かだけれども、いつもなら「ボケカスあほんだら」は流石になかったろうな。斜め上に原因がある一例を自ら示してしまった。

結局俺のストレスのほとんどはプログラミングがうまくいかないことが原因だということが改めてよくわかりました。反省します。

明日

明日は平常運転の予定です。何もなければ。まあ、今日こそは眠れるだろうし……。

精神科のはなし(最終……にしたい) 00:03 このエントリーを含むブックマーク このエントリーのブックマークコメント

そのとおりですね。今朝の自分は本当にどうかしていた。なので、口が悪かったり、色々と不備があった点については謝ります。ごめんなさい>はしごたんを始めとする関係者一同

ただ、どうも伝わっていないようなのでもう一度書きますが、根本的な原因を取り除くというのは非常に困難なことです。というか本人の視点からすると「無理不可能」なレベルです。それは今回のケースでもそうでしょう。その無理不可能なことに挑むのにそこにある道具を使わないのは謎というか、「バットも使わずに野球するの?」というぐらいに不思議に思ったということです。

それと、これは上の文章には書いていないことですが、その少し前から恋愛における強者弱者という文脈で件の人と私は完全に対立しており、しかも幸せそうにしているカップルを殺すだのどーだのと無邪気に刃を向けてくるので、隙を見つけて反撃してみたと。まあそんなところです。

副作用の話については明らかに書き漏らしというよりもトバしすぎた為にごっそり抜け落ちたことなので、弁解の余地はありません。

なにより気に入らないのはとりあえず謝ればいいのにまず反論しようというその態度だね。関連とかいって正当化に必死なようだけど、少なくともあの高圧的な短文で正論のつもりというのが恥ずかしい。

正論苦言病 - みんなの予想を超えて@はてな

そうですね。それはそのとおりだと思います。この話に私が口を突っ込んだことで得した人は誰もでなかったわけですし、最初からやめておきゃよかったなぁと思っています。そもそもホッテントリなど見なければよかったと。

思うんだけどさ、そういうこと言ってる人たちは、そういう弱い人が実際の生活でまわりに出現してもやっぱりそういう態度に出るのだろうか。

正論苦言病 - みんなの予想を超えて@はてな

ええ、そうです。相手が強者だろうが弱者だろうが、「俺が不幸だからお前やお前の恋人を殺す」といわれて黙っている方が難しい。別にただのメンヘラ相手には決してあんなことは書きません。そんなところです。

『私は、私自身の原因である』 00:44 このエントリーを含むブックマーク このエントリーのブックマークコメント

件の話には反省を含む色々な意味で関わりたくないのだけれど、とてもよい文章(もちろん100%自己反省の意味で「よい」と書きました)なのでリンクしておく。

私もこういう風に反応できたらなぁと思う。

世の中そんなもんですわ。

「そうか、こっちもゲリラ戦を展開すればいいんんだ」と考えた俺は朝引用した怪物と闘う者は、その過程で自らが怪物と化さぬよう心せよ。おまえが長く深淵を覗くならば、深淵もまた等しくおまえを見返すのだ。を早速忘れている。

*1:長文ははっきりと無視されるのに、こんな呼吸をするかの如く書いた短文が 7user とは本当にやってらんねぇ……。

*2:今は症状は落ち着いたし、症状の原因になっていたものも取り除かれたが、再発の可能性は健常者の比じゃないだろう。正直なところ。

*3:こう書くとたいそう凄いことに聞こえるけれど、さほど大したことはない。大田さんと会ったわけでもないし。

*4:もっとも、俺も白血病患者や癌患者に同じことをいわれそうだ。 BPD で PTSD という豪華な人もたくさんいる。

*5:もしそうなら、まず俺が助かったはずだ! そして失敗することもなく、安定した人生を進めたんだ! くそったれ!

*6:「抑鬱状態を頻発する状態」という程度の意味。

*7:もちろんそうとは限らない。別の疾患が原因だとかそういうケースも珍しくない。

*8:そりゃ、これを読んでいるあなたは違うかもしれない。あなたはゴルゴ13のように、未来の世界で伝説や神話になるぐらいの強靭な意思と物事を成し遂げる力を持っているのかもしれない。だから抑鬱状態でありながら、その原因を取り除くというアクロバティックなことができるのかもしれない。もっとも私は「本当にそう思うのなら、今度こそ精神科医に相談した方がいい」と思うけれどね。

*9Wikipedia には「悪用するな」と書いてある。俺もそう思うが、そう言う前にまずは不良外人を入れるのをやめることだ。

*10精神科なのに心療内科なんて言ってたりするから、なかなかやこしい。

*11:実際にそうする意思があるかどうかは関係なくて、指定医から見てそう見えるかどうかによります。

青葉青葉 2007/11/19 09:26 はじめまして・・・

最近体調を崩す人が多いようですね

私も何かしらお役に立てればと思い投稿させて頂きます

オススメの一冊があります


『心の癒し カウンセリング入門』小島崇誌著(文芸社)


日常見落としがちな事柄を簡単な語り口で書いてあります

共感できる部分も多いかと思います

是非一度読んでみてください

(おそらく注文しないと本屋に置いていないと思います)

青葉青葉 2007/11/19 09:27 はじめまして・・・

最近体調を崩す人が多いようですね

私も何かしらお役に立てればと思い投稿させて頂きます

オススメの一冊があります


『心の癒し カウンセリング入門』小島崇誌著(文芸社)


日常見落としがちな事柄を簡単な語り口で書いてあります

共感できる部分も多いかと思います

是非一度読んでみてください

(おそらく注文しないと本屋に置いていないと思います)

てお@携帯てお@携帯 2007/11/19 09:29 どうも。書評を見て、よさそうなら買ってみます。情報ありがとうございます。

2007-11-18

超簡単!大トロなみの旨さ「アボガドの塩辛」 01:19 このエントリーを含むブックマーク このエントリーのブックマークコメント

塩辛もええけど、「アボガドの酒盗」が作れたらなぁ。残念ながらアボガドには内臓がないので無理ですが。

体育会系気質に順応するには? 01:43 このエントリーを含むブックマーク このエントリーのブックマークコメント

メンヘル系と体育会系の相性の悪さは異常。エルフドワーフみたいなもの。

みんなが高々体育の授業でなぜ熱くなるのかがわからない。というか、なぜ体育が授業に入っているのかがわからない。

「うっかり」買ってしまった「2007年の流行りもの」商品 01:51 このエントリーを含むブックマーク このエントリーのブックマークコメント

流行っているから買うというのは謎だ。そこまでして輪から外れたくないのか?

携帯はワンセグにしておいたらよかったなと思っている。俺は大体ゴールデンタイムうんこするからだ。

つか、都市伝説本て流行ったの? わりと好きなんだけど、流行った記憶がない。ウォッカも好きだけれど、流行った記憶がない。

ipod nano が入っているのは心外。 Apple の製品にしてはよくできているのに……。

418 : 不動産鑑定士(長屋):2007/11/17(土) 14:59:14 ID:eqgm0pDl0

おまえら見下して笑ってるけどさ、

誰かが消費しないと世の中は回らないんだぜ?

【2ch】2ャン太研究所:「うっかり」買ってしまった「2007年の流行りもの」商品

まず、買いたいと思うものを買おうと思える値段で売れ。

MMO廃人にありがちなこと 02:03 このエントリーを含むブックマーク このエントリーのブックマークコメント

FPS にハマってた頃は道を歩いていると「撃たれるんじゃないか」と怖くなって、そんなことを思った自分に更に怖くなった。空き缶が地雷や爆弾に見えて怖かった。

それと、 Nethack をしたあとにプログラミングするとモンスターだらけで怖くなる。例えば inc! だと天狗、ニンフ、コカトリス、薬が並んでいるように見える。

ネトゲネカマしてぇな……。

田舎によくありがちなこと 02:08 このエントリーを含むブックマーク このエントリーのブックマークコメント

書いてみる。

スカイガールズで有名な島田フミカネ氏が「エースコンバット6」のディスクを割る→ブログが大炎上 02:45 このエントリーを含むブックマーク このエントリーのブックマークコメント

AC6 のディスクを割るだけでブログが炎上して仕事のことにまで口出されるのか……。嫌な世の中になったな。

em-sigmaem-sigma 2007/11/18 14:00 文字通り「ディスクを割るだけ」だったとしたら――その後、その画像を撮影して、非難と共にウェブで公開しなかったとしたら、この様な事にはならなかった様な気がします。

scinfaxiscinfaxi 2007/11/19 04:50 それはそうなのですが、あまりに過剰に反応しすぎかと。たとえそれが万人にとってよいものであっても、それを気に入らない人はいるものです。(急にスケールのでかい話になりますが)実際に神を冒涜したり、政府を批判したりして殺された人というのは山ほどいるわけです。それというのは主に一部の支配者によってなされたことだと習いましたが、それと同じことを「民主主義的に」行うというのはなんだかなぁと思ったりするのです。

# それに物の価値と世間の評価は必ずずれるものですし。むしろ「ディスクを割る人が現れるぐらいに期待されて、実際に売れている」ともとれる。

em-sigmaem-sigma 2007/11/19 23:06 まず、私はいわゆる炎上を肯定している訳ではありませんし、特に炎上自体が目的である愉快犯は、言語道断だと考えております。あと、これは私が言葉足らずだったのですが(すみません)、非難自体が駄目な事だとは全く思っていませんし、そういった非難を無理矢理捻じ伏せる事も肯定しておりません。

こういった事を踏まえた上で、ディスクを割った画像をウェブ上に公開した事は、いたずらに事態をややこしくした要因にしかならなかったのではないかと思っているのです。今回の場合、非難するにあたって、必ずしもあの画像を掲示する必要は無かった様に思えるので……。

scinfaxiscinfaxi 2007/11/20 01:34 >いたずらに事態をややこしくした要因にしかならなかったのではないか

それは確かにそのとおりですねぇ……。もしかしてわざと炎上させることによって「 AC6 はダメ」という話を流布させたかったのかも、とか勘ぐってしまう。

トラックバック - http://d.hatena.ne.jp/scinfaxi/20071118

2007-11-17

ティム・オライリー氏と対談:「お金がありすぎて失敗した」――「Twitter」創設者の"再チャレンジ" 03:02 このエントリーを含むブックマーク このエントリーのブックマークコメント

Twitter てこんな人が作ってたのか……。どうりで端々から技術力を感じるわけだ。

ウサビッチ 03:16 このエントリーを含むブックマーク このエントリーのブックマークコメント

このアニメすごすぎる……。

精神科守秘義務はどの程度守られているのか 17:51 このエントリーを含むブックマーク このエントリーのブックマークコメント

馬鹿な人だ。薬で簡単に治る程度の苦しみに一生苛まれ続けるといい。

お断りします。

寒さをしのぐ3の方法 17:59 このエントリーを含むブックマーク このエントリーのブックマークコメント

真冬の夜に窓を開けて全裸になるとキーボードが打てなくなる。

ネト充チェック 18:08 このエントリーを含むブックマーク このエントリーのブックマークコメント

六個。

視 力 の 良 い 奴 に は 分 か ら な い 苦 労 18:23 このエントリーを含むブックマーク このエントリーのブックマークコメント

ひとつだけいい点がある。人と話していて、めんどくさくなったら眼鏡を外せることだ。

ダメ人間だもの 22:45 このエントリーを含むブックマーク このエントリーのブックマークコメント

精神科ではよくあること。

2007-11-16

rxvt で壁紙を表示 03:45 このエントリーを含むブックマーク このエントリーのブックマークコメント

rxvt の背景が白色で目につらかったので、壁紙を入れることにした。六時間*1ぐらいかかってうまくいった。

最終的に得られたもの :

/usr/local/bin/gosh /home/theo/bin/rxvt.scm /home/theo/xpm_tmp -T 'urxvt' -bl +sb -fg '#cccccc' -bg '#000000' -geometry 163x55+1+1 -e screen
#!/usr/local/gosh

(use srfi-27)
(use gauche.process)
(use file.util)

(random-source-randomize! default-random-source)

(define *image-file-specs*
  #(("/home/theo/wall/bcc3e5ef.jpg" "#ffffff")
    ("/home/theo/wall/6d79801a.jpg" "#000000")
    ("/home/theo/wall/41adc229.jpg" "#000000")
    ("/home/theo/wall/2603a9f9.jpg" "#ffffff")
    ("/home/theo/wall/876_4426.png" "#ffffff")
    ))

(define (select-image)
  (apply
   values
   (vector-ref
    *image-file-specs*
    (random-integer (vector-length *image-file-specs*)))))

(define (main args)
  (receive (img fg-color) (select-image)
    (let* ((xpm-dir (cadr args))
	   (xpm (receive (_ file _)
		    (decompose-path img)
		  (build-path
		   xpm-dir
		   (string-append file ".xpm")))))
      (unless (file-exists? xpm)
	(run-process `("convert" ,img ,xpm) :wait #t))
      (run-process `("/usr/bin/urxvt" "-pixmap" ,xpm
		     "-bl" "+sb" "-fg" ,fg-color
		     "-geometry" "163x55+1+1"
		     "-bg" "#000000"
		     "-e" "screen"
		     )
		   :fork #f))))

一年三ヶ月前の俺の部屋 04:16 このエントリーを含むブックマーク このエントリーのブックマークコメント

えらくすっきりしているなぁ……。この時は机二号もなかったし、本の塔も、段ボールの谷もなかったんだな。

やったー携帯小説できたよー ギーク(笑) 06:05 このエントリーを含むブックマーク このエントリーのブックマークコメント

 ───俺の名前は Theoria 。心に傷を負ったハッカーアナーキークリエイティブギーク。
俺がつるんでる仲間は10年家から出ていない田中、会社にナイショで脱税している木下。
訳あって産業スパイをやっている東条。
 仲間がいてもやっぱりカネになる仕事はつまらない。今日も木下とオブジェクトデータベースインプリメンテーションで口論になってしまった。ギーク同士だといつもこれだから困る。
そういう時、俺は一人でネットサーフィンすることにしている。心のガベージコレクションってやつ? デバッグともいうかな。

 「これはヤクいぜ……」 そんなことをつぶやきながらムカつくテキストを dis る。
「最近旦那に相手にしてもらえなくて欲求不満なんです……」 どいつもこいつも同じようなセリフしか言わない。
人妻はエロいけど、何かと厄介だから望ましくない。もっとデタッチしやすいプロセスがいい。
「すいません……」 またか、とインテリジェントな俺は思った。 ignore するつもりだったが、
3ナノ秒だけ女を見た。

「ktkr!!!」
 ……違う! ……既存のプロダクトとはデザインが決定的に違う! lambda な電気信号が俺のハードウェアを
駆け巡った……。「……(エロい……!! 俺のカラムをインサートしたい……)」

女はスーツだった。ついていったら火のふいたプロジェクトにアサインされた。「この工期では無理だ!」デスマった。
「ひひ、うひひひひひひひひ」 俺は過労死した。労災は出なかった。ギーク(笑)

メンヘラ(笑)

 ───僕の名前は Theoria 。受験に失敗した BPD 。自虐的で反社会的な病人。
僕がつるんでいる奴は四回堕胎したユミコ、九階から飛び降りて死ねなかったヨシオ。
神様から将軍に任命されたコウタロウ。
 友達がいてもやっぱり鬱の波は苦しい。今日もユミコとゴムをつけるかどうかでケンカしちゃった。
メンヘラ同士だとこうなるから辛いよね……。そんな時僕は自分に罰を与えるんだ。
どうしようもない運命? 自罰的傾向ともいうかな?

 「今日はよく切れるね……」 そんなことを呟きながらカミソリを走らせる。
「クスリは二週間分しか出せないよ」 どの医者も結局はクズばっかりだ。
レボトミンはよく効くけれど、あとに残るからいやだ。もっと抜けのいいクスリがいい。
「もう疲れたよ……」 僕は呟いた。 OD して寝逃げしようと思ったが、うまくいかなかった。

「……」
 ……違う。これまでの鬱とは何かが違う。絶望の淵に立たされた僕に悪寒が走る。
(どうせ何も変わらないんだ……ずーっとこのままなんだ……今日で、今日で終わりにしよう……)

僕は納屋からロープをとってきた。よく締まるように水に濡らしてから梁に結びつける。
(お父さん、お母さん、ごめんなさい……。こんな息子でごめんなさい……)
首にロープをかけ、僕は椅子を蹴った。天井が落ちてきて、タンコブができた。メンヘラ(笑)

クレイジーソルト

ちょっと待て。クレイジーソルトはうまいだろ……常識的に考えて……。

スワップイン スワップアウト 07:44 このエントリーを含むブックマーク このエントリーのブックマークコメント

Non-ghost なオブジェクトは10しかないはずなのに1159もある。それどころかオブジェクト全体が500しかないはずなのにきっちり1500ある。謎だ。謎すぎる……。

眠いので起きたらやろう。こんな調子でいつの間にか金曜日。まだ火曜か水曜ぐらいだと思っていたよ。

死刑執行の停止決議案を採択=制度廃止視野、日米は反対−国連総会委 18:11 このエントリーを含むブックマーク このエントリーのブックマークコメント

国連なんてやめちまえよ。常任理事国はごろつきばっかだぜ……。アメリカ、中国、ロシア、イギリスフランス……。

貴様は真面目に田舎で暮らしたいのかと小一時間問い詰めたい 18:33 このエントリーを含むブックマーク このエントリーのブックマークコメント

アメリカフランスの田舎に行けば農業で儲かるんじゃね?

貴様は本当に都会で暮らしたいのかと小一時間問い詰めたい

いやね、田舎に引っ越してきて解ったことなんだけど、都会に行く奴多すぎだろ。本当にお前は東京や大阪でプログラマーなり SE なりになりたいの? プログラマーや SE の求人があるから、大都市に行くの? 大都市に住みたいから、プログラマーや SE になるの?

大体、プログラマーの求人も、 SE の求人も、ハローワークに行けばうんざりするほどあるじゃん。何考えてんだか……。それでいて、「年老いた両親のことは見捨てたくない」みたいな。「五年ぐらいしたら地元に戻ってくる」みたいな。馬鹿じゃないの。反吐がでる。

言語処理系が書きたいです 19:06 このエントリーを含むブックマーク このエントリーのブックマークコメント

はー……。でも今書いてもうまくいきそうにないしなぁ……。

mixiはなぜ、独り勝ちできたのか 笠原社長が語る 21:17 このエントリーを含むブックマーク このエントリーのブックマークコメント

スーツの勝利だなぁと思う。少なくとも俺にはあんな相互監視システムは気持ち悪くて書けないよ。

ついたー 22:13 このエントリーを含むブックマーク このエントリーのブックマークコメント

折角新しいものが得られそうだったのに、 Twitter 落ちた。

*1:作業時間の5/6は Eterm に費されたわけですが……。

manamemaname 2007/11/16 20:44 ちなみに、私はCインタプリタをLispで書いたら卒業できたよ!
本当はコンパイラ作りたかったけど、そこで時間的挫折してしまったorz

scinfaxiscinfaxi 2007/11/16 21:18 マジか! なんという斜め上。 Lisp インタプリタを C で書く人はたくさんいるけれど、その逆をゆくとは……。

lequeleque 2007/11/16 22:18 C はサブセットなら簡単だから実装してみては?
型は int のみでポインタなし、というところから始めて、徐々に配列を追加していったり
演算子や制御構造をフルセットに近付けて行くというのだとわりと気が楽です。
その一方で、スタック型なり何なりの簡単な VM を実装して
それ用のコンパイラも作れば、ハード側も少し垣間見られて一石二鳥。
私は、授業でそれに近いことをやって、C への理解が深まったような気がします。
;; Gauche で書くなら PEG でパースして抽象構文木は list にして…とか考えると妄想が膨らむ

alohakunalohakun 2007/11/17 00:52 SICP の最終章の課題が,そんな感じでしたよね.

scinfaxiscinfaxi 2007/11/17 03:03 > C インタプリタ

うーむ……。考えておきます。SICP の最後の方はわけわからんすぎて投げ出しました!

トラックバック - http://d.hatena.ne.jp/scinfaxi/20071116

2007-11-15

ブス山さんのモテ哲学 02:19 このエントリーを含むブックマーク このエントリーのブックマークコメント

男と女のちやほやされやすさについて - screw pile driver経由。

ここに書かれていることって大体わかるなぁ……。真面目な話、顔が遺憾な男でもこのくらいやればモテるよ。

理系の学問 02:27 このエントリーを含むブックマーク このエントリーのブックマークコメント

「未知の世界は未知の言語でしか語れない」というだけだと思いますがねぇ……。それは文系の学問でも同じことで、学問というものは「ある言葉が何を意味するか」から始まるものではないですか。文系の学問には数式やプログラミング言語のように「明らかに意味不明」な調子ではないからそう感じるのだと思いますよ(文系のはいちおう自然言語で書かれているので「穏やかに意味不明」だということ)。

Theoria Laevatain 取扱い説明書 03:43 このエントリーを含むブックマーク このエントリーのブックマークコメント

書いてみる。自分自身について。

  • 型式 : Theoria Laevatain (prototype) Version 3 pre-alpha 25
  • 製造年月日不明
  • 大阪製(ただし、脳味噌アウタープレーンから得たもの)
  • 非常に過激な設計になっています。取扱いには十分注意してください。

V3 リリースノート

追加された機能および改良された点 :

  • 極度の鬱や無気力などの重大なバグが取り除かれました
  • 精神状態安定化機構の性能が向上しました
  • Version 2 に実験的に追加されたプログラミングスキルが大幅に向上しました
  • 自律制御機能が刷新されました
  • 貞操と愛情の機能が強化されすぎました
    • これに伴って、基底現実で不特定の若い女性と関わる機能は削除されました
  • 今までよりも口が悪くなっています

見送られた機能 :

  • 相変わらず働きません(経済的独立にはまだ時間が必要なようです)
  • 自己洗脳機能は危険性が高い為、見送られました
  • 家事機能は特に必要ないと判断された為、見送られました
  • 禁煙は負荷が高すぎる上に効果が薄いと判断された為、見送られました
  • 他人に対する思いやりの強化は時間的技術的に困難だった為、見送られました

注意事項

  • 本製品は別売りの住居で動作させることを前提に設計されています。外出は週一回以下に抑えてください。
  • 本製品は Web を通じて動作することを前提に設計されています。基底現実でのコンタクトは控えてください。

トラブルシューティングマニュアル

シャットダウンに失敗します
解決困難なバグです(バグ2214)。特定の薬物やアルコールを与えるか、体力を消耗させてください。
起動に失敗します
仕様です。生活が不規則か、睡眠時間が足りていない可能性があります。生活を整えるか、金銭や性行為や甘いもので欲求を刺激してください。
バグ2214が解決されれば、定時に起動するようになるかもしれません。
働きません
ゲームにハマっている可能性があります(バグ3825)。気が済むまで待つか、気をひいてください。
待遇に満足していない可能性があります。これは仕様です。まずは話を聞いてあげてください。
いずれにも該当しない場合、行き詰まっている可能性があります。
(日本語ばかり書いて)プログラムを書いてくれません
不定期に行われるアップデートです。48時間以上続いた場合は「働きません」を参照してください。
すねてしまいました
攻撃的な人ほど落ち込みやすいものです。アルコールを与えるか、よく話し合ってください。
飲酒しています
夜、飲酒するのは仕様です。これはバグ2214を検出し、回避するためのものかもしれません。
昼間から飲酒している場合、ストレスが溜っているか、生活が不規則で今から眠ろうとしているかのどちらかです。
喫煙しています
仕様です。自宅以外で動作させる場合は注意してください。
有害なコンテンツを生産しています
「防御」の可能性があります。詳しくはマニュアルページ(過去ログ)を参照してください。
いうことを聞きません
取るに足らないもの(守っても利益にならないもの)と判断されています。十分な対価を与えましょう。
定職につきません(仕事や学校をすぐにやめてしまいます)
リリースノートに書かれているとおり、仕様です
唐突に意味不明なことを話し始めました
朝ではありませんか? 夜通し考えていたことを寝る前に出力していると思われます。
眠そうにしていませんか? 単に寝ぼけているのだと思われます。
突然動作が停止しました
負荷の高い思考をしています。動くまで待ってください。
待てない場合は「叩く」、「殴る」などのコマンドで SIGCONT を送ることができますが、直後にあなたも SIGCONT されます。
SIGCONT が無視される場合、眠っているか気絶している可能性があります。
メモリの一部を自分自身で破壊しています
極度のストレスに晒されているおそれがあります。
(この機能は公式には Version 2 で削除されましたが、ごくまれに起こる可能性があります)
コアダンプしました
病気の可能性があります。医師に相談してください。
血中アルコール濃度が上がりすぎていませんか? 十分に吐かせた後、水を飲ませてから眠らせてください。
薬物を大量摂取したり、首を吊ったり、ビルから飛び降りたりしていませんか? 極めて大きなストレスに晒されている可能性があります。
なかなか射精しません
仕様です。どうしても精子が必要な場合は人工受精をおすすめします。

追記

早漏なのか……。羨ましいぜ。

PHP 04:22 このエントリーを含むブックマーク このエントリーのブックマークコメント

http://d.hatena.ne.jp/jknaoya/comment?date=20071112#c の PHP に関する議論がなんだか参考になる。ところで、 PHP にはなぜ directory-fold がないのだろう……。

Ruby ですかー ちょっと調べてみたのですが lambda で call 書かないといけないのがこわいですね><

女子高生ぷろぐらまーなお☆のブログ

Common Lisp の funcall が由来なのでは?(CL と違って .call を最適化等にうまく利用できているようには見えませんが)

秋の夜長に、私の、元嫁との離婚修羅場話をダラダラ書きます 05:27 このエントリーを含むブックマーク このエントリーのブックマークコメント

惜しいな。すぐに再婚せずにアレゲな関係を楽しめばいいのに。

ホネホネロック 05:29 このエントリーを含むブックマーク このエントリーのブックマークコメント

可愛すぎるだろ……。

韓一くん 05:29 このエントリーを含むブックマーク このエントリーのブックマークコメント

もうマンガ化しちゃえよ……。

Nethack のバグ? 16:40 このエントリーを含むブックマーク このエントリーのブックマークコメント

昨日気づいたんだけど、書き忘れていた。

ゲヘナからはモーロック以外の神に祈ったり捧げたり出来ないはずなのに、プレイヤーと同族である人間の死体を捧げたら、物凄い勢いで怒られた。その後、他種族の死体を捧げてみたが、捧げられず。

ミカンの缶詰、中身はビワ!「はごろも」が3万缶回収へ 16:52 このエントリーを含むブックマーク このエントリーのブックマークコメント

こんなミスってあるもんなんだなぁ……。

うちの姉貴がやってたサイトで以前乗っ取りがわいた 17:00 このエントリーを含むブックマーク このエントリーのブックマークコメント

これはなんという姉。厨ちゃんウラヤマシス……。

悪口を気にしない方法 17:02 このエントリーを含むブックマーク このエントリーのブックマークコメント

コミュニティの中心から外れているけれど、いじめられキャラでもない」という微妙なポジションにつくと何もいわれなくなるよ。

三人ぐらい投げ飛ばしたらもっと来た 17:54 このエントリーを含むブックマーク このエントリーのブックマークコメント

76 名前:以下、名無しにかわりましてVIPがお送りします。[] 投稿日:2007/11/15(木) 02:20:36.43 ID:bpIAc2e60
家に帰ってから親と喧嘩した。母親が怖くなって警察に連絡したらしいが、
警察の方が五人程家に来た。三人ぐらい投げ飛ばしたらもっと来た。
おれは取り押さえられて施設に連れて行かれた。
ハイエナログ 家出した話する

あるあるwwwww黄金パターンwww

疑問 18:05 このエントリーを含むブックマーク このエントリーのブックマークコメント

id:jdnaoya と id:jknaoya と id:jcnaoya と id:jsnaoya はどこまで同一人物なのか……。

id:olnaoya をとってやろうと思ったら既に取られていた。

結婚しました 22:35 このエントリーを含むブックマーク このエントリーのブックマークコメント

これはすごい。

「日本はWeb 2.0を飛び越すかも」--ティム・オライリー伊藤穣一と語る 22:42 このエントリーを含むブックマーク このエントリーのブックマークコメント

モバイル通信の話題も盛り上がった。O'Reilly氏は「米国でも、次にくる大きな波はモバイルと言われている」と切り出し「日本はもしかしたらWeb 2.0の波を飛び越して、いきなり次の波に乗る可能性もある」述べた。

伊藤氏も携帯電話に限らず、日本の家電に期待を寄せている。「日本の家電製品には、まだ神通力が残っている」と切り出し「日本でもっとも目が肥えているのはコンシューマー」「日本の家電メーカーは、コンシューマーの動向をよく観察している」と語った。

「日本はWeb 2.0を飛び越すかも」--ティム・オライリー、伊藤穣一と語る:モバイルチャンネル - CNET Japan

i-Pot のことか!*1

*1:実験開始が97年6月というんだから、先見の目がありすぎ。しかし更なる展開がないのが残念すぎる。

2007-11-14

日記の名前を戻した 02:03 このエントリーを含むブックマーク このエントリーのブックマークコメント

自分で書いた癖に「ばーちゃるねっとぷろぐらま ておりあ(笑)」というのにムカついてきたので「黎明日記」に変更。

strtok で文字列を区切ってみる 02:34 このエントリーを含むブックマーク このエントリーのブックマークコメント

scanf("%s", hogehoge) だと半角空白でも区切られてアレなので、strtokを参考に書いてみた

#include <stdio.h>
#include <string.h>
#define MAX_STRINGS 80

int main(void){

  // 区切られる文字列
  char str[] = "3 blessed scroll of charging\n3 blessed scroll of identify\n\nfixed +2 blessed Magicbane\nfixed +3 blessed gauntlets of power\nfixed +3 blessed Mjollnir\n\nblessed +2 gray dragon scale mail";

  // 区切り文字の羅列
  char tkn_str[] = "\n"; // この場合改行のみ

  int i;
  int str_count; // 実際に読み込まれたトークンの数
  char *data[MAX_STRINGS]; // 区切り文字で区切られた個々の文字列(トークン)が入る
  
  data[0] = strtok(str, tkn_str);
  for(i = 1; (data[i] = strtok(NULL, tkn_str)) != NULL; i++) ;

  str_count = i; // ここでの i の値が読み込まれたトークンの数になる

  for(i = 0; i < str_count; i++) printf("data[%d] : %s\n", i, data[i]);

  return 0;
}

実行例 :

$ gcc _2.c && ./a.out
data[0] : 3 blessed scroll of charging
data[1] : 3 blessed scroll of identify
data[2] : fixed +2 blessed Magicbane
data[3] : fixed +3 blessed gauntlets of power
data[4] : fixed +3 blessed Mjollnir
data[5] : blessed +2 gray dragon scale mail

ちなみにサンプルのテキストNethack をやっていて「願った」もの一覧。灰色ドラゴンの鱗鎧に fixed 付いてないじゃん。こええ……。

02:51 このエントリーを含むブックマーク このエントリーのブックマークコメント

咳がひどい。一度病院に行った方がよいな……。

全てのWEBエンジニアはいま「産業革命前夜」のイギリスにいる 14:54 このエントリーを含むブックマーク このエントリーのブックマークコメント

増田経由。読んで面白かったら親父に読ませてみようかな……。

トラックバック - http://d.hatena.ne.jp/scinfaxi/20071114

2007-11-13

なぜ若者は海外旅行しなくなったか 00:21 このエントリーを含むブックマーク このエントリーのブックマークコメント

住んでいるところが風光明媚なのでわざわざリゾート(笑)に行きたいと思わない。

難しい言語 02:22 このエントリーを含むブックマーク このエントリーのブックマークコメント

最近この手の「ほげ言語は難しい」という主張は「よくある勘違いのひとつだな」と思うようになった。とにかくプログラムを仕上げることと、ある言語に熟練することは違う。既に言語 A で十分にプログラミングできる能力を持っていれば、言語 B のおおまかな文法と意味を抑えることで、その言語を使って「とにかくプログラムを仕上げる」ことはできる*1。しかし、それは言語 B に熟練したことにはならないし、出来上がりのプログラムもひどいものだ。

書いていたら用事が入ったので、とりあえずここで終わり。

素質?

全部とけて喜んでいるところ。虚しい。問2だけど Joel さんのコードとはえらく違って見えるな(やっていることは同じだけど)。

#include <stdio.h>

int main(int argc, char **argv){
  int i;
  for(i=1; i<argc; i++)
    fputc(**(argv+i),stdout);
  
  return 0;
}

accumulate

問1だけど Scheme でやっても全く面白くないので、 C でやってみた。

#include <stdio.h>
#include <stdlib.h>

#define car(x)(x->car)
#define cdr(x)(x->cdr)

typedef struct cons_cell{
  intptr_t car;
  intptr_t cdr;
} CELL;

int accumulate(int (*combiner) (int, int), int null_value, CELL* l){
  if((void *)l == NULL){
    return null_value;
  }else{
    return combiner(car(l), accumulate(combiner, null_value, (CELL*)cdr(l)));
  }
}

int acc_proc(int a, int prev){
  return a*a + prev;
}

CELL* allocate_cell(){
  CELL *p = (malloc(sizeof(CELL)));
  if(p == NULL){
    puts("ALLOCATION ERROR");exit(1);
  }
}

CELL* array_to_list(int *a, int size){
  int i = 0;
  CELL* c = allocate_cell();
  CELL* l = c;
  for(; i<size; i++, c = (CELL *)cdr(c)){
    car(c) = (int)(*(a+i));
    cdr(c) = (int)allocate_cell();
  }
  cdr(c) = (int)NULL;
  return l;
}

int main(void){
  int a[] = {1,2,3,4,5};
  CELL* l = array_to_list(a, 5);

  printf("%d\n", accumulate(acc_proc, 0 , l));

  for(; (void *)l != NULL; l = (CELL*)cdr(l))
    free(l);

  return 0;
}

どう見ても Lisp です。本当にありがとうございました

追記

コメント欄で Shiro さんに大変おちゃめに突っ込まれたので修正してみた。

ポインタを格納可能な整数型に関する定義

intptr_t
ポインタを格納するのに適切な符号付き整数型の typedef 名
uintptr_t
ポインタを格納するのに適切な符号なし整数型の typedef 名

void* を (u)intptr_t に変換でき、かつそれを void* に戻せ、その結果が元のポインタと等しくできる整数型。これらの型は任意である。

プログラミング言語 C の新機能

モダンだ……。

「東大が最低ライン」 02:28 このエントリーを含むブックマーク このエントリーのブックマークコメント

「東大が最低ライン」というよりも「形式的な(書類上の)学歴は関係ない」ということではないですか? あの二人がそんなケチ臭いというか、偏屈なことをいうとも思えないですし*2

追記

どうやら私の勘違いでした。すんません。

Hの最中にしてもらえると愛情を感じること 02:32 このエントリーを含むブックマーク このエントリーのブックマークコメント

出した後ってそれほどにも何もしたくなくなるもんか?

脱オタ 02:34 このエントリーを含むブックマーク このエントリーのブックマークコメント

服なんてしまむらでええよ。いや、この増田みたいに大金持ちなら別だけれど、ファッションデザイナーじゃないのなら服にカネ出しても仕方ない。

……みんなだって、 OS は Windows だろ?

第一印象 02:41 このエントリーを含むブックマーク このエントリーのブックマークコメント

私には「女はちやほやされやすい」の一例に見えました。「俺は理系だ」といっても、誰からも叩かれないし、ほめられもしないけれど、「あたし理系なの」というだけでこれほどとはねぇ……。つくづく男に生まれたことが悔やまれる。

ガソリンスタンド客、給油後に車を忘れ歩いて帰宅 16:06 このエントリーを含むブックマーク このエントリーのブックマークコメント

眼鏡をしたまま顔を洗ったり、イヤホンで音楽聞きながらイヤホンを探したりする。いちばんひどいのはプログラミングしながら「そろそろプログラミングしないとなぁ」と考えていること。

元彼について考えてたら涙出てきた 16:07 このエントリーを含むブックマーク このエントリーのブックマークコメント

まー、云いたいことはわかるんだけどさぁ、セックスできねーなら付き合うなよ。「働きたくないけどカネほしい」っていってるようなもんだぜ。

哲学的なSFを教えてください。 17:49 このエントリーを含むブックマーク このエントリーのブックマークコメント

id:jonathans 向け。

ファイルポインタ 19:20 このエントリーを含むブックマーク このエントリーのブックマークコメント

知人がファイルポインタで苦労しているので、まとめてみようかと思ったが、やるまでもなかった。

ちょっとやってみた

ファイル入出力がまとまっていてよいと思ったのだけれど、 256 バイトずつ読み出すのではイメージしにくいだろうから、改造して一文字ずつの例を書いてみた。

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
  FILE *fp;
  char s;

  fp = fopen("a.txt", "r"); // ファイルを開く
  if (fp == NULL) { // open に失敗したら NULL が返ってくる
    printf("file open error!!\n");exit(1);
    // 失敗したことを報告して終了(exit)する
  }
	
  for(s = fgetc(fp); // ファイルポインタ fp から一文字入力
      s != EOF; s = fgetc(fp)) {
    // while ((s = fgetc(fp)) != EOF) でも OK

    fputc(s, stdout); // 標準出力に一文字出力
  }

  fclose(fp); // ファイルを閉じる

  return 0;
}

cat コマンド

ごくごく簡単な cat を実装してみた。普通に書いたら Plan9 の cat と同じような構成になった。

#include <stdio.h>
#include <stdlib.h>

#define BUFFER_SIZE (1024*4)

void cat(FILE *fp, char* buf, int bufsize){
  while(fgets(buf, bufsize, fp) != NULL){
    fputs(buf, stdout);
  }
}
      
int main(int argc, char **argv){
  int i;
  char buf[BUFFER_SIZE];
  FILE *fp;

  if(argc == 1)
    cat(stdin , buf, BUFFER_SIZE);

  else
    for(i=1; i<argc; i++)
      if((fp = fopen(*(argv+i), "r")) == NULL){
	printf("FILE ~s CANNOT OPEN!", *(argv+i)); exit(1);
      } else {
	cat(fp , buf, BUFFER_SIZE);
	fclose(fp);
      }

  return 0;
}

実行例 :

$ gcc cat.c && ./a.out a.txt b.txt|./a.out|./a.out
着の身着のまま気楽な臥所 背嚢枕に外套かぶりゃ
背の温みで雪解けかかる 夜具の黍殻しっぽり濡れて
結びかねたる露営の夢を 月は冷たく顔覗き込む

命捧げて出てきた身ゆえ 死ぬる覚悟で吶喊すれど
武運拙く討死にせねば 義理にからめた恤兵真綿
そろりそろりと頚締めかかる どうせ生かして還さぬ積り

連続する二つの改行までが a.txt で残りが b.txt 。

デバッグプリント付き cat

デバッグプリントを付けてみた。さすがにここまでやれば解るでしょう……。

#include <stdio.h>
#include <stdlib.h>

#define BUFFER_SIZE (1024*4)
#define DEBUG_MODE_P 1

void dputs(char *s){
  if(DEBUG_MODE_P){
    fputs(s, stderr);
    fputc('\n', stderr);
  }
}
void cat(FILE *fp, char* buf, int bufsize){
  char debug_str[100];

  while(fgets(buf, bufsize, fp) != NULL){
    
    sprintf(debug_str, " read %d byte", bufsize);
    dputs(debug_str);

    fputs(buf, stdout);

    sprintf(debug_str, "write %d byte", bufsize);
    dputs(debug_str);

  }
}
      
int main(int argc, char **argv){
  int i;
  char buf[BUFFER_SIZE];
  FILE *fp;
  char debug_str[100];

  if(argc == 1){

    dputs("\n ** RUN PIPE MODE");

    cat(stdin , buf, BUFFER_SIZE);
  } else {

    dputs("\n ** RUN FILE CONCATENATE MODE");

    for(i=1; i<argc; i++)
      if((fp = fopen(*(argv+i), "r")) == NULL){
	printf("~s cannot open!", *(argv+i)); exit(1);
      } else {

	sprintf(debug_str, "%s open", *(argv+i));
	dputs(debug_str);

	cat(fp , buf, BUFFER_SIZE);
	fclose(fp);

	sprintf(debug_str, "%s closed", *(argv+i));
	dputs(debug_str);

      }
  }
  return 0;
}

実行例 :

 
 ** RUN FILE CONCATENATE MODE
a.txt open
 read 4096 byte
write 4096 byte
 read 4096 byte
write 4096 byte
 read 4096 byte
write 4096 byte
 read 4096 byte
write 4096 byte
a.txt closed
b.txt open
 read 4096 byte
write 4096 byte
 read 4096 byte
write 4096 byte
 read 4096 byte
write 4096 byte
b.txt closed
 
 ** RUN PIPE MODE
 read 4096 byte
write 4096 byte
 read 4096 byte
write 4096 byte
 read 4096 byte
write 4096 byte
 read 4096 byte
write 4096 byte
 read 4096 byte
write 4096 byte
 read 4096 byte
write 4096 byte
 read 4096 byte
write 4096 byte
 
 ** RUN PIPE MODE
 read 4096 byte
着の身着のまま気楽な臥所 背嚢枕に外套かぶりゃ
write 4096 byte
 read 4096 byte
背の温みで雪解けかかる 夜具の黍殻しっぽり濡れて
write 4096 byte
 read 4096 byte
結びかねたる露営の夢を 月は冷たく顔覗き込む
write 4096 byte
 read 4096 byte

write 4096 byte
 read 4096 byte
命捧げて出てきた身ゆえ 死ぬる覚悟で吶喊すれど
write 4096 byte
 read 4096 byte
武運拙く討死にせねば 義理にからめた恤兵真綿
write 4096 byte
 read 4096 byte
そろりそろりと頚締めかかる どうせ生かして還さぬ積り
write 4096 byte

fread/fwrite 版

masa_edw 『バイナリファイルのとき困るのでfgets/fputsはfread/fwriteの方が良いかと。』(2007/11/13 19:02)

とのことなので、書いてみた。

void cat(FILE *fp, char* buf, int bufsize){
  char debug_str[100];
  int n;

  while((n = fread(buf, sizeof(char), bufsize, fp)) > 0){ // 入力
    
    sprintf(debug_str, " read %d byte", bufsize);
    dputs(debug_str);
    
    if (n != fwrite(buf, sizeof(char), n, stdout)){ // 出力
      puts("write error!"); exit(1);
    }

    sprintf(debug_str, "write %d byte", bufsize);
    dputs(debug_str);

  }
}

これだと ./a.out ./a.out みたいなコマンドを実行してもうまくいく様子(本当にうまくいっているのかどうか自信ない)。

*1:その言語が既存のプログラミング言語から相当にかけ離れていない限りは。

*2:「そうであってほしい」という願望なのかもしれない。

masa_edwmasa_edw 2007/11/13 19:02 バイナリファイルのとき困るのでfgets/fputsはfread/fwriteの方が良いかと。

みずしまみずしま 2007/11/13 19:12 細かいツッコミなんですが、Cellのcdrがint型なのは何故なんでしょう。

typedef struct cons_cell{
int car;
int cons_cell *cdr;
} CELL;

で良いのでは。

みずしまみずしま 2007/11/13 19:13 すいません。intが残ったまま&struct;付け忘れでした。

typedef struct cons_cell{
int car;
struct cons_cell *cdr;
} CELL;

ですね。

scinfaxiscinfaxi 2007/11/13 19:26 > masa_edw さん

書いてみました。結局 Plan9 の cat を参考にしてしまったorz

>みずしまさん

これはわざとなのです。この例だと struct cons_cell *cdr; でもうまくいきますが、 Lisp だと cdr に CELL がくるとは限らないので、「32bitの何か」というぐらいの意味で int にしました。

あー、そうか。 CELL * にキャストすれば整数でもなんでも突っ込めるか……。

# 最近 C に型がある理由がよくわからなくなってきた。

shiroshiro 2007/11/13 21:05 sizeof(int)==4でsizeof(CELL*)==8だと困るよん。
イマドキならintptr_tにしておくのが無難かな。
void*でも大抵動くけど、sizeof(void*)==4でsizeof(long)==8というプラットフォームがたまにあったりする。

scinfaxiscinfaxi 2007/11/14 01:56 勉強になりました。 Gauche でもそのようになっていますね。

/*
* A word large enough to hold a pointer
*/
typedef intptr_t ScmWord;

2007-11-12

無題 14:20 このエントリーを含むブックマーク このエントリーのブックマークコメント

べにぢょ は なかまをよんだ!

あるふぁぎーく があらわれた!

ギークなお姉さんは好きですか

スライムドラゴンを召喚するようなもの。

メンヘル系男子の取扱説明書 16:28 このエントリーを含むブックマーク このエントリーのブックマークコメント

読みたい人いる?

追記

よくよく考えたら弾さんと同じような軌跡を辿っていることに気づいた(404 Blog Not Found:プライドの高さ=井戸の高さ)。一般的に幼年の頃からのプライドというのは壊れるのが早ければ早いほどダメージは少ないそうだけど、正直高校受験じゃなくて大学ぐらいまで先伸ばししたかったなぁ……。

男に限らず、メンヘルな人々というのはプライドをずたぼろに引き裂かれていることが多いので(だから死にたがるんだ)、「ショックが強すぎて大変なことになった例」という切り口から書いたらそれなりに面白いかも。

引き裂かれたプライドを取り戻すために

一番確実なのは何かを作ることだろうなと思う。もっと広くいうと、仕事をすることだろうか。もっとも、この手の状況では朝起きることや夜寝ることさえ難しいので、社会に出て働くなどというのは非現実的だ。なので、プログラムを書いたり、絵を描いたり、音楽を作ったりと、一人でやれることぐらいしか選択肢はないのだけれど。

何かを作ろうと挑戦し続けることによって余計に傷つくだろうし、「今度こそ本当に消えてしまいたい」と何度も何度も何度も思うだろうけれど、それと同時に小さな小さな「武器」というか「力」のようなものを手に入れるはずだ。そうすれば道は開けたようなもんだ。その「力」を育ててゆけばよいだけだ。

「何をやるか」というのは大きな問題だ。「これが得意になれるのなら、寿命が半分になってもいい」と思えるものがあればそれを選べばよいけれど、そうでない人は、現実の社会で役立つもののうち、興味のあるものを選ぶとよいかと思う。そうすればそれを足がかりにして、社会との接点を取り戻せるかもしれないから。なお、母集団がそれなりに大きくて社会的な評価が得られるものの方が引き裂かれたプライドを取り戻すためにはよいだろうなと思う。マイナーな世界で生きるということは、それがなんであれ苦しいものだ。

ただし、引き裂かれたプライドを取り戻すことが目的になってはいけない。そうなるとなぜかうまくいかなくなる*1。そうではなくて、「俺はこれをやる為に生まれてきたんだ。俺がやらなくて誰がやる」というような発想が必要だ。文章に書くと大変アホらしいけれど、精神的な活動の土台がめちゃくちゃに壊されてしまったのだから、何らかの手段で補修する必要があるのだ。まったく実態の伴わないもので補修されたのなら、崩れる日も近いだろうけれど、半分ぐらいならば意識的にウソを混ぜても大丈夫だ。

プライドの解体

重箱の隅で申し訳ないのですが、ひとつ気になったので。

弾さんのようなショック療法で破壊してもいいんだけれど、問題は普段の日常の 中からいきなりそういう環境へと身を移す機会を誰もが持っているわけではないことだ。

Shiro

括弧の付いた「プライド」というのは往々にして、実際の能力や、その人の社会的価値に対して何倍にも何十倍にも膨れあがり、しかも成長し続けるものなので、いずれプライドを支えている本人の鈍感さがプライドの巨大さに耐えられなくなって、小さな衝撃で瓦解してしまうのではないかと思います。そういう大規模なプライドの崩壊というのは非常に危険なので(「軽く五年ぐらい消え去る」というアレ)、成長したプライドを少しずつ削り落としたり、成長の速度を低減させる必要があるのではないかと思うわけです(私の中ではこれが春になったらコートを脱ぐように、気軽に脱ぎ捨てるコツを身につけることに繋がる)。

イントロスペクションとパターン

大規模なプライドの崩壊を避ける為には、まず何よりも「現在のプライドがどのくらい実態に見合ったものなのか」を頻繁に検査する必要がある。これはまあ感覚的なものだけれども、実態に対してプライドが小さすぎると他人から見て卑屈になってしまうし、実態に対してプライドが維持不能なぐらいに大きいと、崩壊を引き起こしてしまう。一度大規模な崩壊を経験すると、「大体どこらへんからプライドが実態に伴わず成長してゆくのをコントロールできなくなるか」が解るようになるし、レッドゾーンが解ればどこまで踏んでよいのかも解るようになる。なので、やっぱり早いうちに一度経験しておいた方がよいのかもしれない。十代後半といわずに、小学校五年生ぐらいでね。

プライドが成長しすぎて崩壊してしまうひとつのパターンは困難な問題に取り組んでいる時だ。特に動かせない条件が厳しすぎるとパワープレイでしか解決できなくなり、より大きな出力を得るためにプライドを利用するようになってしまう。そうなると、無意識のうちにプライドが成長してゆき、雪隠詰めになって後退できなくなる。後退できなくなると、つまり余裕がなくなると、冷静な判断も失われるもので、更に巨大な出力を得ることで、状況を動かそうとしがちになる。そうなると、とんでもない敗退を引き起こすし、仮にうまくいってもひどい痛手を負うという、「勝っても負けても損をする勝負」に追い込まれてしまう(こーゆー視点から見ると、受験と賭博ってよく似ているなぁ……)。

これを避ける有名な方法は「勝負に熱くならない」ことだ。常に勝っても負けても得をするように状況を作っていく必要がある。壁に向かって怒鳴り散らすのは馬鹿馬鹿しいことだと肝に命じておくことだ。また、勝負に熱くなろうとする時は、「検査」を頻繁に行うべきだ。そして、道具としてプライドを利用してゆく時は、現在のプライドは一時的かつ架空のものだと強く意識しなければならない。

おわりのことば

こんな感じでどうよ?

プログラ魔法学に関する考察 16:35 このエントリーを含むブックマーク このエントリーのブックマークコメント

こういうのはネタとして魔界のものを召還して見せ物にするくらいなら問題ないのだけど、普段の作業や仕事のコード、特に他人とシェアするコードで必要もなく闇の力を利用すると「黒魔術使い」「ダークサイドに堕ちたな」と言われるので要注意。生半可な気持ちで禁呪を使うと高い代償を支払う羽目になる。

プログラ魔法学に関する考察 - 西尾泰和のはてなダイアリー

某言語処理系のコードには実際に Black magic などと書かれていたりする。もちろん私には理解できない。

cat と cdr 16:54 このエントリーを含むブックマーク このエントリーのブックマークコメント

ソフトウェアの単純さ - Plan9日記経由。

UNIX嫌いの間では、cat(1)は悪いユーザインターフェースデザインの正統な手本とされている。それはこの悲しげなまでにわかりづらい名称のためである。catは、ファイルの連結(concatenate)に使うよりもむしろ標準出力への出力に使われることの方がはるかに多い。後者の使用法に対するcatという名称は、ちょうどLISPのcdrのように非直感的である。

cat (UNIX) - Wikipedia

cdr は list の先頭以外の要素を返す関数じゃない。ペアの CDR 部を返す関数だ。だからあれでよいのだ。 car/cdr からなる単方向連結リストイメージできる人にとってはこれ以上ないほどに直感的だ。

*1:だから俺は中卒なんだ……。もう一度受験勉強に取り組めるようになるにはあと五年ぐらいはかかるだろうと思う。

allegriallegri 2007/11/12 16:29 読みたい

scinfaxiscinfaxi 2007/11/12 16:36 マジか! 情けなくなるからやめておくよ!

alohakunalohakun 2007/11/12 17:06 非直感的というのは,名前の話でしょ > Contents of Address Register/Contents of Decrement Register

scinfaxiscinfaxi 2007/11/12 17:08 ごめんなさいごめんなさいごめ(ry

shiroshiro 2007/11/12 20:20 でも熱くならないと勝負っておもしろくないのだよね。

計算ではどうしても割り切れないボーダーのところで、踏み込むべきかどうかを囁いてくれるゴーストの声が聴こえるかどうか、かなあ。

scinfaxiscinfaxi 2007/11/13 00:32 >でも熱くならないと勝負っておもしろくないのだよね。

うーむ。そういうものなのか……。

私は現実世界ではどちらかというと予定調和を好みます。不安定でぐちゃぐちゃな生き方をしているからかもしれません。

トラックバック - http://d.hatena.ne.jp/scinfaxi/20071112

2007-11-11

[]カンパニークラッシャー 12:50 このエントリーを含むブックマーク このエントリーのブックマークコメント

頑張れキシダ!

サークルクラッシャー

中華まん二割引-本当の大乱闘はこれから始まる - ゴリラブーツ経由。

ちゃっかりサークルクラッシャーを「セックスする友達」にしてケロっとしているのが俺だと気づいた。

追記

この手のクラッシャーて、空気大好きな日本人らしい現象だと思う。物どころか人の好き嫌いまで他人任せとは呆れる。

スワップ機構付きコレクション #2 19:25 このエントリーを含むブックマーク このエントリーのブックマークコメント

また FIFO をやってもアレなので、ランダムを書いてみた。

今後の課題

  • 既に ghost 化されたオブジェクトが再度スワップアウトされるので、その修正。
    • 単純にリトライするだけだと基底コレクションの要素数に対して生きているオブジェクトの数が少ないと大変なことになる。うまく短絡する必要がある。
  • call-with-builder で make する時、コレクションのスロットデフォルトの値を格納している parameter を parameterize して値を変化させているが、もっとうまく(というか、普通に引数で)渡せないもんか……。
    • ghost を常にひとつに保てればよいのだけれども……。このままの方がいいかな。
  • ghost を復元する処理がうまく書けていない。参照にフックするような形で復元を行い、スワップアウトが行われる状況では、きちんと何かが復元されたら何かをお化けにするような機構を書かねばならない。
    • しかしそうすると大量のオブジェクトを参照しまくる時にスラッシングする可能性がある。こういうケースだけ、メモリを大幅に使用したりできるといいんだけど、それには処理系レベルのコード解析が必要になるかと……。
      • いや、そもそも論を出すと、 OS レベルでもそうなるわけで、結局のところ CPU に対してメモリが貧弱すぎるというケースの方がおかしいわけで、そこまで面倒見てられないということにしておこう。
  • あと色々思いついたんだけど、忘れた。

サンプル

(add-load-path "/home/theo/workspace/mistilteinn/vendor")
(use mistilteinn.random-swap-collection)
(use mistilteinn.util)
(use gauche.parameter)

(define-class <hoge-meta> (<class>) ())
(define-class <hoge> ()
  ((a :init-keyword :a) (b :init-keyword :b))
  :metaclass <hoge-meta>)

(define-class <hoge-ghost> (<ghost>)
  ((v)))

(define-method change-class ((o <hoge>) (g <ghost-meta>))
  (format/ss #t "~s ~s\n" o g)
  (let ((v (cons (slot-ref o 'a)
		 (slot-ref o 'b))))
    (next-method)
    (slot-set! o 'v v)
    ))

(define-method change-class ((o <hoge-ghost>) (c <hoge-meta>))
  (let1 v (slot-ref o 'v)
    (next-method)
    (slot-set! o 'a (car v))
    (slot-set! o 'b (cdr v))))

(define-method change-class ((o <hoge-ghost>) (g <ghost-meta>))
  )

(class-of <hoge-ghost>)
(describe change-class)

(let1 c (make-random-swap-collection
	 :ghost-class <hoge-ghost>
	 :max-size 10)
  (dotimes (i 500)
    (swap-collection-push! c (make <hoge> :a i :b (+ 1000 i))))
  (write c)(newline)
  (let1 vs (map (lambda (e) e) c)
    (write/ss vs)(newline)
    (parameterize
	((default-swap-collection-ghost-class
	   <hoge-ghost>))
      (write/ss (coerce-to <random-swap-collection> vs)))))

ソース

(define-module mistilteinn.swap-collection
  (use gauche.collection)
  (use gauche.parameter)
  (export
   <swap-collection-meta>
   <swap-collection>
   <swap-collection-element>
   call-with-iterator
   call-with-builder
   swap-collection-push!

   <ghost-meta> <ghost> change-class

   default-swap-collection-size
   default-swap-collection-ghost-class))
(select-module mistilteinn.swap-collection)

(define (%swap-collection-error name)
  (errorf "~s (<swap-collection>) is blank!" name))

(define-class <swap-collection-meta> (<class>) ())

(define-class <swap-collection> (<collection>)
  ()
  :metaclass <swap-collection-meta>)

(define-class <swap-collection-element> (<collection>)
  ())

(define-method call-with-iterator ((coll <swap-collection>) proc . options) ;; &keyword start
  (%swap-collection-error 'call-with-iterator))

(define-method call-with-builder ((coll <swap-collection-meta>) proc . options) ;; &keyword size
  (%swap-collection-error 'call-with-builder))

(define-method swap-collection-push! ((coll <swap-collection>) v)
  (%swap-collection-error 'swap-collection-push!))

(define-class <ghost-meta> (<class>) ())

(define-class <ghost> ()
  ((%mist:sc:class :accessor .class))
  :metaclass <ghost-meta>)

(define (ghost? x) (is-a? x <ghost>))

(define-method change-class ((o <object>) (g <ghost-meta>))
  (let1 v (class-of o)
    (next-method)
    (slot-set! o '%mist:sc:class v)))

(define default-swap-collection-size (make-parameter 256))
(define default-swap-collection-ghost-class (make-parameter <ghost>))

(provide "mistilteinn/swap-collection")
(add-load-path "/home/theo/workspace/mistilteinn/vendor")

(define-module mistilteinn.random-swap-collection
  (use srfi-27)
  (use gauche.collection)
  (use gauche.parameter)
  (extend mistilteinn.swap-collection gauche.collection)

(use gauche.interactive)

  (export-all))
(select-module mistilteinn.random-swap-collection)

(define-class <random-swap-collection-meta> (<swap-collection-meta>) ())

(define-class <random-swap-collection> (<swap-collection>)
  ((%mist:sc:base-collection :init-value '())
   (%mist:sc:collection-size :init-value 0)
   (%mist:sc:ghost-class :init-keyword :ghost-class :init-form (default-swap-collection-ghost-class))
   (%mist:sc:max-size :init-keyword :max-size :init-form (default-swap-collection-size)))
  :metaclass <random-swap-collection-meta>)

(define-macro (.collection coll) `(slot-ref ,coll '%mist:sc:base-collection))
(define-macro (.size coll) `(slot-ref ,coll '%mist:sc:collection-size))
(define-macro (.ghost-class coll) `(slot-ref ,coll '%mist:sc:ghost-class))
(define-macro (.max-size coll) `(slot-ref ,coll '%mist:sc:max-size))
(define-macro (push!-.collection coll v)
  `(push! (slot-ref ,coll '%mist:sc:base-collection) ,v))
(define-macro (inc!-.size coll) `(inc! (slot-ref ,coll '%mist:sc:collection-size)))

(define-method call-with-iterator ((coll <random-swap-collection>) proc . options) ;; &keyword start
  (print "call-with-iterator <random-swap-collection>")

  (let1 lst (.collection coll)
    (proc
     ;; end?
     (lambda () (null? lst))
     ;; next
     (lambda ()
       (begin0
	 (let1 x (car lst)
	   (if (ghost? x)
	     (change-class x (.class x)))
	   x)
	 (set! lst (cdr lst)))))))

(define-method call-with-builder ((class <random-swap-collection-meta>) proc . options) ;; &keyword size
  (let1 c (make class)
    (proc
     ;; add! 
     (lambda (v) (random-swap-collection-push! c v))
     ;; get!
     (lambda () c)
     )))

(define-method write-object ((c <random-swap-collection>) port)
  (format port "<random-swap-collection ~a ~a/~a ~s>"
	  (eqv-hash c) (.size c)
	  (.max-size c) (.ghost-class c)))

(define (make-random-swap-collection . rest)
  (apply make <random-swap-collection> rest))

(define (%swap-out! coll)
  (let1 lst
      (list
       (list-ref
	(.collection coll)
	(random-integer (.size coll)))
       (.ghost-class coll))
    ;(write/ss lst)(newline)
    (apply change-class lst)))

(define-method swap-collection-push! ((coll <random-swap-collection>) v)
  (random-swap-collection-push! coll v))

(define (random-swap-collection-push! coll v)
  (cond
   ((= (.size coll) (.max-size coll))
    (%swap-out! coll)
    (push!-.collection coll v))
   (else
    (inc!-.size coll)
    (push!-.collection coll v))))
    

(provide "mistilteinn/random-swap-collection")

「入社時はノースキルでいいよ」という言葉がどれほどの技術野郎を殺しているか少しは考えろ 19:44 このエントリーを含むブックマーク このエントリーのブックマークコメント

カッとなってやった。流行に乗れればなんでもよかった。今は反省している。

関連

中華まん二割引-本当の大乱闘はこれから始まる - ゴリラブーツ経由。

今回のはかなり特殊な事例だと思いますよ。ある程度頑張りを見せると、色々知識やアイデアをいただけるものですが、今回のは異様に早すぎ。「今からやるぞ」といって、ブログを作っただけであれとはねぇ……。最低でも数ヶ月ぐらい勉強して、ある程度コードを載せるようにならないとコメントされないのが普通です。

結論 : モテたければアルファブロガーになれ。

関連 #2

中華まん二割引-本当の大乱闘はこれから始まる - ゴリラブーツ経由。

そのカップルは二人とも漫画家で、一時間前に原稿を終えたばっかりだと考えるんだ!

まなめさんの更新風景 22:51 このエントリーを含むブックマーク このエントリーのブックマークコメント

やっぱりうちとはえらい違うもんだなぁ……(当たり前っちゃ当たり前だけど。使ってる OS から違うんだから)。

トラックバック - http://d.hatena.ne.jp/scinfaxi/20071111

2007-11-10

突っ込まれて気持ちよかった 00:36 このエントリーを含むブックマーク このエントリーのブックマークコメント

と、そんなことを思った。最近の印象だと、突っ込まれて気持ちよかった(いや、そういう意味じゃなくて)のはscinfaxiさんかなー。

突っ込まれることと弱者メソッドとレベルとスルー力とはてブコメントと匿名ダイアリと荒れやすさと - screw pile driver

そうか、アナル大好きか……。

真面目な話

スルー力を含む争いごとのテクニックというのは鍛えられるので、鍛えるという選択肢もあります。ただ、なかなか時間がかかるので、そこまで出来る人は少ないでしょうが……。簡単な方法は、例えばニュース極東板*1のようなところに行くことでしょうなぁ。愛国側に立っても、反日側に立っても、どちらでも構わないので、とにかくコテハンでも付けて、反対側の人々と戦ってみると色々と学べるはずです。人によってはかなり厳しいトレーニングになるでしょうね。

あ、いつでも逃げられるように個人情報だけは出さないように。

スルーカ!

スルー力(するーりょく)がスルーカ(するーか)に見える……。スルーカてロシアかウクライナあたりの伝統的なファッションみたいな響きだなぁ。

私のブログを定期的に見てくださる理由って……なんだろ 00:55 このエントリーを含むブックマーク このエントリーのブックマークコメント

私の場合、最も大きな理由はゆ〜にゃんさんという人物に興味があるからです。第二に書いてある内容が面白いからです。つまり、 1 と 3 です。

というか、特定の個人が文章を書いているブログ*2を追っている理由って全部これだなぁ……。大抵最初はどっかのリンクから面白い文章を読んで、継続的に読むようになって、それから書き手に興味が出てくる。逆に書き手に興味が湧かないと、そこそこ面白い文章を書いていても読まなくなってしまう。

理系の女の子の取扱説明書 02:29 このエントリーを含むブックマーク このエントリーのブックマークコメント

理系女子か……。中学の時はそうではなかったけれど、今となっては都市伝説的な存在だ。

だがしかし「女」なのである!のくだりには違和感を覚える。そうは書いていないけれども、要するに周囲の配慮を求めているわけでしょう。それは違うんじゃないかなぁ。人類の半分は女なので、「配慮」を強制できるだけの数が揃っていることは確かだけれども、それだけに過ぎない。本来自助努力で乗り越えるべきことであって、配慮を求めるのは筋違いではないですか*3。まあ、こんなこと書いてもしゃあないのでやめておこう。

それにしてもなんと窮屈な生き方をしているのか……。もっとも、自分もそれを徹底的に破壊されるまでは、プライドの塊のような人間だったので、わかるのだけれども*4、少しずつでよいから改善した方がいいと思うんだ。プライドというものは一気に崩れ去る可能性があって、そうすると軽く五年ぐらい過ぎてしまうから*5

理系女子

理系女子っていいなぁと思っていたんだけど、 Linux と Lisp が解れば別に理系である必要性はないことに気づいた。むしろ、理系女子というのは必ず自分より高学歴で英語と数学ができるので*6、コンプレックスの残滓を極めて効果的に刺激する危険な存在だと気づいた。それが年下ときた日には虚しさと悲しさで会った瞬間に死んでしまう。

ひきこもってプログラミングしてよ。いやまあ、受験勉強やってみるとかいう手もなくはないけど、今更ねぇ……。はぁ……。

恋愛とか子供作るとかって、障害より一歩外側にある問題だと思うんですよ 11:20 このエントリーを含むブックマーク このエントリーのブックマークコメント

でも障がい者の痛みと、非モテの痛みは、分けて考えて下さい。

heartbreaking. 恋愛とか子供作るとかって、障害より一歩外側にある問題だと思うんですよ

それには同意する。障害者でも人によっては普通に恋愛もセックスもしているからねぇ。耳が聞こえなくても女の子は口説けるし、手足がなくてもセックスできるもんなんだよ。

*1:今のニュース極東板がどうなっているかは全く知らないが、きっと昔と変わっていないだろう……。貼られる AA は変わっただろうけど。

*2:コピペブログなどは除く。

*3:よく「痛めつけられたものほど、他人の痛みがわかる」なんていうけれど、経験からいえるのは逆で、ひどい仕打ちを受けた者ほど他人に厳しくなる。

*4:うーん、その昔は「東大に行くんだ」なんて云っていたなぁ。こうして東大生二人を目の前にすると香ばしくて仕方のない発言だ。

*5:例えばそのおかげで誰かさんは遂に中卒が確定してしまった。

*6:なにせ中卒だからね……俺……。

2007-11-09

プログラマーとそうでないもの、攻撃の価値、社会の変化、未来などについて 01:10 このエントリーを含むブックマーク このエントリーのブックマークコメント

そら、あんた(増田の人)のお仲間は予知能力者かもしれない。でもあんたはどうなんだ? 違うだろう?

「コードを書かない連中」にどれだけ予知能力者がいるというのか。予知能力者である割合は「コードを書かない連中」も「コードを書く連中」も同じくらいだろう。より正確にはどちらも比較して意味のある数値にはならない。未来を述べる者は山ほどいるが、未来に他人が起こす大規模な変化を当てられるのは、前者のうちのほんの一万分の一か、百万分の一程度だろうから。ある集団とある集団のうち、どちらが宝くじの一等になりやすいかを比較するようなものだ。

まあ、宝くじも買わねば当たらないように、プログラマーよりも未来について語ることを仕事にしている連中の方が予言を的中させた数が多いのは事実だろう。でも、その程度のことだ。少なくとも私は他人の仕事によって為される未来を言い当てることよりも、未来の変化の種を創造してゆくことに価値を感じる(そして、それは上司の功績になるだろうけどね。上司というものは武勲を宣伝していられるぐらいに暇だし、それも仕事の一部なのだから)。

弾さんは「梅田望夫さんがギークになれなかったのは仕方のないこと」と書いていらっしゃるし、それはそうだろうと思うが、プログラマにならなかったのは彼がそう選択したからだ。40代、50代のプログラマなど幾らでもいるもの。「コードを書かない連中」というのは「コードを書かないことを選択した連中」だ。わざわざそれを選んだ連中にプログラムのことについて口出しされるのは不愉快極まりない。あんたらが「社会の変化」とやらを創造できるように、工期や既存の技術を無視したムチャクチャな要求を実現してやっているのは我々なんだ。だからせめて黙っていろ。な?*1

梅田望夫さんの文章

上ではえらくひどい扱いをしたけれど、これには大体同意。ただ、一つだけ同意できないのは、人を攻撃することの価値だ。人を攻撃することは重要な意味を持っている。誰にとって重要かというと、攻撃する側にとってだ。それは(攻撃する者が)梅田さんであっても、同じことだ。しかし、人に対する攻撃は新しいものを生み出す積極的な攻勢にもなるが、ほとんどは既にあるものを失わないようにする消極的なものだ(私は時々これを「防御」と呼んでいる)。なので、「既にあるものを守ることばかり考えすぎるな。もっと新しいものを生み出していけ」というような意味ならば私もある程度そう思う。

それと、弾さんがミクロな視点から書いていらっしゃるけれど、よいものというのは何かを否定することから始まる*2 *3。もちろん、それが人であることもある。これも梅田さんであっても同じことで、現に毎日十回は他人を攻撃する私のような人々を批判している*4。そして、わざわざ毎日数時間費してこんなブログをやっているのは、やはりそこからよいものが生まれる可能性を感じるからだ。今は私にとってよいものしか生まれていないがね*5

本、面白そうなので読みたいな。三時間前に知っていればなぁ……。折角本屋に行ったというのに。

社会の変化

ところで、改めて件のテキストを読みかえしてみたのだけれど、 WWW や SNS や Wikipedia で社会がどう変わったの? そりゃ、便利な道具が手に入って、表面的には変わったし、コンピューターの普及にも大きく貢献したけれど、結局のところ一緒のまんまだ。人々はまだ毎朝出勤しているし、普及したコンピューターで誰かが作ったアプリケーションを実行して、コンピューターを使いこなした気になっているだけだ。

重大な変化なんてそうそう起こるものじゃない。少なくとも発展的な方向には、その集団を組織している大多数の人々が、十分ついていけるような速度でしか起こらない*6。そのことはあまり技術と関係がない。そして、逆の方向なら枚挙に暇がない。災害や戦争や株の大暴落などだ。このことはある程度技術と関係がある。

未来の話

折角なので、未来の話をしてみるけれど、遠い未来には日常の仕事を簡略化する程度には、誰もがプログラミングしている世界が来るかもしれない。同じプログラミングといっても、プロジェクトと呼ばれるレベルの大規模な仕事と日常茶飯事レベルの小規模な仕事には相当な差があるので、ほとんど全員が大規模な仕事をするような世界はさすがにこないだろう。ただ、休日を使ってそこそこの規模の仕事に、私的に取り組むのが趣味として確立するぐらいならばあるだろうと思う。私がそういう世界にいるからかもしれないが、そのような流れを感じるのだ。

しかし、今はコンピューターが各家庭に普及してから、まだ半世紀も経っていない。そういうわけで、上に書いた理由から、現在の人々がプログラミングしない、出来ないことを責めるのは間違っているのかもしれない。まあ、それを責める時は大抵「防御」だから、実現される可能性がどのくらいあるかなど、あまり関係のないことだ。

折角なので、未来を当ててみよう。対立や争いだけは、人類も動物も滅ぶまでなくならないだろう。これは多分当たる。あと、完璧な不老不死が実現されない限り、繁殖も生物が滅ぶまでなくならないだろう。そこまで社会が発展できるかどうか疑わしいが、完璧な不老不死が実現されなくても、十年だとか百年だとか一千年だとか、一定の期間、実行されないことはありうると思う。そして、これも当たる自信がある。当然のことだからだ。それと、既に正しいことや、誤っていることが、ちゃんと証明された数学的な命題も覆されないだろう。これも当たる自信がある。当たり前だからだ。

最初の方に書こうとして収まらなかったのだけれど、発展的な変化は予測が困難であればあるほどに価値がある*7。もっとも、これが正しければ、未来を予測する作業はよりハードな変化を生み出す余地を広げるかもしれないので、価値ある仕事といえるかもしれない。

最後になるけれど

あー、そうそう。 Lisp プログラマー Paul Graham が未来に起こる、社会的な変化を予測する仕事もしているので、最初に出てきた増田の人は見ておくとよいかもしれない。

無題 01:22 このエントリーを含むブックマーク このエントリーのブックマークコメント

上に書いたことの一部は私の恋人の言葉から生まれたものです。つまり、「変化が激しすぎてついてゆけない」という言葉から。反省します。

弾さんには勝てんわ…… 01:33 このエントリーを含むブックマーク このエントリーのブックマークコメント

久々にそれなりの長文が書けたと思ったのだけれど、彼には追いつかない。そんな長文を毎日書いているなんてヤバイ。色々と。

改行ナシ空白アリで 2747:2907 か。意外に迫っているものだな。

彼女が最近「ごぶさた」なわけ〜亀山早苗コラム(45) 15:04 このエントリーを含むブックマーク このエントリーのブックマークコメント

OK、折角だから云わせてもらおうか。これだから女は……。

第一回セックス歴公開大会 19:19 このエントリーを含むブックマーク このエントリーのブックマークコメント

初めて付き合った女の子が援助交際の達人だった。「なんかカネ持ってんなー」とは思っていたんだけど、まさかねぇ……。相手中二だったわけで、普通に処女だと思っていたのだけれど、妙に手慣れているので、聞いてみたら発覚した。もちろん、遠慮なく脱童貞させていただきましたが、非常にショックでした。というか、あの時の衝撃は今に至るまで影響を残している。まー、厨房のセクロスなんてふじゅんいせーこーゆーに他ならないわけで、五十歩百歩だけれどねぇ……。

あと、付き合った女の子の元カレがとんでもない DQN で、デートしたら毎回のように殴られたらしいし、二回妊娠して二回ともおろしているわでなかなかひどかった。付き合う前までは相談を受けた俺は、その女の子とともに怒りに燃えていたのだけれど、付き合ったらなんてことない。「お前殴られたいんちゃうか」というぐらいに男を怒らせるのが上手で、あれは才能としかいいようがない。もっとも私は今も昔も女を殴る習慣がないので、一度も殴りませんでしたが……。

「Loveカワイコ」が面白い

それでですね、先日 jonathans から借りたLoveカワイコという女子高生から「フリーター」向けの雑誌にはこんな世界がこれでもかというほどに広がっています。中絶特集が四ページあって、「中絶して高校やめて無職」とか「母が壊れてお腹を蹴りつけてきた」とか「麻薬依存症だったので未熟児が生まれてくるのが怖かった」とか「リア充」のダークサイドがこれでもかというほどに描かれています(「生んでよかった」的な話もあるけれどね)。一冊のうちに何度「中絶」や「妊娠」という言葉が登場したのか、計測したいぐらいです。こんな調子で、最初から最後まで延々恋愛とセックスと男とダイエットについて書かれています。

なかなか面白いので、怖いものが見たい大きいお友達は、是非立ち読みするといいですよ。特に「リア充」にコンプレックスを抱いている人には是非オススメします。きっと「こんな世界に行かなくてよかった……」と思えるでしょうから。

似たような表紙で「モテかわいい」なんてのもあるのか。読んでみたいな。

安っぽい婚約指輪をいただいたら……? 21:21 このエントリーを含むブックマーク このエントリーのブックマークコメント

俺もあんたと同じ意見だ。高価な指輪を貰うぶんには一向に構わないが、恋人に高価な指輪をあげたいとは思わない。

女の敵は女 21:56 このエントリーを含むブックマーク このエントリーのブックマークコメント

「男女差別」みたいなことを云われるといい気がしないのだけれど(俺は男だからね)、このテキストには大筋で共感を覚えた。しかしなんでわざわざ法事なんて行くのかねぇ……。それさえも「あちら側」のものだというのに……。

「作者は病気」 22:19 このエントリーを含むブックマーク このエントリーのブックマークコメント

ニコニコ動画に「作者は病気」というタグがありますが、誰も私には付けてくれないので自分で主張します。真面目な話、こんなブログ書いてる奴ってどう考えても病気だろ……。

まなめはうす(笑) 22:20 このエントリーを含むブックマーク このエントリーのブックマークコメント

やられた。いつの間にか(笑)がついていて、大笑いしてむせて死にそうになった。今、私は非常に喉が悪いので、面白いものをたくさん教えると呼吸困難になって死んでしまいます。チャンスですよ。

タイトル変更

ひらがなで書いて(笑)を付けたら大変なことになった。

Twitter から 22:41 このエントリーを含むブックマーク このエントリーのブックマークコメント

黎明日記を書いていると、時々自我のキツイ臭いに気分がわるくなることがある。読んでいる人は大変だろうな……。

女の子にとってのアニメ・ゲーム 22:50 このエントリーを含むブックマーク このエントリーのブックマークコメント

むかし、葉鍵厨の女と付き合っていましたが、普通に女の子女の子していましたよ。少なくともそこらへんの腐女子よりは。

仮説 : それに現実世界の代替であることを求めなければ、案外何を好きになってもコミュ能力は落ちないのかもしれない。

これから一からプログラミングを覚えようと考えています。 様々な言語がありますが、どれを覚えるべきでしょうか? 23:03 このエントリーを含むブックマーク このエントリーのブックマークコメント

一番最初にハマる言語というのは、どうも大きな影響を持つようなので、是非「どのようなプログラマになりたいか」で選ぶことをオススメします。つまり、言語のユーザーのコミュニティを見て、どこに属したい、どのようになりたいと思うのかで決めるとうまくいくかと。

質問者:benjamintokyo 2007-11-05 20:42:44

ありがとうございます。

おっしゃられることはよくわかるのですが、やはり楽をしたいなというのが正直なところです。

これから一からプログラミングを覚えようと考えています。 様々な言語がありますが、どれを覚えるべきでしょうか? なお、条件は下記の通りです。 やりたいこと ・Webサー.. - 人力検索はてな

海兵隊でもやっていけるぐらいの根性があるなら LL から入っても大丈夫だと思うけれど、そうでないのならポインタに躓くぐらいまででよいから、 C を最初にやった方がよいかと……。最初から LL やると、仕様の全てが不条理に見えてしんどいよ……。本当に頭が爆発しそうになる。

# 抽象度の高い言語でのプログラミングって、包丁を使わずに料理するようなもんだからねぇ。

うーん

Ruby 人気だなぁ……。胃が痛くなってきた。

Common Lisp/Scheme のよいところ

今更オススメしても仕方ない気がするけれど……。

  • 言語の仕様や構造がしっかりしている
    • 堅牢です。抽象化の下の構造を大幅にいじくっても崩れたりしません。
  • 異様に柔軟である。
    • マクロ、クロージャ、メタオブジェクトプロトコル、継続。
    • 凄いのは堅牢であると同時に柔軟であることです。矛盾しているように聞こえますが、意外にもこの二つは排他的ではないのです。
  • 高速である
    • Common Lisp の速度に対する意識は異常。一説では C より速いとか……。
    • Scheme であっても、大抵の処理系は Ruby より高速です。少なくとも某 Rails みたいにリソースを馬鹿喰いしたりはしません。
  • 使い手の成長に耐えられる
    • Basic なんかが顕著ですが、大抵の言語は使い手の成長に耐えられず、使い手の成長が止まってしまう傾向にあるように思います。 Lisp ならば、そんなことはありません。
    • これも「堅牢かつ柔軟」の為せる技です。

ゲームが趣味の女の子って良いよね 23:25 このエントリーを含むブックマーク このエントリーのブックマークコメント

Nethack が趣味の女の子とかマジ萌える!

読者の期待に答えること 23:30 このエントリーを含むブックマーク このエントリーのブックマークコメント

私の巡回リストに入っているというブログの中の人が、私のコメントを非常に楽しみにしているということだ。これもきっと私の自意識過剰なのかもしれないけれど、期待をひしひしと感じることがある。期待には答えたい性格でありながらも、ニュースサイトという時間のかかる趣味を持っていると、どうも一つ一つに時間を避けないときがある。もっともっと読みくだいて、相手の期待以上のコメントをしてあげたいと思いつつも、上手いコメントが書けなかったときは、いつもごめんなさいって思いながら紹介しています。

304 Not Modified: 読者の期待に答えること

いや、こちらこそすんません……。

攻撃的なブログを書いている人は全員 M だと思う昨今。だって、わざわざ不愉快極まりない文章を探してきて、それを批判するなんてとんでもないマゾのやることだよ!

*1:ひどい言いようだけれど、そのムチャクチャな要求がよい刺激になり、それに触発されてよいものを生み出すこともあるので、そうそう否定できるものでもない。辛いことは確かなんだが……。

*2:追記 : このテキストもえらく過激な口調の「防御」から始まったけれど、最終的に幾つかの新しい知見が得られた。無為に一時間を過ごすことに比べると、梅田さんの文章に沿うような意味でも、ずっとよいことだと思うけれど、どうだろう?

*3:あー、だから攻撃を許容しろとまでは云っていないよ。別に私はよくしらない人々の幸福を考えて、文章を書いたり物を考えたりしているわけではないし、そうすることが総合的に見て、「よくしらない人々」にとってよい結果を生むとも考えていないからだ。

*4:「攻撃する者を攻撃するのはよい」などという理屈は通じないよ。例えば世界の警察を自認する何処かの国は、世界中で迷惑がられている。警察というものは、十分に監視され、規制され、手足をもがれているから価値が出てくるのだ。そうでなければただの弾圧に過ぎない。

*5:私が書いたあるテキストに共感を覚える人たちにとって、そのテキストはよいものだろうが、それを強く実感できるほど規模は大きくない。

*6:生命倫理なんて云っている連中を見ているとよくわかる。バイオテクノロジーが否定される根本的な理由は宗教や道徳じゃない。ついていける人々が少ないからだ。

*7:まあ、変化が発展的かどうかなど、後付けのものでしかない。災害が起こって得をする人々だって、たくさんいるのだ。ならば、損が得を上回ることだって、そうそうないとは言い切れないだろう。

2007-11-08

ライフハック(笑) 01:18 このエントリーを含むブックマーク このエントリーのブックマークコメント

スーツは男の戦闘服(笑)

これはないだろ。

あなたが思いつく限り「贅沢な無駄遣い」を教えてください 01:24 このエントリーを含むブックマーク このエントリーのブックマークコメント

不愉快な回答を思いついたので日記に書く。

「ある分野を極めて、世界的な人材になり、権威ある賞をとったらすぐに自殺する」

月周回衛星「かぐや(SELENE)」のハイビジョンカメラ(HDTV)による世界初の月面撮影の成功について 01:27 このエントリーを含むブックマーク このエントリーのブックマークコメント

宇宙には夢がある。

ケータイ小説を非難する人は、「他人のババアは生きる価値無し!」 01:30 このエントリーを含むブックマーク このエントリーのブックマークコメント

「他人のババア」とケータイ小説に共通している一番嫌なところは他人を無理に泣かせようとしているところだ。そういうふうに呈示されると他人の恋愛の話も、他人の祖母の話も無価値になってしまう。

部屋が汚い人の脳内ルール 01:33 このエントリーを含むブックマーク このエントリーのブックマークコメント

俺だな……。六畳以上の部屋に住んだらひどいカオスになりそうだ。

  • 俺ルール : 引越しする時に掃除もやる

喉悪い 12:17 このエントリーを含むブックマーク このエントリーのブックマークコメント

ここ三週間ほど喉が悪い。風邪で喉を潰してしまったんだけど、風邪が治っても喉は治らず。昨晩は布団に入ってから寝るまで三時間ぐらいかかった(ずっとげほげほいってた)。

積極的にうがいしましょう。

工程 12:40 このエントリーを含むブックマーク このエントリーのブックマークコメント

現在の生産性 : 牛歩

スワップ機構付きコレクション #1 15:42 このエントリーを含むブックマーク このエントリーのブックマークコメント

一番簡単そうな FIFO のものを書いてみた。

うまくインターフェースを共通化して、基底のアルゴリズム(FIFO/LRU/NRU/ランダム/千里眼置換アルゴリズムなどなど)を例えば実行中にでも変更できるようにしておきたいものだ(性能が不安定なアルゴリズムを試して、ダメそうなら安定なものに切り替えるなど)。

更にスワップ機構付きコレクションを構成しうるデータ構造(list/vector/hash-table/tree-map などなど)も差し替えられるように出来たら嬉しいんだけど、どうしたもんかな……。以下の FIFO の例では「スワップ領域」と「物理メモリ空間」を区別しているのだけれど、そうせずに書かなければうまくいかないだろうと思う。つまり、基底コレクションは一つで、要素によって ghost だったり、そうでなかったりするのが望ましいということ。要素を ghost か with-swap-collection-element-mixin みたいな名前のオブジェクト(または、サブクラスのオブジェクト)に限って、そこに内部的な情報を格納すれば大体書けるはずだ。

そして、そうすれば with-swap-sequence も容易に実現できる。ということは、インデックス付きコレクション(つーか、シーケンス?)の実装も楽になる。それから instance-pool の基底コレクションにこれを使えば機能的にはオブジェクトの永続化が大体できあがる。

言葉でいうだけならなんと簡単なことか……。

ソース

(use gauche.collection)
(use gauche.parameter)

(define-class <with-swap-collection-meta> (<class>) ())

(define-class <with-swap-collection> (<collection>)
  ((%mist:ws:queue :init-keyword :queue)
   (%mist:ws:index :init-value 0)
   (%mist:ws:initial-value :init-keyword :initial-value)
   (%mist:ws:swap :init-value '()))
  :metaclass <with-swap-collection-meta>)

(define default-with-swap-collection-size
  (make-parameter 200))

(define (%queue-of q) (slot-ref q '%mist:ws:queue))
(define (%index-of q) (slot-ref q '%mist:ws:index))
(define (%swap-of q) (slot-ref q '%mist:ws:swap))
(define (queue-length q) (vector-length (%queue-of q)))
(define (current-value q) (vector-ref (%queue-of q) (%index-of q)))

(define-method call-with-iterator ((coll <with-swap-collection>) proc . options) ;; &keyword start
  (let ((queue (slot-ref coll '%mist:ws:queue))
	(ctx 'queue) ;; queue or swap
	(idx-of-queue 0)
	(len-queue (queue-length coll))
	(swap (%swap-of coll)))
    (proc (lambda ()
	    (if (and (eq? ctx 'queue) (>= idx-of-queue len-queue))
	      (set! ctx 'swap))
	    (or (and (eq? ctx 'swap) (null? swap))))
	  (lambda ()
	    (if (eq? ctx 'queue)
	      (begin0
		(vector-ref queue idx-of-queue)
		(inc! idx-of-queue))
	      (begin0
		(ghost->x (car swap))
		(set! swap (cdr swap))))))))

(define-method call-with-builder ((coll <with-swap-collection-meta>) proc . options) ;; &keyword size
  (let1 q (make-with-swap-collection)
    (proc
     (lambda (v)
       (with-swap-collection-push! q v))
     (lambda ()
       q))))

(define-method write-object ((q <with-swap-collection>) port)
  (format port "#<ws-queue ~s :swap-size ~s :index ~s :queue ~s>"
	  (eqv-hash q) (length (%swap-of q))
	  (%index-of q) (%queue-of q)))

(define (make-with-swap-collection . may-be-size)
  (let1 initial-value (gensym)
    (make <with-swap-collection>
      :queue (make-vector
	      (get-optional may-be-size (default-with-swap-collection-size))
	      initial-value)
      :initial-value initial-value)))

(define (%swap-out! q)
  (let1 v (current-value q)
    (if (not (eq? v (slot-ref q '%mist:ws:initial-value)))
      (push! (slot-ref q '%mist:ws:swap) (x->ghost v)))))

(define (with-swap-collection-push! q v)
  (let1 len (queue-length q)
    (if (<= len (%index-of q))
      (slot-set! q '%mist:ws:index 0))
    (%swap-out! q)
    (vector-set! (%queue-of q) (%index-of q) v)
    (inc! (slot-ref q '%mist:ws:index))
    (undefined)))

;; sample code

(define-class <number-ghost> ()
  ((v :init-keyword :v)))

(define-method write-object ((obj <number-ghost>) port)
  (display "<number-ghost>" port))

(define-method x->ghost ((obj <number>))
  (make <number-ghost> :v obj))

(define-method ghost->x ((obj <number-ghost>))
  (slot-ref obj 'v))

(let1 q (make-with-swap-collection 10)
  (dotimes (i 500)
    (with-swap-collection-push! q i))
  (write q)(newline)
  (let1 vs (map (lambda (e) e) q)
    (write/ss (apply + vs))(newline)
    (write/ss (coerce-to <with-swap-collection> vs))))

プログラマーとそうでないもの、攻撃の価値、社会の変化、未来などについて(ゴースト) 23:43 このエントリーを含むブックマーク このエントリーのブックマークコメント

移動しました。

2007-11-07

リア充テスト 08:13 このエントリーを含むブックマーク このエントリーのブックマークコメント

Twitter / maname経由。

これを見て辛くなったら非リア充。そうでなければリア充。

しかしこの画像、ひどい顔の奴の方が多いじゃないか。リア充てこの程度のもんなのか……?

小学生カップルを見て絶望した大学生 08:24 このエントリーを含むブックマーク このエントリーのブックマークコメント

神コップBloG_ver.?経由。

あの頃に戻りてぇ……。今なら絶対にうまくやれるはずだ。

エンジニアの進化過程 09:24 このエントリーを含むブックマーク このエントリーのブックマークコメント

クソワロタwwwwwwwwwwwwwww

涼宮ハルヒ32歳 09:43 このエントリーを含むブックマーク このエントリーのブックマークコメント

138 名前: 以下、名無しにかわりましてVIPがお送りします。 投稿日: 2007/11/05(月) 17:52:46.11 ID:clEEGG1jO
長門有希(32)
高校を進学し、持ち前の知識を活かし名門大学に受かるも口下手な点により知り合いも出来ずに卒業。
就職は性格・社交面が難ありと指摘され面接で落とされ、現在フリーター。
涼宮ハルヒ32歳 - 喪男の書き留めたい事。

どう考えても大学院進学だろ……。

涼宮ハルヒの鬱病

ハルヒ「……」

無題 10:23 このエントリーを含むブックマーク このエントリーのブックマークコメント

プログラミングしない人って何が楽しくて生きているんだろう。もう忘れてしまったな……。

二つのライター 10:32 このエントリーを含むブックマーク このエントリーのブックマークコメント

ライターの寿命が近づくと、タバコに火を付けるのに二つのライターを使うようになる。ひとつは火打金が残っている奴で、もうひとつは燃料が残っている奴。この二つを組み合わせて使用する。

電車で巡回 10:37 このエントリーを含むブックマーク このエントリーのブックマークコメント

ヒント:フルブラウザ

パケホーダイフル契約してぇな……。ずーっと家にいて、目の前に ADSL があるのになんで必要なんだといわれそうだが。

はて☆すた 10:45 このエントリーを含むブックマーク このエントリーのブックマークコメント

最初は導入時に揉めたこともあって、物凄い勢いで dis っていたけれど*1、今となっては自分にとって、はてなの大きな特徴というか、非常によいところの一つになった。そんなはて☆すたを開発した jkondo は凄い。

ブログコメント欄 10:51 このエントリーを含むブックマーク このエントリーのブックマークコメント

まなめはうす経由。

コメント欄が荒れるのは閲覧者の程度が低いからだ。それはすなわち書き手の程度が低いからだ。と主張してみる。

不思議と自分のブログコメント欄には*2よい思い出しかない。毎日使われるわけではないけれど、なくてはならないものだ。

とんでもないことを書きつつ、平穏無事なうちのようなところもあれば、ちょっと危ういことを書いただけで簡単に炎上するところもある。この違いはなんなんだろう……。人気、空気、他人からの評価……。

ラグナロクオンラインとはなんだったのか 10:58 このエントリーを含むブックマーク このエントリーのブックマークコメント

まなめはうす経由。

73 名前:講師(長屋) 投稿日:2007/11/05(月) 02:22:57 ID:snPQsE/Q0

ネカマを5年続けて、現在26歳で妊娠3ヶ月ってことになってる。そろそろラクになりたい。

ワクテカNews ラグナロクオンラインとはなんだったのか

これは凄い。

BOT 前提というか、ユーザーが直接操作せず、基本的に全部プログラムにやらせる MMO が出たら楽しそうだ。

194 名前:女性の全代表(青森県) 投稿日:2007/11/05(月) 03:23:08 ID:34mXCu7Z0
誰か本気で面白いネトゲ教えてくれよ
生産充実してて狩りも面白くて今からやっても遅くないってかんじの
196 名前:運び屋(不明なsoftbank) 投稿日:2007/11/05(月) 03:23:56 ID:uzJXkP9e0
>>194
人生
197 名前:動物愛護団体(千葉県) 投稿日:2007/11/05(月) 03:24:51 ID:nXKaZVZV0
>>194
リアルオンライン
198 名前:国連職員(広島県) 投稿日:2007/11/05(月) 03:25:34 ID:7iN+Fg8i0
>>194
ファーストライフ
199 名前:女性の全代表(青森県) 投稿日:2007/11/05(月) 03:25:35 ID:34mXCu7Z0
>>196,197
目が醒めた。寝ておきたら黒石のハロワいってくる
ワクテカNews ラグナロクオンラインとはなんだったのか

おれもちょっと生産してくるかな……。

萌えが襲った瞬間に自由に叫ぶスレ 11:10 このエントリーを含むブックマーク このエントリーのブックマークコメント

まなめはうす経由。

なんという日本語でおk

本日の IT 業界 11:20 このエントリーを含むブックマーク このエントリーのブックマークコメント

まなめはうす経由。

やっぱり仕事自体は楽しそう。後はどのくらい職場の風土がひどいかだな。

まなめはうす経由。

女でありたいと思うのなら退職した方がいいと思うよ。

もし○○ができたらどんなサイトを作りますか? 11:28 このエントリーを含むブックマーク このエントリーのブックマークコメント

もし美女だったら男性にちやほやされるブログを書きたい。

もし天才だったら凄いソフトウェアをがんがん発表したい。

もし……。

ないものねだりをしてもしかたないな。

今日の生産 11:30 このエントリーを含むブックマーク このエントリーのブックマークコメント

書きたいな……

でも我慢我慢。下層ができあがっていないのに上を作ると大体は悲惨なことになる。よほど波がきている時は別だけれど。

lambda は空気

(call-with-input-file
  (lambda (p) (proc p)))

なんてコードを書いてしまうと悪い意味で lambda が空気になってしまったと感じる。

ギークになりたい方 12:45 このエントリーを含むブックマーク このエントリーのブックマークコメント

Geekになりたいだか何だか云って、GeekあるいはGeek予備群の注目を集めた時点で、あの人は既に勝負に勝っていると思った。本当にGeekになるかどうかは別として。

2007-11-07 - 黄色いガードレールの上で

全面的に同意。まるで初期の Amazon みたいな奴だ……。

バッカーノ! 13:39 このエントリーを含むブックマーク このエントリーのブックマークコメント

飯喰いながらアニメ見ているんだけど、やたら評価が高い。今度小説買いに行くか……。

今日の Wikipedia 18:45 このエントリーを含むブックマーク このエントリーのブックマークコメント

面白かった。

一休さん 18:47 このエントリーを含むブックマーク このエントリーのブックマークコメント

「逸 queue さん」とかどうだろう。変態的なキュー構造。ちょっと想像つかないけど。

仕事のこと 19:18 このエントリーを含むブックマーク このエントリーのブックマークコメント

「相対的」だかなんだか知らんが、あの人が「下流工程」を軽く見ている限り、協力することはないでしょう。別に私は構わんのですよ。今それほど収入を必要としているわけではないし*3彼の会社との関係においてはこれからも安全な位置に居つづけますし、「下流工程」なんて言葉を使う、技術の解らない上司と仕事をするのは苦痛ですし*4、あれを仕上げることによって得られる知識や経験はそう多くはない。

ですから、50万だか100万だかで済ませたいならば、その不当に安いカネで、 mixi の倍ぐらいは複雑な Web アプリケーションを書いてくれる私ではない誰かを探せばよろしい。私は少なくとも50万では、やりたいとは思わない。そして、ここで50万でやったからといって、将来的に得をする(得られなかったものを回収できる)とは思えない。

現在の状況においては、誠意、あるいは敬意を払わないならば、つまりはカネを出さないならば私はやらない。そして、十分な対価を早期に支払うならば、彼がプログラマをどれほど蔑んでいようとも、私をどれほど憎んでいようとも、邪魔をしない限りは、私は仕事を終わらせる。そして、十分な対価を確実に支払い続けるならば、私と会社の関係は生産的なものになるでしょう。簡単なことだ。

かつて共有していた夢や希望は失われたし、それはくだらない口先三寸の詭弁では取り戻せない。残念ながらこの仕事における今の私はカネでしか動きません。十分な対価が支払われる可能性が高まれば、もうちょっとまともな対応をしますが、その気のない人に時間を割きたいとは思えません。私の腹の中を探ったり、圧迫面接ならぬ「圧迫交渉」を試みる暇があるのなら、他をあたることをおすすめします。

まなめ王子 22:52 このエントリーを含むブックマーク このエントリーのブックマークコメント

まなめさんのことを「まなめ王子」と書くとなんだか非常に可愛らしい萌えキャラになるのはなぜなのだろうか……。

ニコ動画 SNS で仕事を斡旋されました\(^o^)/ 23:13 このエントリーを含むブックマーク このエントリーのブックマークコメント

問い合わせの手続きがめんどくさそうなので、日記で晒してみる。

こいつから以下のようなメッセージが。

全国で限定150名急募いたします!
ちょっとした時間を有効に使って頂けるので、
本業をお持ちの方の副業としても十分の収支をあげる事が可能です。
http://poteto56.net/t/

シャバいビジネスやってんなぁ、ホントに。

ババアにハメるだけでウン十万手に入るって? 少なくともピチピチの女子高生が三万円で買える国には、そんな仕事はない。よほどの達人なら話は別だろうが、体験談に出てくるエロ漫画の悪役のような顔のおっさんが、その手の仕事で荒稼ぎなどというのはありえない。

*1:/etc/hosts で拒否するなんてこれ以上ない無視だよなぁ。

*2:人のブログコメントすることはない。全部言及してトラックバック

*3:もしそうなら、まともな会社に就職しているよ。

*4:マネジメントやマーケティングを無視する部下と働くのも苦痛でしょうがね。

hayamizhayamiz 2007/11/07 22:12 iPod touchのSafariは以外と不便で、ローカルファイルが開けなかったり、予め複数のページをロードしておいて読むということができない(` A`)

scinfaxiscinfaxi 2007/11/07 22:54 むぅ……。

ちなみに携帯電話を使うという発想はないのですか?

hayamizhayamiz 2007/11/08 00:05 iPod touchと携帯だったら、できることならiPod touchを使えたほうが幸せ。操作の快適さとか画面の広さとか。

そもそも携帯嫌いだし。。。

scinfaxiscinfaxi 2007/11/08 00:16 そうなのですか……。

>そもそも携帯嫌いだし。。。

そりゃまたどうして? プログラミングできないからですか?(私もこの点だけは許せない)

2007-11-06

メモリ管理 11:02 このエントリーを含むブックマーク このエントリーのブックマークコメント

Wikipediaメモリ関係の項目を読み漁っている。

よだれが出るほどに欲しいな……。

非常に面白かった。

Iカップぐらいから巨乳 12:20 このエントリーを含むブックマーク このエントリーのブックマークコメント

そう。だから巨乳は陰謀なんですよ。俺も見たことないもん! あんなの CG に決まってる!

でも、最低Iじゃないと巨をつけないというのはおっぱいにあやまったほうがいいと思いました。個人的には(見せ方にもよりますが)D以上は十分に大きいと思います。そして僕はC以下の女の子に謝った方が(ry

あやまれ! おっぱいにあやまr - screw pile driver

いんたーねっととにじげんの力にそこらへんのおなごが勝てるわけがないのです。例えるならば、将棋好きの中学生が羽生さんと勝負するようなものです。コンピューター研究会の新入部員が Mozilla や Linux を読解しようとするようなものです。先月まで高校生だった自衛隊員に全面戦争をやらせるようなものです(eg. 最終兵器彼女)。社会人一年生の資産とフォーブズ400を比較するようなものです。幼稚園児が関取と相撲をするようなものです。ぴかぴかの Windows Vista マシンが Blue Gene に挑むようなものです。

えばんげりおんのように都合のよい展開などありえません。これはげんじつのたたかいなのですから。

だからわたしはあやまりません。おんなのてきとひなんされようとも、いんたーねっととにじげんに挑むほうがまちがいだとしゅちょうします。

真面目な話

顔の醜美と違って、乳のサイズというのは非常に明確に比較できる上、非常に競争相手の多い分野なので、乳が小さいからといって気にするのは馬鹿げたことだと思うよ。まあ、そのコンプレックスの原因の一人(巨乳が好きな男)が何をいっているんだという話だけれども、逆にその立場からいうと、巨乳などというのは結局のところ沢山の浅ましい男が作り上げた、市場の要求に答えただけの、空想・妄想・ CG であり、他人の妄想と戦うことほど馬鹿げたことはない。あなたがもし、Iカップ以上の乳を持っていないのに、巨乳好きな男性の気をひきたければ、豊胸手術によってIカップ以上にするか、その相手の巨乳であること以外の要求に答えるという二つの選択肢があるわけですが、個人的には後者をおすすめします。その相手が 1. 巨乳を人生を賭けるほどに重要視しておらず、 2. スイーツ(笑)と違って、理性的な判断のできる人ならば、それでうまくいくはずです。どういう恋愛をしたいかによって、打つ手は変わってくるわけですが、長期に渡って安定した関係を築きたいならば、安易な豊胸はおすすめしません。巨乳を人生だと言い切れる人以外にとっては、いくら魅力的にうつったとしても、やはりたかが巨乳なのです。 CG なんです。

教養の差 12:23 このエントリーを含むブックマーク このエントリーのブックマークコメント

ところで、私がデウス・エクス・マキナを知ったのは「よくわかる現代魔法」というラノベを読んだからです。え、三島由紀夫ですって? フヒヒ、激しく教養の差が露呈してしまいましたね^^^^^

ちなみに「よくわかる現代魔法」はプログラマならきっと楽しめるはずです。著者の桜坂洋さんがプログラマなので。

スーツ(笑) 12:42 このエントリーを含むブックマーク このエントリーのブックマークコメント

はてなブックマーク - Vr6ubqgのブックマーク経由。

スーツは品質の低いウンコみたいなコードに莫大なカネを払ってくれるそうなので、むしろ積極的にお付き合いしたいところです。その手の上流屋にとってのプログラマが底辺の工員であるように、プログラマにとっての彼らは単なる金づるに過ぎないでしょう。むしろどんどんスーツ化してくれることを期待しなきゃいけません。

その反面、われわれと立ち位置の近いスーツは白金やダイヤモンドよりも希少な存在なので、丁重に扱わねばなりません。

IPA 12:48 このエントリーを含むブックマーク このエントリーのブックマークコメント

はてなブックマーク - Vr6ubqgのブックマーク経由。

IPA は未踏だけやってくれればおk。予算規模が三倍とか五倍になったらきっと俺だって受かるはず。

馬鹿プログラマは仕事でプログラムするな 12:56 このエントリーを含むブックマーク このエントリーのブックマークコメント

はてなブックマーク - Vr6ubqgのブックマーク経由。

わたしは流石にここまで根本的に馬鹿ではないけれども、それでもここで批判されている馬鹿プログラマの肩を持ちたくなる。彼らがどうかは知らないけれど、個人的には成果物の質は仕事の価値に比例します。このことについては「アマチュア気質が抜けない」だとかなんとでもいえるでしょうけれど、どんなに優れたプログラマだってクソみたいな仕事だとクソみたいな成果しかあがらないのではないですか。ただ、元々非常に高い能力を持っているので、クソみたいな成果であっても、書いた当人以外にとっては十分優れているというだけではないかと。

そういうわけで、誰かをプログラマに仕立上げようとする時、彼らにコードやプログラムソフトウェアやそれらを組むことに対して、愛情やら性癖やらを芽生えさせることが非常に重要なのではないかと思いました*1プログラミング xor 仕事 = φ で、仕事は嫌いという状況は非常によくないので、「好きなプログラミングと嫌なプログラミングがある」と思わせなければ。

若い人に人気のない産業は減衰する 13:10 このエントリーを含むブックマーク このエントリーのブックマークコメント

はてなブックマーク - Vr6ubqgのブックマーク経由。

重箱の隅を突っつかせてもらうと、ニコニコ動画や mixi よりも銀行のオンラインシステムの方が凄いと思う。ニコ動やら mixi やらだったら、大体作り方わかるけれども、オンラインシステムなんて一体何をどうすればいいのかわけがわからない。

BtoBのビジネスをしている企業の業務が学生から見えにくいのは当然で、見えにくいなりに工夫をしないといけないと思う。でも、パネリストの口ぶりからは見えにくいのは当然のことで問題と感じていないというような雰囲気が伝わってきた。興味を持たなければ、インターンにも来ないだろうに。

IPAフォーラム2007で討論してきた - 東大MOT学生の奮闘記

確かに。学生にとって B2B は未知であり、少なくとも私にとっては、未知ながらもそれなりに魅力的な分野に見える。アピールしなくてどうするんだか……。

というか

さらに藤原氏はネガティブイメージについて「ハードウェア開発は迂回生産で生産工程が長いが、IT、特にソフトウェア開発は、頭脳とサーバとオフィスがあればよく、投入する物的資源が少なくて済む。

IT業界不人気の理由は? 現役学生が語るそのネガティブイメージ − @IT

この考え方は非常に危険。工業でいうところの工作機械のような資本財が IT の世界では使いまわしが効くというだけであって、迂回生産が否定されるわけじゃない。ソフトウェアを開発するには「頭脳とサーバとオフィスと資本財になるソフトウェア」が必要なんだ。旗振ってるだけの人々には解らんだろうがね。

当たり前と思ってんのか?!あんたの家族の接待 13:18 このエントリーを含むブックマーク このエントリーのブックマークコメント

はてなブックマーク - Vr6ubqgのブックマーク経由。

結婚をするということは新しい家庭を作るということだ。今まで属していた家庭と手を切れない奴に結婚する資格はない。

index のフットプリント 13:51 このエントリーを含むブックマーク このエントリーのブックマークコメント

うちは極めて長い日記を書くので、低スペックなマシンでうかつにアクセスすると大変なことになるということがわかった。表示日数を1にしておこう。

Rubyist(笑) 14:33 このエントリーを含むブックマーク このエントリーのブックマークコメント

「インスタンスプール」でぐぐってたら行き着いた。

Shiro さんのテキストがまつもとさんに dis られていて、それに対して Lingr で dis が……。この界隈では珍しい図なのでは。

# び
# 「Rubyを使う人」(笑)
# 5:10pm (January 29)
Gauche (at Lingr) > Archives > January 29, 2007

これは新しい。 Rubyist(笑)

あと、この下ぐらいの丸カッコを<>に変えてみたら?から始まる話が面白い。

<define-method describe <object/>
  <let* <<class <class-of object/>/>
         <slots <class-slots class/>/>/>
    <format #t "~s is an instance of class ~a\n"
            object <class-name class/>/>
    <unless <null? slots/>
      <format #t "slots:\n"/>
      <for-each <lambda <s/>
                  <format #t "  ~10s: ~a\n" s
                          <if <slot-bound? object s/>
                              <with-output-to-string
                                <lambda </> <write/ss <slot-ref object s/>/>/>/>
                              "#<unbound>"/>/>/>
                <map slot-definition-name slots/>/>/>
    <values/>
    />/>

これは普通の人々(笑)に馬鹿ウケだな。

結局のところどうなんだろうね

ほぼ純粋培養の自分にはS式への抵抗というのがよくわからんわ。というか、S式以外の表記や、 Lisp/Scheme 以外のセマンティクスなんて考えたくもない。

私の場合、基本的に曖昧なものや、曖昧に見えるものが嫌いというのが大きいと思う。 C 程度の構文ならば大丈夫だけれども、 Perl や Ruby ぐらいになると処理系のパーザとその周辺を頭に突っ込むまで、多分うまく扱えないと思う。実際、俺の書く Ruby コードはこれでもかというぐらいにひどい。

魔法言語 リリカル☆Lisp 14:49 このエントリーを含むブックマーク このエントリーのブックマークコメント

フリーになっている。あとでやってみる。

工程 14:54 このエントリーを含むブックマーク このエントリーのブックマークコメント

  • インスタンスプールを書く
  • スワップを書く

胃が痛い 15:29 このエントリーを含むブックマーク このエントリーのブックマークコメント

なぜだ。短時間に強烈なストレスを感じるようなことはなかったはず。アルコールもやってない。

ああ、そうか。ここ最近一滴も飲んでないから胃の環境が快適すぎるのだな!

無題 16:42 このエントリーを含むブックマーク このエントリーのブックマークコメント

コメント欄における Shiro さんとの instance-pool に関する議論のためのコード。

(define-class <instance-pool-ht-meta> (<instance-pool-meta>) ())
(define-class <instance-pool-ht-mixin> (<instance-pool-mixin>) ()
  :metaclass <instance-pool-ht-meta>)

(define-method instance-pool-create-pool ((class <instance-pool-ht-meta>))
  (print "instance-pool-create-pool specific")
  (let ((pool (make-hash-table 'eqv?)))
    (lambda args
      #?=args
      (if (null? args)
	pool
	(let1 v (car args)
	  (hash-table-put! pool (eqv-hash v) v))))))

(define-method get-all-instances ((class <instance-pool-ht-meta>))
  (cond ((instance-pool-of class)
	 => (lambda (pool) (pool)))
	(else
	 (errorf "class ~s is not a root of instance-pool class tree" class))))

(define-class <hoge> (<instance-pool-ht-mixin>) ())

;; following : sample code

(dotimes (_ 10) (make <hoge>))
(write/ss (get-all-instances <hoge>))

追記

super pre のハイライト指定に gauche がほしいところ。思っているだけじゃどうしようもないんだけどね。

(笑 (笑 ... )) 16:55 このエントリーを含むブックマーク このエントリーのブックマークコメント

最近 (笑) が流行っている。主に俺と俺の Twitter のフレンドの間で。

直近でこんな感じ。

.@yuki_neko_nyan けっこうリアルに怖いネタ.otsune (笑) fromdusktildawn (笑) dankogai (笑) jkondo (笑) umedamochio (笑) hatenaoya (笑) alphabloggers.com (笑) ... about 2 hours ago from web Icon_star_empty

簡単な信者判定方法 : (笑) を付けられてムッときたら,あなたは信者です.Mac (笑) Leopard (笑) ジョブズ (笑) Ruby (笑) Matz (笑) Lisp (笑) ポール・グレアム (笑) Linux (笑) Linus (笑) BSD (笑) ... about 3 hours ago from web Icon_star_empty

銀行 (笑) ATM (笑) イーバンク (笑)手数料 (涙) about 14 hours ago from web Icon_star_empty

なぜ 「ハッカー」 は恥ずかしくないのか ? いや,カタカナだと恥ずかしいか.ハッカー(笑) クラッカー (笑) ネットランナー (笑) ウィニー (笑) シェア (笑) 256 本 (笑) ... about 20 hours ago from web Icon_star_empty

個人的には,ギーク(笑)とアルファブロガー(笑) という単語の恥ずかしさはガチ about 20 hours ago from web Icon_star_empty

Twitter / alohakun

代アニ(笑) about 2 hours ago from movatwitter Icon_star_empty

古民家(笑) デザイナーズマンション(笑) 蔵(笑) 別荘(笑) 田舎でロハス(笑) 大人の秘密基地(笑) about 2 hours ago from movatwitter Icon_star_empty

第一人者(笑) 専門家(笑) スペシャリスト(笑) 匠(笑) 三ツ星シェフ(笑) 一流(笑) プロフェッショナル(笑) about 2 hours ago from movatwitter Icon_star_empty

スピリチュアル(笑) 本当の自分(笑) パワーストーン(笑) 前世は貴族(笑) ソウルメイト(笑) 魂の双子(笑) about 3 hours ago from movatwitter Icon_star_empty

有識者(笑) about 4 hours ago from movatwitter Icon_star_empty

Twitter / jns

プーチン(笑) about 2 hours ago from twittering-mode Icon_star_empty

Twitter / masa_edw

無題 17:07 このエントリーを含むブックマーク このエントリーのブックマークコメント

上司というのはなぜこうにもプログラミングがのっている時に「電話しよう」とかいってくるのだろうか……。

IRC とプログラミングだとアプリケーションレベルでコンテクストスイッチして、疑似並列できるけれども、電話しながらプログラミングしようと思うと処理能力が足りなさすぎて、もう一人俺が必要になるんだな。

無題 20:05 このエントリーを含むブックマーク このエントリーのブックマークコメント

疲れた。結局のところ、目標が大きく異なっているのだろうな。最終的には同じでも、その一歩手前で大きく異なっている。

*1:それを当人に期待するのは多分間違いなんだろうな……。悲しいけれど。

shiroshiro 2007/11/06 16:08 あーちなみにwilikiに書いてあるインスタンスプールの実装はgauche.mop.instance-poolモジュールで使えます。

scinfaxiscinfaxi 2007/11/06 16:43 そんな気がしたんですorz でも、「マニュアルにないし」と……。

ところで gauche/mop/instance-pool.scm の 129行目、 initialize ((class <instance-pool-meta>) initargs) 内の (memq <instance-pool-mixin> (class-direct-supers class)) ですが、 (find (lambda (c) (is-a? c <instance-pool-meta>)) (class-direct-supers class)) ではいけませんか? このようにしておくと、カスタマイズ性が向上します。例えば内部にリスト以外のコレクションを使った instance-pool を簡単に書くことができます : http://d.hatena.ne.jp/scinfaxi/20071106/1194334935

scinfaxiscinfaxi 2007/11/06 17:00 # と、書いたのですが、どうも色々いじくれるようになっているようですね。

shiroshiro 2007/11/06 17:11 ああなるほど。ただそこをそう変えちゃうと、「<instance-pool-mixin>をじかに継承しているクラスがサブクラスを全部把握する」というふうにならないんじゃないかなあ? (Gaucheではメタクラスが継承されるので、サブクラスも(is-a? c <instance-pool-mixin>) に引っかかっちゃうような…) 書いたのがもうだいぶ昔で詳細を忘れちゃったので勘違いしてるかもしれませんが。

scinfaxiscinfaxi 2007/11/06 20:14 つまり、「 <instance-pool-meta> かそのサブクラスをメタクラスに持つクラス」ではダメなのかということなのです。 <instance-pool-mixin> を直接継承しているかどうかの判定だと、 <instance-pool-meta> をカスタマイズ出来ない( instance-pool:create-pool を始めとするメソッドを特定化できない)のではないかということです。

「サブクラスも(is-a? c <instance-pool-mixin>) に引っかかっちゃうような…」については、回答を留保させてください(多分そうだと思います)。シラフなら落としどころを考えられるのですが、酔っ払ってしまいましたので、明日にします。申し訳ないです。

# んー、こういう議論が出来るって素晴らしい!

shiroshiro 2007/11/06 20:53 ああそうか。instance-pool:create-poolが決め打ちで <instance-pool:list-pool> のインスタンスを作っちゃうから、そこを変えたかったら<instance-pool-meta>を継承するしかないのか。多分あんまり考えてなかったな。
今の枠組でやるとするとclass-direct-supersを一個一個しらべて「直接の親が<object>で(is-a? c <instance-pool-meta>)なクラス」とか探せばいけそうだけど、不必要に複雑になってる感じがしますね。むしろ「<instance-pool-meta>自身を継承してカスタマイズさせる」という枠組を放棄して、<instance-pool-meta> => <instance-pool-mixin> というのは固定にしておき、<instance-pool-mixin>のクラススロットにプールの中身のクラスを入れられるようにする方がいいかな? だがそれだとインスタンスのスロット名をひとつ予約しちゃうことになるのか。
もうちょっと考えてみます。とりあえず今はgauche.mop.instance-poolは非公式なんで、今つかうぶんにはまるごとコピペして自由に変えて使っちゃって結構です。

てお@携帯てお@携帯 2007/11/06 21:50 了解ッス! 楽しみにしています!

2007-11-05

ウルトラマンのおっちゃん 06:42 このエントリーを含むブックマーク このエントリーのブックマークコメント

今週(11-04)と先週(10-28)に二週連続で登場したゲストがとても面白かったのでリンク。今週のはまだ上がっていない様子。

PHP と初心者の嫌な関係 07:21 このエントリーを含むブックマーク このエントリーのブックマークコメント

あんまりに HTML や XML に染まりすぎて、 MIME type を忘れていたorz

これだけあるのに application/x-php なんてのがないのが少し悲しい(x-httpd-cgi や x-csh ならある)。

最初のうちは「 HTML が静的で PHP が動的」でもええと思うんです。人にプログラミングを教える人間というのは、大抵めんどくさがって嘘を教えるものですし、それがよろしくないからと云って、私みたいに可能な限り正しくやろうとしたところで、結局聞いている人が混乱するだけです。ただ、 PHP 以外に動的な Web サイトを作り出す方法を知らないというのは危険な状況です。この件では多分問題にならんでしょう。しかし、そういう人というものは個々のアルゴリズムやデータ構造についても「それ以外知らない」という状況になるものです*1

そういうわけで、学ぶ側の利益を上げるには、 PHP 以外の手段について知っておいて、「 HTML が静的で PHP が動的」という先生のお言葉に対しては「他の手段の紹介をするのは面倒だから端折ったんだな」と考えることですが、こうなってくると、まるでこの年になって二桁の掛算を教えられているような気分になってきて、授業自体が本当に馬鹿馬鹿しいものになってしまいます。一対多の授業だとここで手詰まりなのですが、一対一ならばくねくねとツッコミを入れたり、たくさん質問したりすることで解消されてゆくはず(そうであってほしい)。

専門学校(笑)に入ると解ることですが、プログラミングを教えてくれる人というのは性質の悪い悪徳セールスの方が多いものです。あの空間ではまともなプログラミングよりも、ラズベリーで武装した敵からの護身術のような授業の方が多いわけで、業界がどういう人材を求めているのかがよくわかるというものです。 PHP の話にしても、どうせ理系出身者なんていらねえんだよ。にしても「結局そうなんだなぁ」と落胆を覚えるしかありません……。いわゆる伝統的な意味での IT 業界(SIer)以外でプログラミングできる場所って何処よ?

追記

  • 2007年11月05日 HolyGrail HolyGrail netwatch geekになるためには>「例えば、PHPを避ける」
はてなブックマーク - ギークなお姉さんは好きですか - #`

うまい! 爆笑した。座蒲団三枚。

  • 2007年11月05日 avena avena communication 技術や知識よりも性別の稀少性に言及したスケベコメント↓が集まる軽さ。やりきれない。そして、逆に "男" であるが故に影の薄い凄腕お兄さん hacker がいる事に気づく。彼らが自他の性を恨まずに済むような世界にしたい
はてなブックマーク - ギークなお姉さんは好きですか

もう遅い\(^o^)/

はてなブックマーク - ギークなお姉さんは好きですか

hkn がお姉さんまたはギークかどうかは解らないけれど、性別が女性で PHP の能力があることは確かでしょう。しかし、知名度が低い。

結局この世は人気競争ですよ……。昨日今日に始めたばっかりの奴に技術的な文書で負けるなんて、何やってんだろうな、俺。

悲しくなったので、ちょっと describe してくるわ。

最近のバージョンの Theoria Laevatain 07:30 このエントリーを含むブックマーク このエントリーのブックマークコメント

古いバージョン(画像どっかいった)に比べるとだいぶ変わっているなぁ。

先月の過去ログは1.1MB 07:49 このエントリーを含むブックマーク このエントリーのブックマークコメント

バックアップとった。よくもまあ、こんなに書いたもんだ。

あなたの価値観教えてください 09:06 このエントリーを含むブックマーク このエントリーのブックマークコメント

愛情>金銭>健康>誠実>名誉>権力>学歴

先頭の三つはそれなりに気を使うもので、残りの四つは「(後から付いてくるので)それほど気にするものじゃないよね」というもの。

いうまでもなく一番重要なのは「プログラミングの能力」だけれども。というか、それだけあれば後は何もいらないや。

ケータイ小説(笑) 09:29 このエントリーを含むブックマーク このエントリーのブックマークコメント

ケータイ小説ハジマタ - 日記を書く[・ _ゝ・]はやみずさん経由。

セックス→中出し→妊娠ばっかりだな……。幸せそうでなにより。

mixiの外部ブログ更新がおかしい 09:45 このエントリーを含むブックマーク このエントリーのブックマークコメント

さすが mixi (笑)。

どんな些細なことであれ、あの会社に何か期待するのは間違いなんだろうな。あいつらにとってはユーザーなんて床に落ちた毛のようなものなんだよ。

人生オワタ 09:50 このエントリーを含むブックマーク このエントリーのブックマークコメント

こんな馬鹿そうな奴らが東大生だというのに俺ときたら……。

といっても、見た目は五十歩百歩か……。

リンゴが6987908627927689個あります。2924753人で等しく分けるには 10:33 このエントリーを含むブックマーク このエントリーのブックマークコメント

リンゴの90%をおよそ1000人の勝ち組が独占しているので、等しく分けることは出来ない。

さっき生物学の教授に聞いたんだけど 10:41 このエントリーを含むブックマーク このエントリーのブックマークコメント

むしろ武装制限なしなら一人でどのくらいの動物を殲滅できるのかが気になる。

無題 11:33 このエントリーを含むブックマーク このエントリーのブックマークコメント

やっと解ったよ。巨乳なんてのは全て CG なんだ。俺が知らないだけで、どっかの白人が複雑な形状のスクリーンに映像を投射する装置を開発したんだ。そして、シリコンか何かでできた大きな偽乳を小さな胸に貼り付けて、その表面に CG を投射しているんだ。あるいはアメリカか何処かで液晶の技術が高度に発展していて、自在に形状が変化する液晶パネルを巨乳オブジェクトの表面に貼り付けているんだ。しかし、これは非常に高価なエフェクトなので、サイン会などのイベントでしか利用できない。なので、普段は誰かが書いた非常に高度な動画編集ソフトで、本当は貧乳のアイドルの胸を偽装し、我々を洗脳しているんだ。

巨乳という摩訶不思議な存在は全て科学技術で説明がつくんだ! 巨乳というのは実は国連の壮大な陰謀で、本当は存在しないんだ! 我々は騙されているんだ!

巨乳の定義

  • 2007年11月05日 Vr6ubqg Vr6ubqg 巨乳の定義から語ってくれることを希望します!
はてなブックマーク - 無題 - #`バーチャルネットプログラマ テオリア,(receive (_ e) (frexp 1e6) e)歳

定義といわれても。とりあえず「大きな乳」のことだけれど、何処からが「大きい」のかは議論の余地があるとは思う。個人的には服をきても、全裸(または水着)になっても、はっきりと大きいと解るぐらいに大きければ巨乳と考えている。個人的にはリアディゾンは明らかに巨乳ではない。MEGUMI小池栄子も巨乳ではない。滝沢乃南はまあまあ巨乳だと思う。一色雅は十分に巨乳。風子は記録的な巨乳といえるが、天は二物を与えずという言葉のとおり、顔面が微妙なので、個人的にはあまり好きではない。

read 11:52 このエントリーを含むブックマーク このエントリーのブックマークコメント

巨大なデータを扱う時の為に遅延した S 式の読み込みが欲しいな。とりあえず、遅延ストリームを調べてみよう。

パフォーマンステスト #1

$ time /usr/local/bin/gosh /tmp/_3& 
[5] 12806
$ /usr/local/bin/gosh /tmp/_3  10.40s user 0.66s system 19% cpu 56.258 total

[5]  - done       time /usr/local/bin/gosh /tmp/_3

むー……。

/tmp/_1(無意味で長大な S 式の生成器):

(use srfi-1)

(define-macro (memorize ht-type proc . rest)
  (let-keywords
   rest ((values? #f))
   (let ((ht (gensym)) (result (gensym)) (args (gensym)))
   `(let ((,ht (make-hash-table ',ht-type)))
      (lambda ,args
	(cond
	 ((hash-table-get ,ht ,args #f)
	  => (lambda (,result)
	       ,(if values?
		  result
		  `(apply values ,result))))
	 (else
	  (,(if values?
	      'let1
	      'receive)
	   ,result (apply ,proc ,args)
	   (hash-table-put! ,ht ,args ,result)
	   ,result))))))))

(write
 (letrec ((loop
	   (memorize
	    equal?
	    (lambda (n)
	      (if (= n 0)
		'()
		(unfold
		 (lambda (n) (= n 0))
		 (lambda (n) (loop (- n 1)))
		 (lambda (n) (- n 1))
		 n))))))
   (loop 22)))

/tmp/_2(無意味で長大な S 式):

(((((((((((((((((((((((((((((((((((((((((((((()))) ())) ((())) ())) ((((()))) ()) ((())) ())) ((((((()))) ())) ((())) ()) ((((()))) ()) ((())) ())) ; 以下再帰的構造が15MB続く

/tmp/_3( read のテスト):

(with-input-from-file "/tmp/_2"
  (lambda ()
    (read)))

パフォーマンステスト #2

$ l /tmp/_5
-rw-r--r-- 1 theo theo 54M 2007-11-05 13:00 /tmp/_5
$ gosh: "read-error": Read error at "/tmp/_5":line 1: EOF inside a list (starting from line 1)
/usr/local/bin/gosh /tmp/_6  28.48s user 0.87s system 24% cpu 1:58.67 total

[5]  - exit 1     time /usr/local/bin/gosh /tmp/_6

生成器:

(use util.combinations)
(use srfi-1)
(use srfi-27)
(use slib)
(require 'pretty-print)

(define *max* (expt (expt 2 32) 32))

(define (fact n)
  (do ((r 1 (* n r)) (n n (- n 1)))
      ((= n 0) r)))

(let1 fp (open-output-file "/tmp/_5")
  (with-port-locking fp
    (lambda ()
      (with-output-to-port fp
	(lambda ()
	  (let1 n (fact 8)
	    (dotimes (_ n)
	      (write-char #\()
	      (dotimes (_ n)
		(write-char #\space)
		(write (random-integer *max*)))
	      (write-char #\)))))))))

生成されたコード :

(random-integer (expt (expt 2 32) 32)) を要素とする要素数40320のリストを54MB分。本当はそのリストが40320個あるはずだけれど、途中で千切れた様子。

読み込み用のコード:

(with-input-from-file "/tmp/_5"
  (lambda ()
    (port-for-each
     (lambda _)
     read)))

結論

どうしたもんかね……。

あー…… 15:22 このエントリーを含むブックマーク このエントリーのブックマークコメント

手続きの大域的な束縛を parameterize してぇ……。

無題 15:24 このエントリーを含むブックマーク このエントリーのブックマークコメント

100時間も勉強せずにプログラミングが出来るようになると思うなよ。

スイーツ(笑) 15:26 このエントリーを含むブックマーク このエントリーのブックマークコメント

リファラにあってワロタ

なんという凡ミス 16:23 このエントリーを含むブックマーク このエントリーのブックマークコメント

永続化されたオブジェクトを restore した時に、別の永続化されたオブジェクトを格納しているスロットがうまく初期化されないので、必死になって調べていたら、 :init-keyword が別のスロットと衝突していた。つまりこういうこと。

(define-class <foo> (<permanent-mixin> <validator-mixin>)
  ((b :init-keyword :b :permanent #t)
   (c :init-keyword :b :permanent #t) ;; ココ
   (d :init-keyword :d)
   (e :init-keyword :e)))

<validator-mixin> を継承しているのは、デバッグの為に :observer を仕掛けるなどしたから。他にも make を特定化したり、 class.c を開いて初期化ルーチンを読んだり、スロットナンバーが変わっていないか調べたり、手当たり次第にデバッグプリントを埋め込んだりと、自分でいうのもなんだが、涙ぐましい。

make を呼ぶ時の :init-keyword の typo にしてもそうだけど、 :init-keyword まわりは本当にミスに気づきにくい。

デバッグプリント

デバッグプリント」でぐぐったら 1992 年に結城さんが書かれたテキストが。よい気分転換になったのでリンクしておきます。

女子高生プログラマーだって? 18:17 このエントリーを含むブックマーク このエントリーのブックマークコメント

はてなブックマーク - ギークなお姉さんは好きですか経由。

まずタイトルで吹いた。次に Haskell とか書いてあって吹いた。更に nobsun がコメントしていて吹いた。最後に「最近言及したキーワード」で Scheme が一番大きくて吹いた。

しかも、密かにうちのGauche を XREA にインストールする方法リンクされている。 id:gyuque が謎のコメントを残していたり、学校の授業で Scheme があったりと、とにかく謎が多すぎる。しかもこの短期間に Scheme/Haskell/Perl/Python というバイリンガルぶり。個人的に PHP はオススメしません。

非常事態 20:18 このエントリーを含むブックマーク このエントリーのブックマークコメント

デザインを Ghost シリーズに戻した。具体的には Ghost 6 を近代的に改装し、 Ghost 7.1 を書いた。タイトルも黎明日記に戻した。15分以上 CSS を書いたのなんて、もう二年ぶりぐらいじゃないかと思う。

なんでかというと、黎明日記が閉鎖する可能性が出てきたからだ。日記ではデウス・エクス・マキナなんてデカい口叩いてる癖に、今回ばかりはどうにもなりそうにない。なので書いてしまうけれど jonathans との関係が危機を迎えているんだ。このまま別れることになれば、必然的にここも閉鎖することになる。黙っていられる性格ではないので、ブログの類を完全にやめることは考えられないし、 mistilteinn をある程度書くまで処置のメドは立たないだろうけれど、最終的に黎明日記は閉鎖することになる。

彼女は今朝から機嫌が悪かった(だいぶ考えたけれど、その原因の一部は未だに許容できない)。そして私はその対応を誤ってしまい、昼頃から連絡がつかない。携帯は電話メールともに着信許否。有線電話からかけてみるも一度も出ない。今回の件は Nice boat. と違って構造的な問題なので、状況は非常に苦しい。どうしたものかと考えた末に、ここに書くという手を思いついたわけだ。もしかしたらうまくいくかもしれないし、余計に状況が悪くなるかもしれない。後者の可能性の方が高いので、非常に分の悪い賭けだ。

jonathans へ。完全に別れることも視野に入れて、一度話しませんか。二年前、付き合う時はあれほどに体裁を気にしたというのに、いきなり連絡を絶つというのはひどいではないですか。連絡を待っています。

追記

成長しないな……ホント……。

追記 #2

状況は好転しました。お騒がせしてすんませんです。

これはなんという Web 2.0 23:00 このエントリーを含むブックマーク このエントリーのブックマークコメント

  • 2007年11月02日 Vr6ubqg Vr6ubqg ダメ脳なので勝手に擬人化というか人格化して萌えましたごめんなさい。
はてなブックマーク - 性的な、あまりに性的な - 吠えてるんじゃなくて ないてるんだ

id:Vr6ubqg が元々 id:kotohogi_k のファンだったのか、何処かのブログ経由で知ったのかは追求しないでおこうと思う。

TODO 23:10 このエントリーを含むブックマーク このエントリーのブックマークコメント

いつも TODO を「トド」と読んでしまう……。

次は Weak ポインタから。

InstancePool の議論は非常に役立つというか、やりたいことそのまんまなのでよく参考にすること。

weak vector でぐぐるとごろごろ出てくるな……。主に1と3をぼんやり考えていたのだけれど、3に書かれているアイデア永続オブジェクトのところはコメント入れて300行も無いで少し動き始めた感じ(過激なアイデア、使ってしまってもいいですか?)。

もう寝る時間なのが惜しいな……。明日になったらこのときめきのようなものは大きく劣化するのだろうな……。

記憶の彼方にいってしまったのでリンクしておく。

weak hash table の代替

hash-table のエントリに object を直接入れるのではなくて、間に Weak ベクタを噛ませればよいのでは……?

つまり、最も安直なパターンだと、こういう感じ。

(lambda (ht key value) ;; hash-table-put! に相当
  (let1 wv (make-weak-vector 1)
    (weak-vector-set! wv value)
    (hash-table-put! ht key wv)))

(lambda (ht key fallback) ;; hash-table-get に相当
  (weak-vector-ref (hash-table-get ht key fallback) 0))

うまく動くなら当座のしのぎにはなると思うのですが、そう話は簡単ではないのだろうな……。

*1:私とて偉そうにいえる立場じゃないんだけどね。現に MIME を忘れていた。

2007-11-04

ギークなお姉さんは好きですか 09:51 このエントリーを含むブックマーク このエントリーのブックマークコメント

恋焦がれる理想の男性・ギークに近づくため、PHPをお勉強してギークな女を目指すブログ

ギークなお姉さんは好きですか

ギークと呼ばれるようになるまで、軽く二三年はかかると思うけれど(うわー、嫌な奴……)、頑張ってくださいね。応援しています。

静的なページと動的なページ

□ html は静的なページ

  • サーバーは常に決まったデータしか返せない
  • ユーザーサイドで動くので、早い・遅いはブラウザ(PC環境)に依存する
  • それでもサーバーなら・・・サーバーならきっと何とかしてくれない・・・!

■ php は動的なページ

  • ユーザーが何かを入力して、Yes だったらコレ、No だったらコレ、ともらったデータに対して臨機応変なデータを返せる
  • サーバーサイドで動いてるので、サーバーに負荷がかかる
  • 重くなったりするのは、キャパ以上のユーザーがアクセスしてサーバーがテンパってるから
ギークなお姉さんは好きですか

何故 HTML と PHP を対比させるのか解らない。単に HTML ファイルを公にされているディレクトリに置いただけ(URI の末尾が大抵 .html 。これが「静的なページ」のことだと思われる)でも、 CGI や PHP や FastCGI をちゃんと設置したとしても( .cgi や .php や .fcgi など)、 JSP や Java Servlet や ASP.NET や Ruby on Rails を使ったとしても(ここらへんになると拡張子なしの場合が多い)、最終的にユーザーに送りつけられるのは HTML です*1。そしてここに挙げたもののうち、「単に HTML ファイルを公にされているディレクトリに置いただけ」以外は動的に送りつけるデータを組んでゆくことにこそ価値のあるものばかりです。

本当に geek になりたいのなら……

PHP はやめておいた方がよろしいかと。 Perl/Python/Ruby/C/C++/Java/Lisp/Scheme/Ocaml/Haskell なんかが好きなギークはよく見かけるけれど、 PHP を好むギークって相当に少なくないですかい。いや、みんな本当は PHP 大好きで、だからこそ例えば、PHPを避けるなんかを自虐的にネタにしたりするのかもしれないけれど、それでもギークになりたい人にとっては、プログラミングがある程度できるようになってきたら、すぐに物足りなくなってしまう*2でしょう。もし本当にゆくゆくは dankogai をコンパイルしたいのなら Perl 以外に選択肢はないようにも思えます。

そういうわけで(どういうわけだ)、この件に関して dankogai さん直々のアドバイスを期待しています。

ナンテコッタイ\(^o^)/

ゲスト

何気にゲストが豪華だな……。うちも負けてらんないなぁ。

いやそもそもこれは id:lovecall なのか……。どおりでいきなりホッテントリに入ってるわけだ。タバコ吸ってこよ……。

ガチで数年引き篭もった事のある奴しかわからない経験 10:09 このエントリーを含むブックマーク このエントリーのブックマークコメント

書いてみる。

  • 気がついたら一週間ずっと眠っていた。
  • 飲酒喫煙の量がハンパじゃない(それかまったく手を出さないか)。
  • 今が何年の何月で何曜日なのか、カレンダーを見ないとわからない。
  • 「そういえば一ヶ月ぐらい着替えていない」
  • ずっと家にいるはずなのに、なぜか夜中に一人で食事。
  • カーテンをひいただけだと明るすぎると、シャッターや雨戸を使い始める。
  • 母親に「くる病に気を付けろ」と警告される。
  • 床屋に行かないのでロン毛。
  • 写真をとると、白飛びしてうまく写らない(eg. プリ☆クラ - 2007-11-01 - 黄色いガードレールの上で)。

分裂さんは Twitter の世界に旅立ちました 10:23 このエントリーを含むブックマーク このエントリーのブックマークコメント

なんていうとプロテクトされそうで怖いのだけれども。どうやら書きたいことはたくさんあるようなので、きっと復活してくれるはず。

働きマン 13:11 このエントリーを含むブックマーク このエントリーのブックマークコメント

あんな男だらけの職場にいる女なんてなぁ……。

定時で退社する人って何なの? 13:14 このエントリーを含むブックマーク このエントリーのブックマークコメント

就業時間やら給料やらがいつも一緒という制度の方が何なの。仕事によって労働時間も給料も難しさも違ってくるだろ。

その仕事に見合った給料が支払われることが、全ての前提だ。少なくとも積極的に飼われたいとは思わない。

*1:より正確には HTML であることが多い。 RSS や Atom なんてのもあるし、独自の XML + XSL を送りつけて HTML の代替とする人々もいる。

*2:学ぶことがない。しかし実力もない。というジレンマ。

2007-11-03

万年時計の謎に挑む 10:28 このエントリーを含むブックマーク このエントリーのブックマークコメント

2007-11-02 - 黄色いガードレールの上で - 万年時計の謎に挑む経由。

マイクロチップなしでやってしまうその根性には、多分どう足掻いても勝てない。

なんだかとてもよい刺激をもらった。俺も俺にできることをやろう。

オブジェクトの永続化 #2 11:04 このエントリーを含むブックマーク このエントリーのブックマークコメント

compute-get-n-set

objlib.scm によると compute-get-n-set はリストか整数値か slot accessor を返すはずだ。しかし、 gauche.mop.validator の compute-get-n-set (<validator-meta> <top>) においては next-method の戻り値が slot-****-using-accessor に食わされている。例えば slot-ref-using-accessor の実体は Scm_VMSlotRefUsingAccessor(ScmObj obj, ScmSlotAccessor *sa, int boundp) であり、型エラーになるのでは……?

と思ったら、思いっきり見落としていた。 next-method の結果が compute-slot-accessor に喰わされて、ここで slot accessor に統一されるのだな。お騒がせして申し訳ない。

シリアライズの困難さ

とりあえず、永続化されるオブジェクトに対する変更を記録してみようと考えたのだが、「どのスロットに対する操作か」は compute-get-n-set において slot accessor として表現されている。これを記録できれば便利なんだけれど、 describe すると getter/setter なんてスロットがある。どうしたもんか。

あー、スロット定義オブジェクトが参照できるかもしれない。やってみよう。

とりあえずできた

(use gauche.parameter)


(define default-odb-file
  (make-parameter
   #f
   (lambda (f)
     (and f
	  (close-output-port
	   (open-output-file f :if-exists :supersede)))
      f)))

(define (with-odb-file thunk)
  (with-output-to-file (default-odb-file)
    thunk :if-exists :append))

(define-macro (with-odb-file* . form)
  `(with-odb-file (lambda () ,@form)))

(define (init-odb db-filename)
  (default-odb-file db-filename))


(define-class <permanent-meta> (<class>) ())

(define-class <permanent-mixin> () () :metaclass <permanent-meta>)

(define-method allocate-instance ((class <permanent-meta>) initargs)
  (let1 obj (next-method)
    (dump-make obj class initargs)
    obj))

(define-method compute-get-n-set ((class <permanent-meta>) slot)
  (if (slot-definition-option slot :permanent #f)
    (let* ((acc (compute-slot-accessor class slot (next-method)))
	   (getter (lambda (o) (slot-ref-using-accessor o acc)))
	   (bound? (lambda (o) (slot-bound-using-accessor? o acc)))
	   (setter (lambda (o v)
		     (dump-slot-set o (slot-definition-name slot) v)
		     (slot-set-using-accessor! o acc v))))
      ;; the last #t enables initialization by :initform etc.
      (list getter setter bound? #t))
    (next-method)))

(define (%object-identity obj)
  #`"o,(eqv-hash obj)")

(define (dump-make obj class initargs)
  (with-odb-file*
   (format/ss #t "(define ~a (make ~s"
	      (%object-identity obj)
	      (class-name class))
   (for-each
    (lambda (e) (display " '")(write/ss e))
    initargs)
   (format/ss #t "))\n")))

(define (dump-slot-set obj slot-name v)
  (with-odb-file*
   (format/ss #t "(slot-set! ~a '~s '~s)\n" (%object-identity obj) slot-name v)))

;; sample code

(define-class <bar> ()
  ((a :init-keyword :a)))

(define-class <foo> (<permanent-mixin>)
  ((b :init-keyword :b :permanent #t)
   (c :init-keyword :b :permanent #f)
   (d :init-keyword :d :permanent #f)
   (e :init-keyword :e)))

(define-class <hoge> (<foo> <bar>)
  ((f :init-keyword :f :permanent #t)))

(init-odb "/tmp/odb.scm")

(let1 hoge
    (make <hoge>
      :a (expt 2 3) :b "2" :c 'c :d (list (+ 123 4)) :e 'x :f 'y)
  (slot-set! hoge 'a 1)
  (slot-set! hoge 'b 1)
  (slot-set! hoge 'c 1)
  (slot-set! hoge 'd 1)
  (slot-set! hoge 'e 1)
  (slot-set! hoge 'f 1)
  )

実行例。

$ gosh vendor/mistilteinn/odb.scm && cat /tmp/odb.scm
(define o2931091712 (make <hoge> ':a '8 ':b '"2" ':c 'c ':d '(127) ':e 'x ':f 'y))
(slot-set! o2931091712 'f 'y)
(slot-set! o2931091712 'b '"2")
(slot-set! o2931091712 'b '1)
(slot-set! o2931091712 'f '1)

課題

  • 生成されるコードにおいて、 eqv-hash を名前の一部に使っているので、長期間運用するとめんどくさいことになるかもしれない(オブジェクトが同じ場所にアロケートされて……)。
  • 常に最初に make された時から復元してゆくわけにはいかないので、定期的にスナップショットをとる機能が必要。
  • slot-set! されるたびにファイルを開いて書き込んでいたら話にならないので、中間バッファが必要(定期的に自動で flash するようにできれば……)。
    • gauche.vport を使えばうまくいくかもしれない。
  • 読み込み機能。永続化されたオブジェクトが GC されることを許すように書かなければならない(全部メモリの上に置いておけるほどに金持ちじゃないのでね……)。
  • インデックス。基底のデータ構造(rb-tree や b-tree やその他色々)を選べるように書くこと。
  • あんまりに我が道をゆくと恥ずかしいことになるので、先人のコードを読んでおこうね>俺

ゆ〜にゃんは MtF なのか 11:12 このエントリーを含むブックマーク このエントリーのブックマークコメント

激しくワロタwwwwww

「計画0x0c」のあとがきが面白い - yang-dele日記:のこぎり×バールのようなもの。経由。

  1. ユートピア的イデオロギーによって正当化されることが多い。
  2. 個人の放埓を制限し集団で力を合わせて危機を乗り切ろうという意図から産まれる。
  3. しかし、批判勢力の口を封じるうちに、集団の中心人物・中心グループが集団を私物化して制御不能の状態に陥り、悲劇的結末を招く場合が多い。
  4. 解決策を示す事ではなく、資本家・左翼勢力・外国(人)など判り易い「国民の敵」「大衆の敵」を作って攻撃し、大衆に爽快感を味あわせる事によって支持を集める。
  5. 基本的に、善意を装って生まれる。
  6. しばしば新時代への希望が喧伝される。
  7. 労働者階級等の貧困層、少産階級のように、政治に不満を持つ階層を取り込むポピュリズムによって生まれやすい。
  8. 貧困層が多数派の、普通選挙制度を採用する国で生まれやすい。
  9. 国民に主権者(国主)としての自覚がなく、どうすべきか考えず、公僕を指揮して問題解決するより、贔屓の英雄/独裁者の指揮下に入って助けてもらおうとして自ら奴隷に落ちる場合(自由からの逃走)に発生する。
  10. 軍事力によるクーデタだけではなく、ナチスのように政治パフォーマンスで人民の人気を得て合法的手続きを踏んで権力を掌握する場合も多い。
  11. 完全主義の人々が主導力となる。
  12. 大衆の好意を獲得しやすい。
  13. 異端を排除する度合いが、徐々にエスカレートしていく。
全体主義 - Wikipedia

これなんて株式会社?

腋巫女 12:42 このエントリーを含むブックマーク このエントリーのブックマークコメント

腋+巫女というその発想に脱帽。

トラックバック - http://d.hatena.ne.jp/scinfaxi/20071103

2007-11-02

今週はなにもできんかった 06:43 このエントリーを含むブックマーク このエントリーのブックマークコメント

なんとなく気力が出ずに、 hook をちょっといじった後は BG2 SOA を遂にクリアしてしまったぐらい。あと白倉由美の「おおきくなりません」を読了したぐらい。

まあ、こういう時もある。腐らずにいたいと思う。今日は十分に寝て、早起きできたので、来週への布石として、あるソフトウェアの調査をしておきたいと思う。

麺づくり15周年 06:46 このエントリーを含むブックマーク このエントリーのブックマークコメント

いきつけのスーパーで、どれでも88円だったので、五種類全部を二つずつ買ってきた。期間限定の坦々麺うめぇ。今週末にも残ってたら是非買い占めよう。

最高に気持ちいいSEXの体位を発見した!! 08:51 このエントリーを含むブックマーク このエントリーのブックマークコメント

そうか……よかったな……。

「おはよう奥さん」誌と「はてなブックマーク」の間に 08:54 このエントリーを含むブックマーク このエントリーのブックマークコメント

逆に「おはよう奥さん」の方が異常だと感じる。年間数百円節約してる暇があったら、働けよ……。

この世の中には朝から晩まで(晩から朝まで?)、ネットとプログラミングのことしか考えていない奴だってたくさんいるんだ。そういう人間から、わざわざ遊び場を奪わなくたっていいじゃないか。

パス 09:50 このエントリーを含むブックマーク このエントリーのブックマークコメント

kahua-spvr -S ~/work/site -H localhost:8088

とすると

*** ERROR: couldn't open output file: "/home/theo/work/site/run/kahua-spvr.pid"

となる。小一時間悩んで解ったのだが、サイトバンドルのパスは ~/workspace/site でした。

オブジェクトの永続化 11:33 このエントリーを含むブックマーク このエントリーのブックマークコメント

kahua.persistence や Gauche:ObjectPrevalence を読んでみても当然ながらわけわからんので、まずは自分で書いてみよう。

クラス

早速問題にぶちあたった。クラスを如何に保存するかということ。

MOP ではクラスもオブジェクトなので、そのまんま保存してしまおうと思ったんだけど、そうするとクラスのクラスはどうしようということになる。クラスのクラスのクラスは?

(and
 (eqv? <class> (class-of <class>))
 (eqv? (class-of <class>)
       (class-of (class-of <class>)))
 (eqv? (class-of (class-of <class>))
       (class-of (class-of (class-of <class>)))))

は #t なので <class> の class-of は循環しているようだ。そう仮定して進めてみよう。

ひどいことになった

(let1 obj
    (make (let1 obj (make #<class <class>>)
	    (slot-set! obj 'name '<bar>)
	    (slot-set! obj 'cpl '(#<class <bar>> #0=#<class <foo>> #1=#<class <object>> #<class <top>>))
	    (slot-set! obj 'direct-supers '(#0# #1#))
	    (slot-set! obj 'accessors
		       '((c . #<slot-accessor <bar>.c 0 :c>)
			 (a . #<slot-accessor <bar>.a 1 :a>)
			 (b . #<slot-accessor <bar>.b 2 :b>)))
	    (slot-set! obj 'slots
		       '(#2=(c :init-keyword :c)
			    (a :init-keyword :a)
			    (b :init-keyword :b)))
	    (slot-set! obj 'direct-slots '(#2#))
	    (slot-set! obj 'num-instance-slots '3)
	    (slot-set! obj 'direct-subclasses '())
	    (slot-set! obj 'direct-methods '())
	    (slot-set! obj 'initargs '(:name <bar> :supers (#0#) :slots (#2#) :defined-modules #3=(#<module user>)))
	    (slot-set! obj 'defined-modules '#3#)
	    (slot-set! obj 'redefined '#f)
	    (slot-set! obj 'category 'scheme)
	    . #4=(obj)))
  (slot-set! obj 'c '123)
  (slot-set! obj 'a 'xyz)
  (slot-set! obj 'b '"abc") . #4#)

どないせえっちゅーねん!

とりあえずクラスまで保存するのは間違った考えだということがよくわかった。クラスは「そこにあるもの」として、インスタンスだけ保存した方がよさそうだ。

家族愛って何? 20:25 このエントリーを含むブックマーク このエントリーのブックマークコメント

全部読んだ。これは……なんというか、若すぎて吐き気を催すわ*1。やるならやればいいし、やらないなら黙っていればいい。んなこと人に相談して何がしたいんだか……。このところの増田ってこんなんばっかだな。

家族愛とかえらい大仰だけれど、兄にしてみれば「妹が一番手っ取り早いので(セクロスを視野に入れて)デートに誘ったけれど、途中でこれはまずいと考え直した」とか、そんな感じじゃね? それか、完遂する能力も気概もないのに「一生おまえを守ってやるぜ」的な考えをしていて、実際にそんなセリフを吐いたりして、その愚かさやおかしさに気付いていない道化のような状態か*2

温かいトラバ下さる人もいるので嬉しいです。
なので、少しだけ続けてみようかなという気になりました。
こんなたかが中学生の書く日記に【失せろ】とかトラバを送ってくる人もいるけど、
そういう人に限って、ブックマークを外さないでいつまでも監視してるんですよね。
そーゆーの【粘着】って言うんですよね?
時間の無駄だと思うのでブクマ外して下さい。
どうせ、こっそりと自分のパソコンの『お気に入りに追加』するんでしょうけど。
ほんとは、批判的な意見をしてくる人ってのは大概、『構ってちゃん』が多いらしいので
華麗にスルーするのが賢明らしいけど、一応、構ってみました。
家族愛って何?10

内容どうこう以前にこういうところが頭可哀想というか……。

少なくとも増田の場合、構ってほしいのではなくて、排除したいから攻撃的な反応をするのだと思うよ(私みたいな物見遊山もいるだろうけれど)。

勘違い

大阪の人かと思ったら神戸かいな……。

神戸第三学区
神戸市長田区のうち西代中、高取台中及び太田中の区域・須磨区のうち神戸第二学区の所属区域を除く区域・垂水区・西区
兵庫県高等学校一覧 - Wikipedia

まー、なんというか、匿名ダイアリとはいえ、よく平気で居住地を書けるもんだな……。中学生だというのに……。

色々と残念な人だけれど、今時の中学校ではネットリテラシーみたいなのはやらないわけ?

白馬の王子様症候群 20:33 このエントリーを含むブックマーク このエントリーのブックマークコメント

注釈が妙に盛り上がったので、ぐぐってみたら既に使われていたようだ。

恋愛は出会わなければ始まりません。出会いがないから彼氏がいない。

というのはただの言い訳です。このセリフを言うのがいわゆる「白馬の王子様症候群」の女性です。彼氏が欲しくないわけじゃないのに自分からは動かない。

言い訳をしない!(モテる女・モテる男になる恋愛研究所)

と云うよりも何よりも、当の本人は結婚相談所などという存在さえバカにしているんです。「そんな処に頼んでまで相手探しをしなくても、私はちゃんとした恋愛で結婚出来る……」と思い込んでいますから……。

こういうのを、私は「お姫様症候群」と呼んでいます。

【町ブログ】 結婚相談所よもやま話〜人間学の宝庫より 〜tankobu日記〜

どちらも大体似たような意味。個人的には、大切な人を簡単に守れると能天気にも信じている可哀想な男のことを「白馬の王子様症候群」と呼びたい。

*1:いや、自分が中三の時はもっとガキだったわけで、今だって十歳ぐらい上の人々から見たらガキなわけで、なんともアレだけれど。

*2:ちょっとモテる感じの厨房はよくやるんだな……。「白馬の王子様症候群」と名付けよう。まあ、ジャニーズだかなんだかの写真にそういうセリフを入れて一人悶えている女子が山ほどいることから(これは「守られたいお姫様症候群」と呼ぼう)、違う文明においては平均的なことなのかもしれない。具体的には、誘いに乗っておいて、セクロス一つできなくて、しかも従兄弟だかなんだかの「白馬の王子様」が登場したりする。明らかに違うプロトコルで動きすぎなので、男女共にお近づきになりたくない。というか、男女どちらかに近づくと、もう一方もおまけでついてくる。つーか、王子様がいるのなら、誘われてほいほいついてくんなよ、腐れ×××が!

トラックバック - http://d.hatena.ne.jp/scinfaxi/20071102

2007-11-01

職人さんとしてのプログラマ00:09 このエントリーを含むブックマーク このエントリーのブックマークコメント

はてなブックマーク - Vr6ubqgのブックマーク / 2007年10月31日経由。

どんな仕事をしているかにもよるのでは。私にいわせればプログラマが頭脳労働者でないのなら、その他の大抵のホワイトカラーなどただの作業員に過ぎない。

それと職人であることと頭脳労働者であることは別に排他的じゃないでしょ。大工や寿司職人を頭脳労働者とは呼ばないだろうけれど、彼らは少なくとも地方公務員よりは頭使ってると思うよ。

IT関係でこれは読んでおけという本 00:15 このエントリーを含むブックマーク このエントリーのブックマークコメント

はてなブックマーク - Vr6ubqgのブックマーク / 2007年10月31日経由。

「そんなもん自分で探せ」と言ったらダメなのかな.他力本願なだけの「教えて君」には未来はないぞ.

はてな:IT関係でこれは読んでおけという本 - カレーなる辛口Javaな転職日記

「他のプログラマがどんな本を読んでいるのか」という意味も含まれているのではないかと(自分がその質問をする場合、こういう意味の方が大きい)。

A∩B が大きければ A∪B はAにとって有用である理論。まなめはうすです。

中川翔子『ブログを始めてから、楽しいことしか見えなくなった!』 00:22 このエントリーを含むブックマーク このエントリーのブックマークコメント

まなめはうす経由。

ブログを始めて楽しいことばっかり書くようになったら、実際に楽しいことしか見えなくなって、ブログで本当に変わった部分があるんですよ。

中川翔子『ブログを始めてから、楽しいことしか見えなくなった!』-ORICON STYLE ミュージック

こういう人もいるもんなんだな。逆に俺はネガティブなことが非常にはっきりと捉えられるようになったよ。そのおかげでネガティブなことに抵抗ができた。折角なのでマジックレジスタンスならぬネガティブレジスタンスと呼ぼう(これが言いたかっただけ)。

ところで、中川翔子ってこんなに美人だっけ? 写真ってすげぇな。

ブログで飲酒量が減ったという話。また俺の逆か……。

同時に2人の女性にアタックするのはアリ? 00:31 このエントリーを含むブックマーク このエントリーのブックマークコメント

まなめはうす経由。

日本一出来た小学生「サザエさん」の弟、磯野家のカツオ君を思い出してください。カオリちゃんにアプローチしたいのに、いつも花沢さんが間に入って邪魔されます。でもカツオくんの素晴らしいところは、カオリちゃんの前で花沢さんの面子こそを いつも優先して立てていることです。「やっぱり花沢さんはさすがだね!気がきくし料理もできるし、頭もいいし、頼りになる!」

カツオ君が花沢さんに花を持たせると、周囲の評価はカツオ君に向きます。それを一番そばで見ているのがカオリちゃんです。

「あんなによく出来たカツオくんは、私より花沢さんの方が魅力があると思っているのかしら? カツオ君ってデブ専かしら?ブス専かしら?マニアかしら?私の方がカワイイはずなのに?」

そう思ったら女性は簡単です。

asahi.com:恋愛・結婚

そこまでは考えてなかった。「後処理の大変さに目を瞑れば、両方と付き合うのが一番だよね」とか考えていた30秒前の自分を殺しに行きたい。

またか…… 00:41 このエントリーを含むブックマーク このエントリーのブックマークコメント

まなめはうす経由。

「大人」を自称するならば、いい加減学んで下さい。大人子供の話に限りませんが、社会がその人間をどのように扱うかで、その人間は変化するものです。当人がどうあれ、大人のように扱えば大人になってゆくし、子供のように扱えば子供になってゆくのです。責任を求めれば責任ある人間になるし、人の責任を「親だから」「上司だから」と頼んでもいないのに庇い続ければ無責任な人間になるのです。

「幼稚化する日本社会」をお望みならば、そうやって馬鹿なことをおっしゃっていればよろしい。

世界時価総額ランキング 00:49 このエントリーを含むブックマーク このエントリーのブックマークコメント

まなめはうす経由。

日本とアメリカの個人消費が弱ければ、どうしても消費の意欲が強い新興国の需要に期待をかけざるを得ません。もしも中国の政治が不安定になれば、日本の経済にも大きな影響を受けます。だから私は中国の政治が安定してゆくことを願うのですが、どういうわけか日本では、こんな簡単な話が通じない人も多い。とても不思議なことだと思います。

Espresso Diary@信州松本:世界時価総額ランキング ベスト10 - livedoor Blog(ブログ)

かの国が成功すれば、将来的に日本は損をするでしょう。そりゃ、今後十年間ぐらいは得をするかもしれない。しかし、中国がどんどん力をつけてゆき、日本は今と同じように非核三原則だの憲法九条だのと馬鹿なことをいっていれば、この国がアメリカか中国の領土になるという話もそうそう非現実的とはいえなくなってくる。だからあの国の政治が安定することを歓迎できないのです。まあ、儲かればそれでいい経済屋には関係のないことでしょうが。

ちょっとはまともな仕事を選べって 00:53 このエントリーを含むブックマーク このエントリーのブックマークコメント

まなめはうす経由。

なんだかよくわかる話。

「俺、働かなさすぎだろ常考」と思って、労働時間を増やしてみても、設計ミスが増えて余計に生産性が落ちるだけなんだよな。このジレンマを如何にして攻略すればよいのやら……。

人間関係と心理学の話 01:06 このエントリーを含むブックマーク このエントリーのブックマークコメント

いきなり「君に社運をかけている」は駄目。

404 Blog Not Found:悪い人間関係を貯めないために知っておくべき心理学の応用

きちんとお金を払ってくれるならば、むしろ歓迎したいぐらいです。少なくとも俺は、はした金で社運のかかったシステムを作ろうと思えるほどにお人好しじゃない。「自利利他」にも限度というものがある。

仕事の上での関係にはまずカネを出さなければ(逆の立場なら「納期を守らなければ」)、好きも嫌いも心理学も何もない。

つーか……

ちょっとは気の効いたことを書こうと思ったら仕事の愚痴になってしまった。

私がブログを書いている理由の一つは「偏向」の利用。明らかに効きすぎているけれどね。

一瞬でデキる奴になる!48の心理テクニック 01:22 このエントリーを含むブックマーク このエントリーのブックマークコメント

目次に書かれていることは知らぬ間に実践しているけれど、やはりデキない奴だ。学校の同級生はデキる奴だと思っているだろう。しかし私はいくらでも上がいることを知っている。だからデキないし、今後15年ぐらいはデキないままだろうと思う。

本書に書いてあることをそのまま実行する「デキる奴」に私が仕事を頼むかというと、まずそれはない、と。なぜなら、私が仕事を頼みたいのは「デキる奴」ではなく、「やりとげる奴」だからだ。本書に書いてあることを懸命に真似する暇があったら仕事片付けろと私は言う。

404 Blog Not Found:デキる奴ってイヤな奴? - 書評 - 一瞬でデキる奴になる!48の心理テクニック

私も「やりとげる奴」になりたい。

超小型 RDB が欲しい 02:47 このエントリーを含むブックマーク このエントリーのブックマークコメント

hash-table や rbtree や属性リストと同じ感じで使える RDB のようなデータ構造が欲しいと思った(より正確には ORDB か?)。 DB じゃないので RDB というと語弊があるな。リレーショナル構造?

なんで欲しいかというと、色々理由があるのだけれど、やはり RDB のような構造が便利だからだ。例えばそれぞれユニークな三つのスロットからなるオブジェクトがたくさんあって、特定のスロットに特定の値を持つオブジェクトを検索したいと思った時、現状だと単にリストに並べて線形探索するか、各スロットをキーとし、そのオブジェクトを値として ht にぶち込むぐらいしか選択肢がない。行が数十程度しかないならば、線形探索で十分だろうけれど、数千となるとねぇ……。永続性が欲しいわけでもないのに MySQL にぶち込むのもどうかと思うし、大体 MySQL にぶち込めるのは幾つかのデータ型であって、一般のオブジェクトじゃない。

Gauche ユーザリファレンス: 11.50 util.relation - リレーションフレームワークがあるので、 SQL エンジンはとりあえず書かなくていいか。 B 木を勉強してみよう。俺の実力のなさがことごとく露呈される予定なので、期待しておいて下さい。

と思ったけれど、 rbtree で索引付けすればいいんじゃ……。なんかこんがらかってきたのでとりあえず放置。

お付き合い2.0 07:33 このエントリーを含むブックマーク このエントリーのブックマークコメント

はてなブックマーク - Vr6ubqgのブックマーク / 2007年10月30日

へぇ。あんたってセックスもせずに付き合う相手を決めているんだ。

それは仕様? 怒鳴ってやりたいんだが 07:38 このエントリーを含むブックマーク このエントリーのブックマークコメント

そういうコードってとてもよくわかるなぁ。それを書いたプログラマはキツい納期でやりたくもない無意味な仕事を上司に押し付けられて早く帰りたくて仕方なかったんだろう。

KiyoyaKiyoya 2007/11/01 12:25 >かの国が成功すれば、将来的に日本は損をするでしょう。
分かりやすい論理ではあるのですが、必ずしもそうだとは言えないでしょう。
そうなる可能性が高い、という話ならもっともだとは思うのですが。

訳の分からないことをされるぐらいなら安定していてくれた方が、というのが僕の考えです。

scinfaxiscinfaxi 2007/11/02 09:51 それは確かにそのとおりです。

トラックバック - http://d.hatena.ne.jp/scinfaxi/20071101
Copyright © 2003, 2004, 2005, 2006, 2007, Theoria Laevatain , All Rights Reserved.