01:01 02/08/10

PRIMES is in P、 ってな論文が出ているらしい。今4章の頭と5章の頭だけぱっと見た感じでは どうにも多項式オーダには見えないのですが、一眠りしてからじっくり読んでみよう。

とりあえず google の素数性テストカテゴリとか Shor の因数分解アルゴリズム とかにリンク。

23:46 02/08/08

100万Hit。です。うちのトップページが。104万8576の方が切りがよいと思う人は 脇に置いておくことにして、えーとともかく、今まで訪れてくださった皆さん、 ありがとうございました。そしてこれからも一つヨロシク。

コマンドランチャを bluewind に乗り換えてみました。呼び出しキーに[無変換]が使えないようなのに 一瞬戸惑いましたが、最新のβ版では[CapsLock]を指定できるので万事OK。 入力ウインドウ/設定ダイアログとも、画面デザインがわかりやすくて素敵です。 オススメ。

08:35 02/08/07

アトポス」を読み始める。 ぶ厚い系の文庫本はいままで読んだことなかったのですが、 実はコレ意外と持ちやすいかもしれん。

K.INABA 氏のサイトの掲示板に現れた ポール牧ファンクラブ(違)を、ご本人、または関係者の方々が いかにして撃退するか。

cite: 日々のつぶやき

向こうのGuestbookを覗いてみると、 こういう返し方 (エンコード: EUC) もあるんだなぁ、と参考になります。てゆーか笑った。

22:19 02/08/04

たぶん全世界で10000回は作られてそうな車輪を暇つぶしに再生産。プロパティ。

#include "property.h"
#include <iostream>
#include <algorithm>
using namespace std;
using namespace ki;

class test
{
public:
	test() : value( this, get_Value, set_Value ) {}
	property<int> value;

private:
	int  get_Value()      { return value_data; }
	void set_Value(int x) { value_data = max( 0, min( x, 100 ) ); }
	int  value_data;
};

int main()
{
	test t;
	t.value = -12; cout << t.value << endl;
	t.value = 300; cout << t.value << endl;
	t.value =  45; cout << t.value << endl;
	return 0;
}

こんな風に使うもの。問題点は、

結論としては、結構面倒、ということで。

01:06 02/08/04

昨日は々と会いました。

02:08 02/08/02

0208020802だ。

int status[argc]; つて、gcc 拡張なんですけど。

cite: scratch leaf

3年前まではそうでしたねー。

21:12 02/08/01

暑いです。暑すぎます。太陽熱で焼死しそうです。笑止。

なぜ作る

「作りたいから作る」というのが唯一の理由だと仮定すると、作ったらそれっきりで公開する必要も無くなってしまう。私の場合、作りたいから作ってそのままHDDを占有していたりPDに追いやられたりしているプログラムはいくつかあるけど、そうならずにベクターとか@niftyのデータライブラリで公開してみたものもいくつかある。なぜ公開するのだろう。

cite: 日記。

なぜだろう。私の場合一番多くをしめる理由は、作りたいものを作ったら、 次はそれについて語り合いたいから、かな。読みたいから読んだ本は大抵他人と 感想を交わしたくなるのと似たようなものというか。最近は、Noahなんかより よっぽどC++のtemplateについて3日間くらい夜を徹して誰かと語り合いたい気分なので、 私がWebを通して公開するモノは、ついついこのtalkのページのソースコード断片に 偏ってしまうのですが。

もちろん「使いたいから作った」ソフトもあって、例えばS-DIademなる名前の (プロトタイプとすら呼べない段階で開発停止してる)ブラウザなんかは、 「ポップアップ抑止」とか「Scriptを簡単にON/OFFできる」みたいな、 いわゆるタブブラウザの定番機能を持ったSDIのブラウザが使いたいぞ! というのが動機でした。

公開していないものでは、g++ hoge.cpp とだけ打ってコンパイルすると a.exeとかa.outとかそんな名前の実行ファイルが生成されてしまうのが不便だったので、 コマンドに -o hoge をくっつけて名前を整えるだけのフィルタを 作ってみたり。この手の小物は沢山ありますが、これは「使いたいから」ですね。

あるいはcaldixは、作りたいからでも使いたいからでもなく、 比較的他人のために作ったという傾向が強いかもしれません。 更にUnDller(アーカイバDLLにコマンド文字列を送りつけるGUI)は、 作りたいから作ったNoahを作るために使いたかったから作ったのですが これは一体どう解釈したものか。

と、私一人の場合でもやはり一概には言えないわけで、 結局の所、そう、「私の場合はどちらかと言えば」の話。

23:08 02/07/31

