"with" loss of generality

00:53 03/09/22

海外フリーソフトまとめ from このスレ 。素晴らしい!

02:26 03/09/21

しばらく前に書いた USB万歩計 を購入したので、20日の朝に家を出るときから装着しています。 歩数計測機能自体はごく普通ですけれど、面白いのが USB ケーブルで PC に繋いで、データの集計を取れるという機能。 帰宅と同時に早速専用ソフトをインストールし、取り込んでみました。 何時頃自分が移動していたか、が一目でわかっ… たからと言って何の意味があるのか謎ですが、眺めていると何とも楽しい。

付属ソフト実行画面

ちなみに左上のおじさんの名前はキートンさんらしいです。

なお今日は偶然朝から地下鉄9駅沿線ウォーキングしたり、 夜は夜で会っていた友人を煽って三越前から上野まで徒歩遠足していただけなので、 普段はそんなに歩いてないのです。 ところで来週は64牛めぐりの予定。 (追記:牛巡り写真集

02:30 03/09/20

これを逃すと終電だ!という電車が「異音を検知したため云々」とか言って ホームで止まったまま動かなかったりするのであった。

Google Code Jam 2003。去年とはまた違った感じの、 プログラミングコンテスト兼社員募集を Google が開くらしいです。 使える言語は Java, C++, C# or VB.NET だそうな。 面白そうなので時間があったらやってみようかなぁ。 日本からだと賞金はもらえないっぽいけどあまり関係ないし。 (ネタ元

何となく気分的に、という理由で好きな「メタプログラミング」について、 どこまで広い応用が考えられるのか知識を収集しようとしてみる。とりあえず「プログラム変換」についてとっかかりになりそうなページを読み始め。要は、 人間の手では効率が多少悪くても"わかりやすい"プログラムを書くようにして、 そこからプログラムの "意味" を処理系が見抜いて高速なプログラムへと 自動変換してくれたら嬉しいね、って話(要しすぎ)。読まなければならない論文のリスト なんてものも同じ方のサイトで発見。

00:58 03/09/18

「国内予選」と変換しようとしたら「濃くない予選」が第一に出た。

最近不定期な用事が入ることが非常に多いので、 Yahoo!カレンダー を使ってスケジュールチェックをしてみることにしました。…なんかこう視覚化すると、 空欄をテトリス感覚で埋めたくなってしまい危険だということがわかりました。

00:10 03/09/16

身内に、wordの文書をpdfに直す手はないか? と訊かれたので Distiller 買えば~、 と即答してしまった…けど、よく考えたらプリンタの振りをして何でも pdf に落としてくれるソフトって絶対ありそう。というわけで検索したら CutePDF というのがそのものズバリ。試してみると品質もわりといいので、 自分でも導入しました。便利便利。

マンガ

下の方を見ると3週間前の私は乙一フィーバーだったらしいですが、今は こがわみさき さんブームなのです。帯によると高橋しんお奨め!らしい。自分が好きなのは 「しあわせインベーダー」の中の"ふたりなみだ"。 驚いたり緊張したりすると何故か鼻血が出てしまう藤木君と同じく涙が出る和光さん、 という二人があれやこれや、てなお話。「でんせつの乙女」 もいいなぁ。ありえなくはな…くないよそれやっぱちょっと変、 な微妙な設定から始まる物語が楽しい。

00:20 03/09/15

ACM/ICPC、 参加しよっかなーと考えている方は、 次の金曜が参加登録締め切り日らしいのでお早めに。

例によって

敬老の日おめ

お知らせ

話せば長いのですが。 wisnet (ここのレンタルサーバ会社) さんから半年近く前に"メール管理システムを新システムに移行することをオススメしますのお知らせ"が来ていたのでやっと今日切り替えた際に今使っているアドレスであるところのki@kmonos.netのパスワードも変更されたのを大学のメールアドレスに送ってもらったのだけれどその新パスワードを家の環境に設定するためにki@kmonos.netへ転送するなどというアホなことをやっただけで帰宅してしまったせいで家からメールが見られないという状況にあるため次に大学へ行く 火曜日まではメールが見られないので、 緊急の用事のある方は口頭か携帯電話か掲示板でよろしくです。

00:58 03/09/12

RTTI for D。です。

DP-COOL'03

こんな話が読めたメモ。

SOUL and Smalltalk
Prolog のような推論機構をSmalltalk上のメッセージ受け渡しで実現する、 SOUL ライブラリ。クラス間の関係を記述するメタプログラムに便利とのこと。 SmallTalk自体がかなり柔軟な言語なので、C++ 系の実装と比較してかなり自然に見えます。
Unifying Tables, Objects and Documents
XMLとSQLのデータ構造をオブジェクト指向言語 (例としてC#) へ直接的に取り込むためには、言語にList,Tuple,Union型と、 それを簡潔に記述できる記法、あとブロック渡し,yieldがあると良いよ、 という提案。
Syntax sugar for FC++: lambda, infix, monads and more
Haskell を意識して作られた、C++ 最強の関数型ライブラリ FC++ の最新バージョンについて色々。主にモナドについて。あと、 lambda機能にてC++の通常の式を真似しなかった ( cout << _1 と書けないようにした ) 根拠についてなど。
// 任意番目引数のbind、無限リスト
map( minus(4,_), enumFrom(1) ) // 3,2,1,0,-1,-2,...
// 高階多相型関数
compose( addSelf, addSelf )( 3 )           // 12
compose( addSelf, addSelf )( string("a") ) // "aaaa"
// リストモナドによるリストの内包表現
compM<ListM>()[
  X %plus% Y |
    X <= list_with(1,2,3),
    Y <= list_with(2,3),
    guard[ X %less% Y ]
]                              // 1+2,1+3,2+3 = 3,4,5
Importing alternative programming paradigms into modern object-oriented languages
一つのプロジェクトで複数のパラダイムを使い分けたいときには、 それぞれ別の言語を使うとか、欲しい機能全てを仕様に含んだ新言語を作るとか。 あるいは別の手として、様々なパラダイムを取り込める素地をもった言語に、 ライブラリとして別のパラダイムを展開するのはどうでしょう? 手始めに Lisp の"なんでもS式"というパラダイムをC++で表現してみせます。 …というライブラリ InteLib の話。 今後の方向として、Lispの代わりにProlog、C++の代わりに Ada95 を使ってみたいらしいです。
(L|DEFUN, ISOMORPHIC, (L|TREE1, TREE2),
  (L|COND, 
    (L|(L|ATOM, TREE1), (L|ATOM, TREE2)),
    (L|(L|ATOM, TREE2), NIL),
    (L|T, (L|AND,
      (L|ISOMORPHIC, (L|CAR, TREE1), 
                     (L|CAR, TREE2)),
      (L|ISOMORPHIC, (L|CDR, TREE1), 
                     (L|CDR, TREE2))
))))
Program Templates: Expression Templates Applied to Program Evaluation
コンパイラ実装に関する有名な書籍「Modern Compiler Implementation in xxx」 のチュートリアルとして作られた Tiger 言語を、C++のtemplateによる木構造へ移してそこで実行させる話。 実行時C++と完全に断絶したtemplateの世界で完結してしまっているので、 私はあまり興味を持てず。
JSetL: Declarative Programming in JAVA with Sets
制約プログラミングを行うためのJava用ライブラリ JSetL。
SML2JAVA: a source to source translator
Standard ML から Java へのソースコード変換。SMLの関数や値はJavaのオブジェクトへ。 なんと型もオブジェクトに落ちる。モジュールはクラスに。 教育用らしく変換が非常にわかりやすい…のだけど、 生成されたコードを後から弄るのは面倒そうな印象。
Constraint Imperative Programming with C++
(オブジェクト指向を用いない)手続き型言語上での制約プログラミング、 という分野の言語 Turtle をC++へ取り込んだTurtleライブラリについて。 スコープアウトによる制約の消滅など、 手続き型的な特徴が盛り込まれていてかなり面白い。
constrained<double> x, y;
require( y >= 0 );       // 制約
require( y >= 3 - 2*x ); // 制約

constrained<double> min( -1000 ); // 目標値。minをこの値に近づける
require( min == x + y );

cout << min() << endl; // 制約の範囲内でのx+yの最小値
Patterns in Datatype-Generic Programming
ちゃんと把握できませんでした。(^^;) Generic Haskell に代表される Datatype-Generic プログラミングという発展的な genericプログラミングの紹介。STL のようなコンテナ毎にイテレータを書いて云々、 という程度のジェネリックさの上を行くらしい。 container-type (C++で言えば、コンテナクラステンプレート) は、その型の構造を定義することで定義するけれど、
// α型の木 == α型の要素を持つ葉 or (左のα型木 * 右のα型木)
type α Tree = Leaf of α | Node of (α Tree * α Tree)

// α型のリスト == 空 or (先頭要素 * 残りのリスト)
type α List = Nil | Lst (α * α List)
その"型の構造"に関するgenericなアルゴリズム(datatype-generic algorithm) が書ければ、
foreach<t>( f, x ) // 引数型の構造が原始型 (intとかcharとか)のとき
   { return f(x) }

foreach<|>( f, TagLeft(x) ) // 引数型の構造がorのとき(左)
   { return TagLeft(f(x)) }

foreach<|>( f, TagRight(y) ) // 引数型の構造がorのとき(右)
   { return TagRight(f(y)) }

foreach<*>( f, (x,y) ) // 引数型の構造がpairのとき
   { return (f(x), f(y)) }
木をiterateするイテレータを書いて、リストをiterateするイテレータを書いて… という作業なんか必要なく、どのデータ構造にもgenericに適用できる foreach が書けるよ!っていう話じゃないかと思います。確かに便利そう。 実装を隠蔽した抽象データ型とか、contain する型以外の 実装用の細かいメンバをデータ構造に溜めておきたい場合とかはどうするのかな? という辺りが疑問点。
A declarative approach to solve family polymorphism problem in C++
Webに載ってないので詳細不明ですが、タイトルからして gbetaFamilyJ の family polymorphism (複数のオブジェクトをまとめて"家族" と見たときの多態。MultiMethodのように単純に階層構造に基づくのでなく、 オブジェクト一家の構成を細かく記述できるもの)を C++ で利用する話っぽい。 一番興味あるのだけどまだ見られない。。。

23:49 03/09/10

腕時計復活! アナログ/デジタルの両方ついてるALBAのヤツを愛用してるのですが、 半年前くらいにバンドが切れて以来ずっと放置してたのをやっと直しました。 …って、愛用してるんじゃなかったのか、俺は。

00:22 03/09/09

USB万歩計なんてものを教えていただいたので、これは買わないといかん。

あのやたらとゴテゴテした表示だけが唯一残念なAmazon(K.INABAの私見)を google 風のシンプルな画面から検索してくれる amagle だそうな。即お気に入りへ投入。

スクイークであそぼう」を立ち読み。 よく聞く話では SmallTalk ってこういう、子供向けの絵本感覚を目指したらしいので、 これはぴったりの本なのだろうなぁ、と思います。しかし逆に、 これが"画期的"と言われてしまう現状は SmallTalk/Squeak 的にどうなんでしょう。

DP-COOL'03 (Declarative Programming in the Context of OO Languages 2003) の議事録を読みまくる。JavaやC++の上で、 宣言型を始めとする色んなプログラミングパラダイムを展開する話です。 サンプルに tr* pokemon = select ... from pokedex というコードが何の前触れもなく出てくる論文が含まれていて、ちょっと面白かったり。 いやそれはどーでも良いけど、boost や Loki が好きな人にはオススメであります。 これとか、あと2週間で始まる GPCE'03 (Generative Programming and Component Engineering 2003) 辺りが 今の自分の興味の方向なので、 その周辺で上手いこと卒論のテーマを見つけられたら最高なんだけど。。。

22:06 03/09/07

自分の役立たずさ加減に眩暈がする。

眠い

文庫本などの最後についていたりする、「解説」。 あれって、本当に作品/作者の解説をしていて、 しかも"作品が面白いから"という理由は抜きにしても単独で読ませる解説、 というとなかなかお目にかかれない気がします。しかし昨日読んだ 蒲團 の解説には引き込まれてしまいました。うわ、 そんな評し方しちゃっていいのかおい、みたいな。

23:27 03/09/05

Dの翻訳、 0.71更新分と長くて逃げてたoverview.htmlを終わらせたので、 とりあえず完了しました。今後はちょくちょく品質改善していきます。 目下の疑問点は "Down and dirty programming" ってどう訳せばいいのか? という辺り。あとこれまで無断でやってたのだけど、せっかくだからと Walter さんに連絡してみたら光の速さで返信が。

20:48 03/09/03

純粋に理論的な興味から始まる理論的な研究というものは存在すべきであって、 何も全てに卑近な動機を求めなくてもよいのではないかなぁ、と思ったりした一日。

ML * C++

felix を触ってみようと思えどもコンパイルエラーが出たので一時的に断念。 具体的な内容は把握していないのだけれど、パッと見面白そうだと思った特徴は 「No primitive types in core language: all primitives supplied by user」 という部分。整数型とか基本的な型もユーザー側コードで定義される、 という意味に取ったのだけどあってるでしょうか。

言語そのものは小さく留めておいて、 ユーザーサイドのライブラリとして書ける物はできる限りライブラリとして提供する … というスタイルが好みなもので。例えば C++ の、first-class の関数型を持たずに function ライブラリで実現する、という方向性などにはほれぼれ。 …しかしこれって最近推してる D言語の基本理念と真逆なんですけど、 まあそれはそれでアリということで。

団扇

C6。>ゆん

09:23 03/09/03

Athena / Antenna

NaturalDocsを使ってみたかった (理由の75%) のと、Let's boost なんてページを作っておきながら 自分の公開してるソースに boost の b の字も見られないのはいかがなものかと思った (10%)のと、俺は車輪の再発明が好きだ(10%)と、実益(5%)を兼ねて、 アンテナらしきものを作成。

…したはいいけどWindows用なのでkmonos.netのサーバ上では動かず、 自宅からせっせとftpで更新しないといけないのであった。そのうち飽きそう。

00:01 03/09/02

なんとなく、決心をした。

机の上に積まれていたのを全部整頓したら、 本棚の空間を3次元的にフル活用しても物が入りきらないことが判明。 どうしたものかねぇ。

00:26 03/09/01

やる気がでない。

「君の意見には反対だが、君がその意見を主張する自由は死んでも守る。」 というヴォルテールの有名なセリフがありまして、共感を覚える方も多いと思われます。 ところでこの言葉を顕したのは本当に彼なのかそれともその後の誰かなのか、 とまあよくある疑問を 調べたページ がいつ入れたのかさっぱり覚えてないけれど お気に入りの奥底に眠っていたので読んだりしていました。

01:37 03/08/29

院試最終日

面接。筆記試験はどうでしたかと訊かれて、 手が痛かったです、と少し答えたかったけどやめました。

00:10 03/08/27

肩が痛いのである。

論理哲学論考の 野矢茂樹氏訳 が出とるそうな。

院試二日目

専門科目Ⅰ(8問必答) と 専門科目Ⅱ(2/11問選択)。 ヒープ と Petrinet と Mealy機械 と 数値積分 と 最適化コンパイラ と 論理式の代入 と OS と 論理回路 と 代数/幾何っぽい話? と Ambient計算 と 万能Turing機械 と 微分方程式の話? と オートマトンetc と 情報量? と 四元数 と A*法 と ネットワーク と プロセッサ設計? と 並列計算? の問題でした。 字の書きすぎでもう腕が動きません。

21:10 03/08/25

院試一日目

英語と数学。今年昨日までに鉛筆で書いた文字の総数と同じくらいの量を、 今日一日で書いた気がします。腕が疲れた。。。

乙一さん

ここ数日 GOTHZOO、平面いぬ。 と立て続けに読みまくりですよ。
あらすじ紹介はリンク先に任せるとして、自分の印象は…

『GOTH』は、黒くて青白い、淡々とした主人公二人がたどる淡々としてない話。 このミス2位だったらしいけれど、著者本人がミステリをやろうとして書いた、 と言っている第一話以外は謎解き的な方向とは別の物語のような感じがしました。 どれも綺麗な話。特に二話目の"リストカット事件"が好き。

『ZOO』、は本の名前にもなっている短編 "ZOO" がいい。 オチに唸らされました。どうやって考えつくんだこんな話、という点では、 その後に続く "SEVEN ROOMS" の無意味に理不尽なシステムのアイデアも凄い。 "落ちる飛行機の中で" の例によって淡々としたコミカルさも素敵です。

『平面いぬ。』 妖怪話と想像上の友達が動き出す話とぬいぐるみが動き出す話と刺青が動く話 とからなる4編の短編集。…で、いかにもオマエの好きそうな話だなぁ、 と言われそうなのは百も承知の上なのですけど、 だけど、この短編集の中の一作、想像上の友達が動き出す話 "はじめ"最高傑作。本を読み終わって他人の感想を探して Web を検索してここにたどり着いた人に同意を求めたいのだけど、 139ページのはじめのセリフ、いいよね?ね?

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