日記

11月 6日 (日)

1. むう

なんかここのところ、何もやる気がしない。やる気レス。こんな時には何もしないのが一番。

何となく、東方花映塚のExtraをクリアしました。

11月 7日 (月)

1. Four 4s

4つの4で遊んでみました。TJS2に移植して(あまり変わってませんが)、吉里吉里2またはコマンドライン版TJS2(自作)で実行できるようにしました。

JavaScriptのexecScriptと違って、Scripts.execは実行結果を返すことができます。この強みを利用すると、スクリプトの動的スクリプト呼び出し部は若干シンプルになります。

11月 10日 (木)

1. TJS

自作のコマンドライン版TJSを強化中。

  • iTJSTextReadStreamの実装はシンプルにstdio(fopen/fread系)で。
  • コマンドライン引数を参照できるように。
  • 標準出力はナロー文字列で。
  • 標準入力処理もできるといいなあ。

まあ、ぼちぼち改良していきます。

11月 15日 (火)

1. TJS

コマンドライン版のやつ。標準入力処理として、global.readline()関数を作りました。標準入力から一行読むだけです。ものすごく安直なネーミングかつ実装に見えますが、実際その通りなので問題ない(あるだろ)。

標準入出力が実装されたので、ありがちな

C:>tjs.exe hoge.tjs < foo.txt > bar.txt

みたいなことができるようになりました。

11月 16日 (水)

1. なのは

作画が崩れ始めた?

バルディッシュ、フェイトに向かって「YesSir」ってのはどうなのよ?

11月 17日 (木)

1. ボジョレーヌーボー

十年だか二十年に一度の、素晴らしい出来だそうですね。早速コンビニで買って飲んでみました。酸味が強めで、確かにまずくはないですが、それほど旨いとも言えません。個人的には一昨年のものの方が好きですね。

2. 吉里吉里

プラグイン。グローバル変数でtTJSString型変数を宣言してコンパイルすると、ロードできないDLLが生成される罠。グローバルでなくとも、スタティック宣言でも同様です。グローバル宣言されたクラスインスタンスがコンストラクタ中でnew tTJSStringする(結果はメンバ変数が保持)だけでも、ロードできないDLLが。要するに、大域にtTJSStringの実体があると駄目ってことでしょうか。なんじゃそりゃ、って感じです。そういうものなのか?それともbcc32の仕業か、ilink32の仕業か。BCBは所々にアレな部分があるからなあ。

3. 吉里吉里

util_ioから符号化変換周り(LIBICONV関係)をutil_iconvとして独立させました。ころころ変わってすいません。って使ってる人はいませんかそうですか。

もともとこれらはソケットのテストに使おうと思って作ったのでした。テキストベースプロトコルの場合は符号化変換処理がほぼ必須になりますし、データ送受信結果の検証などは、一旦バイナリファイルに書き込んで、ファイル比較コマンドやバイナリエディタを使った方がやりやすいでしょう。つまり、バイナリファイルI/Oと文字符号化変換の実装が不可欠なんですよ!

…で、その肝心のソケットはどうなったんでしたっけ?

11月 20日 (日)

1. 著作権ゴロ

JASRACネタ。

2. TJS

使い道が不明なコマンドライン版TJSを公開してみました。バージョンをどうしようか迷いましたが、βだろうがγだろうが動くものは動くし、体験版だろうが製品版だろうが動かんものは動かんし。というわけで0.2です。いや、深い意味はありません。

バージョンなんて飾りです!エロい人にはそれがわからんのです!

11月 21日 (月)

1. ぷに

吉里吉里プラグイン。LIBICONVのアレにPunycode変換を紛れ込ませてみました。まあ、おまけ程度に。

11月 22日 (火)

1. 四隅

吉里吉里プラグイン。矩形の四隅を起点としたグラデーションを実装しました。まあ、おまけ程度に。

11月 24日 (木)

1. 即死

IE が onload="window()" で死ぬ話より。たった一行<body onload="window()">と書いてあるだけで、ご不便をおかけして死にますね、IE。素敵です。

11月 25日 (金)

1. TDS

日記ページのh2, h3, h4要素から鬱陶しいアンカーを外しました。見出しが自身へのハイパーリンクになっているのは変です。あと、ナビゲーションリンクはlink要素としました。

11月 28日 (月)

1. TDS

var mode = arr.aggregate(
  function(internalState, value, frequency) {
    return (++frequency[value] > frequency[internalState]) ? value : internalState;
  }, 
  void, arr[0], %[ arr[0] => 0 ]
);

こんなコードを書いているうちに、ラムダ関数にハァハァする人の気持ちがわかってきたような気がします。わからない方がいいですかそうですか。