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

はじめてのにき

ここの位置付け

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|

ToDo:


2011-12-03

_ binutils の dSYM 対応

とりあえず動いた。便利な気がする。

TODO:

  • assignment 待ち。どうも最低2週間てとこなんかな。
  • リークつぶしのパッチおくる (できてるけど assignment 待ち)
  • mach-o-x86-64 と mach-o-le のあいまいせいを潰す (これはたぶんバグだよな)
  • なんか 32bit 動いてないな…
  • FAT も当然ダメなのでやる
  • 今のパッチは --enable-targets に mach-o 含まれてないとリンクエラーになると思うので、ちゃんと仮想関数を足す

C って RAII 無いのがつらい気がする。 C++ の感覚で書くと

bool checkX(const char* filename) {
  X* x = openX(filename);
  if (!x)
    return false;
  if (!x->isValid) {
    closeX(x);
    return false;
  }
  if (!x->isNantoka) {
    closeX(x);
    return false;
  }
  closeX(x);
  return true;
}
int main() {
  checkX("hoge");
}

とかすると closeX 多すぎてイヤになって、

bool checkX(X* x) {
  if (!x->isValid) {
    return false;
  }
  if (!x->isNantoka) {
    return false;
  }
  return true;
}

int main() {
  X* x = openX(filename);
  if (x) {
    checkX(x);
    closeX(x);
  }
}

みたいにしたりする。 まぁこれも悪くはないんだけど、 でも malloc とかするたびに関数増えてくとか微妙だよなぁという。

せめて関数内関数あると良いねと思うな。

(16:51)

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

_ Rui [closeXをまとめるのにgotoは使わないんですか?]


2011-12-04

_ Re:

http://shinh.skr.jp/m/?date=20111203#c01

goto もいいんですけど、解放するものが複数あると、

 X* x;
 char* filename = (char*)malloc(100);
 if (!filename)
   goto err;
 sprintf(filename, "%s/%s.txt", hoge, fuga);
 x = openX(filename);
 if (!x)
   goto err;
 
 return 0;
err:
 if (x)
   closeX(x);
 free(filename);

みたいに if が増えてくのがちょっとイヤですね… C の方が C++ より遅いみたいなことに。

http://homepage1.nifty.com/herumi/diary/1112.html#3

個人的な感覚では、ある程度のサイズのもので semantics が変わる拡張使うのは許せないかな (unused とかは OK)… と思ってたのですが、僕の個人的な感覚に頼るまでもなく、 コンパイラにかかわるものではダメとのこと。

http://www.gnu.org/prep/standards/standards.html#Using-Extensions

(03:56)

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

_ Rui [ if (!filenamxe) goto err1; ... if (!x) goto err2; ...]

_ shinh [おお、たしかにそれ見ますね。なんかすっぽり頭から抜け落ちてましたそれでいい気がします…]


2011-12-10

_ 洞窟物語

DSi ware で出たってことなので買ってやっている。 DS でやると PC よりやりやすい…

一度適当にマシンガンでクリアして、 聖域タイムアタックってマジメにやってないなぁということで、 マシンガンは無いなってことでスネークかつバブリン取らないで 聖域まで行ったデータを作ったものの、 あれーラスボス相手にミサイル使っちゃったな… と思い3度目をやることに。

普通に三度目やるのはバカらしいので、 むずかしいモードと同時に進めていって、 難しい部分は、ふつうの方で練習したり攻略考えてからむずかしいでやる、 みたいな感じで進めることにした。

さっきモンスターXを倒した。 まぁやはり予想通りずいぶんと苦労した。 他に苦労したとこはその直前のお化けかな…

今後きつそうなのは、

  • コア
  • 水路
  • 最後の洞窟裏
  • ラスボス

あたり?

むずかしいで聖域クリアできる気がさっぱりしないから、 シュプールで行こうかと思っている。 シュプールどんなものだったかよく覚えてないけど、 たぶんスネークより聖域以外はちょっとラクだよねたぶん…

(04:05)

_ 洞窟

やはりコアが終わってる。

つかここはスネークが役に立つぽいなぁ…

(23:18)

_ キリヌーク

http://www.news-postseven.com/archives/20111210_74215.html

紙を重ねて切っても1枚しか切れないカッターらしい。

http://www.olfa.co.jp/ja/body/detail/168.html

説明読んでも本当にそんなことできるかって感じだなぁ。

(23:44)

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

_ shinh [testなんです]


2011-12-11

_ tDiary

なんか最近スパムが多くて、日本語がなければ reject 、 って方針はあきらかにイマイチなのもあって、 hiki と同じなぞなぞ認証にしておいた。

