|
|
||
あんまりに 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日 avena avena communication 技術や知識よりも性別の稀少性に言及したスケベコメント↓が集まる軽さ。やりきれない。そして、逆に "男" であるが故に影の薄い凄腕お兄さん hacker がいる事に気づく。彼らが自他の性を恨まずに済むような世界にしたい
もう遅い\(^o^)/
はてなブックマーク - ギークなお姉さんは好きですか
hkn がお姉さんまたはギークかどうかは解らないけれど、性別が女性で PHP の能力があることは確かでしょう。しかし、知名度が低い。
結局この世は人気競争ですよ……。昨日今日に始めたばっかりの奴に技術的な文書で負けるなんて、何やってんだろうな、俺。
悲しくなったので、ちょっと describe してくるわ。
さすが mixi (笑)。
どんな些細なことであれ、あの会社に何か期待するのは間違いなんだろうな。あいつらにとってはユーザーなんて床に落ちた毛のようなものなんだよ。
やっと解ったよ。巨乳なんてのは全て CG なんだ。俺が知らないだけで、どっかの白人が複雑な形状のスクリーンに映像を投射する装置を開発したんだ。そして、シリコンか何かでできた大きな偽乳を小さな胸に貼り付けて、その表面に CG を投射しているんだ。あるいはアメリカか何処かで液晶の技術が高度に発展していて、自在に形状が変化する液晶パネルを巨乳オブジェクトの表面に貼り付けているんだ。しかし、これは非常に高価なエフェクトなので、サイン会などのイベントでしか利用できない。なので、普段は誰かが書いた非常に高度な動画編集ソフトで、本当は貧乳のアイドルの胸を偽装し、我々を洗脳しているんだ。
巨乳という摩訶不思議な存在は全て科学技術で説明がつくんだ! 巨乳というのは実は国連の壮大な陰謀で、本当は存在しないんだ! 我々は騙されているんだ!
はてなブックマーク - 無題 - #`バーチャルネットプログラマ テオリア,(receive (_ e) (frexp 1e6) e)歳
定義といわれても。とりあえず「大きな乳」のことだけれど、何処からが「大きい」のかは議論の余地があるとは思う。個人的には服をきても、全裸(または水着)になっても、はっきりと大きいと解るぐらいに大きければ巨乳と考えている。個人的にはリアディゾンは明らかに巨乳ではない。MEGUMIや小池栄子も巨乳ではない。滝沢乃南はまあまあ巨乳だと思う。一色雅は十分に巨乳。風子は記録的な巨乳といえるが、天は二物を与えずという言葉のとおり、顔面が微妙なので、個人的にはあまり好きではない。
巨大なデータを扱う時の為に遅延した S 式の読み込みが欲しいな。とりあえず、遅延ストリームを調べてみよう。
$ 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)))
$ 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)))
どうしたもんかね……。
これによると下の二冊がよいらしい。
手続きの大域的な束縛を parameterize してぇ……。
永続化されたオブジェクトを 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 年に結城さんが書かれたテキストが。よい気分転換になったのでリンクしておきます。
まずタイトルで吹いた。次に Haskell とか書いてあって吹いた。更に nobsun がコメントしていて吹いた。最後に「最近言及したキーワード」で Scheme が一番大きくて吹いた。
しかも、密かにうちのGauche を XREA にインストールする方法がリンクされている。 id:gyuque が謎のコメントを残していたり、学校の授業で Scheme があったりと、とにかく謎が多すぎる。しかもこの短期間に Scheme/Haskell/Perl/Python というバイリンガルぶり。個人的に PHP はオススメしません。
デザインを Ghost シリーズに戻した。具体的には Ghost 6 を近代的に改装し、 Ghost 7.1 を書いた。タイトルも黎明日記に戻した。15分以上 CSS を書いたのなんて、もう二年ぶりぐらいじゃないかと思う。
なんでかというと、黎明日記が閉鎖する可能性が出てきたからだ。日記ではデウス・エクス・マキナなんてデカい口叩いてる癖に、今回ばかりはどうにもなりそうにない。なので書いてしまうけれど jonathans との関係が危機を迎えているんだ。このまま別れることになれば、必然的にここも閉鎖することになる。黙っていられる性格ではないので、ブログの類を完全にやめることは考えられないし、 mistilteinn をある程度書くまで処置のメドは立たないだろうけれど、最終的に黎明日記は閉鎖することになる。
彼女は今朝から機嫌が悪かった(だいぶ考えたけれど、その原因の一部は未だに許容できない)。そして私はその対応を誤ってしまい、昼頃から連絡がつかない。携帯は電話メールともに着信許否。有線電話からかけてみるも一度も出ない。今回の件は Nice boat. と違って構造的な問題なので、状況は非常に苦しい。どうしたものかと考えた末に、ここに書くという手を思いついたわけだ。もしかしたらうまくいくかもしれないし、余計に状況が悪くなるかもしれない。後者の可能性の方が高いので、非常に分の悪い賭けだ。
jonathans へ。完全に別れることも視野に入れて、一度話しませんか。二年前、付き合う時はあれほどに体裁を気にしたというのに、いきなり連絡を絶つというのはひどいではないですか。連絡を待っています。
成長しないな……ホント……。
状況は好転しました。お騒がせしてすんませんです。
はてなブックマーク - 性的な、あまりに性的な - 吠えてるんじゃなくて ないてるんだ
id:Vr6ubqg が元々 id:kotohogi_k のファンだったのか、何処かのブログ経由で知ったのかは追求しないでおこうと思う。
いつも TODO を「トド」と読んでしまう……。
次は Weak ポインタから。
InstancePool の議論は非常に役立つというか、やりたいことそのまんまなのでよく参考にすること。
weak vector でぐぐるとごろごろ出てくるな……。主に1と3をぼんやり考えていたのだけれど、3に書かれているアイデアと永続オブジェクトのところはコメント入れて300行も無い
で少し動き始めた感じ(過激なアイデア、使ってしまってもいいですか?)。
もう寝る時間なのが惜しいな……。明日になったらこのときめきのようなものは大きく劣化するのだろうな……。
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 を忘れていた。