ToDo:
気になってたのでニコニコで見た。
http://d.hatena.ne.jp/tokuhirom/20080623/1214220971
うーん面白いと思うけど、レギュレーションが微妙かなぁ…
なんか perl のバージョンに依存してるのがね… うちの 5.10.0 だと
> perl -MAcme::PerlVMGolf -e '1/!!!!1' hit: 5op(const, constant item) hit: 96op(not, not) hit: 5op(const, constant item) hit: 96op(not, not) hit: 5op(const, constant item) hit: 96op(not, not) hit: 5op(const, constant item) hit: 96op(not, not) hit: 5op(const, constant item) hit: 5op(const, constant item) hit: 57op(divide, division (/)) hit: 180op(enter, block entry) hit: 177op(nextstate, next statement) hit: 181op(leave, block exit) Your perl is : 5.10.0 Your score is : 1009op
とずれるのよね。 YARV も instruction 変わったりするし難しいんじゃないかなぁ。
素直に op code サイズ縮めりゃいい気がするんだけど、 たぶんスタックマシンの VM ゴルフとかそんなに面白くもないんだろうな。 ちょうどを目指すのがリアルゴルフ感があるといえばあるし。
(01:11)
起きたらあろは先生が喋ってたので見てた。
gccint.info を誰か訳すといいと思うんだよね。 あと gcc wiki の internal なんちゃらとかあのへん。
しんどいのでこんなコードを書いてた。
int main() { int p = 1; if (p > 0) { int p = printf("%d\n", p); } }
驚いた。これ 0 って出力されたんだぜ…!
(19:06)
Array#step 欲しくね。 なんか出力適当にやって
hoge fuga 30 20 40 50 foo bar 10 30 20 40 ...
みたいな感じで出力しちゃうことが結構あるんだけど、 これをパースするのは意外とめんどくてうざい。
こういうのがあるとすっきり。
class Array def step(n, &pr) i = 0 while true a = self[i, n] break if a.size != n i += n pr[*a] end end end File.read('log').split.step(6) do |s1, s2, n1, n2, n3, n4| puts "#{n1}" end
(21:07)
ってどうするのがいいのかなとふと考えた。
一番点数低いのがトップに来るようにヒープを作っておいて、 その点数一番低いヤツより大きければ 一番上取り除きつつ新しい要素を挿入、 とかするのが良さそうに思った。
点数低いのがトップに来るあたり priority queue としてはちょっと面白いような。
まぁたいていは map かなんかに適当につっこみまくって 上位なめるだけでうまくいくんだけどなー。
(21:21)
リスク犯すほどのリターンが基本的に無いって話が あるんじゃないかな。 僕の知る範囲ではローグライクで言うリスクってのは死で、 その場合のリターンてどうせその場で生きのびられる、 だけなんだよな。 明らかにリスクに見合わん。
無理にそれ以外のリスクリターンとか考えると… シレンでレベル上がっちゃった敵がいて、 今自分階段とこにいるから逃げられるけど 手持ちのアイテムを使えばそいつを倒せてレベルがたくさん上がるとか… それはリスクリターンというより単に損得勘定だな。
うーん。たぶん大丈夫だろうけど万が一がありそうな泥棒とかかね。
(22:14)
って知ってますか。 tee とか tail -f とかと並ぶ状態監視ツールなんだけど、 まぁそれらと並ぶという時点でそんなに使わない。
で、それとはあんま関係なくて、
diff -u results/18 results/19 L
的なことをよくする (L は |&lv) わけだけど、 これを見てる最中に results/19 は 更新中だったりすると、 もう一度コマンドを実行して今の状態が見たい… と思うのはまぁ自然なことかと思う。
でこれが R でできないのが腹がたつ。 無論 q ^p ^m とかでもいいんだけど、 これだとカーソルが最初に戻っちゃう。
unix pipe は唯一成功したコンポーネントアーキテクチャだとかいう Rob Pike の正気かどうかよくわからん主張はこう、 半ば賛成するんだけど、でももうちょいこうなんとかねぇ。
(23:38)
テーブル作らない方法はわからないなぁ。
テーブルの作り方としては
_=(/$/=~'#')<<(/$/=~'#######') p ([*''<<(//=~'')..''<<~-_]+[*''<<_..''<<~(//=~'')])*''
みたいな感じの方がわかりやすいかも。
[*""<<0..""<<-1]
や
[*""<<0..""<<255]
の結果が 1.8 と 1.9 で全然違うのは興味深いな。
(02:39)
なにしにいったんだという感じではあるが ふらふら会社いったらやっぱしんどかったので さっさと退散したすんません。
とりあえず京都は行けることになったらしいので行こうとおもう
(20:18)
http://wiki.livedoor.jp/author_nari/d/GC
via http://d.hatena.ne.jp/ddk50/20080625#1214376909
何度か目に入ったけどそいや読んでなかった。
(03:00)
http://twitter.com/QLeap/statuses/844051259
http://services.google.com/events/kyoto-techtalk2008
俺が tech talk を聞きに行く計画を。
(22:05)
http://d.hatena.ne.jp/ku-ma-me/20080626/p1
でもたぶん 1.9 でも出力はこれでいいと思うんだなー。
$><<(''<<$_[@@_])
1.8 でも数値つっこむと数値出てるというか
(23:48)
_ ku-ma-me [おおほんとだ。なんか勘違いしてました。どもども。]
http://natu.txt-nifty.com/natsutan/2008/06/vm_e3c7.html
そうそうレジスタマシンのメリットってよくわからない ってのはたしかに。思いつくのは
あたりかなぁ。
あと parrot のドキュメント見ると速いと主張してるな。
http://www.namikilab.tuat.ac.jp/~sasada/prog/parrot-intro.html#i-4-2
スタックの伸長の話は本当かなぁ。 全然知らんけど関数呼ぶ時に レジスタを退避する空間というのはなんにせよ必要なので、 関数呼び出し時にスタック的なものは伸びると思う。 んでまぁスタックマシンも別に毎度律義にサイズチェックしつつ push pop するんじゃなくて、 関数入る時に必要な分だけ確保するんちゃうかな。
http://twitter.com/alohakun/statuses/841568669
はリアルマシンには正しいと思うけど VM だとたぶんあやしいかな。
http://d.hatena.ne.jp/scinfaxi/20080617#c1213757882
はどうなんだろう。 IA64 のレジスタ割り付けを妄想するに
全然普通通りなのでつまり適当で良さげなのかな。
なんかでも見聞きする限り IA64 は x86 なんかより はるかに複雑怪奇なんじゃないかな。 だからこそ死に絶える前に遊んでみたいんだけど。
(00:13)
なんか最近 VM とかそのへんに割と興味があるみたいだ。
レジスタ割り付けめどいにゃーとか。 適当に書いた部分直さないとにゃーとか。
あとそういえば、ネイティブ無理ポと思ったら コンパイル諦める機構が何かしらあるといいかなぁと思う。 例えば definemethod が来たら とりあえずコンパイルしておいて、 次回からの呼び出しにはそっち使うんだけど、 同じ definemethod が呼ばれるようなうざいことがあったら もうコンパイルシネーヨというような。
あんま深く考えてないのでわからん。
なんか最近興味が
とか作るといいと思う。 とにかく短いバイトコードを目指す VM 。
(02:15)
http://natu.txt-nifty.com/natsutan/2008/06/post_d6a1_2.html
演算の対象、つまり即値じゃないオペランドが どこにあるか、でスタックマシンとレジスタマシンは 呼び分けてるのかなぁと思ってた。 だからたぶんだいたいのリアル CPU はレジスタマシンじゃないかなぁとか。 MAXQ とかはメモリマシンとか呼んであげたい感じなんだろうか。
http://japan.maxim-ic.com/products/microcontrollers/maxq.cfm
あとなんか IA64 のレジスタスタックの方が もっとスタックスタックしてる気がするような。
(00:23)
rake 入らん。 gem でも macport でもなんかうまくいかぬー。
export GEM_PATH=/opt/local/lib/ruby/gems gem install --remote rake
とかでうまくいった。 port で入れたかったんだが…
あ
Important: MacRuby requires Mac OS X 10.5.2, or later.
がくり…
(00:36)
http://www.dodgson.org/omo/t/?date=20080621#p01
は面白いんじゃないかなーと妄想しつつ 試してもみてなかったんだけど、 なんかあるみたいだ
(16:29)
http://tabesugi.net/memo/cur/cur.html#192038
C++スキーとしては色々あれだなー。 でもまぁ LISP というか CLISP を指してるんだとしたら ありえんだろというくらいで後は宗教的な話か。
「わざとからみあって」はたぶん勘違いだと信じたいところ。 RMS が RTL が完全にアーキテクチャフリーじゃないのは 自由を守るためで、意図的、と言うのは見たことあるので、 まぁそのことじゃないかなと思う。
あとその件に関してはまぁ、 アーキテクチャフリーで各アーキテクチャで 「十分」(つーても定義曖昧だけど)高速なバイナリ吐ける RTL なんか作れるわけねー、 と凡人の脳では思ってしまうので、 そのへんどうなんかなぁ。
本当にすごい人は作れるんかなぁ。
(00:46)
19時デッドラインの機能を適当に足して、 練習問題を上げておいた。
なんか思ってたよりちゃんとやるつもりみたいなので、 今日一日うまいこといくといいなぁ。
あとはパー解答とか入れようかなーと思ったので、 それ用の解答とか作りながら行くかな。
(09:28)
なんか頭の悪いイベントがあるそうなので 適当にご参集下さい。
http://jp.rubyist.net/RubyKaigi2008/?Golf
プロゴルファーのみなさまにおかれましては、 18:00 以降に適当に投稿して下さい。
(01:23)
http://d.hatena.ne.jp/Ozy/20080617#p1
などなど。
(00:20)
http://www.kmonos.net/alang/boost/classes/multi_index.html
そうなのか二つコンテナ持つんじゃないのね。 DBみたいにインデックスはるとかかな。後で
(12:12)
http://airs.com/ian/cxx-slides.pdf
via http://homepage1.nifty.com/herumi/diary/latest.html#18
iant すげーなー
(23:48)
僕は爪かじる癖がもうさっぱり覚えてないけど 適度に長い間あったんだけど、 これ癖とかじゃなく意識的に爪はかじるべきだと思っていて、 今でも爪切りと併用してる勢いだと思う。
アトピー的には爪切ってない爪ってのは かなり気持ちいい掻くための装置であって、 寝てる間とかにダメージを与えてしまうのはしょうがないものがあるように思う。 んでもって、アトピー的には同じく、爪切った直後の爪ってのは 最高に気持ちいい(んだけどこれって一般的に同意が得られるものなのかは知らない。 蚊に刺されたとかなら爪切った後の爪で掻きたいなんて思わんし) とかいう事情があって、 まぁとにかくめどいので間をほって話を進めると、 爪かじったらほどほどに先端が丸くて アトピー的にダメージ少なめな爪になるので、 まぁ寝る前にそいう状態にしておくとかは重要な気がするんだよな。 本当かどうかは知らんけど
(00:11)
もちょい正確に考えるに、 うーんなんだろう、 こう障害者の人の体験談とかそいうの読んで、 「あーこいうのなら俺がその立場ならこいうふーにクールに応対できるかなー」 とかそいうことを思うことがあると思うんだけど、 まぁそれがもうたぶん絶対無理だとわかるのはデカいかなーと思う。
こうもう、たいしたもんじゃない俺のアトピーでも 明らかに俺の意思を越えた動きを勝手にしてやがるとかそういう
あでもこいうのは俺がアホなだけで、 まぁ普通の人は普通に絶対無理だとわかるのかもしれない
(02:01)
前 | 2024年 11月 |
次 | ||||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。
_ ょゎ [> Array#step Enumerable#each_slice でどうでしょう? 最後の端数も yield..]
_ shinh [おおすばらしい。書いてからありそうだなーと少し思ったのですが、調べるのをさぼってました。ありがとうございます。 ]
_ へるみ [>これ 0 って出力されたんだぜ…! -Wallつけると「未初期化だよ」って文句言われますね.未定義なのかな. ..]