トップ «前10日分 最新 次10日分» 追記

はじめてのにき

ここの位置付け

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|12|
2025|01|02|03|04|05|06|07|

ToDo:


2012-04-22

_ nacl-mounts

使い方かわったようだ。

これだろうなー

http://code.google.com/p/chromium/issues/detail?id=123876

http://code.google.com/p/naclports/source/detail?r=574

よくわからんけど nmf を inject 用の IRT 入れてもらうように作りなおせばいいのかな…

うーんよくわからんが newlib じゃ動かないとかな気がしないでもないなこれ…

よくわからんので古いやつを使うことに

(06:13)

_ メモ

xor の対象があからさまにおかしいように見える

    e20:       8b 05 08 00 04 10       mov    0x10040008,%eax
    e26:       01 d0                   add    %edx,%eax
    e28:       ba 00 00 00 00          mov    $0x0,%edx
    e2d:       11 ca                   adc    %ecx,%edx
    e2f:       8b 08                   mov    (%eax),%ecx
    e31:       83 c0 04                add    $0x4,%eax
    e34:       89 8d 00 ff ff ff       mov    %ecx,-0x100(%ebp)
    e3a:       90                      nop
    e3b:       90                      nop
    e3c:       90                      nop
    e3d:       90                      nop
    e3e:       90                      nop
    e3f:       90                      nop
    e40:       89 95 04 ff ff ff       mov    %edx,-0xfc(%ebp)
    e46:       8b 08                   mov    (%eax),%ecx
    e48:       b8 ff ff ff ff          mov    $0xffffffff,%eax
    e4d:       ba ff ff ff ff          mov    $0xffffffff,%edx
    e52:       31 c1                   xor    %eax,%ecx
    e54:       31 d1                   xor    %edx,%ecx
    e56:       8b 05 d8 c6 05 10       mov    0x1005c6d8,%eax
    e5c:       90                      nop
    e5d:       90                      nop

(06:13)

_ うごいた

long long おかしいメモ

3LL<<-1 とかの、負の値の long long shift がおかしい、というか GCC と一致してない。

