.それができるのはみんなわかってるけど、恐いからやらないんですって 。 Makefile 書くのが一番スマートだと思ってる私であった。 |
.あの時点のコードでも刺さってたわけではないみたい。 ICU もちゃんと再初期化されてた模様。ただ、 それ以外のあらゆるデバイスの再初期化が足りてないようで、 キーボードは死んでるし、rtk も死ぬ。あと、 while true; do echo XXX; sleep 1; doneというのを仕掛けておいてから S3 に落とすと、復帰後は XXX の 表示が 5 秒に 1 回になる。うひ。 |
.と言ったのはマイルスデイビスなのだが、割とこれは真理を突いてるのである。 .そこで 最適化 。 「最適化を学んで、それを使うな」くらいの気持ちでいると、 今の世の中の 8 割のケースでは幸せになれます。 じゃあなんで最適化を学ぶのか、というと、残りの 2 割でドツボに はまらないためですね。 .また、char を添え字に使う、 という無駄なことをしないで済むようになります。 char を添え字に使っても、 今のプロセッサでは速くもならないし、場合によっては遅くなるし、 省スペースにもならないし、 int より一文字多いし、 オーバーフローしやすいし、 文字なんだか整数なんだかわかんないし、 符号つきなんだか符号なしなんだかわかんないし、 符号拡張でハマるし、 まあ百害あって一利なしです。 局所的最適化というのは、もはやコンパイラのお仕事であって、 プログラマが口出しする余地はほとんどなかったりします。 世の中の 8 割の仕事は、なーんにも考えずに for ループでも 回しとけば小人さんが良きに計らってくれちゃうんですね。 ほー、ファンタスティーック(ピープホール最適化<マテ)。 ピオラさんの仕事を奪うな、ということ。 むしろ、可読性の高いプログラムのほうが仕事では重視されますな。 .ところが、運悪く残りの 2 割の仕事をしないといけないはめになったら、 ご愁傷さま、というべきか。それはそれで楽しいんだけど。 .まあ要するに、 「学んだことの 2 割を使えば 8 割の仕事が片づく程度には 自分のスキルの引き出しを増やしておかないとプロの世界ではお話にならん」 というのが、古典的 2-8 の法則というやつなのですな。 何か要領を得てない話ですまんが。 |
.C99 は変だ。mbsrtowcs/wcsrtombs に restrict が足りてない。 規格では size_t mbsrtowcs(wchar_t * restrict dst, const char ** restrict src, size_t len, mbstate_t * restrict ps); size_t wcsrtombs(char * restrict dst, const wchar_t ** restrict src, size_t len, mbstate_t * restrict ps);となってるけど、これは絶対 size_t mbsrtowcs(wchar_t * restrict dst, const char * restrict * restrict src, size_t len, mbstate_t * restrict ps); size_t wcsrtombs(char * restrict dst, const wchar_t * restrict * restrict src, size_t len, mbstate_t * restrict ps);の間違いだと思うぞ。 なんか規格を作った側が restrict を理解してないんじゃないかという 気がしなくもない。 .この辺のことは、Citrus のコードを書いてる時にうすうす感づいていたのだが、 gcc-3.x でコンパイルが通らん、という形で発覚したにょ。 半分は適切に restrict を捨てるキャストをしてなかった私のミスだが。 |
.生まれて初めて、妹というものが出てくる夢を見た。 .あまりちゃんと覚えてないが、5 歳くらい年下、小柄 (←この辺に謎の願望が入ってるっぽい)。 もちろんマンガ/エロゲ的妹とは正反対な雰囲気で、 本当に妹がいたら、こんな感じなんだろうな、というようなリアルな妹であった。 .ところが、この娘、なぜか車いすに乗ってるのだ。 それを私が押して、いろんなところに連れていく。 ううむ、私の深層心理の何を暗示してるんだろう…… |
.とある方から新品の YM2151 を譲ってもらったのだが、やっぱり動かんやんけ。 これは YM2151 が壊れてるわけじゃないってことやね。 .で、YM2151 の addr write と data write の間に delay(1); を 入れたら直ったよ…。 Romeo は YM2151 の write 時には専用の queue を持ってるから、 プログラマは YM2151 のリカバリタイムは (少なくとも単純に write するだけなら)考えなくていいはずなのである。 したがって、こんなところに wait が必要なわけもなく、 どうも Romeo 側になんらかの問題があるんではないか、 という気もしなくもないが、私が何か PCI まわりの取り回しで 勘違いしてるのかもしれない。あるいは、私が queue というものを勘違い してる可能性もなくはないが、こんなところで YM2151 のリカバリを 意識しなきゃいけないんだったら、queue の存在価値がない。 そもそも、YM2151 のアドレスライト→データライトで 1μ 程度待っても 焼け石に水だから、別の原因の可能性が高いやね。 x86 だと比較的珍しい memory mapped I/O だ、 というあたりも微妙に影響がありそうではある。 .まあ、YM2151 write snoop 有効にして、 ちゃんと受け付けてるかチェックしてみるのかのう。 でも、1 μも待たなくても、 とりあえず addr write した直後にすぐに addr read して、 そうしておいてから data write すると直るみたいなので、とりあえずいいか。 .つーわけで、私がテトリスから引っこ抜いた YM2151 1 セットも 多分動くんじゃないかと思われ。予備にとっておくか。 |
.ハヤシ某をやる。うはは、CM がおもろすぎ。 実際にいろんなメーカーから集めてきたムービーで玉石混交だけど。 .つーわけで、軽く 3 周くらいしてみたり。 不良リーナちゃんがいいぞ。 不良 |
.えーと 、 配列だからですね。ちなみに replacement new ではなくて placement new です。 デストラクタが存在するクラスの配列は、それが削除される時に デストラクタが要素数分呼ばれないといけないんですが、 new で配列を割り当てた時は要素数を動的に持たないといけないため、 gcc ではそれが配列の前に置かれるような実装になっていて、 よって size_t の 4 バイトの分ずれてるわけですね。 .で、実際のサイズを取る方法は、たぶんありません。 sizeof(SampleData[n]) は常に sizeof(SampleData) の n 倍を返さないと 他のところで矛盾が出てしまいます。 .void *operator new (size_t, void *) を引っかけて fixup する、 という手もありますが、 Exceptional C++ なんて本を読むと、 そもそも「配置 new はトラブルの元だから使うな」 とか書いてあったりするんで、苦労するくらいなら使わないのが正解かもしれず。 使うとしても POD (plain old data)だけに使うのが吉かと。 デストラクタを持つクラスは定義(c.f. Clause 9 of ISO C++ spec.)により POD ではありません。その理由は、まさにこの辺にあるんでしょう。 |
.創作を金銭的価値でしか判断できない方が、 違法コピーよりずっと社会的に有害だと思います。まる。 .そもそも、金が目的で行われた創作に、創作的価値があった例しがない。 創作に対して「何本売れたからいくら」なんて価値判断をしてるようでは、 創作にたいするインセンティブは下がる一方ではないのかな。 |
.あの時代でないと「名作」にならなかったものってあるよな。 痕しかり、ONE しかり。 .痕は、ああいう絵でああいうシナリオがあったから名作になりえたのだが、 いまあれをあのまま出しても売れないのも事実だと思う。 一方で、今の売れ線商品の体裁に再構成しても駄作にしかならんよなぁ。 .それがわからんから過去メーカーと呼ばれるんだが。 |
.どうも最近、某 irc の某 ch でいろいろと話題になってるのだが、 私自身は最近、議論というものをする気がない。特に日記上では。 というのは、議論のマナーを知らん手合いがうざいからだな。 最近は読む日記を絞ってるから、 日記ぐるぐるという日常生活でそういうアホ臭い議論を目にしたり、 自分がそれに巻き込まれることがないのがさいわいである。 それに、なんというか、たいがいの話は 「まあそういう考え方もあるよねー」 で終わっちゃう最近の俺。 .どういうのがマナー違反か。 その 1 。論理的にちょっとした矛盾があった時に、 それをジクジクと針で突くように突いてくる手合い。 そういうことをすると議論が散逸するし、 もし本筋が間違ってるのならば、その本筋をばっさりとやるのが正しい。 こういう手合いは議論を収斂させることじゃなくて、 相手に痛みを与えるのが議論の目的になってるので、 相手にしても疲弊するだけで無意味だ。 当然、そういう人間を議論の相手にするべきではない。 .その 2 。相手の人格を否定する手合い。相手の意見を尊重しない手合い。 つまり、相手を対等に見ていない。そういう人は、 人の意見に対して恥ずかしげもなく 「そういうことを言うと馬鹿にされますよ」などと言いはなつ。 相手を対等に見ない人間は議論などしてはいけない。 当然、そういう人間を議論の相手にするべきではない。 .その 3 。なんでもかんでも白黒つけたがる手合い。 どうしても相手を打ち負かさないと気がすまない手合い。 こういうのは相手にしても無駄。 当然、そういう人間を議論の相手にするべきではない。 .そういう手合いは fj だけに存在していてくれ、と切に願う。 |