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
2007-11-05 - ばーちゃるねっとぷろぐらま ておりあ(笑)
[go: Go Back, main page]

ばーちゃるねっとぷろぐらま ておりあ(笑) このページをアンテナに追加 RSSフィード

 | 

2007-11-05

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

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

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

あんまりに HTMLXML に染まりすぎて、 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 このエントリーを含むブックマーク このエントリーのブックマークコメント

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

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

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

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時間も勉強せずにプログラミングが出来るようになると思うなよ。

なんという凡ミス 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 このエントリーを含むブックマーク このエントリーのブックマークコメント

はてなブックマーク - 性的な、あまりに性的な - 吠えてるんじゃなくて ないてるんだ

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 を忘れていた。

 | 
Copyright © 2003, 2004, 2005, 2006, 2007, Theoria Laevatain , All Rights Reserved.