今日が締め切り.御茶ノ水へ持ち込み.
秋葉原に寄ろうと思ったんですが,この天気じゃなぁ.
shiroさんの日記にここのURLが載ったら,凄い勢いでアクセスがありました.shiroed...なんか違う.
で,ふと思ったんだけど,有名 wiki 上のページに載っているアドレスを,ある宣伝したいURL(たとえば製品のURL)に変換してやると,とても売名行為になるんじゃなかろうか.wiki なら全自動で行けそうだ.もちろん,URLが直で出ない奴である必要があるが.
今日のししゃもさん
sixamo: 息子さんのお誕生日おめでとうございます。googleで一番トップラーメン「も」はじめるときはとかいう。
もうわけがわかりません.
晴れてきた.御茶ノ水にいくので秋葉原に行こうと思ってたんだけど,考えてみたらあんまりほしいものはない.どうしようかな.帰って寝るというのもいいんだけど.
結局秋葉原のprontでまったしてる(進行形)。秋葉原は歩くだけで楽しいけど、歩くだけで異様に疲れる。
情報処理学会の人。原稿を確認するために紙から出したら、落とすし。もうむっちゃ落とすし。なんとなく、数日夜寝ないで(昼寝て)書いた原稿が不憫でなりません。
秋葉原、なんか遣り残したことがないかなぁ。。。
w3ml、とても便利なんだが、微妙に挙動が不思議なところがある。どの辺をどうやって手を入れればいいかもイマイチよくわからない。というわけで、ちょいっと作り直してみるかなぁ。
メール本体はファイルに保存するようにしておけば、最悪エディタで見れるし。インデックスファイルは、その本体とかから見れるようにしておけばよいか。
さて、indexファイルは何で作るべきか。pstore で数千通、数万通裁くことができるだろうか。多分できねーよなぁ。
ちょっと地味に階層化すれば、なんとかなるかな。
pront でマズーなメールを見てしまって、対応にてんてこまいになってしまった。sshの転送ポートをざくざく追加して・・・。うひゃぁ・・・。困った。どうしよう。なんか、去年問題だよなぁ、これ。
prontって30分制限があったのか。2時間くらいいてしまった。ごめんなさい。
というわけで帰ろう。
そういえば、でもんなんとかの一般版が明日発売だそうだが(秋葉原で大量にデモってた)、あれを一般でやって何が楽しいんだ。と私は強く主張したい。
1時間半ほど散歩.歩いた歩いた.
不動産屋のチラシを覗いたら月5万円のアパートがあった.うーん,悩む.大金だけど,そろそろ家を出ないと.
The RWiki - Rubyらしさ 作ってみますた.
やばい,歯医者に間に合わない.
歯医者、歯の痛さよりも懐の痛さが・・・。あと5,6回、で済めばいいなぁ。
Rubyらしさは2行しかないらしい。
C関数をコールするときは,一度リターンするのはやりすぎだろうか.こうすれば,例外処理のフックが大量に楽になりそう.コスト的にはどうだろうか.
こうすると,動的な eval_func の選択ができる.状態が変われば,eval_func 自体の変更で済む.いちいちグローバル変数などで状態を見る必要がない.
でも,厳密にやろうとすると,すべての状態用に eval_func を書かないといけない.それは現実的じゃない.
リターンとコールのコストが2倍.それがネックか.setjmp とどっちが辛いか,だよな.
さて,こんな構成法ってあるんだろうか.普通にありそうな気がしてきた.
従来: main ruby_eval c_func ruby_eval │ │setjmp ├─────┐ │ │setjmp │ ├───────┐ │ │ ├──────┐setjmp │ │ ├──────┘ │ ├───────┘ │ │ ├─────┘ │ │ 提案手法: main ruby_eval c_func ruby_eval │ │ │setjmp ├──────┐ │ │ │ │ ├──────┘ │ ├─────────────┐ │ ├──────┐ │ ├──────┘ ├─────────────┘ │ ├──────┐ │ │ │ │ ├──────┘ │ │
うーん,シーケンス図ってこんなんだったかなぁ.
なるほど,2週間が適当な期間と判断したのか.
利点
欠点
きちんと作ってみないとどっちがいいかはよくわかんない.
何やってんだ俺は・・・.
setjmp 減らないかなー.うーん.あれ,減るかな.うーん.
念頭に置いてるのは Array#each{...} みたいなパターンをいかに速くするか,なんだけど.つまり,C -> Ruby.
何やってんだ俺は・・・.
ちなみに,eval悪! eval悪! とかいいながら,私は eval が大好きです.
うええええ・・・.しにそう.
実験の結果,考えていた原因と違うことがわかった.もう原稿その部分書いちゃったよ.
説明するのが面倒だなぁ・・・.どうしようかなぁ・・・.
おうちに帰りたい.自分の無能さを嘆く.
寒立馬に会いたくてしょうがないので,奮発して1日滞在を延長することにした.
31日には,なんかすてきなところがあるということで,ちょっと抜ける.
ああ,豪華すぎる.
URI?(...) って, ... がURIとして valid であるかって意味なんだろうか.
中学校に潜入してきた.暑い.暑すぎる.奴ら,よくあんなところで勉強なんかできるなぁ.
10年前と,設備は殆ど変わっていないように見えた.見えただけかもしれないけど.
N+I か.今年はちょっと行ってみたいなぁ・・・.主にサーベイ目的.
フランツのボール破れたー.うわーん.
よく使ってるフォント,パパって書いてあるのかババってかいてあるのかよくわからないんだよな.
そろそろ自分もアンテナがほしいなぁ,とか思うんだけど,エントリのメンテナンスをする気力がない.アンテナのアンテナを作って,複数のアンテナのエントリをマージするようにすればいいんだろうけれど,面倒くさいしなぁ(マージするときの同一判定とか,面倒そう).LIRS だけでいいんだたらできないこともないか.rss_check 作ったんだから,rss でもできないこともないか.
じゃぁ,今度作ってみるかなぁ.
自分自身の思う「Rubyらしさ」を晒すスレなんてどうだろう.それぞれのギャップが見えて面白いんじゃないかな.
おれのRubyたんはそんなんじゃない! って.
PC50台結びスパコン化 IBMなど金融機関に発売へ - asahi.com : 経済
へぇ.こういう実用化も進んでるんだな.ビジネスグリッドとかいうやつ?
実は私,IEのテキストエリア編集機能に不満がないんだけど,皆さんにとってどの辺が「貧弱」なんでしょうか.
間違って閉じちゃって「うわー,1時間もかけて書いたのに」(書くなよ),というのはあるけれど.
さすがにプログラムはかけないけどな.S式とか.
逆に考えると,その程度しかテキストエディタを使いこなしていないということか.
せっかく行くんだから,観光日をもう一日増やしたくなってきた・・・.どうしよう.
SWoPP,斡旋してくれるホテルよりも,自分で(同じホテルに)申し込んだほうが安いっぽい.そういうものなんでしょうか.
温泉には行ってみたいけどそんな金はない.というか,恐山の日は温泉に行く予定.
って,さくっと空き部屋が無かった・・・.そうか,一月前ってのは遅すぎるんだなぁ.どうしよう,野宿は嫌だ.
グレードをちょっと上げたら空いてた.しかし,ネットワークはつながらないっぽい.
というわけで,申し込み.二泊で13000円.朝飯付き.
確認メールで,
ご来青お待ち申し上げております。
さすが青森.
いろいろと予約する.
で,予約したあとに交通を確認したら,なんかとてもやばそうな気配.飛行機が遅れたらアウト.飛行場からタクシー使わないとアウト.
うわー・・・.ギリギリ.
懇親会5000円.学割は効かないのか...orz 出ないという手もあるが.
けさらんぱさらんを久しぶりに見返したけど,新たな発見があるなぁ.やはり,常にチェックしておかないと,rubyユーザとして.
require 'uri' module URI def self.new *args self.parse(*args) end end p URI.new('http://hoge.huga')
はどうでしょうか.ダメですか.そうですか.
やっぱりS式リテラル書きたいなぁということで,ちょっとだけ考えた.
A. literal only 1. :(1 2 (3 4) hoge 'huga' 5 (6 7(8))) 2. :(1 2 :(3 4) hoge 'huga' 5 :(6 7 :(8))) 3. :(1, 2, :(3, 4), :hoge, 'huga', 5, :(6, 7, :(8))) 4. S(1, 2, S(3, 4), :hoge, 'huga', 5, S(6, 7, S(8))) B. include ruby expr 1. :(1 2 ,@(3+4)) 2. :(1 2 #{3+4}) 3. :(1 2 <3+4>) 4. S(1, 2, 3+4) C. include ruby expr2 1. :(1 2 ,x ,@([1,2,3]) ,@{:a => :b}) 2. :(1 2 ,x ,[1,2,3] ,{:a => :b}) ex) sexp2html( :(html (head (title "hoge")) (body (p (@ (class 'someclass')) "hello! " ,@(name) ))))
S(...) は今でも出来る方法.でもとても嬉しくないっぽい.すべて quasi-quote 相当と考えてしまえば,A.1,B.1でいいのかも.だめ?
C.2 は書くの楽そう.でもパース面倒...かな.どうだろ.
そういえば,なんで quote と quasi-quote が分かれてるんだろう.quasi- だとまずい部分ってあるんかな.それとも効率の問題だろうか.
もしかして rubyにS式表現(じゃなくても,ツリーを簡単に記述するもの)が欲しいのは俺だけなんだろうか.
単純に,[1,2,3] よりも :(1 2 3) のほうが書きやすそうなんだけど.
しゅどうさんに2泊1万円のホテルを教えてもらったので,そちらに乗り換え.よかったよかった.3000円浮いた.
で,その後20円安いホテルをみつけて,しゅどうさんはそこを予約されたらしい.
さっぱり終わってないんで,SICP-reading さぼります.すみません.まぁ,金がないので飲み会には行けなかったんだけど.
去年の場合は、宿泊代は斡旋の方が割高でも、(団体割引)航空券が安くて、トータルでは斡旋の方が安かったです。そのときは、航空券を申し込むには、宿も頼まないといけなかった気がする。
なるほど.今年は航空券がセットになってないみたいだから,自分で予約したほうがいいっすかね.
(unquote a) というリテラルリストが欲しいとき。
だけ?
「だけ」だけど、quasiquoteしかないと、次のマクロで引数を確実にquoteすることができなくなります。例外がひとつでも入るといろんなところで問題が出てくる、というひとつの例。
(define-syntax kwote (syntax-rules () ((kwote x) 'x)))
なるほど.シンプルがいかに強いかというか,脆いかというか.
思わず「けっさらん ぱっさらん あったまのねーじが」とか流れてしまうのはなぜでしょうか。
quasiquoteはマクロなわけだけど、quoteがなかったら`aの展開結果はどうすりゃいいのさ。
quoteが無くて、quasiquoteが組み込み構文だったら、って流れなのかなっと。あと、こういう不規則性というかルール上の特異点っていうのは、メタな扱いをすると時に問題が露呈してくるように思えます。構文の解析が処理系組み込みだけの特権であれば、いかようなルールを導入しても処理系内部のことで済みますが、マクロと言う形でユーザにそれを開放した途端に、特異点が問題となってくると。すぐに例は思い浮かびませんが、リフレクションだとかメタオブジェクトみたいなメタな扱いをする系は特に「ルール上の特異点」に敏感だと思います。
ここからは感覚的な話になりますが、Lisp系では特異点をquoteに押し込めてるとも言えるような気もします。たぶん、「データとコードが同じ表現」という特性を作るために唯一必要な特異点というか。だから、「データとコードが同じ表現」という特性を持たない言語では、quoteは必要なく、その必要性も感じられないのかもしれません。
quoteが無くて、quasiquoteが組み込み構文だったら、って流れなのかなっと。
ああ、そうか。その通りですね。
unquoteとかが入っていたらまずいことになるという以外の理由を考えると、建前っぽい主張として「単純なquoteのかわりに、quasiquoteのような複雑なものを組み込み構文にするのはSchemeらしくない」とも言えるかも。また、ミもフタもなく言えば「歴史的理由」ってのもあるかな。先にできたのがquoteだからquoteが組み込み構文。
Lisp系では特異点をquoteに押し込めてるとも言えるような気もします。たぶん、「データとコードが同じ表現」という特性を作るために唯一必要な特異点というか。だから、「データとコードが同じ表現」という特性を持たない言語では、quoteは必要なく、その必要性も感じられないのかもしれません。
実は今、noramal formまで評価するようなSchemeのvariantを考えていまして… このあたり、まさに私にとってタイムリーな話題だったりします。
うーん、この下を書くのに何時間も悩んでしまった。結局shiroさんの書いてることをなぞっただけのような気がしますが、まとまらないまま書いてみると…
quoteって確かにLisp特有のものなんですよねー。λ計算やpureな関数型言語にはquoteなんかないし。
たとえば、普通の関数型言語みたいに(cons 式1 式2)が(cons 値1 値2)を返し、シンボルもコンストラクタを使って(symbol "a")と表すことにすれば、普通の記号計算にquoteは不要ですよね(簡便性は多少損なわれますが)。
しかし、そうするとたとえば(cons (symbol "if") ...)はどこまで行ってもあくまで(cons (symbol "if") ...)であって、(if ...)とはまるきり別次元のものになる。そう考えると、「コードと全く同じ形のデータを作る」というメタな使い方ではquoteの存在価値があるのかもしれない。(メタなことをやる他の手段として、「(cons (symbol "if") ...)というデータは(if ...)というコードを表現したものとみなす」という手もあるけど。)
quoteとS式のおかげでデータとコードが同じ表現であるというのは、evalを事実上捨てた今のLispやSchemeではマクロくらいしか利点がなくなって(いや、実に大きな利点ではありますけど)マクロさえなければS式じゃなくて別の文法でも(たとえばLisp 1.5のM-Expressionでも)まったく不都合がないと思うんです。さらに、マクロだけのためにquote不要の別のパターン言語を導入してしまったSchemeでは、quoteの存在価値がもっと薄れていると思います。
quoteもquasiquoteもない、S式でもない(しかしマクロも含めて能力は変わらない)Schemeってのが作れそうですね。(私が作ろうとしているvariantはそういうのとは違いますが。)
うう,こんなところで議論してるのはもったいない気がします.ちなみに,normal form って lazy-scheme みたいになるってことですか.いや,名前しかしらないんですけど.
Meta ML や Template Haskell あたりのものには quote や quasiquote 相当のものが入ってきます。遅延評価の処理系的には使うまで展開しなくてもいいけど、マクロみたいなものを展開するには展開の段階が欲しいというようなそんな感じになってくるみたいです。
ちなみに,normal form って lazy-scheme みたいになるってことですか.
ううんと、とりあえずlazyにはしないつもりですけど、ちょっと変わった評価方法になる予定です。まあ、できてからのお楽しみということで。本当にできるのかどうかもまだ分からないんですけど。
Meta ML や Template Haskell あたりのものには quote や quasiquote 相当のものが入ってきます。
ははあ。やっぱりメタなことをしようと思うとそういうのが欲しくなるって事なんでしょうかね。
コンパイラの場合は、別に(quasi)quote無くても書けるんだろうな。あったらあったで、より直感的にかけるかもしれないけど。
というわけで,1日に一回バックアップをとるようにした.pdumpfs を利用.
バックアップ先が,非常にやばげなHDDなので,効果のほどは謎.
ところで,皆様はサーバマシンのバックアップは何をバックアップしてますか?
const_get はあるのに,global_get が無いのはなぜだろう.
なんとなく某キーワードでgoogleしてみたら・・・.けっこう見つけてしまった・・・.
だめだ,こんなのに足突っ込んでは.俺の負担が増えるだけだ.
眠いよー眠いよー.
あの疑惑は「副業」じゃなくて「本業」,ということではなかったのでしょうか.
なんというか,まったくもって信じられん・・・.もう,何がなんだか.
SWoPP.うーん,宿どうしよう.誰かツインご一緒できませんかね.
というか,俺前日か,その前から入りたいんだよな.恐山行くために.
というか,どうやって行けばいいんだ・・・.バイクでは行きたくないし.飛行機にしたいが,たっけーなー・・・.金が無いのに・・・.
7/29 羽田空港 -> 三沢空港 -> むつ -> 恐山 -- 一泊 -- 7/30 むつ(下北) -> 青森 -> 会場 -> ... -> 8/1 青森空港 -> 羽田空港
こんなプランになりそう.
誰か恐山行きませんか(いかねーよ)
よし,大体決めた.
たまたまTVチャンピオン見たら・・・。なんだよこれ・・・。
/var/log/*
昔、輪行に夜行列車を使った覚えが。上野を夜出て、早朝に青森に着くやつ。もう無いのかしらん。
電車乗ると飛行機乗るより高いっぽいっす。
飛行機より新幹線の座席の方が広くて快適なわけだけど、お金はそれぞれどのくらいかかるんだろう。
えっ、急行でも高いの? 寝台特急じゃなくて。 座席が固くて寝るのはきついけど。
メシを道中現地調達でそれなりに喰うと各駅昼行オンリーならかなり高くつきますけど... 夜行座席急行は「能登」は健在ですが青森行きは消えてるかなぁ?
寝台特急で値段調べてました.ほかはもっと詳しい人がいると思うので略 ^^;
1票差でmapの勝ち.
派閥の追加.
CommonLispセミナーでもらったボール,そろそろ破れそう・・・.弄りすぎ?
LLのらいとにんぐとーくを yarv で応募してみる.さて,喋らせて貰えるだろうか.
どなたか,cvs pserver への接続に 2401 番ポート以外を使う方法知りませんか.
pdumpfs を使ってみるも,何も言わず,何もしない.dst をホームディレクトリの下においたら動いたけど,それじゃぁねぇ.
原因がわかった.保存先ディレクトリを先に作っておかないといけないんだね.でも,その旨のエラーは欲しかった.
あと一週間・・・.
治してもらった歯が痛い・・・。
ノートPCのHDDがなんか危ない.これもそろそろ4年目かー.ちゃんと動いてくれればスペック的には困ってないんだが.いや,うそ.メモリはもうとっと欲しい.
class Object def method_missing recv, *args recv_reg = /^#{recv.to_s}/ method = self.methods.find{|e| recv_reg =~ e } if method self.send method, *args else raise end end end p __i
class C def a=(o) p o end end def iter(*args) yield(*args) end iter(1){|C.new.a|}
うわー.なんて言語だ.
でも,実装自体はパーサががんばればいいような気がしたのであんまり大変じゃない気がしてきた.
でも,どれくらいこういう使われ方するんだろう.
iter{|@a, @@b, C| ... }
こういう使われ方.
collect と map,接戦になっております.
class C def a=(o) p o end end C.new.a, b = 1,2
知らんかった・・・.
Windows2000でもリモートデスクトップのクライアントになれる,ということを聞いたので試してみる.あー,こりゃいいわ.
ノートPCがXeonマシンにはやがわり.
おいおい,そりゃあんまりだよ・・・.
なんてことを思った日.まぁ,私にとっては非常識でも,そうじゃない世界もあるってことかな.まぁいいけどね.
そういえば,sparcのレジスタウィンドウについて調べた.なるほど,こういうものだったのか.
本が無性に読みたくなってきた.技術書じゃないやつ.うう.7月になったらいろいろするぞー.どなたか何かすすめてもらえませんか.
カタログ Katayama's Blog: コメント: ワセダニアン.オチに笑った.
何気に50音順だったのに感動した.
Rubyコミュニティも一枚岩ではないらしいです.
いろいろ大変ですね.
ほかにも対立があったら教えてください.
今日のししゃもさん.
sixamo: 今日もきょうできなきゃ嫌だ嫌だ嫌だ
なんか哲学的ですね.
そういえば,先日「CNET Japan Blog - 梅田望夫・英語で読むITトレンド」のコメント欄に突っ込みを入れたんだけれど,いつの間にか削除されていた.別に荒らしたつもりはなかったし,否定的な意見を書いたつもりもないけれど,匿名で書いたのがダメだったのかなあ.
まぁ,あの記事はこんな感じで,コメントに書いても消される(かもしれない)ところらしい,ということで.
財布に200円しかない.
しょうがないので去年10月賞味期限のやつを食べる.
ectは3兄弟じゃなくて57兄弟だったらしい.
コメント消されるなんて、怖いインターネットですね。
去年10月賞味期限の……何だろう……こわっ
レトルトのスパゲッティミートソースです.ちょっと酸っぱい気がしましたが,多分こんな味だったんでしょう.
北村薫「スキップ」、隆慶一郎「吉原御免状」、ギャビン=ライアル「深夜プラス1」
どもです.
で、なぜか朝っぱらから学校にドライブなのです。とほほ。
しかも気づけば別にこなくても良かった罠。うぅぅ。
疲れたー。
ひとつ終わればまたひとつ。うわー。いや、何個もさぼってただけか・・・。
いいなぁ、産総研見学会かー。
UNIXという考え方 P31
「できるだけ早く」とは、本当に「できるだけ早く」ということだ。「大至急」だ。アプリケーションの立案に少しの時間をかけ、あとはまっしぐらに進むだけだ。命をかけてコードを書く。端末が熱いうちにキーボードを打つ。1ナノ秒も無駄にする時間はない。
熱い。
しかし、なんかどの本も同じようなこと言ってるよな。XP みたいなのって、やっぱり知識のラベル替えというか、そんなんなんだろうか。
そういえば、今朝初めて(もしかしたら非常に久しぶりに)ヤマンバというのを見た。電車に乗ったら、向かいに座っていて、噴出しそうになった。ガングロに目に花?のお化粧。ごてごてのキーホルダーなど。
笑わないように必死になっていた。
どうも私は、肝心なところで抜けている。
日付を(取り戻せないほうに)間違えたり。タイトルを付け間違えたり。忘れ物をしたり。
これで、もうどうしようもなくなった、ということがないのは悪運が強いというよりはただ単に「まだ」平気だったというだけなんだろうなぁ。
いつもぼけーっとしてるので、きちんと気を張るところは張らないと。
もう LL/WE の lightning talk の申し込みは始まっている、らしい。でも、公式にはどこにもアナウンスがない。
すばらしい。
池上公介の教育論 [12] 一生を棒に振る、この年収の差。ピアスと茶髪
いろいろと話題になっているみたいだったので見てみた。いや、興味深い。
まぁ、フリーター=楽でいいやと思っている人たちには、説得力ある話なんじゃないでしょうか。
しかし、挨拶するための指導の方便に「会社に入れない」ってアレだ。挨拶しないやつは見ていて気分が悪い、じゃだめなんだろうか。
ほかの記事を見て、「ああ、なるほどうんうん」というのもあれば「うわぁ・・・」というのもある。なんだろ、時代?
http://web.sfc.keio.ac.jp/~s01397ms/d/?date=20040618#p02 を見て、
あなたの得点は66です!
■あなたにピッタリの女性はこんな人です■
あなたは、気分屋のところがありそうなタイプの人ですネ。すごく優しくて思いやりのあるときがあったかと思えば、急に冷たくなって相手をガッカリさせます。そんなあなたには、さっぱりした楽天家の女性が良いでしょう。動き回ることが大好きな活発な女性で、現代的なセンスのある女性ならなお良いでしょう。
らしい。
って、さかいくんと同じじゃん。点数が微妙に違うか。
リンク先の教育論を読んで、少し笑ってしまいました。 冷戦下でソヴィエトが作ったプロパガンダ映画が、 丁度こんな感じでしたから。 本当に、何度でも同じことを繰り返すのですね。 ソヴィエト共産党による少数民族弾圧は、 成熟していない人々を許せなかったからなのかもしれません。 ヒトラー・ユーゲントを例に挙げても構いませんが…。
愚かで貧しい人間への不寛容が、その結果として何を生むのか、 人が学ぶことはもうないのかもしれませんね。
はじめての写メール。ああ、これ楽かも。パケット代考えなければ。写真が流行って、携帯写真に200万画素とか載せたい理由もわかる気がする。やっぱ使ってみないとわからないもんだな。
で、ワインとか飲んでしまって、夕飯を食ってきた。農工大の近くにこんな雰囲気のいい店があるとは。また行きたいものです。
次の投票は map と collect どっちがいい、にしようか。絶対 map だと思うんだけど。
ffmpeg を試すが、すぐに ffserver が segmentation fault で死んでしまう。なぜだ。
どうやらネットワーク経由で動かすと segv らしい。帯域が足りてないのか。
他学科の人に、「日本語で論文書いても意味ねーよ」といわれた。耳が痛い。
ただ、別に彼らがすでに論文を書いているわけではない。
なんか collect な人ばかりだ。この collector め!
いや、なんで collect がこういう意味なのか、素でわかんないんですが、誰か教えてくれませんか。私、Enumerable#find_all みたいなイメージがあるんですが。
(あと3文字だしな)
あれ、LL/WE の lightning talk の応募ってもう始まってんの?
うわー、本当にノートだー・・・。読めない・・・。
video lecture を見たいんだけど、video lecture を持つやつ一覧が探せない。どっかにあるんだろうか。
今日のししゃもさん。
sixamo: レシピブックに書いてある 3 人がデッチ上げたマーケティングの設定をさくさくと設定追加できないっぽいし。
何をでっちあげたんだろう。
collectが好きなのは私だけ、とか前にどっかでやったような気がしますね。しくしく。
いつもcollectかなぁ。
collect - select - reject - inject な Smalltalk 由来の名前だから. map でも Haskell あたりから一連のファミリーとして導入しなくちゃ.
いや、一連のファミリならLispからの方が。mapc, mapcar, mapconなどいろいろ取りそろえてます
(loop for x in '(1 2 3 4 5) collect (* x x)) => (1 4 9 16 25)
で、なんで collect。
柳川さんのが正解です > Smalltalkの真似っこ
Smalltalk がなぜ collect を採用したのかがわからないのですが、英単語にそういう意味があるんでしょうか。もしかして常識? 「そういう」っていう定義を私は勘違いしてるっていう気もするなぁ。
結果を「集める」からcollectなんでは?
結果を、ってのが結びつかないのですよねぇ。検索結果を、っていうのならわかるんだけど。
レシピブックの帯の「小技+大技+裏技」の裏技ってどんなんだろう。探したけれど、よくわからなかった。
今日のししゃもさん
sixamo: すいません。ボトルネックサーガ(8巻まであったんですね)を読み込んで構文木を返すものが欲しい?
いやそうなサーガだ。
class Object def each yield(self) end end
って嬉しいだろうか。嬉しいような気もする。nadoka をこれ使って書き直そうかなあ。
札と礼を見まちがえた。
「シリコンの谷は、いま。 第48回 アイデアを実現させるコツとか、ありますか 。」
うーん。まさに。まさに。
respond_to? の話は、まんまそのとおりだと思います。講義をやるときには聴きに行くので私も呼んでください。
ただ、それがduck typing だというのは(以下略)。
たとえばrespondtoというバイトコードがあったとしたら、どうなるんだろうか。
うーむ、グローバルメソッドキャッシュにはうれしそうだが、インラインではうれしくなさそうだ。
型定義をシグネチャ定義にするのはどうか。
def methodA(arg1:each, arg2:to_s) param1:read param2:times param1 = open('hogehoge') param2 = param1.gets.to_i param2.times{|i:+| ... } end
いや過ぎ。
#define MULT_ALS(x,y) \ (((y) << ((x)&0x00000001)) | \ ((y) << ((x)&0x00000002)) | \ ((y) << ((x)&0x00000004)) | \ ((y) << ((x)&0x00000008)) | \ ((y) << ((x)&0x00000010)) | \ ((y) << ((x)&0x00000020)) | \ ((y) << ((x)&0x00000040)) | \ ((y) << ((x)&0x00000080)) | \ ((y) << ((x)&0x00000100)) | \ ((y) << ((x)&0x00000200)) | \ ((y) << ((x)&0x00000400)) | \ ((y) << ((x)&0x00000800)) | \ ((y) << ((x)&0x00001000)) | \ ((y) << ((x)&0x00002000)) | \ ((y) << ((x)&0x00004000)) | \ ((y) << ((x)&0x00008000)) | \ ((y) << ((x)&0x00010000)) | \ ((y) << ((x)&0x00020000)) | \ ((y) << ((x)&0x00040000)) | \ ((y) << ((x)&0x00080000)) | \ ((y) << ((x)&0x00100000)) | \ ((y) << ((x)&0x00200000)) | \ ((y) << ((x)&0x00400000)) | \ ((y) << ((x)&0x00800000)) | \ ((y) << ((x)&0x01000000)) | \ ((y) << ((x)&0x02000000)) | \ ((y) << ((x)&0x04000000)) | \ ((y) << ((x)&0x08000000)) | \ ((y) << ((x)&0x10000000)) | \ ((y) << ((x)&0x20000000)) | \ ((y) << ((x)&0x40000000)) | \ ((y) << ((x)&0x80000000)))
unsigned int 32bit の掛け算。本当にこれでいいんだろうか。
勿論ダメだった。
#define MULT_ALS(x,y) \ ((((y)&0x00000001) ? ((x) << 0) : 0) + \ (((y)&0x00000002) ? ((x) << 1) : 0) + \ (((y)&0x00000004) ? ((x) << 2) : 0) + \ (((y)&0x00000008) ? ((x) << 3) : 0) + \ (((y)&0x00000010) ? ((x) << 4) : 0) + \ (((y)&0x00000020) ? ((x) << 5) : 0) + \ (((y)&0x00000040) ? ((x) << 6) : 0) + \ (((y)&0x00000080) ? ((x) << 7) : 0) + \ (((y)&0x00000100) ? ((x) << 8) : 0) + \ (((y)&0x00000200) ? ((x) << 9) : 0) + \ (((y)&0x00000400) ? ((x) << 10) : 0) + \ (((y)&0x00000800) ? ((x) << 11) : 0) + \ (((y)&0x00001000) ? ((x) << 12) : 0) + \ (((y)&0x00002000) ? ((x) << 13) : 0) + \ (((y)&0x00004000) ? ((x) << 14) : 0) + \ (((y)&0x00008000) ? ((x) << 15) : 0) + \ (((y)&0x00010000) ? ((x) << 16) : 0) + \ (((y)&0x00020000) ? ((x) << 17) : 0) + \ (((y)&0x00040000) ? ((x) << 18) : 0) + \ (((y)&0x00080000) ? ((x) << 19) : 0) + \ (((y)&0x00100000) ? ((x) << 20) : 0) + \ (((y)&0x00200000) ? ((x) << 21) : 0) + \ (((y)&0x00400000) ? ((x) << 22) : 0) + \ (((y)&0x00800000) ? ((x) << 23) : 0) + \ (((y)&0x01000000) ? ((x) << 24) : 0) + \ (((y)&0x02000000) ? ((x) << 25) : 0) + \ (((y)&0x04000000) ? ((x) << 26) : 0) + \ (((y)&0x08000000) ? ((x) << 27) : 0) + \ (((y)&0x10000000) ? ((x) << 28) : 0) + \ (((y)&0x20000000) ? ((x) << 29) : 0) + \ (((y)&0x40000000) ? ((x) << 30) : 0) + \ (((y)&0x80000000) ? ((x) << 31) : 0))
分岐ははずせないだろうか・・・。
conditional move とか、そういうので・・・。うーん。
#define MULT(x,y) \ (((x<<0) & ((y & (0x00000001)) << 31) >> 31) + \ ((x<<1) & ((y & (0x00000002)) << 30) >> 31) + \ ((x<<2) & ((y & (0x00000004)) << 29) >> 31) + \ ((x<<3) & ((y & (0x00000008)) << 28) >> 31) + \ ((x<<4) & ((y & (0x00000010)) << 27) >> 31) + \ ((x<<5) & ((y & (0x00000020)) << 26) >> 31) + \ ((x<<6) & ((y & (0x00000040)) << 25) >> 31) + \ ((x<<7) & ((y & (0x00000080)) << 24) >> 31) + \ ((x<<8) & ((y & (0x00000100)) << 23) >> 31) + \ ((x<<9) & ((y & (0x00000200)) << 22) >> 31) + \ ((x<<10) & ((y & (0x00000400)) << 21) >> 31) + \ ((x<<11) & ((y & (0x00000800)) << 20) >> 31) + \ ((x<<12) & ((y & (0x00001000)) << 19) >> 31) + \ ((x<<13) & ((y & (0x00002000)) << 18) >> 31) + \ ((x<<14) & ((y & (0x00004000)) << 17) >> 31) + \ ((x<<15) & ((y & (0x00008000)) << 16) >> 31) + \ ((x<<16) & ((y & (0x00010000)) << 15) >> 31) + \ ((x<<17) & ((y & (0x00020000)) << 14) >> 31) + \ ((x<<18) & ((y & (0x00040000)) << 13) >> 31) + \ ((x<<19) & ((y & (0x00080000)) << 12) >> 31) + \ ((x<<20) & ((y & (0x00100000)) << 11) >> 31) + \ ((x<<21) & ((y & (0x00200000)) << 10) >> 31) + \ ((x<<22) & ((y & (0x00400000)) << 9) >> 31) + \ ((x<<23) & ((y & (0x00800000)) << 8) >> 31) + \ ((x<<24) & ((y & (0x01000000)) << 7) >> 31) + \ ((x<<25) & ((y & (0x02000000)) << 6) >> 31) + \ ((x<<26) & ((y & (0x04000000)) << 5) >> 31) + \ ((x<<27) & ((y & (0x08000000)) << 4) >> 31) + \ ((x<<28) & ((y & (0x10000000)) << 3) >> 31) + \ ((x<<29) & ((y & (0x20000000)) << 2) >> 31) + \ ((x<<30) & ((y & (0x40000000)) << 1) >> 31) + \ ((x<<31) & ((y & (0x80000000)) << 0) >> 31))
処理系依存らしい。
シフト(>>) 32 はダメダメらしい。
先日、青木さんにいろいろ教えてもらったけれど、「respond_to?を使わない」というのは、duck typing というより duck programming だ、という話が出ていたと思う。多分。それなら納得する。
each があれば Enumerable なのなら、Enumerable があるかどうかを調べるには、each があるかどうかを調べればいい、という発想はあると思う。
でも、調べて分岐するようなプログラムは、そもそもよくない(わかりづらい、たとえば引数にの型とかぐちゃぐちゃする場合)、という主張もよくわかる。
そのあたりの線引きは各プログラマがやるとして、その名前はどうあるべきか、なんだろうなと思うんだけれど。
そもそも duck といわれても、私はぴんと来ないんだけど、ほかの人とか、海の向こうの人たちにはそうでもないんだろうか。
なんか、flash で何かを作りたくなってきた。誰か買って・・・。
(y)<<0x80000000って…(y)*2^(2^31)だから、ええと20億ビットくらい?
うへぇ・・・。頭悪い。
何をやりたいのか知りませんが、
#define MUL1(x, y, n) ((-(((y)>>(n))&1))&((x)<<n)) #define MULT_ALS(x,y) \ (MUL1(x,y,0)+ \ MUL1(x,y,1)+ \ ... MUL1(x,y,31))
だとどう?
まさにそんな感じで。スゲー。
ZAKZAK - 「ウィニー」の“生みの親”天才技術者の素顔。
今更だけど、はじめて読んだ。うわー・・・。世間一般ではこういう評価なのかしらん。
この記事はドイツの人に tclockを教えてもらい、その開発者の人の日記に書いてあった。
私も
「おとなしそうな感じ。あいさつしても『ウン』と頭を下げるが、声を出さない。いつも私服で学生の延長という感じだった」
といわれるようになりたいなあ。
レシピブックキター。
青木さんの使う例文が・・・。a='kuma-'; a[0,1]='';p a に笑った。
P103
ルールになっています。
ルールとまでいえるのかな?
P59
...to_a.sort_by{|char,count|...}
は、将来的に使えるのか?(ruby-dev:23564)
P134 yamlデータに無い青木さんが、結果に増えてる。執筆の歴史を感じますね。
あれ、次のページではゆうぞうさんが消えてる。
P149
複数の配列を並行処理する
スレッドでも使うのかと思った。
P165 初期化するのが同じオブジェクトであることを注意書きしておいたほうがよかったんじゃないだろうか。
P29
得意メソッド
今回の投票で一番になると、構文要素に昇格します(嘘)。
Timeオブジェクトって100年後まで作れたっけ。
P329 どれがデフォルトだっけ。
P405 なんでも入るような文法はどうなるんだろう。この辺チェックしてなかった。
今日もたのしゅうございました。
ウェブカメラ役に立たず。やっぱり利用者の需要を考えないと、駄目だな。
つい、UML について調べてみる。意外と手軽っぽい。
つい、リアルタイムスケジューラについて調べてみる。うーん。
うー・・・。
若手の会の夏の集まりのメールが来てた。誰か行く人います? 今年は愛知かー。
やっぱり金がないので去年賞味期限のレトルトミートソースを食べる。
なんか酸っぱい気がする。
まだ腹は痛くない。
ついつい xs を触ってしまうんだけど、電池を抜くと全部転送しなおしってのが辛い。FlashRom でも誰か付けてないのかな。
やっぱ P/ECE をコントローラにして・・・。必要なのは、LEGOとの連携か。
(define (f) (motor :a :forward) (motor :c :forward)) (define (b) (motor :a :back) (motor :c :back)) (define (stop) (motor :a :off) (motor :c :off)) (define (wait-start) (wait-until (pressed?)) (wait-until (not (pressed?)))) (define (start) (wait-start) (f) (with-watcher (((touched? 1) (b)) ((touched? 3) (f)) ((pressed?) (stop))) (sleep 100)) (stop) )
しょぼ。でも楽しい。
今日のRHG読書会でもブロードキャストする予定です。興味のある人は #Ruby:*.jp で。
むぅ。誰も見ない。
せっかく生青木さんなのに。
実は焼き青木さんがいい、とか。
ROM倍増計画で、H8CPUを交換しちゃうとか。 CPUの製造元のルネサス(元、日立)に頼んでみるとか。
Franzの社長さんがOS回りを引き受けてくれたなら Hard回りはルネサスの社長さん(坂本さんだったかな)に お願いしちゃうのが手っ取り早い。
それにしても、動き回るevalとは愉快ですね。
今日も面白かった。
いつものように、忘れずにまとめておこう。
■10:00〜10:30: The Good, the Bad, and the Ugly [概要]
(by Fritz Kunze, Franz Inc.)
とてもゆっくりな英語。英語を聞いて笑える幸せ。
■10:30〜11:30: Lispで勝てる! そのユニークな特長を利用した競争戦略 [概要]
(by Jans Aasman, Franz Inc.)
概要過ぎたようなきがする。
■11:30〜12:00: Lispへのこだわり [概要]
(by 和田英一, IIJ技術研究所)
話すネタが豊富ですごい。
■12:00〜13:30: 昼食
定食屋。
- - - チュートリアルの部 - - -
■13:30〜14:15: CLOS and Metaobject Protocol [概要]
(by Jans Aasman, Franz Inc.)
時間足りないよな。もっと聞きたかった。
■14:15〜15:00: 動的Webサーバ「AllegroServe」 [概要]
(by 工藤千加子、(株)数理システム)
手軽でいい。本運用にどれくらい使い物になるかは謎。
■15:15〜16:00: IDE [概要]
(by 多田将志、(株)数理システム)
VBみたい。
■16:00〜16:45: 国際化と地域化 [概要]
(by 多田将志、(株)数理システム)
よくわかんなかった。
■16:50〜17:35: Emacs Lisp Interface [概要]
(by 黒田寿男、(株)数理システム)
デバッガ機能スゲー。
■10:00〜10:45: MySQL and Oracle with ACL [概要]
(by Jans Aasman, Franz Inc.)
よくわかんなかった。実装の話は具体的にはなかったと思う。
■10:45〜11:30: ACL7.0の新しい正規表現ライブラリ [概要]
(by 川合史朗、Scheme Arts, L.L.C.)
楽しかった。
■11:30〜13:00: 昼食
ジョナサン。
■13:00〜13:45: Lispによるサービス指向アーキテクチャ (SOA) [概要]
(by Prasad Yalamanchi, Kido Software) (by Jans Aasman, Franz Inc.)
よくわかんなかった。
■13:45〜14:30: 自律したネットワーク間の経路障害を自動診断する「ENCORE」 [概要]
(by 明石修、NTT未来ねっと研究所)
分野が違って面白かった。というか、今後の課題とかぼかされてたかんじ。
■14:45〜15:30: Lego MindStorms 用の Lisp [概要]
(by 湯淺太一、京都大学)
楽しそうだった。
■15:30〜16:15: Lispによるヒューマノイドロボットの行動プログラミング [概要]
(by 岡田慧、東京大学)
ロボットロボット。売ってるんだなぁ。OSの辺についてはあんまり興味がないらしい。
■16:30〜17:15: Lispプログラマーは、なぜ正規表現を必要としないのか [概要]
(by 黒田寿男、(株)数理システム)
リーダーマクロを全然知らなかったんだけど、こういうものかぁ、と納得させてくれた。きっと、リーダーマクロの中で正規表現を使うのが正しいんだと思う。
だめだ、小学生の感想文だ。
Mind Storm を動かしてみたくなった。
で、研究室のほこりを被っていたMindStormを引っ張り出してくる。とりあえず、シリアルケーブルがなくてすげー探す。発見。
msvcr70.dll がネーと抜かす。msvcr71.dll をコピーして改名する(ヒデー)。動いた。
・・・9V 乾電池が無くて撃沈。なんてこった。スゲー悔しい。
あまりに悔しかったんで、いなげやに走ってしまった。
で、動いた動いた。ちゃんと評価してるしてる。
動いた動いた! ちゃんと走ってる走ってる!
実は、Legoで遊んだのはほとんど初めてかもしれない。
プログラミングよりも組み立てるほうが大変だった気がする。
感動。
誰か触ってくれるなら明日もって行きますが・・・。シリアルつながるPCが必須だけど。
・・・でも重いんだよな。
岡田さんがLispを使う理由が「インタラクティブに開発ができる」ことだって言ってたけど、別に Lisp に限らないよなぁ・・・。
Lisp のデメリットは遅いことだって言ってたけど、そんなでもないよなぁ。きちんと最適化すれば。
ちゃんと議論してみたかった。
説明がうまい人と下手な人ってのは、やっぱり歴然としているよね。うまい人の話には、ついつい時間を忘れて聞き込んでしまう。
下手な人は、どうでもいいことを喋る。お前それいいから早く次のトピック説明しろよ。
・・・自戒ですが。
p defined?(a=1) p a #=> "assignment" nil
うぐ。
a=a p a #=> nil
うぐ。
p defined?(x=a) p x,a #=> "assignment" t.rb:4: undefined local variable or method `a' for main:Object (NameError)
ふむ。
そんなに難しくはないか。ちょっとドキドキ。
ratio of communication to computation(which is a measure of register locality)
ってなんだ・・・。いいたいことはわかるんだが、日本語にならない。レジスタのローカリティってことだから、命令間の依存度とか、そんな感じだと思うんだけど。
計算と通信の率って訳すのか・・・。
しかし、実際にこれをどう数値化するんだろうなぁ。うーむ。src,dst のレジスタ間の距離を数えて、そのあとこれをどう計算するんだ。
あるソフトウェアのセミナーに、「〜のインストール方法のレクチャー」って必要なんだろうか。
class C def m p 'hoge' C.new end end a = C.new p defined?(a.m) p defined?(a.m.m) #=> "method" "hoge" "method"
えー、実行するのー?
奥が深い・・・。
つまり、こういうことか。
defind?(x.y.z) #=> if x && x.respond_to?(:y) && x.y.respond_to?(:z) 'method' else nil end
難しい。
p defined?(@a) p defined?(@a.__id__) #=> nil "method" t.rb:14: warning: instance variable @a not initialized
難しい。
wikiちゃんはいるのにnadokaさんが居ないのはおかしい。
あしたはLispチュートリアル&Lispセミナー&Lisp事例紹介というのに行くのだけど、また知った顔ばかりになるのかなぁ。
というか、本業がおわんねーよ。
新しいこと、新しいこと・・・。します、とかさせてください、とか。
if( defined?(a.m) && defined?(a.m.m) ) 'method' else nil end
こっちか。
class C def m a p 'hoge' C.new end end a = C.new p defined?(a.m) p defined?(a.m.m) p defined?(a.m(1).m) #=> "method" nil "hoge" "method"
うーん、不思議不思議。
せっかくなので、mixiの人の紹介を適当に追加してみる。30秒考えないルール。
dave氏の duck typing を流し読み。ふーむ。
しんげつたん〜。終わり。よくわからない。
もう、元もほとんど覚えてないことがわかった。さっちんは・・・。
高橋さんが、「LL史上初のピアですよ」みたいなことを喋っているとき、「LL史上初のペアチケット」と間違えて、そうか、俺に来るなと言うんですか、と思ったのを思い出した。
ああ、コンプしてしまった。恐るべし。
××はアンケートしてみたら?
ratio of …通信と計算の比。通信と通信の間に平均何回計算命令を実行するか。「粒度」のことだよね?
ILP versus TLP on SMT とみた。
そうでーす>ILP vs. TLP。1命令列の中のレジスタ間通信 -> 命令列中の依存の率、だと思うんですが、その数値化手法についてちゃんと書いてないんですよねぇ。
XXは選択肢がわからないのでできません。
単にロード/ストア命令と演算命令の実行回数の比じゃないの?
いや、add $x, $y, $z; add $a, $x, $x の場合、レジスタローカリティ(命令間依存度)は高くなるわけで、多分こういう関係を数値化したんじゃないかなぁ、と思っておりました。LD/ST だとメモリ<->レジスタ間のコミュニケーションですね。
レジスタローカリティってのは「どのくらいレジスタだけで処理がすんだか」では。naiveな行列乗算だとロード3回、乗算1回、加算1回、ストア1回で2.0、4x4にタイリングするとロード・ストア1回ずつに対して乗算4回、加算3回か4回で0.285〜0.25。
ここでは、プロセッサと外部との通信という意味で使っているのでしょう。スレッド間の通信も含めて。
ガガーン。そういう意味だったのか・・・。納得して、大変助かりました。ありがとうございます。
http://park16.wakwak.com/~library/Evil01.htm の一番下?
萌えないので却下。
「ピア」って片仮名で書くと peer かとおもうぢゃないか.ref. http://www.pia.co.jp/pia/annai/history.html
バイクの自賠責更新。4年分。さよなら2万円。
チケットぴあで買ったことないんだけど、コンビニ行けば、現金で買えるのかしらん。
コードリーディングが届いたそうなんだけど、金がない!! ダサー。
銀行で金を下ろしてコンビニでチケットを買って生協で本を買う。金に羽が生えてる。
まつもとさんの名前にもルビが振ってあって笑ってしまった。
というわけで、裏表紙だけ見る。
これを読め、と研究室の人たちに渡しても読んでくれねーだろうなぁ。
LL/WE のチケットに「http://ll.jus.or.jp/ にて参加者登録を行ってください」と書いてあるが、ページにはそれらしきものは無い。はてな。
で、一緒に買った「楽して暮らしてぇなぁ。」
やっぱ、いいなぁ。とりあえず、買ってください(ぉ。
で、金が無いんでしょうがないから去年の賞味期限のレトルトご飯で昼飯。
まだ腹には来ていない。
結城さんの暗号本も届いてた。さよなら諭吉さん。
コードリーディングリーディングとか秘密の国のアリス読書会とか、誰かやらないかしらん。
秘密の国のほうは、とても読みやすくていいなぁ(一章読んだ後)。読みやすいから読書会なんていらないって? うーん。
たいへん読みやすいので2章も読んでしまったけど、エニグマのアルゴリズムとかすっ飛ばす。一人だとこういうのはきちんと読まないなあ。
Code Reading p44
(略)Fortran と Pascal とほとんどのBasic言語ではブール式のすべての要素が必ず評価されます。
real function test() print *, 'hoge' test = 10. end program booleantest logical l l = (test() .lt. 0 .and. test() .lt. 0) end ---- $ g77 test.f $ ./a.out hoge
g77 では test() は一回しか評価されない。
仕様を探したんだけど、必ず評価する、という記述は見つけられなかった。
まぁ、f2c では
l = test_() < (float)0. && test_() < (float)0.;
になるから、C と一緒になるのは当然なんだけど。
みっけた。
http://www.fortran.com/fortran/F77_std/rjcnf0001-sh-6.html#sh-6.6.1
It is not necessary for a processor to evaluate all of the operands of an expression if the value of the expression can be determined otherwise.
Code Reading を読んでいると、なぜか眠くなる。なんでだろう。
?: の連鎖は素直に if 使えよ、と言ってはいけないんだろうか。行数は長くなるけど、indentした ?: の連鎖よりは読みやすいんじゃないだろうか。コードサイズも、結局は変わんないんじゃないかなぁ。いや、確かめてないから変わるかもしれないけど(代入の命令の個数が減るかな)。
あ、後ろでちゃんと直してた。
字が小さいから眠くなるのかなぁ。
バリアントとインバリアントの議論がわからない。うーん、何やってんだこれ。max = ... がインバリアントっていうのの話の意味がよくわからない。
なんとなくわかった。
Code Reading、脚注にソースの参照元を提示しているけれど、参照もとの提示は別の形式にしたほうがよかったんじゃないだろうか。
p71 4つのリングバッファを回すって楽しげなんだけど、本質的な解決じゃないんじゃ・・・。カーネル作るとき、限定条件がはっきりしているという意味で、いいのかなぁ。
やっぱり、code reading reading は面白そうだと思う。飲みながらとか。
p81 ビットフィールドって使ったことないんだけど、こうやって書くのか。知らなかった。
p92 GCの話が・・・。原文そのままってことなのかな。
リファレンスカウントでいつも気になるのがカウンタがオーバーフローしたときなんだよなぁ。
p94 Cの256本。あれ読んだときわけがわからんかった。
p195 爆笑。
多分、6章からが本番なんだろうな、これ。
XXを教えてくれるならつくばでもどこでも行きます(謎)。
defined? と respond_to? 、どっちを使うべきか。
require 'benchmark' include Benchmark C = 1000000 bm{|x| x.report{ C.times{ defined?(x.hoge) } } x.report{ C.times{ x.respond_to? :hoge } } x.report{ C.times{ defined?(x.__id__) } } x.report{ C.times{ x.respond_to? :__id__ } } x.report{ C.times{ # } } } #=> user system total real 1.063000 0.000000 1.063000 ( 1.063000) 1.125000 0.000000 1.125000 ( 1.141000) 2.734000 0.031000 2.765000 ( 2.796000) 1.141000 0.000000 1.141000 ( 1.141000) 0.359000 0.000000 0.359000 ( 0.375000)
平均値で respond_to? の勝ち。'method' を作るコスト(+GC?)がでかいらしい。
duck typing 推奨なら、respond_to? という構文要素はあってもいいと思うんだけど。
respond_to?(x, :hoge) # x.respond_to?(:hoge) respond_to?(y, :foo, :bar) # (x.respond_to?(:foo) && x.respond_to(:bar))
冗長か。
Duck Typing はポリモーフィズムでどうにかするのが前提じゃない?
すみません、どういう意味なんでしょうか。
Duck Typingってのは「同じように扱えるものは同じものと考えてよい」 ってことでしょう。でも respond_to? で分岐するということは それは「違うもの」であるということです。これを Duck Type 的に解決するとすれば、インターフェイスを揃えて、部分的に 同じものとして扱うことでしょう。
例えば Rucheme の respond_to?(:car) をなくすなら、 Object#list? を定義して obj.list? で分岐します。Object に定義するのが嫌だと思うなら、そもそも Ruby オブジェクト を流用したのが悪いのです。Duck Type をあきらめてクラスを 見るか、Rucheme オブジェクトを表現するクラスを作りましょう。 どの選択肢を選ぶかはポリシーによるんで、どれが「よい」 とは言えません。それぞれに長短があります。
先生、この話、土曜日に持ち越していいですか。
Mactopia Japan : Special Column - Apple's Eye - No.116 ビル・アトキンソンが明かす Mac 誕生秘話(sml)。Microsoft のサイトなんだなぁ。
洒落を自動生成する何かが作りたい(で、botを作りたい)。論文あったような気がするけれど、範疇外なので知らず。
LLではLL処理系の実装話はやらないのだろうかなぁ。やらないんだろうなぁ。やったらLLじゃないもんなぁ。
LL Implementation なんとか、とか誰かやってくれないだろうか(参加者いなそう)。
IVME みたいなワークショップも日本じゃやらなそうだしなぁ。コミュニティ的には SIGPRO なんだろうか。
もしアレが通ってたら、lightning talk にでも応募してみようかなぁ。
ビックマック200円。税込みなのねぇ。便利だ。
クヌース先生の「コンピュータ科学者がめったに語らないこと」を、だいたい読んだ。
講義の2〜4は、正直よくわかんなかった。特定の信仰を持っていないからか? 俺の教養のなさか? なんとなく、先日のPTT、和田先生のお話とノリが似てるなぁって思った。
しかし、なんという膨大な知識量なんだろうね。
生協で先週の水曜日あたりに注文した本についてまったく音沙汰がない。まぁ、生協なんてこんなもんか。書籍専門店じゃないしなぁ。もうちょっとレスポンスが迅速だとどんどん買ってしまってそれはそれで危ないかもしれない。
というわけで、レシピブックなどはまだ来ない。時代に乗り遅れている。投票の変更は、来たらってことで。
別に私が沖縄に行くってわけじゃなくて(行きたかったけど)、後輩たちが行くらしいのでそれの参考です(何の)。
Matzにっきの「サイバーノーガード戦法」の
そもそも我々は個人情報なんてほとんど持ってないし。
が、いったいどういう意味で書かれているのか、一生懸命考えてみたんだけどよくわからなかった。「個人情報を持っていない」ことが、なんだったんだろう。サイバーノーガード戦法と個人情報は直接は関係ないはずだし。うーん。
README.en.txt とかはあるけど、hoge.en.c は無いなぁ。
「萌え 対話」でぐぐったらrucheme のページがヒットした。なんでだ? 萌えなんて単語一個も使ってないのに。
今日のsixamoさん。
un○k : しーたん、そーたん、らすたん、はどうか。三人組。
sixamo: たくさん、か。おぉ、なるほどーーーー。(こういう考え方が駄目なのかしら)
駄目だと思います。
で、駄目な用語のデータベース誰か持ってないですかね。ししゃもさんをもっとアレにしてみたいんですが。
で、携帯にもメールがいくような契約をしてしまった。月200円あっぷ。...-ktai at atdot ... で届くようにしてみる。
焼酎のんで頭がぼーっと。
先生、ばきゅうってなにー。
しかし、サワーいっぱいで酔えるって幸せな体だよな。
http://www.kecl.ntt.co.jp/banana/cross_frame.html 「B級機関。永遠にだじゃれ(紙に印字してあります)を吐く機械です。」
サイバーノーガード戦法(メソッドA)は基本的に個人情報漏洩対策ではないかと。
ちょろっと作るってのには難しそうですねぇ>洒落
「侵入による被害→個人情報漏洩」に対する戦略だったのですか>メソッドA なるほど、勘違いしてました。「被害→信頼」と考えていたもんで。
http://www.wdic.org/download.html こんなのいかが?>駄目な用語のデータベース
いや、sixamoさん(人工無能)に食わせるんで単語だとアレなんです。
lightning talkじゃ時間が足りないのでは。BoFはなし?
BoF って Boys(略)ですか。
Basket of Fruits。
天使の〜。指がやばい・・・。
フランスの「妄想癖のあるヘンな女の子の恋愛映画」ってなんだろう。
ドラマを作ろう作ろうってがんばって破綻したって感じがする。こういう方針は嫌いじゃないし、こういう努力はもっともっと必要なんだろうけれど。
その他の部分のつくりの丁寧さは、やっぱりさすが、大御所。もう、何も言うことがない。ちょっとチェック厳しいけどね。
この違和感は、話が薄っぺらいのを無理やり脚色してるからか。
というわけで、一応みんな終わり。細かいのは無視かな。って、全部終わってる。
真月〜。さっちんをどう使うんだ、これ。
るーつえくすとら。あー、さすがだなぁ。というかすげーナツカシー。
やっぱり、「笹」の字の、竹冠と世のバランスが悪い気がする。ふぉんと屋さんは難しいよな。
ネロがかっこわるいなぁ。
SPEC初心者なんですが、MinneSPEC はいいなぁ。というか、助かった・・・。
でも、まだよくわかんない。どうしよう。ホットスポットを知りたいだけなんだけど。できれば簡単な。
自動並列化をやってる論文、全部 SPECint95 を対象にしてるんだもん・・・。95がほしいぜ。
というか、けっこうあたりまえだけど、並列化やるやつらはほとんど Fortran プログラムを対象にしてるんだよな。ぐぅ、どうしたもんだか。
やはり、もちは餅屋、コンパイラはコンパイラ屋なのかなぁ・・・。
もうちょっと方向を変えると、Livermore loop をCに変換して、Integer で全部やっちゃうってのも手なんだけれど。
労力的にはこっちのほうが楽かな。正当性が非常に怪しい。
あとは評価方法の検討。
そういえば、今日何年ぶりかで針と糸を取った。たま止めの方法がわからなくて、母親に聞く。駄目人間。
こんなに速くなりました、じゃなくて、何やっても駄目でした、という結論になりそう。たまにはそんなのもいいのかなぁ。
そういえば、携帯屋行った時、メールの設定の契約をするかしないかってときに、「(俺)電子メールが使えるってことですよね」「(店員)いや、使えません。Emailが使えます」って言われてしまった。
念願の名刺を作りました。ちなみにこれは失敗作です。間違い探し。
QRコードを入れてみました。
でも、校章はない。
A-one HomePage - ラベル屋さんHOME で作りました。なかなかお気楽。紙は100枚分で500円。
電車男の兄弟ディレクトリ全部読んじゃった。欝。
で、などかさんはちっとも普及しないのだけれど、どうしてくれるんですか(誰に言ってるんだ誰に)。
うーん、なんとかならないかなぁ。
やっぱ完成度か・・・。
あかん。だめだ、こういう才能ないわ、俺。
歯医者行ってきた。一時間足らずで終了。痛くも無く。歯に詰め物もさくっとやってくれた。というか、今こんなふうにつめるのか。スゲーぜ技術の進歩。なんかプラスチックを流し込んで、赤外線で固定、らしい。
ついでに携帯変えてきた。v301sh。小さいけど、操作性は悪い気がする。まぁ、そんなに使わないからいいか。
サウンドカードが死んだらしい。すげーノイズが響く。うーむ。
携帯で QRコードを読んで感動する。オモシレー。
最初、読めなくてなんだろうと思ってたら、保護シール越しだったからだったらしい。
さくっと趣味程度に使うならQRコード・バーコードを使わせてもらうのが良いか。
しかし、読み取りデバイスが携帯しかないのが微妙。PC->携帯は、QRコードでもいいかもしれないが(ディスプレイにうつしたバーコードを携帯で読めた)、例えば紙に書いてあるQRコードをPCで解釈したいときは、リーダーを買うのは馬鹿らしいので、携帯->PCのリンクがほしい。どうやればいいんだろう。メールするのはちょっとコストが・・・。
携帯 -> PC がもっと簡単にリンクできればいいんだけどな。
ボーダフォン - Vアプリ に、Vアプリ開発ガイド[シリアル制御編]なんてもんがあった。ケーブルを買ってくればなんか出来るんだろうか。
古い話ですが、yarv-dev:63 に爆笑した最近。
最近よく思うんだけど、やっぱり顔出しちゃ駄目だよな。
と、cowboy bebop 見終わって、再度思う。
大学生協では 10% 割引で書籍が買える。
5%割引でネットショップかなんか開いて、10%割引の大学生協で仕入れるとかいう商売をしたら、なんか法律にひっかかるんだろうか。
税金払えばいいんかなぁ。
1.0 が出た覚えがないのに 1.0.1 が出る不思議。
賞味期限一週間前の冷やし中華を食べたら腹が痛い。
わはは、PTTの参加者名簿を見て笑ってしまった。大学関係者以外はほとんどSICP-reading でやんの。
ruby関係は二人、だと思う。
2時間ほど悩んだものが、1行加えただけで治った。頼む、ドキュメント作ってくれ(自省)。
public はブルマなんだろうか。
c Fortran Program common /blockA/ x(10) real x
は、通すらしい。なんでだー。
f2c に従うなら、
common /blockA/ x(10) real x(3)
の blockAのx は 3要素の配列になるらしい。なんか納得いかん。
g77 はエラーだった。
名刺がほしいなぁ、と思って農工大の校章データを探してみるも、見つからない。さる筋から聞いたところによると、公式には配布していないらしい。
それの利用による既得権益でもあるのかしらん。名刺くらい作らせてくれよ。
Allegro Common Lisp (Japanese) - 2004 June Seminar の一日目(6/10)の終わったあと、飲みに行こうかって話があるんですが、飲み会だけでも参加したい人いますか? 6時くらい。
ここしょ。まヴらヴって名前の本があったような気がした。さすが図書館。
だめなプログラムの典型。CLASS_FRAME という単語と KLASS_FRAME という単語を使い分けている。だってほかに思いつかなかったんだもん。
toplevel scope は異質。クラス定義スコープでクラス定義文を実行するときと、トップレベルでクラス定義文を実行するのは、微妙に違う。とても嫌らしい。
class C::CC; ...; end という書き方は必要なんだろうか。
コードリーディング買おうと思ったら結構高い・・・。
申し込んだ生協のオンライン書籍注文サービス、その日のうちにIDが発行された。なかなかいい。買いすぎてしまいそうだ。
何を買うかな。
植松伸夫で検索かけたら、ふぁんたずまごりあが出てきた。なんて渋い・・・。というか、他のはどうした。
うああ、氏の本が出てた。ぜんぜん知らなかった。なんてことだ・・・。愛が足りなさ過ぎる。
しかし、検索が微妙。Rubyで検索して夏への扉がなぜひっかかる。他いろいろ。
しかし、なかなか便利そうだ。だけど、いろいろダサい。まぁいいか。手書きで注文表を書くよりは万倍ましだ。
組合規約になにか書いてあるんじゃない? 10%引き、というのは生協組合員と生協組合という関係が前提だと思うから。
ということらしい。じゃあ組合員が生協から仕入れて転売したらどうなるか、というと、たぶん法的には問題がない。実際、神田の古書店が一部の新刊を定価の1割引で売ってたりするらしい。古書店は定価販売する契約を結んでいないのでOKということ。(ただし、取次ぎが契約に違反している可能性はある。)
ただ、業として本を売るのに何か法的な制約があるかどうかは知らないし、実際はshiroさんも書いてるとおり、組合が何らかの規制をかけている可能性もあるけど。
誰かに試してもらおう。
そういえば、男4人でケーキ屋さん行ったとき、ふとケーキのバイキングを食べに行きたいけど、男一人じゃねぇ、と言ったら、M田さんに「おまえに捨てるものなんてあるのか」(気にせず行って来い)なんて言われた。
どうも、研究云々よりも、それ以前のことが出来ていない人たちが多杉な気がする。人としてどうよ。
(お前もなー、って聞こえそうだ)
これからxxxで忙しくなるのでyyyを見溜めしとくか、とかいうのがパターンなのだけれど、そんなことしても溜まらない。
レシピブック買わないとなぁ。
写真整理。
北海道。
5/29 PTT
東大(のこの校舎)に行くのは初めてだったような気がしたんだけど。東京大学って立て札探したけど見つからなかった。門が立派だから要らないのか。
そういえば、和田先生に一人前の男、とかなんとかの話を聞いた。和田先生に手酌させてしまったので、恐縮していたら、「一人前の男だから自分で注げる」だとか。
生協にオンラインショップがあるというのをGoogleで知って、おっしゃ! って見たら、農工大はまだサービス外らしい。なんてこった。しょぼーん。
なぜか IEからプリントアウトができなくなった。
「オブジェクトがありません。」とか抜かす。
なぜだ。
キャッシュを消して再起動したら直った。さすがWindows。
toruさんにmixiに招待してもらった。どうもありがとうございます。
インターフェース 2004/7 Engineering Life in Silicon Valley - シリコンバレーでの人脈作り、を読んで、色々と思う。そうだよなぁ、こういうスキルがとてもとても大切なんだよなぁ。いくらVM作れても駄目なんだよ(多分)。
エレベータートークかぁ。
momonga に zebedee を突っ込もうとしたら、知人は作っていなかった。しょうがないのでomokonをまわそうと思ったんだけど、動かなかった。うーん。
やっぱり日本語文字コードの問題がアレなので、SMB over SSHする。あぁ、富豪。
よくわからないのですが、FrontPage - qwik.jpなんてものがあるんですねぇ。楽しそうだ。
SMB over SSH は、サーバ側のCPUがネックらしい。さすがに Celeron 433 じゃなぁ。速いのはほしいけど熱いのはいや。金もないので多分このまま。
QuickML と Wiki がくっつくんだから、 QuickML と IRC をくっつけてもいいよな。多分。何かないか・・・。思いつかん。
学部3年オブジェクト指向プログラミングという授業が、Swing(?) 入門になってる。
夕食は半額寿司。
眠たくてやる気が出ない〜・・・。アンパンマンは頭を変えれば元気が出るが、俺は何を変えればいいんだろう。
そうか、StringIO#gets は $_ にセットしないんだなぁ。
あ、そんな簡単な話じゃないか。
while line = DATA.gets p line end print 'DATA.gets: ' p $_ require 'stringio' data = StringIO.new(<<EOS) B1 B2 EOS while line = data.gets p line end print 'StringIO#gets: ' p $_ __END__ A1 A2 #=> "A1\n" "A2\n" DATA.gets: "A2\n" "B1\n" "B2\n" StringIO#gets: nil
これ、不ぞろいなのは、不味いんじゃないんだろうか。
trampolineに似てるね。ところでArray#each{...}がネストしても大丈夫なのかな?
C -> Ruby -> C -> ... ってことですよね.多分大丈夫です.C の部分は重なるけど.