コンテンツへスキップ
ものがたり
戻る

2005-06-29

ひさしぶりにmcsをハックしている。やっていることはmcsでエラー情報なんかで出てくる行番号がずれているのを正しいものにする、っていうかな〜り地味なもので、実際には半年くらい前に作りかけたものの焼き直しだけど、なぜかパッチは膨大なものになっていたりする。cs-parser.jayのほぼ全体を変えることになるからなぁ。おまけにLocationを受け取るメソッドの引数も削ったらさらにパッチがでかくなった。何でこの地味なハックがこんなに楽しいんだろうと思ったら、ここはMSがタッチしてこない領域だった。

Google Summer of Code for Mono

プロジェクトが公開されました。

このうちXslCompiledTransformの奴だけ僕が(所謂mentorとして)関わることになっている。終わんねーだろー流石にとか思ってたら本当に採用されちゃってちとビックリしたのだけど、出てきたプロジェクトのリストを見ていると、キミたち本当に正気なのか?っていうようなプロジェクト続出ですな。ASP.NETデザイナとか、かなりキてると思うぞ…。そしてRuby.NETが2つあってしかも採用されているのが謎だ。全部で280も応募があったっていうから、相当気の狂ったプロジェクトばっか残っているとみた。まあ、何か楽しそうな話になってきましたな。

maybe Maximum size for varchar is still 8064

SQL Serverを使ったことのある人なら、レコード長の最大サイズが8060バイトであることを知っている人も多いのではないかと思う。これと似たような話で、1つのカラムにおける信頼できる文字列長は、(たとえSQL Server 2005でこの8060バイトの壁が破れても)8064文字を超えることはないと思われる。ただし、この前提は、YukonがWindowsや.NETのCompareInfoと異なるSortKeyを生成する場合には成り立たないかもしれない。

説明するのがめんどくさいので以下のコードでQEDとする。

void DumpLevel5 (string s) {  

  byte [] data = new CultureInfo ("")  

    .CompareInfo.GetSortKey (s).KeyData;  

  int idx = 0;  

  for (int i = 0; i < 4; i++, idx++)  

    for (; data [idx] != 1; idx++)  

      ;  

    for (; idx < data.Length; idx++)  

      Console.Write ("{0:X02} ", data [idx]);  

  Console.WriteLine ();  

}

public static void Main ()
{
DumpLevel5 (’-’ + new string (‘A’, 10) + ’-’);
DumpLevel5 (’-’ + new string (‘A’, 100) + ’-’);
DumpLevel5 (’-’ + new string (‘A’, 100) + “—B—”);
DumpLevel5 (’-’ + new string (‘A’, 1000) + ’-’);
DumpLevel5 (’-’ + new string (‘A’, 10000) + ’-’);
DumpLevel5 (’-’ + new string (‘A’, 100000) + ’-’);
DumpLevel5 (’-’ + new string (‘A’, 1000000) + ’-’);
}

私的録音録画保証金制度は消費者不在

BSA曰く。いやはや、笑っていいのやら。課金対象になった場合、携帯プレーヤーを「納得できないので購入しない」は19.8%、ってすげえな。実に5人に1人がボイコットするってことかよ。残り48%の中には「そもそも購入しない」(もう既に持っているから、とか)と「納得できるので購入する」が含まれていると思うけど、何つうか統計を見るまでもない感じだ。


この記事を共有:

前の記事
Google Summer of Code for Mono
次の記事
共謀共同正犯