Lhaplusの[ここにコピー]などより下に回り込む右D&D拡張は凄いぞーとか メモ帳も捨てたもんじゃないぞーとか俺はxyzzyユーザだぞーとか事ある毎に 発言してると、「フリーウェア作者は自分で使いたいからソフトを作ってるのでは ないのですか?」と残念がられちゃったりするのですが、私の場合はどちらかと言えば、 「使いたいから」ではなくて「作りたいから作ってる」のだよなぁ。あるいはせいぜい、 「使いたいと思えるような面白げなソフトの選択肢を増やす」ために。

もっとも、最近は7-zipのzipとupxしか使わないので圧縮はNoahに一本化しているし、 エディタも試しにGpに一本化してみているので、そんな方にも安心です。

NoahXt

レジストリ初期化機能欲しいよー。

cite: 雑記

設定画面で一旦チェック外して[適用]とか押したらレジストリ消えない? それで全部消せるつもりで書いてるので、もし残ってたら何となくバグっぽい。

23:00 02/07/30

Digital Marsの、 beta test C++ Compiler Version 8.29.20

  • Implemented member template functions.
  • Implemented member template classes.
  • Implemented class template partial specializations.
  • Implemented partial ordering of class template specializations.
  • Implemented class template explicit specializations.
  • Implemented template friends.
  • Implemented new C++ 98 for statement scoping rules. This can be disabled with -A- (for backwards compatibility with old code), and then re-enabled with -As.
  • Operator delete can now take cv-qualified pointers.
  • ...

cite: Digital Mars C++ Downloads (強調筆者)

キタ━━━(゚∀゚)━━━ッ!!! これでtemplate遊び用のメインコンパイラとしても 使えるかもしれない。というか、これまで気付かなかったけど explicit specialization もまだ実装されてなかったのか。

17:56 02/07/30

Vectorへの新規登録・登録修正用のメールのテンプレートなんですけれども。

※差し替えの場合には、修正の必要のある項目以外は省略してお書きください。

cite ソフト登録フォーム記入例(差し替え)

うわーごめんなさい。今気付くまで毎回全部コピペして送ってました。 反省。ちゃんと読まないと。

映画

タイムマシン、見てきました。 ネタバレない程度の感想としては、なるほどこう来たか、と感心。巧いこと エンターテイメントに仕上がってますね。原作の雰囲気も好きだけれど、 個人的にはこんな「お話」としてのタイムマシンも楽しくて良いのではないかと思います。 2030年のあのキャラとかいい味出している。

絵としては、宣伝で使われてる「川が大地を浸食していく様子の"早送り"」を 初めとして、時間がハイスピードで流れてくのを表す映像が次々出てくるのは 面白かったです。けれど、何だかあれよあれよという間に過ぎ去って終わってしまったのが いささか残念。 <!--

08:41 02/07/25

JISってWebから読めたのか。

23:24 02/07/23

書くことがない時は boost ネタ。

uBLAS。 線形代数のクラスライブラリ。要するに行列とかベクトルとかの計算ですな。 Expression Template という手法を用いて効率化を図った実装が用意されています。 Expression Template ってのは式をそのまま式として関数の引数として渡したりする 方法(参照) なわけですが、それがどう効率化に繋がるかというと、 例えば1000x1000のデカい行列の計算をしたりするときに

B + C * D

素直に作ると、まず C * D を計算してそれを B に足すわけですが、 ここで C * D という 1000x1000 行列の分の一時領域が必要に なっちゃったりするわけです。そこで、この式はB+C*Dという式( expression ) として覚えておいて、実際に値が必要となった時に各要素の値をダイレクトに算出 ( B[i][j] + ΣC[i][k]・D[k][j] )することにすれば、テンポラリが 不要になるという寸法。 (Reference: Expression Templates)

他にも実装によっては、ループを明示的に書かずに

A(_i,_j) = _i * _j;

と書けば、行列Aの全ての要素Aijをi*jと設定するコードとするように作ることも可能とか。

オセロの思考ルーチン

てか、あんなのより評価関数に力を入れた方がきっと効率が良いですよ。

cite: 夢と現の狭間日記

うい。頑張りますー。去年の冬に選択課題で作ったときは確か、マス毎に点数を決めて、 あとは隅を既に取っていたらそれに応じて隣の点を上げる調整をしておしまい的なことで 済ませてしまったので、今回はも少しマジメに考えたいところ。

23:00 02/07/20

昨日は学科の面々で、打ち上げ。Y vs S とか。

オセロの定石を調べたりSuzukiさんの ゲーム木の探索問題 を読んだりしていたはずが例の如くいつの間にかスパイダソリティア。しかし 何故にこのゲームにこんなにはまっているのか自分でもよくわからない。

タイムマシン」を見に行こうと 思ってたのをすっかり忘れてた。

presented by k.inaba (kiki .a.t. kmonos.net) under CC0