トップ «前月 最新 翌月» 追記

はじめてのにき

ここの位置付け

2004|11|
2005|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|06|07|08|09|10|11|

ToDo:


2009-08-02

_ お勉強会

http://wiki.livedoor.jp/zinnia1975/d/%a4%aa%ca%d9%b6%af%b2%f1%2d%b5%ad%cf%bf1

http://risky-safety.org/~zinnia/d/2009/07/#20090729-t0-h1-p0

前後に予定があったので たしか 15:30 くらいから 18:00 まで参加。 やったことは、

  • coLinux の root partition が 4MB しか空いてなかったのでお話にならんと 10GB のディスクイメージに乗り換え
  • 動かない→ /dev 作ってなかった。動かない→ /bin のコピーを rsync -vr でやってしまっていたので -avr でやりなおし。 /bin/sh がシンボリックリンクだからなあ。
  • deb/rpm を作って glog 0.3.0 をリリースしておく。
  • Chrome でキー設定する extension の続き。キー入力を必要としてるサイトに対しては無効にするってやりかたがわからんなぁと。しょうがないので gmail だけイベント奪わないとかできる仕組みをつくる。
  • 中野ルノアールは livedoor wireless が来てるのはありがたい。でも VPN はれなかった。まぁ全く問題ないが。

そんなとこかなぁ。 coLinux の移動がほとんどの時間を占めていた気がする

(17:17)

_ hash -r

http://www.artonx.org/diary/20090731.html#p01

きょうび rehash とかなくても CDROM とか floppy で無い限り大丈夫なんじゃないかなぁと思うわけだけど、 まぁ前に思いついて .zshrc に書いておいた キーショートカットは割と便利に使えている。

clear-screen-rehash() {
	zle clear-screen
	rehash
	zle reset-prompt
}
zle -N clear-screen-rehash
bindkey '^L' clear-screen-rehash

画面を消す時についでに rehash してくれるという話。 rehash ごときにコマンド打ち込みたくないんだよね。

(20:30)

本日のツッコミ(全1件) [ツッコミを入れる]

_ arton [>きょうび大丈夫 同意。なんでWindowsにはないのかなとか不思議に感じたけど、以前(10年前とか)はそんなにコマ..]


2009-08-06

_ やるべきことが

微妙に多い。

こういう状態は苦手なんだよなぁ… 送らないといけないメールがいくつかと〜みたいな。

(00:57)

_ NOMINMAX

http://niha.tumblr.com/post/156416431

なんか WIN32_LEAN_AND_MEAN って具体的にどのへんが 無くなるかとか知りたいよなぁとか。 他にも色々ありそうなんだけどどっかにリストあるかな。

あと LOG(ERROR) を消すために NOGDI つけてるのとかもこれがベストなのかはさっぱりわかっていない。

(02:22)

_ v8 が

http://yasuhito.info/v8/platform-win32_8cc-source.html

なんか色々やってる?

(02:25)


2009-08-10

_ exception 2かいめロケテ

1プレイだけ。 なんかさっくり死んだけど、 割と業務用としてよくなったんじゃないかなーと思った。 もっと無茶苦茶に変えてもいいと思うけど、 まぁむずかしそうではある。

帰りに話してたのは、 ボスの難易度調整難しそうだよなーというような。 うまい人ははりついて瞬殺できちゃうわけで、 それを防ぐ感じで難易度調整すると うまくない人は全然ダメージ与えられなくて殺される…的な。

まぁそれは斑鳩もそうっちゃそうなんだよな。 やでも斑鳩3ボスはゆっくりやった方がラクか。 よくできてるな。

発狂の逆で最初は強くて段々弱くなってくゲームとかにすればいいのかな。 なんて盛り上がりのない。

(00:05)

_ 第2回お勉強会

http://wiki.livedoor.jp/zinnia1975/d/%a4%aa%ca%d9%b6%af%b2%f1%2d%b5%ad%cf%bf2?wiki_id=68361