(23:14)


2011-12-13

_ NULL

http://akira108.com/blog/?p=56

を見てマジメに NULL の仕様を見てみた。

http://xyzzy.bravehost.com/NULL.html

どうもこれ Turing 完全じゃない気がするんだけどな… 一応 if があって全体がループになってて、自己書き換えできるけど、 うーん。

あと Quine も書ける気がしないけど書けるもんなんだろうか。

(06:36)


2011-12-14

_ goma

なんかスライドとかビデオとかが出たそうな。 そういえばスライドはじめて見たけど思ったより詳しくて良いな

http://googledevjp.blogspot.com/2011/12/google-developer-day-2011-japan_14.html

https://docs.google.com/viewer?a=v&pid=sites&srcid=ZGVmYXVsdGRvbWFpbnxnZGQxMWphcGFufGd4OjNlMTJiYTNlOTlmZWVjZWU

(22:19)


2011-12-15

_ 洞窟

は、とりあえず聖域はクリアした。 タイムアタックは全然できないな… スーパーミサイルがレベル3にならないという論外ぷりな。

あとむずかしいモードのコアは本当に無理

(00:36)

_ adventure

http://d.hatena.ne.jp/Irori/20111210

かっこいい…

ほげ言語の中では世界一デカいプログラムとかは、 esolang だと割と結構書けるので楽しいかもしれない。 Befunge の 80x25 の空間だとどのくらいのプログラム書けるとインパクトあるかな。 C コンパイラとか書けるとかっこいいが。

(02:18)


2011-12-16

_ クライミングとシューティングが似ているという話

それなりにまじめにやることにしたので道具を買ったりした。 だいたいずっと 10a が登れてる気がする…って感じなので、 あんまうまくなってるかどうかはわからない。 今日は 10a/b が僕基準 (多少のリトライはいいじゃないか!) では登れた気がしたのでまぁうまくなってるのかもしれない。

でシューティングが似てるという話。 短いボルダリングの方じゃなくてロープ使って 10m くらい登る方。

ええと…まずボム。 うっかり想定してたパターンから外れたりとか、 どうも自分の実力では安全に突破できなさそうなところでは、 シューティングだとボムを使うわけだけど、 クライミングで腕力使うのが感覚として似てる気がする。 難しいところが後半にある時は、道中の簡単なところでうっかり腕力を使いすぎると、 肝心のボスで腕が完全に疲れてて死ぬ、みたいな。

ステージ構成。 コースによるけど、どうもたいていのコースは7割くらい行ったところに 山場がある感じに設計されてるのが多い気がする。ボスである。 ボスのことばっか考えてたら、序盤の簡単なところのパターンを うっかり忘れて、ボム/腕力使わされた、なんてことが起きる雰囲気もなんか似てる。

パターン。 あまり実力的にうまくなってなくても、同じとこを何度もやって パターンをしっかり構築してれば、 ボム/腕力を使わないでそれなりに進めたりする。 あと、 「画面下にはりついてずっとうろちょろするより、 余裕あるうちにちょっと画面上行った方が切り返ししやすいよー」 みたいなアドバイスが、 「いきなり右手のばすんじゃなくて右足安定させて左足左にふっとくといいよ」 的なアドバイスが僕の中では雰囲気が似てる…

コンティニュー。 一回落ちるとその後がんばってもクリアしたと評価はされなくなるけど、 まぁ先がどんな感じかな…と見てみる感じがコンティニューしてる感覚。

あとはやってる目的がどうも俺スゲーだってあたりもそうか。

となるとクライミングもテンションの上がる音楽が必要だということになる

(03:51)

_ dthread

そういえば

http://www.tsuque.jp/note/omoshiro_papers_2011

で紹介されてる dthread の話は本人から聞いたのだけど、 面白いなあというかそうかそれでいいのか…本当か!? 的な感じで良かった。

スクリプト言語の thread とかこういう感じやれば VM lock とかつぶせたりしないかな… とか妄想した。妄想しただけで深くは考えてないです

(23:32)

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

_ もわ [クライミングでも死ぬがよい -> 危険]

_ shinh [二周目に対応するものを思いつきませんね…]


2011-12-17

_ マッシーンズ

https://docs.google.com/spreadsheet/ccc?key=0AolcvzoWgN21dElqTWRucDRneUxRRVdOQ3ZsaGpJZ2c&hl=en_US#gid=0

これを埋めはじめたらたのしくなってきた。

(04:04)


2011-12-27

_ precompiled header 地獄

bss を munmap ってしていいんだなあと知った。

といいますのは。

