Emacsen 上で動く wiki ライクなメモとりツール。 約 5 ヶ月ぶりの version up。
SSH 2 にも対応している Windows 向け Telnet/SSH client である PuTTY の日本語版。 約 2 ヶ月半ぶりの version up。
yoichi さんの日記から。 _no
僕も D3 のときに焦った記憶が。 既に「数学で食べていくのはやめよう」と思っていたので、初めから一般企業を探したわけだけど、これがなかなか厳しそうで…。 結果、サックリ決まったけど、幸運だった (ある意味不幸だった) だけだよなぁ。
もちろん博士学位を持っていると得することもあったりする。 例えば今の職場。 研究開発 (ソフトウェア系) の部署なので、中途採用される際に研究経験を評価されたと思う。 数学の理学博士なので、どの程度効いたかは分からないけど。
最近、本当に工学研究科の修士課程に入りたくなってきた。 基礎固めしたい。
オレンジニュースから。 メモ。
かなり前にメモした web site だけど、けっきょく読んでない。 そんなわけで、実際に elisp で書きながら少しずつ読み進めていくことにした。 …暇人とか言わんといて下さい。 ;(
とりあえず階乗の再帰関数版。
(defun ys:factorial1 (first number) (if (> number 0) (* (ys:factorial1 first (1- number)) number) first))
通常のループ版。 説明用でなければ普通こちらを書くだろうな。
(defun ys:factorial2 (first number) (let ((value first) (num 1)) (while (<= num number) (setq value (* value num)) (setq num (1+ num))) value))
次は組み合わせの再帰関数版。 web page に書かれている 20, 8 を代入すると、一瞬、Meadow が止まります。
(defun ys:combination1 (m n) (if (and (> m n) (> n 0)) (+ (ys:combination1 (1- m) (1- n)) (ys:combination1 (1- m) n)) 1))
通常のループ版。
素直に書くとこうなる?
分子と分母が大きくなりすぎて、すぐに使えなくなってしまう。
それとミスがあるので後で修正しなくっちゃ。←済み。
(defun ys:combination2 (m n) (if (and (> m n) (> n 0)) (let ((denominator 1) (numerator 1) (num 1)) (setq m (1+ m)) (while (<= num n) (setq denominator (* denominator (- m num)) numerator (* numerator num)) (setq num (1+ num))) (/ denominator numerator)) 1))
もう一つ、通常のループ版。 この中ではこれが一番まとも。
(defun ys:combination3 (m n) (let ((value 1) (num 1)) (when (and (> m n) (> n 0)) (setq m (1+ m)) (while (<= num n) (setq value (/ (* value (- m num)) num)) (setq num (1+ num)))) value))
とりあえず今日はここまで。
四則演算は elisp のテキスト処理関数を使って書くことにしよう。
elisp じゃなくて Ruby で書いた方が良かったかも。 最近は全く使ってないので、こういった機会に触れないと忘れちゃう。
なんて思ったけど、elisp も似た様なものなので、とりあえずこのまま進めよう。
後で気付いたんだけど、interactive
なんて使う必要ないですね。
というわけで修正。 ;(
翌日の 5/28, gony さんや bg66 さんとお会いできる? 楽しみですよ。 :D
今日は四則演算。
まず初めにトークン処理関数。
あー、ミス発見。直さなきゃ。
←done.
(defun ys:get-tokens (expression) (let (tokens) (while (string-match "[0-9]+\\|[-+*/()]" expression) (setq tokens (cons (match-string 0 expression) tokens)) (setq expression (replace-match "" nil t expression))) (reverse tokens)))
で、優先順位を無視した数式処理関数。
funcall
が出てこなくて苦労した。情けない…。 ;(
(defun ys:eval-tokens (tokens) (let (token sign value) (while tokens (setq token (car tokens)) (setq tokens (cdr tokens)) (cond ((string-match "[0-9]+" token) (if value (setq value (funcall sign value (string-to-int token))) (setq value (string-to-int token)))) ((string= "+" token) (setq sign '+)) ((string= "-" token) (setq sign '-)) ((string= "*" token) (setq sign '*)) ((string= "/" token) (setq sign '/)))) value))
優先順位に対応した数式処理関数はまた明日 (か明後日)。
Windows 向け sftp, scp クライアント。 所謂人柱版。
MacOS X の通常のアプリケーションで Anthy や PRIME を利用できるようにするツール。 約 1 ヶ月ぶりの version up。
MacOS X 10.4 (Tiger) に対応した模様。
skin により見た目を変えられる多機能なメディア・プレーヤ for Windows。 約 2 ヶ月半ぶりの version up。
Windows では定番のメディア・プレーヤ Winamp を日本語化するキット。
Emacsen 上で動く wiki ライクなメモとりツール。 数日ぶりの version up。
軽快さと多機能性を兼ね備えたテキスト・エディタ。 約 4 ヶ月ぶりの version up。
美しいペン習字風 font。
kyo さんの日記。 砂岡さんの日記経由で。 メモ。
“HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer
”にDWORD
値でDesktopProcess
を作成し、値を1
にする。
前の会社でやっていた様な「安定した技術で良いものを」的な発想から、 次のステップと考えられる「新しい技術を取り入れた画期的なものを」的発想に進みたい。 今の仕事関連とうまいこと絡められたら、論文が書けるようになると思うんだけどなぁ…。
定番の XML の入門書。 前の会社で途中まで読んだんだけど、会社のお金で購入してしまったので続きが読めてない。 リファレンス本もそうだけど、前の会社の時に自腹で買っておけば良かった。
四則演算の続き。
まず初めに、リスト中にあるかっこで囲まれた部分を先に処理する部分を作る。
前回作った ys:eval-tokens
を仮に組み込んでみた。
(defun ys:calc-subfunc (tokens) (let (token new-tokens) (while tokens (setq token (car tokens)) (setq tokens (cdr tokens)) (when (string= "(" token) (let (subtokens (depth 1)) (while (> depth 0) (unless tokens (error "かっこの対応がおかしいよ!")) (setq token (car tokens)) (setq tokens (cdr tokens)) (cond ((string= ")" token) (setq depth (1- depth))) ((string= "(" token) (setq depth (1+ depth)))) (when (> depth 0) (setq subtokens (cons token subtokens)))) (setq token (int-to-string (ys:calc-subfunc (reverse subtokens)))))) (when (string= ")" token) (error "かっこの対応がおかしいよ!")) (setq new-tokens (cons token new-tokens))) (setq tokens (reverse new-tokens))) (ys:eval-tokens tokens))
最終行まで来た時点でかっこは既になく、あとは +, -, *, / の計算のみで済む (はず)。
あー、string-to-number
使うべきなのか。
続きはまた後日。
というわけで、ちょっとまとめてみました。 間違いの修正など、御意見をいただけたらと思います。
Meadow のコンパイルでも、configure.meadow.bat の実行時にこれらのオプションを指定できると面白いかな?
四則演算の続き。 面倒臭くなってきたのでかなりテキトー。
(defun ys:get-tokens (expression) (let (tokens) (while (string-match "[0-9]+\\|[-+*/()]" expression) (setq tokens (cons (match-string 0 expression) tokens)) (setq expression (replace-match "" nil t expression))) (reverse tokens)))
(defun ys:calc-subfunc (tokens) (let (token new-tokens) ;; かっこをはずす (while tokens (setq token (car tokens)) (setq tokens (cdr tokens)) (when (string= "(" token) (let (subtokens (depth 1)) (while (> depth 0) (unless tokens (error "かっこの対応がおかしいよ!")) (setq token (car tokens)) (setq tokens (cdr tokens)) (cond ((string= ")" token) (setq depth (1- depth))) ((string= "(" token) (setq depth (1+ depth)))) (when (> depth 0) (setq subtokens (cons token subtokens)))) (setq token (number-to-string (ys:calc-subfunc (reverse subtokens)))))) (when (string= ")" token) (error "かっこの対応がおかしいよ!")) (setq new-tokens (cons token new-tokens))) (setq tokens (reverse new-tokens)) (setq new-tokens nil) ;; *, / を計算する (let ((number (string-to-number (car tokens))) term) (setq tokens (cdr tokens)) (while tokens (setq token (car tokens)) (setq tokens (cdr tokens)) (if (not term) (cond ((string= "+" token) (setq term '+)) ((string= "-" token) (setq term '-)) ((string= "*" token) (setq term '*)) ((string= "/" token) (setq term '/)) (t (error "変なところに算術記号じゃない文字が?"))) (if (or (eq term '*) (eq term '/)) (progn (setq number (funcall term number (string-to-number token))) (setq term nil)) (setq new-tokens (cons term (cons number new-tokens))) (setq number (string-to-number token) term nil)))) (setq tokens (reverse (cons number new-tokens))) ;; +, - を計算する (let ((value (car tokens))) (setq tokens (cdr tokens)) (while tokens (setq term (car tokens)) (setq tokens (cdr tokens)) (setq number (car tokens)) (setq tokens (cdr tokens)) (setq value (funcall term value number))) value))))
(defun ys:calculation (expression) (ys:calc-subfunc (ys:get-tokens expression)))
あー、無駄な部分があるー。 でも放置。
UNIX 系 OS や Windows 上で動くウィンドウ・アプリケーション統合開発環境。 約 3 週間ぶりの version up。
Windows 向け GCC を中心とした開発環境。 所謂人柱版。
オレンジニュースから。 メモ。
7/13 発売予定のツアードキュメント DVD。
8/17 発売予定のライブ完全収録 DVD。
6/24 には NHK で“ポップジャム・ピュアサイド東京事変”という特番が予定されている模様。 楽しみだ。 :)
非常に高機能な画像処理ツール。 安定版としては約 1 ヶ月ぶりの version up。
非常に高機能な画像処理ツール Gimp の Windows 版。 約 1 ヶ月ぶりの version up。
Apple 社が公開しているジュークボックス・ツール。 約 4 ヶ月ぶりの version up。
SSH クライアント PuTTY に日本語化パッチなどを適用したもの。 約 2 ヶ月半ぶりの version up。
MacOS X 向け dvi viewer。 所謂人柱版。
話し合いやメール処理、雑用ばかり。 ふむう。
しっかり勉強してきた工学研究科出身者は本当に凄い。 などと今年の新人を見ていて思った。 論理的指向なんて (数学科のやるような) 数学やってなくてもちゃんと身につくのだ。
しばたさんの日記から。 script-fu.exe のクラッシュ対策に関する情報などが掲載されている。
標準的な選択肢になりつつある multi platform な web browser。 約 1 ヶ月ぶりの version up。
multi-platform な MUA 付き web browser。 約 1 ヶ月ぶりの version up。
複数の文字コードに対応した C の正規表現ライブラリ (BSD ライセンス)。 約 1 ヶ月ぶりの version up。
Masuda さんの日記から。 お、これは楽しみ。 :D
6/3 に京都工繊大で開かれる研究集会。 行きます。
今朝のメールでは「まだプログラムを組めてない」という話だったけど、なんかちゃんと決まってる。 素早いなぁ。
この研究集会の前の週にある東京工科大学への出張の翌日 (5/28) は、 久々に横田さんにお会いできる模様。 1 年半ぶりかな。 ちなみに bg66 さんは約 1 年ぶり、gony さんは約半年ぶりか。
今日はちょっと元気が残ってるので。
(defvar ys:8queen-board-data nil "チェス盤を示す変数") (defconst ys:8queen-board-width 8 "チェス盤の幅") (defconst ys:8queen-board-height 8 "チェス盤の高さ")
(defun ys:8queen-init-board () "チェス盤の初期化" (setq ys:8queen-board-data nil) (let ((index 0) (size (* ys:8queen-board-width ys:8queen-board-height))) (while (< index size) (setq ys:8queen-board-data (cons nil ys:8queen-board-data) index (1+ index)))))
(defun ys:8queen-put-queen (x y) "チェス盤にクイーンを置く" (if (and (< x ys:8queen-board-width) (< y ys:8queen-board-height)) (let (new-list pieces (position (+ x (* y ys:8queen-board-width))) (index 0) (size (* ys:8queen-board-width ys:8queen-board-height))) (while (< index size) (setq pieces (if (= index position) t (nth index ys:8queen-board-data))) (setq new-list (cons pieces new-list) index (1+ index))) (setq ys:8queen-board-data (reverse new-list))) (error "盤の外にクイーンを置くつもり?")))
(defun ys:8queen-remove-queen (x y) "チェス盤からクイーンをどかす" (if (and (< x ys:8queen-board-width) (< y ys:8queen-board-height)) (let (new-list pieces (position (+ x (* y ys:8queen-board-width))) (index 0) (size (* ys:8queen-board-width ys:8queen-board-height))) (while (< index size) (setq pieces (if (= index position) nil (nth index ys:8queen-board-data))) (setq new-list (cons pieces new-list) index (1+ index))) (setq ys:8queen-board-data (reverse new-list))) (error "盤の外にクイーンを置いたつもり?")))
(defun ys:8queen-display-board () "チェス盤を表示する" (let ((buf (get-buffer-create " *8queen-board*")) (x 0) (width (1- ys:8queen-board-width)) (y 0) (height (1- ys:8queen-board-height))) (save-excursion (set-buffer buf) (erase-buffer) ;; 上端 (insert "┏") (while (< x width) (insert "━┳") (setq x (1+ x))) (insert "━┓\n") ;; 中 (while (< y height) (setq x 0 width ys:8queen-board-width) (insert "┃") (while (< x width) (if (nth (+ x (* y ys:8queen-board-width)) ys:8queen-board-data) (insert "●") (insert " ")) (insert "┃") (setq x (1+ x))) (insert "\n┣") (setq x 0 width (1- ys:8queen-board-width)) (while (< x width) (insert "━╋") (setq x (1+ x))) (insert "━┫\n") (setq y (1+ y))) ;; 下端 (setq x 0 width ys:8queen-board-width) (insert "┃") (while (< x width) (if (nth (+ x (* y ys:8queen-board-width)) ys:8queen-board-data) (insert "●") (insert " ")) (insert "┃") (setq x (1+ x))) (insert "\n┗") (setq x 0 width (1- ys:8queen-board-width)) (while (< x width) (insert "━┻") (setq x (1+ x))) (insert "━┛\n")) (display-buffer buf)))
修正中…。←done.
(progn (ys:8queen-init-board) (ys:8queen-display-board) (sit-for 1) (ys:8queen-put-queen 0 0) (ys:8queen-display-board) (sit-for 1) (ys:8queen-put-queen 0 1) (ys:8queen-display-board) (sit-for 1) (ys:8queen-remove-queen 0 0) (ys:8queen-display-board) (sit-for 1) (ys:8queen-put-queen 3 4) (ys:8queen-display-board))
眠くなってきたので続きはまた今度。
“object-oriented programming”を意識して作られた interpreted scripting language。 所謂人柱版。
標準的な選択肢になりつつある multi platform な web browser, Firefox の日本語版。 約 1 ヶ月ぶりの version up。
Windows 定番の message user agent。 約 1 ヶ月ぶりの version up。
各所より。 ふむ…。
高機能な Windows 向け filer。 約 2 ヶ月ぶりの version up。
“クイーンを左端に置いてみよう”と“クイーンを 8 個置いてみよう”は後回し (やらないかも)。
(defsubst ys:8queen-exist-piece (x y) "指定した位置に、既にクイーンが置いてあるか否か" (nth (+ x (* y ys:8queen-board-width)) ys:8queen-board-data))
(defun ys:8queen-exist-getable-pieces (x y) "指定した位置にクイーンがある場合、他のクイーンを取ることが可能か否か" (let ((i 0) j exist) ;; 横方向 (while (and (not exist) (< i ys:8queen-board-width)) (when (and (ys:8queen-exist-piece i y) (not (= i x))) (setq exist t)) (setq i (1+ i))) ;; 縦方向 (setq i 0) (while (and (not exist) (< i ys:8queen-board-height)) (when (and (ys:8queen-exist-piece x i) (not (= i y))) (setq exist t)) (setq i (1+ i))) ;; 右肩下り方向 (setq i 0 j (- y x)) (while (and (not exist) (< i ys:8queen-board-width) (< j ys:8queen-board-height)) (when (and (<= 0 j) (ys:8queen-exist-piece i j) (not (and (= i x) (= j y)))) (setq exist t)) (setq i (1+ i) j (1+ j))) ;; 右肩上がり方向 (setq i 0 j (+ y x)) (while (and (not exist) (< i ys:8queen-board-width) (<= 0 j)) (when (and (< j ys:8queen-board-height) (ys:8queen-exist-piece i j) (not (and (= i x) (= j y)))) (setq exist t)) (setq i (1+ i) j (1- j))) exist))
(defun ys:8queen-display-board () "チェス盤を表示する" (let ((buf (get-buffer-create " *8queen-board*")) (x 0) (width (1- ys:8queen-board-width)) (y 0) (height (1- ys:8queen-board-height))) (save-excursion (set-buffer buf) (erase-buffer) ;; 上端 (insert "┏") (while (< x width) (insert "━┳") (setq x (1+ x))) (insert "━┓\n") ;; 中 (while (< y height) (setq x 0 width ys:8queen-board-width) (insert "┃") (while (< x width) (if (ys:8queen-exist-piece x y) (insert "●") (insert " ")) (insert "┃") (setq x (1+ x))) (insert "\n┣") (setq x 0 width (1- ys:8queen-board-width)) (while (< x width) (insert "━╋") (setq x (1+ x))) (insert "━┫\n") (setq y (1+ y))) ;; 下端 (setq x 0 width ys:8queen-board-width) (insert "┃") (while (< x width) (if (ys:8queen-exist-piece x y) (insert "●") (insert " ")) (insert "┃") (setq x (1+ x))) (insert "\n┗") (setq x 0 width (1- ys:8queen-board-width)) (while (< x width) (insert "━┻") (setq x (1+ x))) (insert "━┛\n")) (display-buffer buf)))
(let ((x 0) (y 0) pieces) (while (< y ys:8queen-board-height) (while (< x ys:8queen-board-width) (setq pieces 0) (ys:8queen-init-board) (ys:8queen-put-queen x y) (let (i (j 0)) (while (< j ys:8queen-board-height) (setq i 0) (while (< i ys:8queen-board-width) (unless (ys:8queen-exist-getable-pieces i j) (ys:8queen-put-queen i j) (setq pieces (1+ pieces))) (setq i (1+ i))) (setq j (1+ j)))) (when (<= 7 pieces) (ys:8queen-display-board) (sit-for 1)) (setq x (1+ x))) (setq x 0 y (1+ y))))
いちおううまく動いているかな? 汚いけど…。 orz
続きはまた今度。
美しい GUI を持つ多機能と軽快さを兼ね備えた message user agent。 開発版としては約 1 ヶ月ぶりの version up。
開発者向けに font-lock のキーワードを追加する elisp。 約 2 ヶ月半ぶりの version up。
とりあえずまとめた。
削除
…「ちゃんと自分で考えながら対話的に作業する様なモード」を作りかけて止めた。 そんなわけで、汎用的に書いた部分とかは、上記のコードでは切り捨て。
とりあえずリスト版はこれで終了。 次はベクター版作成。
削除
ついでに少し書き直した。
さすがに後者の方が速い。
11 クイーンでは、前者が 330 秒程度かかったのに対し、後者は 104 秒程度で処理し終えた
(Pentium III 866MHz * 2, Windows XP SP2, -march=pentium3
を適用した Meadow 2.00)。
ちゃんとした高速化もやってみたいけど、今の僕じゃ無理かな。
ベクタ版をテキトーにまとめたものを置いてみた。
12 クイーンを上記の環境で試したら 647 秒もかかった。 来週、会社の Pentium 4 3.2GHz で試してみるか。
こちらのページを参考にして 書き直したものを置いてみた。 再度 11 クイーンを上記の環境で試したところ、25 秒程度で処理し終えた。凄いなぁ。
いちおう古い方も置いておこう。
もうちょっと頑張れそうだけど、止めておこう。
最近 Win32 API の Event 処理を使った。 自分で一から書いたコードとしては初めてだったかも。
で、その際に「Event があれば Mutex 使わないで済むじゃないか」とか、 「Event と Mutex の使い分けの基準が分かり難いなぁ」なんて思ったりして。 いや、分かってる人にとっては当然のものなのだろうけど。
メモ。
非常に高機能な画像処理ツール。 開発版。
高い機能を持つ Scheme サポート tool for emacsen。 約半年ぶりの version up。
昨夏に開催されたセミナーで使われた文書が公開されている。 メモ。
ああ、僕の書いた文書も少しは役立つことがあるのか…。 嬉しいなぁ…。
Windows 向け GCC を中心とした開発環境。 所謂人柱版。
emacsen な定番 mail user agent。 所謂人柱版。
ヤイコさんの特設サイト。 後で見よう。
7/6 発売予定のライブ・ドキュメント DVD。 gony さん向け。
8/3 発売予定のビデオ・クリップ集。
CPU の拡張命令などを利用して高速化した Windows 用 Mozilla Firefox バイナリ。 約 1 ヶ月ぶりの version up。
CPU の拡張命令などを利用して高速化した Windows 用の日本語化済み Mozilla Firefox バイナリ。 約 1 ヶ月ぶりの version up。
Windows 向け GCC を中心とした開発環境。 所謂人柱版。
C, C++, Java などのソース・コードに対応したドキュメント生成ツール。 約 1 ヶ月半ぶりの version up。
multi-platform な MUA 付き web browser, Mozilla の日本語版。 約 1 ヶ月ぶりの version up。
Windows 定番の message user agent。 約 1 週間ぶりの version up。
美しい GUI を持つ多機能と軽快さを兼ね備えた message user agent。 開発版としては数日ぶりの version up。
RealMedia 形式のメディア・ファイルを再生するライブラリなどの詰合せ for Windows。
C/C++ Reference の和訳。 めも。
2004年度未踏ソフトウェア創造事業に採用されたプロジェクト。 面白そうなのでメモ。
SSL/TLS 環境の定番。 所謂人柱版。
Windows 向け GCC を中心とした開発環境。 所謂人柱版。
暗号化通信対応軽量 SMTP/POP3-Proxy サーバ for Windows。 約 1 ヶ月ぶりの version up。
無料で使える Windows 向け CD/DVD ライティング・ソフト。 約 3 週間ぶりの version up。
美しいペン習字風 font。
MPlayer の MacOS X 版。 最近 Tiger に対応したバイナリが公開された。
yoichi さんの日記から。 僕も後で読もう。
オレンジニュースから。 5/25 って出張で東京に居るな…。
SSH クライアント PuTTY に日本語化パッチなどを適用したもの。 約 2 週間ぶりの version up。
N クイーンの解を求める 8queen.el を、 バイト・コンパイルした場合としてない場合でどれくらい処理速度が変わるか、簡単に測定してみた。
環境は自宅の常用環境、Pentium III 866MHz * 2, Main Memory 256MB * 2, Windows XP SP2, -march=pentium3
を適用した Meadow 2.00。
この程度の内容でこれだけ違うとは思わなかった。 ちょっとビックリするな。
iBook (G4 1.0GHz, Main Memory 256MB, MacOS X v.10.3, GNU Emacs 21.2) 環境で試してみたら、上記の環境より時間がかかった。 ちょっと意外。
Ruby で書かれた人工無脳。 和布蕪を使っている。
いわゆる人工無脳です。 特に Margarine に触発され、sixamo の影響をもろに受けています。
1 日目の講演は昼から。 「マルチモーダル、コーパス・言語モデル」のセッションに面白く感じた講演が複数あった。 思い付いたネタを秋以降に追求できたらいいな。
懇親会のとき、某社で翻訳アプリケーションを作っている方と少しお話した。 この方も僕と同じ理学博士だったのだけれど、学生時代に専攻していたのは自然言語処理。 …やっぱり僕みたいな状況の人って少ないのだろうな。
w3m の伊藤先生がすぐ横の席に座っていたのにはさすがに驚いた。 頻繁に質問していたのが印象的だったかな。
東京工科大学って妙に奇麗だなぁ。 国公立大学出身の僕が持っている大学のイメージとはずいぶん違う。 以前感心させられた同志社大学も凄かったけど、ここはここで凄い。
2 日目の講演は朝から。 「解析、QA、言語調査」のセッションの後半は、 自分が興味をもっている分野だったので、聴いていてとても面白かった。
他に「合同 (対話)」セッションの前半も面白かった。 結論や全体的な手法は別として、途中で出てきた細かな概念が興味深い。
帰りに大学の書店に寄った。 思っていたよりもプログラミングの本が少なく、魅かれるようなものに出会えなかった。 残念。
「合同 (対話)」セッションで司会をされていた方、どこかで見たことあるような気が。 まあ、相当な有名人みたいだから、何かの機会に見ていても不思議じゃないか。
うーん、今やってるプロジェクトで僕が進めている作業って、 実は思っていたよりもずっとまともなものなのかもしれない。 …などと今回の研究集会で思った。ド素人のくせに。 :p
GNU Compiler Collection。 所謂メンテナンス・リリース。
SSL/TLS 環境の定番。 所謂人柱版。
定番の C/C++ 用ガベージ・コレクション・ライブラリ。
Windows 定番の message user agent。
Windows では定番のメディア・プレーヤ Winamp を日本語化するキット。
skin により見た目を変えられる多機能なメディア・プレーヤ for Windows。
gony さんと横田さんおすすめ (?) のうどん・蕎麦屋さんで昼食。 独特な麺が面白かったです。
gony さんに MacOS X v.10.4 を見せてもらった。 なるほど、確かに魅力的な機能が追加されたようだけど、 「今、お金を出してまで欲しいか?」と言われるとちょっと違う。 とりあえず買わなさそう。
「Objective-C に開眼する」という決まり文句があるそうだ。 まあ、GUI 部分と MacOS X 固有の機能以外は C/C++ で処理したい、 そう思ってしまう軟弱者の僕が開眼する可能性は無さそうだけど。
皆さんちゃんと趣味の作業をしているようで、ちょっと羨ましかった。 注力したくなる目標があるか無いかで変わるんだろうな。きっと。
package システムが便利な emacs。 beta 版の version up は約 2 ヶ月半ぶり。
emacsen な定番 mail user agent。 所謂人柱版。
Windows 向けのインストーラ作成ツール。 所謂人柱版。
高機能 message user agent for Windows である EdMax の無料版。 約 2 年ぶりの version up。
EB/EPWING 形式の CD-ROM 書籍を扱うためのライブラリ。
応用数学系の雑誌に投稿された論文のレフェリーを依頼された。 サッと眺めてみて、僕がやっていたこととは直接的に繋がらない内容だったので、とりあえずお断り。 忙しいしね。
僕の師匠がよく知っている分野だったので、レフェリー候補として紹介しておいた。
最近、知らない人から送られてくる英文の非 spam メールがちょくちょく来る。 間違って要らないメールと判断してしまいそうで恐い。
今の会社の同僚に貸そうと思っている “At The Five Sopt vol.2 / E. Dolphy”を久々に聴いた。 E. Dolphy, B. Little はもちろん、他の演奏者もとんでもなくかっこいい。 さすが名盤。 一曲目の Aggression の中盤でいきなりノックアウトですよ。 :D
上記の同僚に貸そうと思っているもう一枚、 “The Cannonball Adderley Quintet In San Francisco”を聴いたのも久々。 こちらもよく名盤と言われる作品。 大好きって程じゃないけど好き。
久々に管楽器メインの作品を聴いたような気がする。 特に E. Dolphy のバスクラ。 何年ぶりか分からない。
メモ。 最近よく耳にする技術だ。
Emacs 20.7 を Cocoa, GNUstep 環境にポーティングしたもの。 所謂人柱版。
もちろん貴重だとは思うけど、20.7 はもう見捨てられ始めたからなぁ…。
美しい GUI を持つ多機能と軽快さを兼ね備えた message user agent。 開発版としては約 2 週間ぶりの version up。