ぼんやりと app engine でサーバを作る。 一通りできたんだけど、 まぁこの手のプログラムはなんとも面白くない。 まぁ自分で便利なようにはなってきた気がするので良いか… しかし素人が JS で UI を作ると崩壊するなぁ

もちょいテストとか追加とかして明日くらいに 出して放置モードに入れると良いのだけど。

(02:12)

_ あとは

http://www.sharp.co.jp/mebius/products/pcnj70a/p1.html

これがすごいなーと思った。

でも何に使うと嬉しいのかイマイチ思いつかないのだけど。 sharp の人も作ったはいいけど 何に使うか考えてないくらいの勢いなんじゃないかなー という程度の感じじゃないかと思った。

(02:16)

_ バキガイア

あれ読み切りだったのか。 なんか始まったとたんピクルの方にうつったなーと思って 読み終わって満足してしまっていた…

つか板垣惠介&富沢ひとしって…って感じだけど、 あれうーんたしか元アシスタントだっけーとか 突然記憶が甦って、かつあっていた。

(03:11)


2009-08-18

_ 金縛り

にあったように思う。

なんか体がイマイチ動かん的な夢を見て、 まぁ内容はどうでもいいのだけど、 なにかの拍子に目覚めて、 したら体が動かんかった。 うお、これはこれは…と思いつつ、 まぁ二度寝しようかなーと思ったけど どうも体動かんのは面白いので、 無理に動かそうとしてる最中だったかそのへんに アルファがちょっと入った白の人の全身に見えるぼんやりとした映像がうつって、 む、こえーとか思って、 で、まぁ動けるようになったという感じ。

もちろん霊とかは信じてないわけで、 感覚としては夢見てる状態で起きてるのかなぁと思った。 体はさっぱり動かんのだけど意識だけ先に起きちゃった的な。 なんかぼんやりとした物がうつるのは 夢の映像がまだ上映中とかそのへんで説明できる気がする。

さて答えあわせ。

http://ja.wikipedia.org/wiki/%E9%87%91%E7%B8%9B%E3%82%8A

ふーむ最初の節に関しては僕の素人のカン医療がだいたいあってるな。 条件の不規則な生活や疲れもビンゴ。

前兆は気付かなかった。

目は開けてたと思ったんだけど、「金縛りの種類」の部分を見るに、 幻覚見てるあたり目を閉じてた可能性が強いみたいだ。 室内は超鮮明でしたよ。こえー。

うーんまた体験したいなぁ。 不規則な生活を心がけないといけない

(00:43)

_ プロフ

いわゆる痛い感じのプロフが見たいなぁということで、 ぼんやり検索キーワードを考えて 「プロフ 姫 闇」という感じで検索した。 恐ろしくうまい検索だった…

http://www.google.co.jp/search?q=%A5%D7%A5%ED%A5%D5+%C9%B1+%B0%C7&ie=euc-jp&oe=euc-jp&lr=lang_ja

(00:46)

_ ここが

特になんもなく1週間空いてたのって結構記録的なんじゃないかなー。

別になんていうこともないんだけど、 最近仕事がそれなりに楽しく、 趣味のプログラムがクソつまらないというのが影響していると思う。

クソつまらない趣味のプログラムというのも終わっているのだけど、 まぁ自分の実用のためなんだなぁこれが… 気合い入れて今日なり明日なりそのへんで片付けたいと思う。

あとはまぁ仕事の内容書けるありがたい立場なので なんか書くってのもアリかなぁ。 つっても特に書くこともないわけだけど。

(00:54)

_ JavaScript

まぁ Ruby とかでもそうなのだけど、 正直僕は型検査が欲しくてしょうがないようだ。 今はこうキー設定を JS で好き勝手やれる chrome extension を書いてるわけだけど、 例えばこう、キーの持ち方をキーコードから コードとかへのハッシュにしてたわけだね。 でもなんか、複数のコマンドを同じキーにアサインしたいこともあるよなぁと思って コードとかを配列で持つように一段かましたわけ。 したらそれ使ってる部分を全部書き直さないといけないわけだけど、 静的型のある言語ならコンパイルエラーが出る場所を全部なおせばいいわけ。 でも JS だとそうもいかんくて、適当に全部直したあと、 全てが動いてるか手動で動かして確認…とかしないといけない。