GCC のプリコンパイルドヘッダというのは、 どうも割と正気の沙汰じゃない実装がなされていて、 たぶん内部状態をそのままダンプしたようなものになってるんだと思う。

そのままってのはたぶん割とガチにそのままで、 ポインタのアドレスとかがたぶんそれなりに入ってる。 少なくとも前チラ見した時に gcc バイナリ内の関数へのポインタとかが そのまま入ってはいたという記憶がある。

そんなわけだから、 cc1 は自分自身の checksum を知っていて、

% gcc -xc -v /dev/null 2>&1 | grep checksum
Compiler executable checksum: d0509cacf8e2dc8d8d001fecf2ae324f

などとすると出てきたりする。 この checksum は cc1 自身っていうか cc1 の材料全部の checksum 、 って感じぽいが。

で gcc のプリコンパイルドヘッダはこの checksum を 先頭の方に入れておいて、 コンパイラが違う場合は絶対にプリコンパイルドヘッダが使われないように気をつかっている。

で、そいうことするとたぶん色々とアドレスの固定なんざをしなければならないようで、 実際それを頑張ってるのを見つけたのが最初に書いたコレ。

http://opensource.apple.com/source/gcc/gcc-5666.3/gcc/config/host-darwin.c

char pch_address_space[1GB] とかいう巨大な配列を作っておいて、 いらない部分は munmap 、って方法で固定の空間を作ってるみたい。 すごい話だなぁ。

linux の方は、 address randomization あっても 16MB 以上はズレないから、 32MB mmap してからその次で mmap して手に入れたアドレスは、 アドレス指定 mmap でゲットしやすいんじゃね? とかいう実装。

http://opensource.apple.com/source/gcc/gcc-5666.3/gcc/config/host-linux.c

パフォーマンスのためなんだろうけど、 GCC のプリコンパイルドヘッダはいつチラ見してもすごい…

(22:55)

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

_ Egtra [http://cpplover.blogspot.com/2009/11/windows-7.html Visua..]

_ shinh [おお、 VC も同じような感じなんですね。パフォーマンス考えるとそうなっちゃうんですかね…]


2011-12-28

_ トラピストビール

http://ja.wikipedia.org/wiki/%E3%83%88%E3%83%A9%E3%83%94%E3%82%B9%E3%83%88%E3%83%93%E3%83%BC%E3%83%AB

というジャンルがあるらしい。

今日で仕事おさめだと聞いたので (つっても今日やった仕事はメシ喰ってマンガ読んでマウスクリックしてthanks!って書いてマウスクリックしただけな気がするが) ちょっと高いビールを買ってみた。

味はよくわからんけどちょっとおいしい普通のエールじゃないかな… 瓶内発酵してるらしい。 バーレーワインみたいな感じがちょっとあるかもしれんがわからん…

(16:25)

_ ↑のような思考を毎度たどって

よなよな最強という結論に毎度いたる

(16:26)

_ 勉強会&忘年会

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

ちょっと前に行った。 なんかおひさしぶりな感じだった。 一年なにしてたんだろうな…という

やったことはぼんやりと binutils いじりだった。 dSYM 追うのができたから、ちょっといじってパッチほった。 入れてくれるといいね…

メモ: atos の mmap のエラーは xcode 4 から。 __RESTRICT って何。

(18:05)


2011-12-29

_ スライド

http://events.ccc.de/congress/2011/Fahrplan/attachments/2007_28C3_Effective_DoS_on_web_application_platforms.pdf

おおお 2^32 だと逆数のかけ算で割り算できますよテクがそう使われるのか…

(14:56)

_ なにしようか

冬休みの宿題

  • 飛行機の予約
  • 環境
  • GL?
  • ld-mac

あたりか

(16:04)

_ あと

CIA を復活させるか。

shinh.skr.jp => shinh.org もやっちゃうと良さげ。 あとゴルフ場の言語追加リクエストを適当に処理とか。

他に shinh.org って何してたかな…

(16:28)


2011-12-30

_ てすと

ふろむ まっく

(01:21)

_ 帰省

指定席取れなくて、自由席もかなり待たないと座れなさげだったのであきらめた。

途中今どこかな…と GPS で調べると常に浜松になるっていう現象が起きていた。 僕のカンでは wifi の情報を使っていて、 新幹線の中の wifi つかまえちゃってるせいでおかしなことに… みたいな感じかな…とか思っていたがどうなんだろう。

wifi 切ったらちゃんとしたとこが出るようになった。

(01:23)


2011年
12月
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(2011-12-29 14:26) 2.Egtra(2011-12-29 12:50) 3.shinh(2011-12-16 12:25)
search / home / index

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

shinichiro.hamaji _at_ gmail.com / shinichiro.h