今日の一冊「ささら さや」。前にも確かここに書いた気がするけれど、 この人の作品の世界は、その空気がなんだか「絵になる」感じがする。 絵心ゼロどころかマイナスの私が言うのもなんだけれど、 この本でまたその印象を強くしました。で、 実際それが文字通り表紙として絵になっている。この表紙いいね。
ミステリとしては、起承転結の「転」がどこかに飛んでってしまっていて、 (「転」が無いのではなくて、気付かぬ内に「結」にたどり着いて、 いつの間にか話が展開していたことがわかる…というような。) あまり意外性がなく残念。しかし、 その展開が不思議と物語と合っているようにも思えます。
マウスの調子が悪い…。
近所の本屋が今週いっぱい改装中なもので、遠出してBMの 12巻 をGet。 その勢いでつい1巻から通して読み返してしまう。 何十回読んでも飽きないものは飽きない。
ノミネートされてるしー。
パソコン雑誌といえば、今月の Windows Power の「世界のオンラインソフト」という特集が良いですね。 日本語も英語の紹介ページも無い OLS の中にも面白い物は沢山あると思うのだけれど、 そういうのって私の自力ではなかなか探しに行けないのですよ。 なので、OLSの専門誌で企画を組んでくれるとメッチャありがたい。 今回の企画自体は地域が偏ってたり紹介数も少なかったりで、 正直もう一歩踏み込んで欲しかったなぁと思ってしまうのですが、 逆に言えば「色んな国のソフトを紹介」的記事をコーナー化して毎月掲載し始めれば、 結構人気が出るのではないかと思います。
わざわざここに書くほど大したものでないけど一応、ということで。
load:
(name Unimp32.dll)
decode:
(cmd (arc))
decode1:
(cmd (arc))
正式にWindowsUpdateに載ったようなので、WinXP-SP1をこれから入れてみるとします。
誰ですかプロレス板にスレ立てたのはっ! 思わず笑ってしまったじゃないか。
私は拉致問題やら不審船問題の完全な解決のためには、 まず国交正常化を始めるのが必要だと何の疑問も持たずに考えていたので、 小泉首相はこれ以上考えられないくらい上手くやったと感じていましたのです。 が、今日色々新聞を読み回ってみたら常識的には順番も評価も真逆らしい。 なるほど。改めて考え直してみよう。しかし、 物事を単純に捉えようとしすぎる傾向は良くないよなぁ…>俺。 興味のあることについて考えをまとめる時は、 常に自分に対する反論も同時に考えるようにしているのだけれど、 そうでもないテーマに対してはどうもおろそかになってしまう。
Set s = {x | x<10} ;
Set t = {x | x%2==0};
if( (s&t).contains( 6 ) )
...
という書き方が出来る整数の集合クラスを作って遊ぶなど。
学校の課題でPrologという やたらめったら使いにくい
言語でオセロの思考ルーチンを書いているわけです。んで、
最後にトーナメント戦を行う際に使用して良いメモリは100MBまで、
というルールがついていまして、それに合わせたプログラムを書かねばならん、と。
そんなわけで、一週間前 から 100MB
じゃ足りねぇー と悪戦苦闘するのも面倒くさいので放ってあったのですが、
今日真耶氏に技を教わって、
一行書き換えてみました。
いきなり使用メモリ量が最大時で 90KB に。
ありえんぞ、それは。findall
最強。
試験勉強というものをする気に全然ならなくて困る。
SourceHoge.net、 なんてドメイン名を考えつける人は凄いと思ったりしました。
書店で、WideStudio の本が出てたのかー、と驚いたりもしました。
「愛のひだりがわ」 を読んだりもしました。
以上、今日の出来事。
2個下のlessの場合、特殊化…つまり例えば less<int>
だけは他の less<T>
と違う特別な実装にする、
みたいなことが出来なくなってしまうのが問題か。
しかし、less
はあくまで operator<
の同義コードとして存在するべきで、特殊化しようとする方が間違っている気もする。
binary_functionを継承できないから既存の関数アダプタを適用できなくなるけれど、 それはアダプタの側も同様のメンバテンプレートで実装してしまえば良いだろうし。
型エラーの発生箇所がtemplateの中になってしまうのはイヤだな。
「MIDI, MP3, WMA, OGG が聴ける」「英語以外の曲名もきちんと扱える」 「ほとんど探さなくてもゴテゴテしてないスキンが手に入る」 という条件で良さげな音楽/映像再生ソフトがないかなー、と探した結果、 名前が気に入ったので Komorebi というのを入れてみました。
あれより1手でも深く読むと100MBじゃ足りなくなってしまうので、 現状ではあれが本気なのです…。>mame氏。GlobalStack overflow は Compound Termの使いすぎ のせいらしいのでその辺省メモリ設計にしないといかん。
出来るだけ不要な型名は書きたくないという理由から、std::lessの代わりに
struct less
{
typedef bool result_type;
template<typename A, typename B>
bool operator()( const A& a, const B& b ) const
{
return a < b;
}
};
こんなlessを使ってしまうことを考えたのだけど、 他で見たことがないので何だか好ましくない点があるのかもしれない。 考えてみよう。
久しぶりに Key さん が来ていましたが, 何か考え込みながら端末室を熊のように歩きまわり, 1 時間後に帰ってしまいました.[1256]
いや、オセロの思考ルーチン2号 vs 思考ルーチンV3 の戦いに決着がつくのを待っていたつもりが、 いつの間にかゴミ拾いタイムになってしまってまして。 空ペットボトルと飴の包み紙を拾って捨てに行くのを繰り返すだけで 暇がつぶせてしまうあの部屋は何とかした方がよいのではないかと思いつつ。
アクセス解析を見てたら日記ページでフリーソフト紹介をしてるとこがあって、 そこで紹介されていた 円カーソル というアイディアに惹かれるものを感じたので早速入れてみています。 矢印で対象を指してクリック、だったのが円で対象を囲んでクリック、 に変わってしまうこの転換が新鮮。常用しようっと。
88回。自己ベスト更新しました。 もはや完全に運の問題なのだけどね。
Zelda がsit対応だ!自分がアーカイバ作者であることは完全に棚に上げて ZELDA は StuffItSDK を使って内蔵で対応してくれないかなー、 と勝手に期待していたのは秘密ですが、それはさておき、Aladdin Expander を使っての解凍らしい。
More Exceptional C++ 読み終わり。 割と良かったと思う章は、setやmapのイテレータの話とか、CopyOnWrite は素人にはおすすめできないとか、コンストラクタでの例外の話とか、 関数の引数評価順序の話とか、自分自身を返す関数は書けるか書けないか? とかCopyInitializationとDirectInitializationの違いとか、 多重継承について色々とか。Exceptional C++ほど衝撃的ではなかったけれど、 普通に勉強になりました。しかし最近読むプログラミング関係の本は全て、 その手の話を主眼に据えた本というわけではないのに、 必ずどこかでマルチスレッドと絡めた話題が登場してくるなぁ。 そういう時代なのだろうか。
最終章の、「ヘッダではusingは使ってはいけない」 「#includeより前にusingしてはいけない」 「あとは実装(.cpp)では自分が適切だと思う範囲でお好きなようにusingしよう」 という方針は私の考えと同じだったのでちょっと嬉しかったり。
…なんだかどんどんC++日記に…。
文字列リテラルでなくて配列変数なら、他のコンパイラでも型情報が template 側に渡ってしまう模様。少なくともvc, bcc, gccでは。 ということはあれだ、型安全でコンパイル時評価な配列の長さ取得。
namespace detail
{
template<int N> struct array_size_t { char result[N]; };
template<class T,int N> array_size_t<N> array_size(T (&x)[N]);
#ifdef __BORLANDC__
template<class T,int N> array_size_t<N>
array_size(const T (&x)[N]);
#endif
}
#define lengthof(arr) (sizeof(detail::array_size(arr).result))
// #define lengthof(arr) (sizeof(arr)/sizeof((arr)[0]))
int a[] = {10,20,30,40,50};
int* p = a;
lengthof(a); // 5
lengthof(p); // コンパイルエラー
しかし何だか納得がいかないぞー。
今日の 鳥人間コンテストで胸に國府田マリ子と書いて6km飛びつづけた この方 はサイコウだと思います。思わず応援しちまったぃ。
C言語の「配列とポインタは…」 というのは語ろうとすると物凄い勢いで突っ込みが入る定番の危険なテーマで、 「似たようなものである」と説明する人がいるかと思えば、 逆に「その言い方は誤解を招きすぎる。あれは別物。」 と主張する方も多数いらっしゃいます。二つの概念そのものは全く別物なんですけど、 いたるところで配列君がポインタになりたがるせいで、混乱を呼ぶという次第。
それはともかくとして。 VC++.NETで下のコードを実行すると4じゃなくて7が出力されますのですが、 どうしたものでしょうか。この動作は間違ってる気がするんですけど、 実は「配列変数初期化時の文字列リテラルはポインタ扱いにならない」 という特殊な例外にあてはまるパターンということなのか、とちょっと不安。
#include <iostream>
template<class T> void f( const T& )
{
std::cout << sizeof(T) << std::endl;
}
int main()
{
f( "string" );
}
Microsoft teams identified a few hundred undocumented Windows interfaces that were used by one or more of the Microsoft Middleware components. Microsoft's technical writers have documented these interfaces and made them available as APIs in the MSDN Online Library.
というわけで、非公開だったWindowsAPIが色々と出てまいりました。 InternetGetProxyInfo とか CheckNameLegalDOS8Dot3 とか SwitchToThisWindow とか IsHungAppWindow とか SHMultiFileProperties とか SHILCreateFromPath とか IsUserAdmin とか。他色々。
boost info というページからリンクされていた。わーい。
旅行記1~6日目。完。
碧天雑感 のテンプレート関数のデフォルト引数の話題…。私も思いつかないです。
template <class T, class C = std::less<T> >
void f(T* a, const int n, const C& comp = C())
{ /* ... */ }
とか考えてみたけれど、これも規格に照らしてダメらしい。 C++ってこう、細かいところで色々遠回りの必要が多すぎて面倒なので、 もっと整理した言語を考えてみたいのだけれどそれも難しい。
「東京近辺で洋書を探すならここだろう」と人に教えてもらったので、 八重洲ブックセンターの本店へ行ってみました。7Fが1フロア丸々だ。感激。 早速嬉々として目当ての これ と これ を購入です。壱万トンで参百九拾五円なりよ。 これで1ヶ月くらいは暇せずに過ごせそう。
そろそろ時間が取れるようになってきたのでNoahとGreenPadの更新再開せんと。
帰還しました。しばし布団の上でぐだーっと休憩してから巡回。
uema2さん お大事に…。
友葉氏あるいは真耶氏、のサイトの URL が変わっていた。
学科のお仲間の課題処理がどんどん進んでる模様。とりあえず私も、 最初に教官側から提示されたサンプルAIにすら勝てないという惨状の 「作りかけ自前オセロAI1号(仮称)」にもいい加減手をつけ直さないと。 ちゅーか prolog 触ってる暇があったら、 むしろ別の面白そうなオプション課題に取り組んでみたいんだけどなー。
ここはsage進行でお願いします。(違
四国勢で四強になったら面白いなーとか思いつつ
旅に出ます。探さないでくだ
前に書いたproperty
がすっげー ダメダメ
だったことに今更気付く。うあー。
そんなあなたにエラーチェック。
#include <iostream>
#include <climits>
using namespace std;
int main()
{
int i = -1;
while( i < 0 )
{
cin >> i;
if( cin.fail() )
{
cout << "hey! input an integer!" << endl;
cin.clear(); // 失敗フラグクリア
cin.ignore( INT_MAX, '\n' ); // 一行読み捨て
i = -1;
continue;
}
cout << i << endl;
}
return 0;
}
例によって、格別書くこともないような日々。
property
について調べてたら行き当たった
R++ (Rules in C++)。
C++にRuleという概念を加えて拡張した言語、らしい。
「もしこういう状態になったらこうする」みたいな規則を記述しておくと、
条件が満たされた任意の時点でその動作が実行されるという感じ。
今日は、Irvine のソースを読んでみるなど。
先日の素数の話の論文、結局よくわからんという結論に達しそうな勢いです。 十分大きい n に対しては適切な r が O( (log n)^6 ) のオーダーの範囲で存在して、 その r 以下の全ての自然数 a に対して検証を行うことで素数性を決定できる、 という流れらしい。のですが、細かいところが私の理解力ではどーにもなかなか及ばず。 しかし、ホントだとしたら大ニュースと思われるにも関わらず全然騒がれてないのは、 一目見ればデマだとわかる程度のものだからだったりするのでしょうか。
唐突にデジカメを買いました。とりあえず我が家の前のガードレールを撮ってみたり、 自分の本棚を撮ってみたりPCを撮ってみたりして遊んでいます。 何だか今日は私の住んでるところの町会が打ち上げ花火を催していたので、 それも撮ってやろうとしましたが慣れないもので失敗。
おそらく次の更新では何か撮ったものが出てくるだろうと言うことで、予想。 1.左手 2.外の風景 3.本棚 4.パソコン 5.自分の後頭部 6.家族の後ろ姿
というわけで半分くらい猛烈に見抜かれていて悔しいので、ここは一つ 「付属品のUSBケーブル」などを撮影してアップロードしたいところです。 が、面倒なので4番で妥協してあげましょう。
書店にて C&E の Generative Programming をちょっと探してみるが見つからず。しゃーないからAmazonで買うかなぁ。
「移転しました」 と検索するとなかなか壮観ですね。
Rubyで掲示板スクリプトを書くぞーとか、C++な話の一大コンテンツを作るぞーとか、 全部XMLで書いてXSLTで出力する構成にするぞーとか、 このサーバを借りたときには脳内で勢い込んでいたのですが、 結局まだ全部今まで通りです。変わったモノはURLと見てくれと一部ページの題名のみ。 まぁ暇な時においおい更新されていくことでしょう。