まぁ unit test 書けって話もあると思うんだけど、 ほぼ UI 的なコードなので mock 作りまくるのも面倒だし、 ロジックだけ分離…とかもあんまやりにくいんだよな。 ロジックなんかほとんど無いというか。

世のアジャイラーの人々はどうやってなんとかしてるんだろう。 真剣に GWT とか使った方がいいんじゃないかなぁとかそういうことを思った。

まぁそんなこんなで僕は UI が嫌いなんだ。 「画面とか、めんどくさいでしょ」

http://www.atmarkit.co.jp/news/analysis/200806/02/google.html

(01:05)

_ スラド

そういえば久々に /.jed されてみて気付いたんだけど、 スラド見てる人とかって減ってたりするんかなぁ。

前回

http://d.hatena.ne.jp/shinichiro_h/20061219#1166489566

はざっとリファラ調べで 26703 程度あったんだけど、 今回は 8391 。 まぁ前回の方が興味をひいたということもありえなかないと思うけど、 はてぶとかは今回の方が多いみたいだしなぁ。

はてなのリファラ表示がおかしいとかもありえるけど…

(03:15)

本日のツッコミ(全3件) [ツッコミを入れる]

_ n [>金縛り >室内は超鮮明でしたよ まさにこれですね: http://www13.atwiki.jp/ridatu/]

_ shinh [幽体離脱とかありえないだろ! と思っちゃうんですが、まぁ Wikipedia 見るにいずれにせよ解明されてる部分は少..]

_ konn [僕も体外離脱でムフフなことが出来ると云うので、金縛りに遭うのを楽しみにしていたんですが、イメージを働かせるのが面倒臭..]


2009-08-19

_ 奇跡的に

起きた。 寝坊フラグ一通りそろえたと思ったんだけど。 まぁ早すぎるが。

最近使うとなんとなくかっこいい英語として let me ... があるんだけど、 これ中高とかで習ったんだっけ本当に…

かっこいいから使ってるだけなのでニュアンスとかはあまりよくわかっていない。 僕のイメージでは

Please tell me.  (どうか教えてください)
Let me know.  (教えてね)
Tell me.  (教えろ)

的な感じだと思ってて、丁寧度がちょうどいいくらいなんじゃないかと思ってるんだけど。 だいたい英語って長くなれば長くなるほど丁寧だよね。 Could you kindly tell me, please とかが思いつく最長か。

あとは let me try とかか。 チャットとかでこうすればいいんじゃね? とか言われた時に「おけ今やってみるわ」的な感じで答えたいんだけど、 これは let me try 以外対処方をあんま知らんかも。

(06:06)

_

http://d.hatena.ne.jp/nishiohirokazu/20090817/1250472462

なんか前に母親が shinh でぐぐると息子の情報を ゲットできると覚えたようだった。

それでまぁ色々わけわからんもんが出てくるわけだけど、 結果として電話でいきなり 「パーティクルでプレゼンって何?」とか聞かれることになったのでした。

これがめんどうくさい。

  • 動画共有サイトみたいなのがあること
  • プレゼンとかなんとなく流行ってること
  • その手のを撮ってアップロードするのがよくあることになっていること
  • ログインを要求されているがその登録は無料であること

などを説明しないとなんともならない。

いくつかを説明した後、親孝行な僕はめんどうくさいのでまとめサイトを作った。 はてな経由だとニコニコのログインいらないから便利だねえ。

http://d.hatena.ne.jp/shinichiro_h/19700101

しかしまぁ、 「あのコメントは自分で書いてるんじゃないよね?」 「変態は褒め言葉なんだよね」 という質問を誘発するのであった。

(06:23)


2009-08-22

_ 休暇

微妙に忙しいというか暴飲暴食の日々を終えて 2週間休暇というか会社にいない系になることに。 2週間いないってのは実は今までなかった気がする。

さっそく激しくゲリでいけてない。

確実にこなさないといけない TODO としては…

  • るびまをさっさと
  • gunzip を実装する
  • webkit のコミッタのセットアップをしてもらう
  • 評価
  • ゴルフ場の準備

やらんくていいけどやりたいこととしては

  • tcc いじり
  • chrome key を適当に
  • web socket であそんでみる
  • blokus

あと全然関係ないがネットブックが欲しい。 ゴルフ場がそろそろ色々キツいので、 そっちに移行できるといいかなぁとか。

(02:41)

_ html5

http://osaka.cssnite.jp/cssnite-in-osaka/event-info/vol18/1137/

これちょっと行ってみたいけど 翌日成田行かにゃならんからさすがにキツいかなぁ。

つか選挙の期限前投票もあるのであったざんねん

(19:34)


2009-08-23

_ extension

には先生が使ってくれたおかげで問題点が色々わかったりわかんなかったり。

  • タブ移動が欲しいわけだけどこれは background 側で eval する仕組みが必要。これは作った。
  • chrome:// やら chrome-extension:// で extension が生きないのはひどい。
  • chrome-extension で view-source すると死ぬのはひどい。
  • UI がギャグのようにヒドい
  • 設定がいじれないから switch proxy が作れない
  • hah は大変そうだなー
  • caret browsing って webkit 側でコードは見た気がするよねえ

とりあえず localStorage に移行しないとかなぁ。

あと TODO として x509 のエラーがあるんだけど、 これ 64bit debian sid でしか起きてないな…

(04:19)

_ あとは

switch cookie みたいなのができるといいんだよなぁ。 gmail.com でログインしてるべき時と chromium.org であるべき時があってうざい…

(04:43)

_ C のマクロ

http://d.hatena.ne.jp/kazuhooku/20090823/1251005064

kazuhoさんが面倒なので考えてない点について少し。

C のマクロは僕の大雑把な理解では、

  1. 中からではなく外から処理していく。つまり引数の展開は後で起きる。
  2. マクロを展開した後で、 ## があったら適当に処理する
  3. それでもなおまだ他のマクロがあったら展開する。
  4. ただし既に展開したマクロは展開しない(これは大変むずかしいと思う)。
  5. # があったら文字列化する。

とかいう感じじゃないかなぁと思う。 # の順序が遅いので、 たぶん assert.h の assert は __STRING とかで先に assert の中身を文字列化してやってるんだと思う。 見ると実際そうだった。

だから処理としては、

  1. assert(X) が if (!X) assert_fail(__STRING(X)) とかそういう感じで展開される
  2. 残ってるマクロ PICOEV_IS_INITALIZED_AND_FD_IS_IN_RANGE は望み通り適切に評価式になる
  3. __STRING(PICOEV_IS_INITALIZED_AND_FD_IS_IN_RANGE) は外から評価してくので望み通り文字列化

つーかんじでうまくいくんだとおもう

(15:54)

_ OCaml Golf

http://d.hatena.ne.jp/KeisukeNakano/20090821/1250928237

みんなぜひ参加しようね!

(20:46)

_ glibc の man の人が

http://blog.man7.org/2009/07/whats-book-about.html

なにやらでかい本を書いてるらしい。 面白そうです。

(20:48)

本日のツッコミ(全1件) [ツッコミを入れる]

_ kosaki [Michael Kerriskはlibcだけじゃなくman ページ全体ですね。 っ http://www.kerne..]


2009-08-24

_ gunzip

http://codegolf.com/guns-and-zips

とりあえず通したぞ…! 実にだるかった

(03:57)


2009-08-25

_ ありがたや

hah きたこれ

http://www.f13g.com/blog/2009-08-24/#yc6b5e71

post 使えーちゅう話ですね。 やるますすいません。

(00:12)

_ hah

うごいた! すごい! でもなんか挙動が気にいらんのでいじる

あと upload できない問題は quick fix したバージョンをあげておいた。

http://shinh.skr.jp/chrome

さっさと local storage やるべ。

(01:16)

_ guns and zips

http://codegolf.com/guns-and-zips

とりあえず1位まで。 あと 10B くらいは手間をかければたぶん縮む。 ただそうでなくても 10B くらいはどこにでものびしろがありそうだから、 そういう細かい調整は今はまだしたくない感じ。 なによりもフラたんなら 400 切るくらいはやってくれるだろうなこれ…

(23:28)


2009-08-26

_ TODO

  • webkit にコミットできるかチェック
  • 評価
  • ゴルフ場の準備
  • web socket であそんでみる
  • GCC とたわむれる
  • syard とたわむれる
  • blokus
  • テトリス
  • TCC は -run をあと少しリファクタリングして push
  • TCC x86-64 asm が出たら見てみる
  • w3m であそぶ
  • chrome の x509
  • chrome key でコピーができると良い
  • chrome key は chrome 側の変更が必要 http://shinh.skr.jp/m/?date=20090823#p01
  • kevil がなんかおかしい件

捨てられそうな TODO

  • bfx は忘れてた
  • ada は忘れてた
  • grub は諦めようかなぁ。コードだけ整理しときたいが

(21:29)

_ hah

適当にいじってみた。

なんかうまく動いてるようでうまくいってないので、 もうちょっとなんかする。 たぶん focus() 呼ぶんじゃなくて click イベント飛ばす感じにした方がいいのかね。 まぁそのたもろもろよくわからん。

(21:30)

_ ssh がよく切れる問題

http://hnw.jp/documents/unixmemo/ssh-keepalive.html

これっぽい。 .ssh/config に書く方法で回避。 これは手軽で良い。

(21:31)

_ デバッグ

なんかこう、もう CPU が速いとか言われてもそんなもん別に欲しくもないんだけど、 デバッグがしやすい CPU とかあれば、 それは数万とかなら買っちゃいそうな気がするわけです。 どういうのがあれば嬉しいかというと、 まぁ hardware data break とか別にそんなに欲しいかっていうとそうでもなくて。

たぶんログ残すような機能があるといいと思うんだよなぁ。 なんか最近のハイエンドの POWER とかって transaction log 取っておいて データぶっこわれたら replay とかできるとか そんな話を聞いたことがある気がするんだけど、 一定の逆再生ができる程度に transaction log が残っていれば、 組込みとかでない環境での reversible debugging とかに わりと現実味が湧いてくるんじゃないかなぁと思う。

まぁそこまでやらんでも、 レジスタに関しては書き込みごとに 前回の値を5つ程度残すであるとか、 メモリを同じサイズで2本差しておいたら メモリ書き込み時に古い値が自動的にもう1本の方に行くとか、 そういう壊滅的なことが起きる前の状況の ヒントみたいなのが残せるといいんじゃないかなぁとか漠然と。

(21:54)

本日のツッコミ(全3件) [ツッコミを入れる]

_ niha [hit a hint で選択されたヒントにたいして何するかですが、選択されたものが何かで変えたほうがいいと思います。..]

_ shinh [href があったら location.href = href くらいはやってみてたんですが明らかにうまく動いてない..]

_ niha [tabs.update だかなんだかしないとページ変わっても履歴に残らないはずですね・・・まあそのうち・・・]


2009-08-27

_ うわーたのしそう

http://www.ipa.go.jp/jinzai/mitou/2009/2009_1/youth/gaiyou/sk-3.html

via http://d.hatena.ne.jp/hogelog/20090825/p1

hogelogさん採用おめでとございます。

あと概要の最初の文が妙にかっこいいな。 よくわからんけど未踏の提案って「私は」で始まるもんなんだろうか。

私はスクリプト言語Luaのメモリ管理機構を改良し、
高速性と省メモリ性を向上させアプリケーション
組み込み言語の利用用途を広げることを提案するっ!!

(01:08)

_ ls ですか

どこが発生源かは知らないのですが。

%backup%~
52.html
6.189-lecture15-cilk.pdf
Current Version
Desktop
Downloaded Albums
Downloads
Mail
News
Pictures
Videos
apfc.js
apt.txt
apt2.txt
arch
bg.gif
bin
cell
cfg
chrome
chrome_printing_test.pdf
cluster08.ppt
contestapplet.conf
contestapplet.conf.bak
cvsroot
dai-21reidai-kyouyou.pdf
dat
diff
driver.ppt
du
extensions_toolstrip.css
foo.doc
hardcopy.0
hellowave.xml
icfp09.pdf
index.html
index.html~
kansai_pm_11.pptx
kiyaku.doc
kousokuka.ppt
lib
log
manifest.json
memo
mnt
nacl_paper.pdf
neta
poker
pokerimgs
pokerimgs.tgz
pouzu.gif
public_html
shot-4k
shot-4k-src.zip
src
t
tcc64
test
tinycc
tinycc.git
tmp
trouble_cases.pdf
wrk

適当に整理しろってかんじだなぁ。 あと core が無いのは人としてはずかしいことではないか

(03:25)


2009-08-29

_ ゴルフ場

結局まぁ、現状のタイムアウトはわかりにくすぎると思う。 というわけで OCaml meeting 終わったら なんとかしてみようと思う。 腐ったシステムのせいで意外と変更が大きいので、 今回やるのは見送ることにした…

でまぁ、結論としては、 せっかく合計時間が表示されているのだから、 その時間を time limit として使うのが妥当だろうと考える。 まぁどう考えてもそうなっているべき。

ただ今から昔の問題の意味変えるのも微妙だし、 いずれにせよちょっとややこしい変更が必要なので、 deny exec みたいな感じで別オプションをつけようかなぁと思う。

ややこしいのは、どうしようもなく起動に時間がかかる言語群は 起動時間のためにタイムリミットに一定のボーナスをあげているのだけど、 これが実行サーバの方で超絶アドホックにハードコーディングされてるのが 大変問題で、問題ぽい。

(07:01)


2009-08-30

_ 仙台

http://d.hatena.ne.jp/w_o/20090830#p1

僕もこないだ行った時 漫画喫茶でウシジマ君ひたすら読んだな… 仙台にはウシジマ君を読ませる魔力があるんだなぁ。

(17:35)

_ FLTV

ranhaさんの序盤の発表のしかたがたいへん面白かった。 話すことのテーマだけ決めておいて、 聞いてる人にも考えさせる的な。

たぶんテーマの作りかたが色々うまかったんだと思う。

(18:47)

_ const_cast をアセンブリで

http://twitter.com/wraith13/status/3587968262

すごいナイーブにコンパイラ実装したら mov 2回になっても不思議はないような… TCC でも大丈夫なレベルだけど。

(19:28)


2009-08-31

_ 自然言語プログラミング

http://www.kmonos.net/pub/Presen/fltv/FLTV.pdf

これは今まで見た kinaba さんの偉業の中でも 最高峰だなぁこれは。 そしてこの偉業に自分の名前が出ててうれしかった。

kinaba さんは詐欺師にむいていると思う。 説明がうますぎて、賛成できなくてもすばらしいと思ってしまう。

賛成できない、というか少しひっかかるのは名前推論の話。 最初見た時はすごいなー面白いなーと思った記憶がある。 でもいつだったかその話をぼんやり思い出してる時に、 微妙にひっかかることがあって、そのひっかかりを今また思い出した。 みんなそうかもだけど、僕こういうのよくあるんだよなぁ。 他の人の発言やら意見を最初ぼんやり流しておいて、 後から replay した時になにかそれに対する考えがまとまってくるみたいな。

で何が賛成できないかというと、 コピペビリティを落としたり、 直交する文を挿入した時に意味を変えちゃうことがあるんだよねコレ。

String serializedString;
Obj objs[10];
for (int i = 0; i < 10; i++) {
  var _ = objs[i].serialize();
  serializedString += $String;
}

とか書いてたことにして、 なんかこうこの時点での objs[i] の値の中身が見たいとして、 適当に他からコピペしてきたデバッグルーチンを コピペではったりするとして、

String serializedString;
Obj objs[10];
for (int i = 0; i < 10; i++) {
  Obj o = objs[i];
  var _ = o.serialize();
  // ここを
  String s = "";
  for (int j = 0; j < o.children.size; j++) {
    if (j != 0) s += ", ";
    s += o[j].debugString();
  }
  printString(s);
  // コピってきたよ
  serializedString += $String;
}

とか、まあ恣意的な例だしこれ自体に関しては デバッグ出力用の関数を Obj のメンバにしろよボケという話なのだけど、 まぁこういう状況は他にもまぁ、あるんじゃないかなぁと思う。

自然言語でも実際これってよく起きる問題だと思うんだよなぁ。 英語論文とかひいこら言いながら書いてた時とか、 わかりやすくするために文の順序とか入れ替えてたりすると、 いつのまにか以前は問題なかった the が 意味がわからんくなる程度に遠くになっちゃったりして。

エラーコレクティングが容易な口語では、 この手の省略ってヤツは鬼強い物体なので、 口語でプログラムできるようになったら こういう名前推論はありかなぁとか思う。 あと、要はミスに気付かせてくれればいいわけで、 IDE が賢くなって、名前が変わった時に $String が色が変わったりして知らせてくれると十分なのかもね。 あるいは名前推論は basic block をまたげないとか そういう制約を入れてしまうか…

ところで上の例はもう一つ本当にウザい話と関係していて、 コピってきた元の例が本当に j でループしてくれていればいいんだけど、 i でループしてたらこれ全部 j に書き換える必要があったわけで、 for の中の 3 つの i=>j はまぁ忘れなかったとしても、 中の if の i=>j は、これは、僕がやったら 50% くらいの確率で ミスる部分なんじゃないかなぁとか思う。 さてこの内側のループのコピペミスに関しては、 これはむしろ名前推論がなされてれば完全に防げるミスだったりするわけですよね… 実際 Perl でコード書いてると $_ についてよく起きることのように思う。

とかなんとか。

every と some は、 sawzall の some はそんな動きしてたっけ、 いやなんかもっと珍妙な動きをしてた気もするが…

http://labs.google.com/papers/sawzall-sciprog.pdf

Quantifier variables are declared like regular variables, but the base
type (usually int) is prefixed by a keyword specifying the form of
quantifier. For example, given an array a, the statement
  when (i: some int; B(a[i]))
    F(i);
executes F(i) if and only if, for some value of i, the boolean
condition B(a[i]) is true. When F(i) is invoked, i will be bound to
the value that satisfies the condition.

全然別物だったよ。 要はループに並列可能性を suggest するためのものだった。

メッセージを共通化する話は、

.maxPriority = .max{|a,b|a.priority<=> b.priority}

っていう文法は普通にいいなぁ。

objs.map{|o|o.children.map{|c|c.doSomething}}

objs.map(&.children.map(&:doSomething))

とか書けるといいなぁ。 途中の話に戻るけど、要はループ変数というのが 最も名前を省略したい物体なのだよね。 あれだけ type 数を増加させる C++ の algorithm なのだけど、 iterator の名前をつけなくて良いのは抗いがたい魅力なのですよ。

どうでも良いのですが、 僕は iterator の変数は i とかつけて j とか k とかにするのは k とかが int じゃないのが混乱を招きそうで嫌いだし、 it は英語の it ぽくてキモいという話もあって iter を採用しているのですけど、 iter の次の、2つ目以降の iterator 型ループ変数名にいつも困っていたのでした。 たいていは外っかわをもう少し説明的な名前にしてたのだけど、 どうしても名前つけにくいものも多くて。

ところがこの間 jter とか kter とかつける文化が 多くは無いもののあるようだと教えてもらって、 これがすごく気にいっているのでした。

変数名として意味の無いものをつけるべきでない、 という主張があって、 tmp とかはいけないとされてると思う。 でも、どうでもいいループの変数、特にループの中で すぐにデリファレンスしてそれ以降使わない iterator 、つまり、

for (vector<Obj*>::const_iterator iter = objs.begin(); iter != objs.end(); ++iter) {
  Obj* obj = *iter;
  // 二度と iter は必要ない…
}

とかそういうものは 本当にどうでもいいんだから、 どうでもいい名前をつけるべきだと思っていて、 これを obj_iter とかつけるのはむしろこう、 意味深で可読性を落としているように、 個人的には思うんだよな。

一方僕は humans.find(you) とかした結果帰ってきた iterator に iter と名付けるのはよくないと思う。 それは単なる名もなきどうでもいい 60億要素の humans それぞれを指す iter じゃなくて、 60億の中のたったひとりのために用意されたかけがえのない iterator なので、 もう少し意味がある名前をつけるべきだと思う。 僕は found とかよくつけるけど。

find といえば、その見つかった iterator を 名付けないのもあまり好きでない。

objMap.erase(objMap.find(o), objMap.end());

とかいうヤツ。 これは冗長でも分けたいケースが多いように思う。

map<Obj*>::iterator found = objMap.find(o);
objMap.erase(found, objMap.end());

なぜかというと、 この found は何かしら貴重なものに決まってるから、 後から log 出力に加えたい可能性、 printf デバッグやデバッガで名前を指定したい可能性が かなり強いと思うから。

これは意識するようになったのは割と最近のことかもしれない。

(05:56)

_ 追加

何個か書き忘れてた。

  • swap する時は tmp って名前をつけてもいいと思うんだよね。
  • Ruby の tap とか 1.9 の引数が帰ってくる mame#p は printf デバッグの観点では .find の戻り値をいちいちローカル変数に入れなくても十分にしてくれる能力を持ってると思う。実際、 Ruby だったら僕はこういう値に名前をつけなくても全然違和感ないし、むしろ自分でもつけない気がする。そのへんは書いてるプログラムのドメインやら言語やらによる部分も多いな。

(06:05)

_ 民主

自称サヨとしてはむしろ民主より左よりでいいくらいなので、 自民よりは民主でまぁいいかなぁという感じだった。 公明も消えるし。

うちの選挙区の自民の人は大変ニートにやさしくなさそうなことを ブログに書いていて、気にいらない感じだったのでそれもよかった。

個人的には民主は結局何言ってるのか わからんとかいう話があるのだけど、 まぁ色々な人から広く支持集めようとするとそんなもんかねえ的な。 僕だけの支持を得ればいいのであれば もっとわかりやすい左でいいわけだけど

(06:21)

_ JVM読書会

http://twitter.com/kmizu/status/3646075084

あるといいなぁ。

というかでも、なんだろう一つのコードを ひたすら読むのって結構疲れるし あまり意味ない時間も多い気がするんだよな。

でなんか思ったんだけど、 最近読んだ/いじったコードを紹介する輪読会があれば 僕は満足なんじゃないかなぁとか思った。

(06:27)

本日のツッコミ(全1件) [ツッコミを入れる]

_ kohls coupons [&#12381;&#12398;&#12424;&#12358;&#12394;&#24847;&#21619;&#..]


2009年
8月
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 31
1.niha(2014-05-24 03:05) 2.shinh(2014-05-24 03:05) 3.niha(2014-05-24 03:05)
search / home / index

全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。

shinichiro.hamaji _at_ gmail.com / shinichiro.h