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

幸手市権現堂桜提

昨日行ってみたんだけどまだ早かったらしくて一分も咲いてない状態。つぼみと枝を主に見てきた。 古い木と新しい木が混じってて妙な違和感も感じたが、これから花開くのが実感できてそれなりに風流だった感じ。菜の花も土手側のは全然咲いてなくてこれからと…

創世記機械

多分これ一冊読むのに半年かかってる。解説含めて358ページなので一月60ページ、一日に2ページって計算になるな。それにしてもホーガン氏のこの根っからの人間性善説はなんとも言えない。世の中これだけ単純だったらいいのにね。

サマータイムマシンブルース

本広克行氏の映画ということで軽めな謎かけと軽快感なんだろうなー、と思いつつドンピシャ。とりあえずSF研の部室にSF関連のものがハヤカワSFのポスターくらいしかなかったのと、やけに初代ガンダムのポスターが貼ってあった点、あとこれはSF研の部室に限らない…

KINGDOM HEARTS II

とりあえずクリアしたので感想とか。XIII機関・ノーバディ・ロクサスなんかに関しては、キングダムハーツ チェインオブメモリーズをやってない人に対しておいてけぼりモード全開でちょと戸惑った。ハートレスに対するノーバディという概念(この名称も「存在…

久しぶりすぎる

さっぱり忘れてたというのもあるけども、意識的に書かなかったというのもあるのかもしれない。きっと偶然思い出さなかったらずっと忘れたままだっただろうというのは言うまでもなく。とりあえずPOPFileが上手く働いてSPAM撃退は出来ている、とかC++ Coding S…

curling

カーリングOMOSHIREEEEEEEEEEEEEEE!!ってなわけで、より深く楽しむために。googleさんにお伺いを立てたら真っ先に出てきたのが札幌カーリング協会公式ホームページなのが日本ではマイナーな雰囲気を漂わせている感じ。道民にとっては割とメジャー、みたいな…

multiprocess in C++ with Windows

ついでにプロセス関係も、ってことでmutexとsemaphore。 #include <windows.h> #include <string> namespace multiprocess { // mutex ----------------------------------------------------------------- class mutex { HANDLE m_handle; std::string m_name; public: // 生成</string></windows.h>…

multithread in C++ with Windows

Windowsのスレッド関係のAPIのラッパクラスを書いてみた。こんなことしなくてもpthreadやboost::threadあたり使えばいいんだけど、勉強のために。 #include <windows.h> #include <cassert> #include <process.h> namespace multithread { typedef unsigned (__stdcall * thread_func_t)(voi</process.h></cassert></windows.h>…

iostream in multiple threads

実はiostreamってスレッドセーフではない?以前書いたマルチスレッドのテストプログラムのprintfをstd::coutを使って書き換えてみたんだけど、表示が崩れる。ってことで、クリティカルセクションとか使ってみるわけなんだけど、こんな感じに、 class critica…

POPFile

So-netのメールアドレスだと異様にSpamが多い。So-netからのお知らせメールが"info@so-net.ne.jp"なので、Fromが"info@"で始まるのが多いのが苦笑ものなんだけど。で、あまりメールを使わない人なのにあまりにS/N比が悪いのでPOPFileを入れてみた。ベイズ統…

マルチスレッド

んじゃスレッドでも使ってみんべ、ってことでこういうソースを書いてテストしてたわけなんだけど。 #include <windows.h> #include <stdio.h> const unsigned DISPLAY_NUM = 100; const unsigned THREAD_NUM = 32; DWORD WINAPI thread_func(LPVOID thread_arg) { unsigned num =</stdio.h></windows.h>…

さっぱり忘れてた

コーディングだ、オリンピックだ、昼夜逆転だ(ぉではてなさんの存在をすっかり忘れてた。一週間放置か…。というわけでまたリズムを作りつつ。

zlib

zlibを使って楽にzip/unzipできるようにするクラスを作ろう、ってんでこんなの作ってみた。 http://www89.sakura.ne.jp/~janus/distribution/zip.zip zipper・unzipperともにストリームを意識することなく、ファイル名指定で圧縮/解凍を行えるように設計して…

SQUARE ENIX

Final Fantasy XII 最近アンテナ低いので遅めのチェックなんだけども、俺の世代的に一応。ファイナルファンタジーXもなんだかんだ言いながら面白かったしなぁ。イヴァリースってんだから、世界観はファイナルファンタジー タクティクス PS one Booksやファイ…

callback

はじめてコールバック関数のありがたみがわかった。いやまぁ、Windowsのイベントドリヴンなプログラムやってればイヤでも書くから今更何言ってんだって感じなんだけど(笑。入出力、特にユーザに指示を仰ぐときとかは引数と戻り値が固定な(プレースホルダーっ…

しょーもない

チャーリーとチョコレート工場 [DVD]を見た。こんなしょーもない映画はじめて見た。しょーもないっていうのはゲームでいうクソゲー、みたいな?映画の言葉ではB級とか言うんだろうか?駄洒落とか妄想とか、多分普通の人からすれば寒いとかイタイとかな類のも…

ダメだこりゃ

iteratorの勉強をしようと思って、Standard Template Library プログラミング on the Webを参考にしつつ、とりあえず自分でiterator(ぽいもの)を作ってみた。struct iterator<>をpublicに継承して…、ってこんな感じで書いてたんだけど(比較/2項演算子のオー…

ごめん嘘ついた

boost::filesystemの改造について、directory_iteratorとoperator/=を考慮してなかったので修正age。http://www89.sakura.ne.jp/~janus/distribution/boost_filesystem_utf8.zipもひとつ注意点。例えば以下のコード、 namespace fs = boost::filesystem; fs:…

boost::filesystem::pathの改造

Windowsの場合、UTF-8でパス名を持つように書き換えてみた。 http://www89.sakura.ne.jp/~janus/distribution/boost_filesystem_utf8.zip path_posix_windows.cppのほうは書き換えた位置をアスタリスク連打コメントで囲ってあるので、気になる方は検索しなが…

まだ冬の範疇か

なんだか最近午後3時くらいになると猛烈に眠くなる。その眠気が終日続くのであまり作業もはかどらない。春眠暁を覚えずっていう時節でもなかろうに、どうにかならないものかと思いつつ、惰眠をむさぼることにする。

ちょっと考える

とりあえずboost::filesystemにUTF-8を突っ込んで、ファイル操作を行う段階で処理系デフォルト文字コードに変換しなおす、という方向で問題ないようだが、operation.hppに定義されているファイル操作関数を使えないのはイタイので、m_path_append()でUTF-8エ…

あまりかんばしくない

boost::filesytem::pathにUTF-8文字列を突っ込もうと考えたやぬすさん。UTF-8関連の変換関数をガリゴリと書いて、いざテスツ!という段階になってUTF-8ではファイルオープンとか出来ないことに気付いた(こうなるとmblen()あたりでマルチバイト列を調べながら読…

_cplusplusという罠

C++としてソースファイルをコンパイルする際、__cplusplusが定義済みマクロとして定義されているわけだが。C/C++リファレンスの定義済みマクロのページを信用して、というか_cplusplusの部分をコピペして #ifdef _cplusplus // 正確には __cplusplus extern …

UTF-8

文字コードについて悩むのをやめて、ゴリゴリとコーディングすることにした。UTF-8のmanpageとRFC3629日本語訳を参考にしてUCS-4-->UTF-8へのエンコーディングルーチン。 /* 一文字のUCS-4をUTF-8オクテット列にエンコードする */ size_t ucs4_to_utf8(char * …

ライブラリの国際化について

Unicodeの助けを借りるのが現実的かつ常識的。とりあえず思いつきそうなアプローチは、 文字列の内部表現はワイド文字、入出力はマルチバイト文字 内部表現・入出力ともにマルチバイト文字 の2点。内部表現にワイド文字を使う場合、2byteしか割いていない処…

マルチバイト文字列のstrlen()

昨日言ってたマルチバイト文字列の長さをはかる方法、mblen()を使えば簡単に出来た。っていうかmbなんたら系の関数っていつのまにC標準に?(ぉ int mbstrlen(const char * src) { unsigned length = 0; /* 返り値となるlength */ const char * psrc = src; /…

内部表現はワイド文字

内部表現をワイド文字で、入出力をマルチバイト文字で行うための関数を定義してみた。長いけどほとんどコメントなので勘弁。 #include <cstdlib> #include <cassert> #include <string> #include <vector> #include <iostream> #include <locale> #include <stdexcept> #ifdef _MSC_VER #define NS_STD #else #define NS_STD </stdexcept></locale></iostream></vector></string></cassert></cstdlib>…

コンパイラごとの違い

コンパイラごとに定義されているシンボルを#ifdef等で調べて、個別にコードを書いていけばいい。ここで言ってる「コンパイラごとに定義されているシンボル」に関しては、 boost/config/select_compiler_config.hppで調べる boost/config/select_compiler_con…

文字コード雑感

真にワールドワイドな、移植性のあるプログラムを書く、というとUCS-4あたりにHan Unificationなんかせずに世界の全文字を詰め込んで、ラテン文字だろうと漢字だろうと4byteで済ませましょう、っつーのが平等かつ簡単だと思う。文字には文化も含まれているわ…

C++でワイド文字

ワイド文字 マルチバイト文字 ワイド文字を扱うための道具 ワイド文字マルチバイト文字変換のための関数・API。 C標準 stdlib.h mbtowc() wctomb() mbstowcs() wcstombs() wchar.h mbrtowc() wcrtomb() mbsrtowcs() wcsrtombs() Windows API MultiByteToWide…