long long __ashldi3(long long a, int b)
{
    b &= 63;
#ifdef __TINYC__

とかで対処できる。

long long の ~ というか xor でおかしなことが起きていた。 どうも xor だけじゃなくてレジスタが足りなくなって、 long long もう二個目のレジスタを確保する時に一個目のレジスタがメモリに飛ぶ。 定数が入ってるヤツが vstack に積まれてると起きるのかな…謎。

               /* allocate second register */
               r2 = get_reg(rc2);
               printf("%s r=%d r2=%d\n", r==r2?"oops":"OK",vtop[-1].r,r2);

として oops は出ちゃいかん気がする。

しゃーないので、 __xordi3 とかを

long long __xordi3(long long u, long long v)
{
    DWunion uu, vv, ww;

    uu.ll = u;
    vv.ll = v;
    ww.s.high = uu.s.high ^ vv.s.high;
    ww.s.low = uu.s.low ^ vv.s.low;

    return ww.ll;
}

という感じで定義してやってそれを呼ぶことにした。 つーか TCC の long long は x64 以外で動いてるのが不思議すぎるし、 git blame しても誰も全くいじってないあたりから、たぶん fabrice 以外誰も理解してない気がする。 かっこつけず全部関数で定義すればいいのに…

あとは僕サイドの問題だけど、 libtcc1.a を読んだ時のシンボル解決がおかしい、というかシンボルが全く解決されてない。 そしてよくわからない。 しゃーないので tcc から libtcc1.a をリンクしてやって、 __divdi3 とかそのへんを全部 i686-nacl-tccsyms.tab につっこんでやるという荒技で解決。

(08:06)


2012-04-20

_ GSL

おい Z が RO16 で絶滅かよ…

雰囲気的に P がこの世の春という感じだけど、まだ PT の人数は同じなんだよな…

僕の感覚では Pimba っていうよりかは T の強みに対して P が適切な対処をするようになって、 T が似たようなことばっかやってるから今の状況になったという気がしている。がまぁ P 使いの欲目かもしれぬ

(01:43)


2012-04-09

_ boost context

http://partake.in/events/313b563f-acf7-47b9-908c-ee0461b77fc0

に行った。

@ytomino さんが boost_fcontext_align で -16 しているとさわいでいたので読んでいた。ごにょごにょと読んでいた結果として、これを読んでるコードは ss_base のアラインにしか使われておらず、これは確保した直後のメモリ領域をアラインする用途にしか使われてないから 16B ほど無駄な領域がある程度で無害なんじゃ、と思った。

なんかうさんくさいコードがあるとそのコードを読むわけで、うさんくさいコードを残しておくと他の人のコードリーディングをうながせるので素晴らしい、という持論が証明された感じである。 github とかにコード上げる人はうさんくさいポイントを残しておくといいよ! とアドバイスしたい。

x86-64 が読めない、ということだったけど、 @ytomino さんほどの方からすればそんなわけがなくて、単に引数の順が素頓狂だ、というだけ覚えておけば良いと思っている。どうせアセンブリを読んでる時は付近に printf があるわけで、その printf に渡ってる変数を信じると良いと思う。つまり、 printf の直前で文字列引数を入れているレジスタが %rdi = 第一引数であり、フォーマットにあったものをつっこんでるところが第二引数 = %rsi である。

そのへんのコードを何度か書いただけあって、僕個人としては、 RDI RSI RDX RCX R8 R9 という順はなんとなく覚えてる (@ytomino さんに適当に言った順があっていることに僕自身驚いた) ものの、まぁこんなもん当然のことながら長期的に覚えれるわけなくて、まぁ付近の printf を探すのが良いと思っています。 printf が無ければ単に「その付近の GCC が生成したコードは正しく引数渡しをしている」と仮定すれば良い。

そもそも x86-64 が真に難解なのはもちょいややこしいケースの引数渡し ABI と、バイナリに落としていてアセンブリを見にくいとか、アセンブリが信じれない時の rex prefix に入ってるレジスタの上位ビットであって、そうでなければ僕的にはわけわからん 0x4(%esp) とかのオフセットを把握しないといかん x86 より読みやすい。 GCC が x86 で push/pop で引数を渡すようになるオプションを用意してくれればなぁ…とか思うくらいに。あーあと stack のアラインはちゃんとやってくださいね、って程度。そいう意味で boost_fcontext_align はぱっと見どう見てもアライン気をつけてなくて気になったけど今回は関係ない…

変数無しで 1 から n までの変数を合計するという問題を考えたり。個人的には libc に依存した時点でなんか複数解候補が思いついたので、 libc を封印して解けるだろーと考えてたものの、なかなか思いつかなかった。というのは色々方法はあるものの、 libc 許すと getenv/setnev あたりで自明以外の何者でもない解があるわけだよね。未だに考えている。

見せてもらった開発が終わった iOS アプリが普通に面白かった。国名言われて場所を当てるみたいなの。国名ってごく最近全部覚えたんだけど、ずいぶんと忘れてしまった(僕の記憶というのは実装が悪いらしく、一時期 196/196 だった http://www.sporcle.com/games/g/world が今ではたぶん 100/196 程度だろうとおもう) というのもあるけど、それ以前にモンゴルとか言われて場所正確に示すのが案外むずくて面白かった。

記憶と言えば putty の coroutine の話が出て、あれってかなり壊れた時系列を持っていて、

  • 2005-06-28: 自分自身でポータブルなコルーチンライブラリが書けた! と喜ぶ http://d.hatena.ne.jp/shinichiro_h/20050628#1119942495 (しかし今見ると __LINE__ じゃなくて boost.pp 使ってるんだな…)
  • 2006-11-23: kikx さんに教えてもらって、 C のマクロでコルーチン的なものが作れると教えてもらって喜ぶ http://shinh.skr.jp/m/?date=20061123#c04
  • 2010-06-03: このスライド (http://d.hatena.ne.jp/shinichiro_h/20100603#1275573793a) を書いてる最中に、あれ紹介されたもののきちんと読んでないなーと思って、ちゃんと読んでるうちに、なんかこれに似たコード書いたことあるなーと 2005 年に書いたコードを思い出す

という感じだった。こういう時に忘れっぽいのは本当に幸せなことだと思う。

context 的に僕が言いたいのはとにかく、いいかげんデバッグについて真面目に考えやがれクソ boost って話で、 C/C++ ってヤツはいいかげんデバッガとやりとりする API を真剣に標準で用意してほしい。つまり context を作るコードなんて誰でも(少なくともちょっと勉強すれば)書けるわけだけど、しかしサーバアプリとかで context がからみあってそれがデバッグできるんですか、っていう。

プログラマはデバッグの時間をマジメに考えれバカってのは本当にマトモでかつ残念なくらい意識されてないアドバイスで、少なくとも君が8時間労働なら8時間コードを書くのは君の健康にとって間違いなく悪い。「オマエが限界のパフォーマンスでコードを書いた場合、その2倍の時間がデバッグに必要である」っていう (たしか ken thompson の) 認識は悲しいくらい正しくて、多くともオマエがコードを書ける時間ってのは3時間程度しか確保できないんだという覚悟が必要だと思う。それ以上働く必要があるなら雇用体制に問題があるのであって、断じて働くべきでない。

という余談はともかく、少なくともコード書いてる以上の時間をデバッグに費してるんだから、コード以上にデバッグに言語標準におかれましてはマジメに考えて欲しい、ってのは最近壊れたオモチャのように繰り返し言っている。最近本当にそれしか主張してない気すらする。 POSIX てヤツはこのへんのサポートが windows より遅れまくってるっていう認識で、しかし最近は pthread_setname とかいうのがいつのまにかできてて、 gdb はこの値ちゃんと表示してて、まぁ少しずつマシになってて感心ではある。 pthread_create が stacktrace を保持するのも近いと思う。まぁそのへん無視して context とか言ってもキチガイ(褒め言葉ではあるが)以外誰も使わない気しかしないんだよなぁ。

予想以上に疲れが溜まってたらしく、飲み会でぐっすり寝てた。いつものことながら大江戸線は本当にありえんくらい遠くてムカつく上に、飯田橋からだと乗り換えまで必要で絶望的。しかし行く時は乗り過したのに帰る時はきちんと乗り換えできたりして、酔っ払いの挙動というのは謎ですね…

(00:46)

_ おもいだしたようにマラソンメモ

https://www.e-run.jp/v-marathon/index.html

に3月半ば頃に参加した。リアルマラソンである。

僕のマラソン歴というのは

  • 中学校まで: サッカーとかラグビーとかやってた関係で、結構走ってるはず。遅かったけど。
  • 7年くらい前?: バイト先の人に誘われて山梨を走る。高低差デカくてしんどかった。たぶん 70mins/10km くらい。
  • 今回: 60mins/10km をわずかに下まわる。途中まで android で速度確認してて1時間で走り切るのは無理だなーと思ってたんだけど何故か…

という感じで、まぁ要するに全然走ってない。まぁいきなり 10km 走った割には案外速かったな…という印象。中学校まででそれなりに使ったせいか、足は割と強いようである…

なんか普段着で走ってて、他にそんな人がいなかったのですごい不自然だった気がする。普段着で走ってたから 2,3km くらい走ったあたりで帰りたくなってそのまま帰ろうか…っていう衝動が強かった。

(01:08)

_ ウテナ

を光栄にもウテナの登場人物をプロジェクト名にした残念な人に借りて見てた。

これはすごい面白いですね…

(02:47)

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

_ yt [昨日はありがとうございました。 随分買い被りで、私のアセンブラの知識はcmovが登場したあたりから既に時代について..]

_ shinh [ABI はなんか VC で違うってのと、 SysV ABI は何故か RAX に SSE レジスタ数入れるってのもあ..]

_ Rui [RAXに引数の浮動小数点数の個数を渡すのはva_argsを呼ぶときのレジスタを保存するオーバーヘッドを減らすためっぽ..]

_ shinh [あーそうなんですね。よくわからずいじってたのがよくわかりますね。 TCC は必ず RAX 入れてるぽいですし…ところ..]

_ Rui [XMMて16個あるんじゃなかったっけ?と思ったんですが引数渡しにつかうのはXMM0~7だけでしたね・・。RAXはやっ..]


2012-03-30

_ ladder corners problem

http://golf.shinh.org/p.rb?Ladder+corner+problem#dc

dc で対抗してたけど完璧に負けたー。

ぱっと見た感じまぁだいたい思ってた通りループの条件が雑すぎたかなぁ。

しかしそうか kK で整数化できるわけね…これは今まで使ってたテクニックだっけな…

(00:55)


2012-03-29

_ クライミングメモ

  • 黄10b: なんかいきなりいける気がしない感じで落ちた。あれこれやってると少し登れたけどそっからよくわからなくてやめた
  • ピンク10b: ずっと通しでいきたかったやつ。いけた。ただ核心のとこであれーここどうすんだっけ忘れたなーと思ってたら下からアドバイスもらって行けた感じだった。
  • 黄10b: 見本を見てからリベンジ。そこらじゅう落ちまくりつつ途中の部品部品を練習していった。2/3くらい行ったとこでここどうすんだーてとこで腕の力尽きてたので終わり。
  • ピンク10a: 割と余裕で登れた記憶があるけど、疲れてるからキツイかなーと思ったけど余裕だった。

(23:22)


2012-03-26

_ 連鎖尾入門

僕がよく作る形にちゃんと連鎖尾を入れたい。雪崩と称して適当に4つずつ置いていって同時消しになったり消えないのはそろそろ卒業しないといけない。いきなりむつかしいのはなかなかできないので、形よくなくてもなるだけわかりやすいやつ。

黄色上L

http://bit.ly/GRG9dF

http://bit.ly/GPj9aE

http://bit.ly/GPzAJ0

本当は青の下に潜り込ませたい。

http://blog.livedoor.jp/tom109/archives/51101707.html

でも今のレベルで複数潜り込ませると混乱するので、現実的に把握できそうかつ第二折りや潰しに使えそうなのはこういうのかなぁ。

http://bit.ly/H2fKZ3

赤の潜り込みさえできれば、残りの赤は割とどこでもいいみたいだ。

http://bit.ly/GZGj4M

http://bit.ly/GZGrB6

http://bit.ly/GPw7Gx

黄色Z

この形は左端しかこういう使い方できないんだな…

http://bit.ly/H2DpuY

雪崩の場合は右端限定かな。君案外使いにくい子だったんだね…

http://bit.ly/H2DQ8A

潜り込みも手に負えそうなのはこれくらいか…

http://bit.ly/H1y7L8

右端の青を乗せない方が雪崩自体は組めるけどこれはあまりやりたくないな…

http://bit.ly/H1yuFe

黄色四角

黄色が四角になるパターンはこれくらいしか組みやすそうなのを思いつかない。

http://bit.ly/GPHfad

黄色凸と黄色下L

これはもうわかりやすいから雪崩でいいよ、って気になるけど、高いところは逆さまに置いた方がいい、ってのを忘れがち

http://bit.ly/GPHXEr

http://bit.ly/GPIbeK

http://bit.ly/GPIvKj


2012-03-23

_ ゴルフ場に言語いろいろ足した

適当にリクエストされてたものとかを足した。 それぞれについて適当になんか書いてみよう

  • CLC-INTERCAL: 元祖ジョーク言語。 PLEASE PLEASE 言わないと動いてくれない言語。いろいろ方言があるみたいだけど、 C-INTERCAL と CLC-INTERCAL がだいたい有名で、 CLC-INTERCAL の方が後のものぽかったのでこっちを。必要なら C-INTERCAL の方も入れます。ジョークとしてはまぁまぁ古いけど面白いんだけど、いかんせん言語的な面白さはあんま無いんだよな。
  • Icon: Perl が参考にした言語のひとつ…だった気がしたけどどこにもそう書いてないな。それで気付いたけど、オライリーにもらった言語系譜 (http://oreilly.com/news/graphics/prog_lang_poster.pdf) を引越してから部屋に貼ってないな… Python が参考にしたのか…まぁ詳しくは kinaba さんを参考のこと http://www.kmonos.net/alang/etc/icon.php 僕の印象はここに書いてあった every だけ
  • SNOBOL: Icon と同じ作者…だけど hello は似ても似つかない。よくしらない。
  • REXX: YTさんが触ってた言語だっけ…と思ってたけどそれは REBOL だった。まったくしらん。
  • PARI/GP: さっきはじめて聞いた
  • gnuplot: なんかループ書けるんですよね…
  • Malbolge: あきらかに最狂言語。 INTERCAL と違っていろいろ考えることができてとても面白い言語だと思う。なんか難易度のバランス調整が絶妙な気がするんだよな。基本絶望的な要求をしつつ、 NOP があるとか jmp がループ不変とか、微妙な救いが用意されてるというか…この複雑さをインタプリタ164行が作ってるってのも味わい深い…
  • Euphoria: なんだろうこれ
  • K: APL 系のやつ。欲しいということだったので。
  • Piet: 画像言語。まあ面白いと思う。ゴルフ的には奥が深すぎてしんどい系だと思うな…

TODO としては、

  • TeX: stdin/stdout の処理が適切にできる方法がよくわからない。 \message とかだとゴミがくっつくし。だれか教えてください…
  • Dart: Google 言語。
  • Sawzall: ログ処理 Google 言語。分散構造化 awk
  • Falcon: 名前しか聞いたことがない
  • MUMPS: 知らん
  • Occam: 名前聞いたことあったっけ…

ちょうどこれだけ足すと 99 言語になるな…

(02:43)

_ MOCO'sキッチン

http://wintomorrow.at.webry.info/201202/article_25.html

おもろいな。

なんかイギリスで似たような番組似たなと思った。人気番組という話だったから、フォーマットをマネしたのかも。どんなとこが似てたかっていうと、なんか料理番組ってよりパフォーマンス的なところ。具体的には

  • なんかかっこいい俳優が料理する(イギリスのは女の人だったけど。あと料理用の服じゃなくてスーツだった)
  • 分量の説明とか全くしない
  • 謎の材料がなんか適当にほうりこまれる

とか。

イギリス人はこの番組を見て、料理なんて当然せずにさてととマズい外食を喰いに行くのが日課と、先生が言っていた

(03:37)


2012-03-21

_ ゴルフ場メンテナンスマニュアル

ags/fe/masquerade.sh を FE で実行して、 BE 側の gateway を適当にセットするとネットワークがつながる。

(02:07)

_ Piet

をゴルフ場に足して、これの Quine は結構たいへんだなーと思ったら mame さんが既にやってた…

http://d.hatena.ne.jp/ku-ma-me/20091006/p1

なるほどデータはこいう感じに置けるわけか…

(03:15)


2012-03-18

_ あたりまえな気もするけどいいこと言うな的な

ことを最近ときどき思う。 たまたま覚えてるってかメモ取ってたのはこの2つ

http://karino2.livejournal.com/86589.html

http://qiita.com/items/773

前者はバランスだいじだよなあとか。

後者はなんか漠然とした感じの質問になんか正しい感じの答えだなぁとか。できづくと natsutan さんだった。

(17:43)


2012-03-17

_ 偶奇

http://logsoku.com/thread/engawa.2ch.net/poverty/1330078980/

2で既に正しい答えが出てるのに、証明できないのをバカにしつつ間違った答えを乱発するという、なんともいえない感じの…

しかし実際このへんの証明とかむずかしいよな…いきなり道端で聞かれたら結構考えそうだ

(16:41)


2025年
7月
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.shinh(2012-04-29 17:30) 2.通りすがり(2012-04-29 11:54) 3.Rui(2012-04-10 03:10)
search / home / index

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

shinichiro.hamaji _at_ gmail.com / shinichiro.h