2013-01-01から1年間の記事一覧

プログラミング言語の後付け仕様による微妙な制約

IT

JavaScript は、当初正規表現を扱えなかったのですが、やっぱり正規表現は使いたいよね〜、ということで Perl から正規表現リテラルをインポートしました。その結果、以下のような微妙な制約が生まれてしまいました。 /* 正規表現リテラルがコメントの終わり…

SSL を推奨しない国、中国

妻が義父のために、中国の「Yahoo! メッセンジャー」こと「QQ」のアカウントを作成した。目的は、孫の写真を簡単に共有することだ。QQ は当初はメッセンジャーだったんだけど、SNS 機能がついて、Facebook のようなウォールを持てる。なお、QQ というのは、…

モバイル OS 第三極

IT

新興・マイナー系モバイル OS の僕なりの感想。 Firefox OS 「独占的モバイルプラットフォームからの解放」をうたった OS。そのわりには Firefox Marketplace というものの準備が進められていて、なんだか自己矛盾のように感じる。マーケットはプラットフォ…

【絶対】PC の時計を 2099 年 12 月 31 日にしてはいけない【ダメ】

IT

下手すると PC が起動しなくなります。コンピュータには 2036 年問題というのがあって、簡単に言うと、2036 年のある時刻以降、内部時計が 1900 年に戻ってしまうというもの。まあこれぐらいならかわいらしい現象です。僕は実際に 2099 年 12 月 31 日 23 時…

Lua が組み込まれているアプリ

Lua

Lua が組み込まれているアプリはどんなものがあるか。 ゲーム World of Worcraft: Diablo を世に送り出した Blizzard Entertainment の看板 MMORPG。コア API が Lua でラップされていて、UI なんかはすべて Lua で書かれているらしい。カスタマイズ(という…

正規表現エンジンメモ

IT

C++ の GapBuffer に対して正規表現を適用できないか、ということで調査を行ったメモ。GapBuffer というのは、誤解を恐れずに簡単に言ってしまうと、不連続メモリに格納されている文字列のこと。これを正規表現のためだけに連続領域に格納しようとすると、領…

Javadoc の package.html をパースできない不具合

Javadoc は package.html という HTML をパッケージに配置しておけば、パッケージサマリーページとして取り込んでくれる。今まで数千の package.html を生成し、数十万行にわたるドキュメントを書いてきた私ですら、本日初めて遭遇する Javadoc のバグが見つ…

組み込み言語 Lua

Lua

今年習得する言語として Lua を選択した。主に VM の実装がどのようになっているのか、という方面に興味があるんだけど、いじり倒す予定なので言語としての Lua も極めておこうかと思う。雰囲気はこんな感じ。 function foo() local s, e = string.find("ば…

boost::filesystem で ~ ディレクトリを作ってはいけない

よくあるアプリ固有の設定ファイルを保持するディレクトリを、ホーム以下に以下のように Boost のライブラリを使用して作ろうと思ったら・・・ boost::system::error_code ec; const boost::filesystem::path dir("~/.hoge"); const boost::filesystem::file…

バッチファイルで条件に一致する配下のファイル・ディレクトリすべてに対して何か処理をしたい場合

IT

以下のように行う。 for /F "usebackq" %%a in (`dir /b`) do ( echo %%a | find "<ファイル名・ディレクトリ名の一部>" >NUL if not ERRORLEVEL 1 ( rem 何かの処理 echo %%a ) )echo と find を使うところがポイント。 もっと複雑な条件なら、ファイル名・…

ECMAScript 5.1 の規格書を読んで発見したこと

ECMAScript 5.1、別の言い方では Ecma-262、通称 JavaScript の規格書を読んで、僕的にいくつか驚いたことをまとめておきます。規格書は以下から参照できます。 Standard ECMA-262 日本語訳もあるのですが、僕は原典をあたることをお勧めします。 識別子に U…

中国における 38 と 250

今日で 38 歳になりました。さて、中国では「ばか」「あほ」「まぬけ」「うすのろ」「ぼんくら」みたいなニュアンスを持つ数字があります。ひとつは 38、もうひとつは 250 です。僕が中国で実際に体験した逸話を紹介します。 知り合いの誕生日は 3 月 8 日だ…

Cygwin 管理下のファイルを Windows で編集すると実行権限がついて困る、を解決

IT

表題の件、ずっと困ってたんですよ。ソースコードを Windows のエディタで編集したりすると、Cygwin 環境で勝手に実行権限がついてしまったり、新規作成したファイルが実行権限だったり。そうして作ったファイルを Git にコミットしてしまったりすると、実行…

~ がホームディレクトリを表す理由

IT

なぜUnix&Linuxではホームディレクトリを「~」文字で表現するのか。 - [モ]Modern Syntaxリンク先参照。なるほど。~ の下に ^ があるけど、どうやって 3 種類を打ち分けるんだろう。ちなみに ^ はアクサンシルコンフレックスと読む。今日初めて知ったという…

ゲームに使えそうな Unicode の文字一覧 🀙

IT

Unicode に麻雀牌の文字コードを発見。 麻雀牌 ロン!平和のみ フォントによっては表示されないかも(されないので、スクリーンキャプチャ)。 - - その他、ゲームに使えそうな文字一覧。 ドミノ トランプ チェス、サイコロ、トランプマーク、将棋マーク、…

ブロックする InputStream を BufferedInputStream でラップしてはいけない

以下のコードを実行すると: import java.io.BufferedInputStream; import java.io.IOException; import java.io.InputStream; public class InputStreamTest { static class MyInputStream extends InputStream { int pos; byte[] data = "HelloWorld".getB…

C/C++ でファイルサイズ取得

C/C++ を使用して、ファイルサイズを取得する方法の備忘録。 // g++ getFileSize.cpp -lboost_system-mt -lboost_filesystem-mt #define CAN_CUST_FPOS_TO_LONG 0 #include <stdio.h> #if CAN_CUST_FPOS_TO_LONG unsigend long getFileSize1(const char *fileName) { </stdio.h>…

英語の現在・過去・未来・進行形・完了形の覚え方

もうすぐセンター試験ですね。僕が学生の頃、以下の例文があれば、多分、現在・過去・未来・進行形・過去形をマスターできたと思います。 現在形: I make love with her everyday. 過去形: I made love with her yesterday. 未来形: I will make love wit…