ニコニコ生放送の中でも数少ないLinux関連放送の主である、いな氏が作られた「ふっふぅ~おやすみタイマー」のWindows版を作りました。
入手はこちらから。
3分に一度、ふっふぅ~が聞こえてきます。それだけです。
ソースもパッチ形式で公開しています。
本家はこちら。
※ VC++2008(Pro)で開発してますが、MinGW + Debian(以下略 の変態環境でもビルドできることを確認しました。
4.30.2009
4.27.2009
ゴールデンウィークの予定決定&模様がえ
ゴールデンウィークの予定が確定しました。
5日まではカレンダー通りお休みで、6日はファミリーそろってお出かけ。
んでもって、7日以降は通常に戻るという予定になりそうです。
遊びに誘ってくれる型は、5日までにお願いします。
あと、部屋の大幅な模様替えをしました。
ゴールデンウィーク中、誰も遊びに誘ってくれなかった場合を考慮して、ガンプラを準備してあるので、案外充実した休暇が過ごせそうです。
それではみなさんも、Enjoy!
5日まではカレンダー通りお休みで、6日はファミリーそろってお出かけ。
んでもって、7日以降は通常に戻るという予定になりそうです。
遊びに誘ってくれる型は、5日までにお願いします。
あと、部屋の大幅な模様替えをしました。
ゴールデンウィーク中、誰も遊びに誘ってくれなかった場合を考慮して、ガンプラを準備してあるので、案外充実した休暇が過ごせそうです。
それではみなさんも、Enjoy!
4.25.2009
私の.zshrcと.emacs―― 一番大切なファイル。
coLinuxを起動しようとしたら、どういう訳かブルースクリーンに。
ものすごく久しぶりに遭遇した青一面の画面だっただけに少々驚いたが、そういえばcoLinuxはこういうリスクもはらんでいるんだったと再確認。
そんでもって、やっぱりバックアップしておいた方が良さそうだと思うファイルをブログに貼り付けて保存しておこうと決意したワケ。
以前のソフトサポート用ブログは既に削除してしまったので、あちらに取ってあったバックアップが無いのだということに気づいたってのも一つの理由だけれども。
まずは.zshrc。
環境変数は.zprofileで設定してあるけど、それほど複雑じゃないから省略。
つづいて.emacs
.emacsが長いのはご愛敬。
# ブルースクリーンになった原因が、昨日のお引っ越しじゃなきゃいいんだけど……。
ものすごく久しぶりに遭遇した青一面の画面だっただけに少々驚いたが、そういえばcoLinuxはこういうリスクもはらんでいるんだったと再確認。
そんでもって、やっぱりバックアップしておいた方が良さそうだと思うファイルをブログに貼り付けて保存しておこうと決意したワケ。
以前のソフトサポート用ブログは既に削除してしまったので、あちらに取ってあったバックアップが無いのだということに気づいたってのも一つの理由だけれども。
まずは.zshrc。
環境変数は.zprofileで設定してあるけど、それほど複雑じゃないから省略。
autoload -U compinit
compinit
bindkey -e
setopt auto_cd
setopt auto_pushd
setopt correct
setopt list_packed
setopt nolist_beep
setopt hist_ignore_dups
setopt share_history
export LSCOLORS=ExFxCxdxBxegedabagacad
export LS_COLORS='di=01;34:ln=01;35:so=01;32:ex=01;31:bd=46;34:cd=43;34:su=41;30:sg=46;30:tw=42;30:o
w=43;30'
zstyle ':completion:*' list-colors 'di=;34;1' 'ln=;35;1' 'so=;32;1' 'ex=31;1' 'bd=46;34' 'cd=43;34'
# Lines configured by zsh-newuser-install
HISTFILE='/home/hogehoge/.histfile'
HISTSIZE=10000
SAVEHIST=10000
PROMPT='[%D{%Y/%m/%d(%a)} %T <%(5~,%-2~/.../%2~,%~)>]
[%n@%m]%# '
# command aliases
alias ls='ls -B --color=auto'
alias ll='ls -ABl --color=auto'
alias la='ls -al --color=auto'
alias less='lv'
alias rm='rm -rf'
つづいて.emacs
(setq inhibit-startup-message t)
(setq scroll-step 1)
(set-locale-environment nil)
(coding-system-put 'utf-8 'category 'utf-8)
(set-language-info
"Japanese"
'coding-priority (cons 'utf-8
(get-language-info "Japanese" 'coding-priority)))
(set-language-environment "Japanese")
(set-default-coding-systems 'utf-8)
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(set-buffer-file-coding-system 'utf-8)
(setq default-buffer-file-coding-system 'utf-8)
(global-font-lock-mode t)
(setq backup-inhibited t)
(setq delete-auto-save-file t)
;;Anthy
(load-library "anthy")
;;uim
(setq default-input-method "japanese-anthy-uim")
(setq uim-default-im-prop '("action_anthy_hiragana"))
(setq uim-candidate-display-inline t)
;;slime
(add-to-list 'load-path "/usr/share/emacs/site-lisp/slime/")
(add-hook 'lisp-mode-hook (lambda ()
(slime-mode t)
(show-paren-mode)))
(require 'slime)
(setq inferior-lisp-program "clisp")
(slime-autodoc-mode)
;; scheme-mode
(autoload 'scheme-mode "scheme-mode" "scheme" t)
(setq auto-mode-alist (cons '("\.ss$" . scheme-mode) auto-mode-alist))
;; html-helper-mode
(autoload 'html-helper-mode "html-helper-mode" "Yay HTML" t)
(setq auto-mode-alist (cons '("\.html$" . html-helper-mode) auto-mode-alist))
;; css-mode
(autoload 'css-mode "css-mode" "Editing CSS" t)
(setq auto-mode-alist (cons '("\.css$" . css-mode) auto-mode-alist))
;;cedet
(require 'cedet)
(global-ede-mode t)
(semantic-load-enable-code-helpers)
;; region
(setq transient-mark-mode t)
;; show clock
(display-time)
;; show column number
(column-number-mode t)
;; scheme
(setq process-coding-system-alist
(cons '("gosh" utf-8 . utf-8) process-coding-system-alist))
;; gosh interpriter path. -i option is interactive mode
(setq gosh-program-name "/usr/bin/gosh -i")
;; scheme-mode and run-scheme-mode use to cmuscheme.el
(autoload 'scheme-mode "cmuscheme" "Major mode for Scheme." t)
(autoload 'run-scheme "cmuscheme" "Run an inferior Scheme process." t)
;; pair of brace
(show-paren-mode)
;; indent
(put 'and-let* 'scheme-indent-function 1)
(put 'begin0 'scheme-indent-function 0)
(put 'call-with-client-socket 'scheme-indent-function 1)
(put 'call-with-input-conversion 'scheme-indent-function 1)
(put 'call-with-input-file 'scheme-indent-function 1)
(put 'call-with-input-process 'scheme-indent-function 1)
(put 'call-with-input-string 'scheme-indent-function 1)
(put 'call-with-iterator 'scheme-indent-function 1)
(put 'call-with-output-conversion 'scheme-indent-function 1)
(put 'call-with-output-file 'scheme-indent-function 1)
(put 'call-with-output-string 'scheme-indent-function 0)
(put 'call-with-temporary-file 'scheme-indent-function 1)
(put 'call-with-values 'scheme-indent-function 1)
(put 'dolist 'scheme-indent-function 1)
(put 'dotimes 'scheme-indent-function 1)
(put 'if-match 'scheme-indent-function 2)
(put 'let*-values 'scheme-indent-function 1)
(put 'let-args 'scheme-indent-function 2)
(put 'let-keywords* 'scheme-indent-function 2)
(put 'let-match 'scheme-indent-function 2)
(put 'let-optionals* 'scheme-indent-function 2)
(put 'let-syntax 'scheme-indent-function 1)
(put 'let-values 'scheme-indent-function 1)
(put 'let/cc 'scheme-indent-function 1)
(put 'let1 'scheme-indent-function 2)
(put 'letrec-syntax 'scheme-indent-function 1)
(put 'make 'scheme-indent-function 1)
(put 'multiple-value-bind 'scheme-indent-function 2)
(put 'match 'scheme-indent-function 1)
(put 'parameterize 'scheme-indent-function 1)
(put 'parse-options 'scheme-indent-function 1)
(put 'receive 'scheme-indent-function 2)
(put 'rxmatch-case 'scheme-indent-function 1)
(put 'rxmatch-cond 'scheme-indent-function 0)
(put 'rxmatch-if 'scheme-indent-function 2)
(put 'rxmatch-let 'scheme-indent-function 2)
(put 'syntax-rules 'scheme-indent-function 1)
(put 'unless 'scheme-indent-function 1)
(put 'until 'scheme-indent-function 1)
(put 'when 'scheme-indent-function 1)
(put 'while 'scheme-indent-function 1)
(put 'with-builder 'scheme-indent-function 1)
(put 'with-error-handler 'scheme-indent-function 0)
(put 'with-error-to-port 'scheme-indent-function 1)
(put 'with-input-conversion 'scheme-indent-function 1)
(put 'with-input-from-port 'scheme-indent-function 1)
(put 'with-input-from-process 'scheme-indent-function 1)
(put 'with-input-from-string 'scheme-indent-function 1)
(put 'with-iterator 'scheme-indent-function 1)
(put 'with-module 'scheme-indent-function 1)
(put 'with-output-conversion 'scheme-indent-function 1)
(put 'with-output-to-port 'scheme-indent-function 1)
(put 'with-output-to-process 'scheme-indent-function 1)
(put 'with-output-to-string 'scheme-indent-function 1)
(put 'with-port-locking 'scheme-indent-function 1)
(put 'with-string-io 'scheme-indent-function 1)
(put 'with-time-counter 'scheme-indent-function 1)
(put 'with-signal-handlers 'scheme-indent-function 1)
(put 'with-locking-mutex 'scheme-indent-function 1)
(put 'guard 'scheme-indent-function 1)
;; memo
(setq user-full-name "hogehoge")
(setq user-mail-address "e-mail@example.jp")
(defun memo ()
(interactive)
(add-change-log-entry
nil
(expand-file-name "~/.memo/memo.txt")))
(define-key ctl-x-map "M" 'memo)
;; password hide
(add-hook 'comint-output-filter-functions
'comint-watch-for-password-prompt)
;; c-mode hook
(add-hook 'c-mode-hook
'(lambda ()
(c-set-style "BSD")))
(add-hook 'c++-mode-hook
'(lambda ()
(c-set-style "BSD")))
;; ls color mode off
(add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)
;; w3m
(require 'w3m-load)
;; wget-el
(load "w3m-wget")
.emacsが長いのはご愛敬。
# ブルースクリーンになった原因が、昨日のお引っ越しじゃなきゃいいんだけど……。
4.24.2009
coLinuxのディスクを拡張
これまで4GBのディスクイメージを割り当てて動かしてきたけれど、使用率が90%を超え、いい加減足りなくなる気配が見えてきたので、足りなくなる前に増設することに。
これまで何度も経験しているから、もう慣れたもんだね。
下準備として、10GBのブランクイメージ(hogehoge)を用意。今回はfsutilでやったけど、ネット上で適当に拾ってきても良いと思う。
拾ってきたら、coLinuxを止め、設定ファイルを書き直す。
具体的には、
ここまでできたらcoLinuxを起動。
(心配ならシングルユーザモードでやるべし)
coLinuxコンソールからrootでログインし
書き込みが終わったら(我が家の環境では20分ぐらいかかった)、新しいディスクに対して
ディスクチェックがすんだら、
リサイズ後には、もう一度ディスクチェックをかけてcoLinuxを終了。
今度は設定ファイルのプライマリディスクに新しいディスクを持ってきて起動検査をする。
うまくいけばそれでよし。
古いディスクは、しばらくバックアップのためにとっておいて、トラブルがあったらいつでもリストアできるようにしておいた方が良さげ。
これまで何度も経験しているから、もう慣れたもんだね。
下準備として、10GBのブランクイメージ(hogehoge)を用意。今回はfsutilでやったけど、ネット上で適当に拾ってきても良いと思う。
拾ってきたら、coLinuxを止め、設定ファイルを書き直す。
具体的には、
cobd2="C:\coLinux\hogehoge"のような感じで、今持ってきたイメージを適当な番号のcobdデバイスに割り当ててやる。
ここまでできたらcoLinuxを起動。
(心配ならシングルユーザモードでやるべし)
coLinuxコンソールからrootでログインし
# dd if=/dev/cobd0 of=/dev/cobd2とかして、古いディスクの内容を新しいディスクに書き込んでやる。
書き込みが終わったら(我が家の環境では20分ぐらいかかった)、新しいディスクに対して
# e2fsck -f /dev/cobd2とかしてディスクチェックを書ける。
ディスクチェックがすんだら、
# resize2fs -p /dev/cobd2とかしてディスクサイズをリサイズしておく。
リサイズ後には、もう一度ディスクチェックをかけてcoLinuxを終了。
今度は設定ファイルのプライマリディスクに新しいディスクを持ってきて起動検査をする。
うまくいけばそれでよし。
古いディスクは、しばらくバックアップのためにとっておいて、トラブルがあったらいつでもリストアできるようにしておいた方が良さげ。
4.23.2009
Codezineに記事が掲載されました。
wxJavaScriptを使ったデスクトップアプリケーションの作成
と題して、wxWidgetのJavascript向け実装である、wxJavaScriptに関する記事を掲載していただきました。
また、手元の環境でより詳細なベンチマークができないか検討した上で、いつものトコロにて以下の記事を公開しております。
ご参考までにご活用ください。
モンテカルロ法による円周率の計算を用いたベンチマークスクリプト
と題して、wxWidgetのJavascript向け実装である、wxJavaScriptに関する記事を掲載していただきました。
また、手元の環境でより詳細なベンチマークができないか検討した上で、いつものトコロにて以下の記事を公開しております。
ご参考までにご活用ください。
モンテカルロ法による円周率の計算を用いたベンチマークスクリプト
4.16.2009
Logicool Wireless Mouse M305を買ってみた。(写真アリ)
これまで使ってきた、ビックピーカン(池袋本店)で購入した500円マウスが、USBポートに差し込んでいるのに認識されないとか、使っている最中に突然抜けたことにされちゃうとかで、いい加減使い物にならなくなってきたので、マウスを買い換えることに。
これまで500円代のマウスしか使ったことが無かったけれど、それで何度も買い換えている現状を鑑みると、多少高くとも、ある程度長く使える製品を購入した方が、結果として出費は少ないのではないかと考えられた。
そこで、今回は人生初のワイヤレスマウスにチャレンジ。
購入したのはLogicool Wireles Mouse M305という、4月10日に発売されたばかりの新製品。
ブラックが安かったけれど、今使っているPC本体の色がホワイトであることと、今後も黒いPCを買う予定は無いことを考えてシルバーをチョイス。
いずれの色も3000円以下で購入できるので、ビックピーカン店頭で5000円などと謳われているワイヤレスマウスを見てきた者としては、大変お得感がある。
さっそく箱をあけて、内容物を確認。
電池が付属していないと不安だったのでエネループを一緒に購入した。

パッケージ裏面。
従来の300倍のデータ転送速度なんだとか。
たぶん、1000dpiのセンサを搭載した光学マウスは、自宅で使う者としてはハジメテかも。

保証書。
これまでマウスをほぼ1年ごとに買い換えてきた身としては、3年も保証してくれるのは、飛び上がるほどにうれしい。

さっそくパッケージを開封。
あけ口がどこか分からなくて困ったけれど、5分ほど格闘してようやくあけることができた。

開封後、内容物を並べてみると、なんと単3電池が付属している……。
エネループを買う必要が無かったとは……orz
まぁ、今後バッテリーを交換しなければ居なくなったときに備えているということで納得するか。
それにしても、最近の製品じゃ電池付属って当たり前なんだろうか?(´・ω・`)
少なくとも、子どもの頃ハマったミニ四駆は電池別売りだったぞ。
気を取り直して内容物を確認。
ドライバやら、クイックスタートよりも詳しい取扱説明書の類は入っていないらしい。
小型ワイヤレスマウスってのがウリらしかったので、大きさが気になっていたけれど、単三電池より一回り大きいぐらいで、以前使っていたものとそう変わらなくて安心した。
ナノレシーバーには、Logicoolのロゴが印字されている。

マウス後部の電池カバーを開けてみたところ。
電池がやや入れづらい印象を受けた。
ただ、重さについてはAmazonで表示されていた輸送重量が500グラム弱だったので、重たいかな?と思っていたけれど、いざ電池を入れて持ってみると、重さもストレスになるほどのものではなく、コンパクトデジカメと大差なかったので安心。

マウス前面。
画像だとわかりにくいけれど、チルトホイールを搭載している。
以前使っていたマウスが、500円にしては珍しくチルトホイールを搭載していたので、これは譲れないポイントだった。
一度この使い心地になれると、なかなか他に乗り換えられないと思う。

パッケージ裏面で強調されていた、ソフトラバーの側面。
確かに触り心地はいいかも。

本体底部。
スイッチと電池カバーを開けるためのボタンが付いている。
使わないときは電源OFFにしとけば、電池の持ちも良くなるって事か?
一点だけ、マウス上部後方にロゴが印刷されているのに、底面にまでロジクールのロゴが必要なんだろうかとは思ったけれど、きっと自己主張の強い会社なんだろうね。

一通り眺めたところで、さっそくパソコンにつないでみる。
使い方は至ってシンプルで、
という4ステップで使える。
マウスのボタンに機能を割り振るには専用のソフトを落としてくる必要があるけれど、そうでなければ特別ドライバをインストールするような作業も必要ない。
こういう所は、最近の高機能化が進むマルチボタンマウスに比べたら、断然使いやすい所だと思う。
電源を入れると、マウス上部のバッテリ残量ランプが緑色に光る。
でもこのランプ、電源ONの時に10秒ぐらい光るだけで、その後はほとんど活躍する場が無い。
バッテリ残量が少なくなったら、赤く点滅して警告してくれるらしいので、その時の働きに期待。

ナノレシーバーを差し込んでみたところと、大きさの比較。
横に刺さっているのは、HHK Lite2のUSBケーブル。(要するにプリンタなんかにも使われている普通のUSBケーブル。)
こうしてみると、ナノレシーバーは1/5ぐらいしか飛び出してないことが分かる。
小さいとは聞いていたけれど、ここまで小さいとは思わなかった。


実際にGIMPやIllustratorを使ったデザインチックな作業とか、プログラミングをするときのコンポーネント配置とか、Flashを使ったウェブゲームに使ってみたけれど、非常に快適に動いてくれている。
専用のソフトを入れればゲーミングマウスとしてゲーム起動時だけボタンの役割を変えるようなこともできるみたいだし、かなり使い勝手はいいと思う。
左右のボタンのクリック感も良く、ホイールも狙ったところにビシっと決められてストレスがない。
本体のサイズだけ合って、チルトホイールが若干使いにくいと感じる場面もあったけど、それ以外は100点な製品だと思う。もしかしたら、マウスにこだわるユーザにしてみたらダメなところがあるのかもしれないけれども。
また、マウスのように良く動かす製品について、ケーブルの取り回しがないことがこれほど楽なことだとは予想谷しなかった。
おそらく、今後買い換えるときもワイヤレスマウスにするだろうと思う。
これに感動したあげく、M305オーナーの会でも立ち上げてしまいそうな勢いだ。
ちょっと使えるマウスを探している方がいたら、一緒にM305オーナーになりませんか?
これまで500円代のマウスしか使ったことが無かったけれど、それで何度も買い換えている現状を鑑みると、多少高くとも、ある程度長く使える製品を購入した方が、結果として出費は少ないのではないかと考えられた。
そこで、今回は人生初のワイヤレスマウスにチャレンジ。
購入したのはLogicool Wireles Mouse M305という、4月10日に発売されたばかりの新製品。
ブラックが安かったけれど、今使っているPC本体の色がホワイトであることと、今後も黒いPCを買う予定は無いことを考えてシルバーをチョイス。
いずれの色も3000円以下で購入できるので、ビックピーカン店頭で5000円などと謳われているワイヤレスマウスを見てきた者としては、大変お得感がある。
さっそく箱をあけて、内容物を確認。
電池が付属していないと不安だったのでエネループを一緒に購入した。

パッケージ裏面。
従来の300倍のデータ転送速度なんだとか。
たぶん、1000dpiのセンサを搭載した光学マウスは、自宅で使う者としてはハジメテかも。

保証書。
これまでマウスをほぼ1年ごとに買い換えてきた身としては、3年も保証してくれるのは、飛び上がるほどにうれしい。

さっそくパッケージを開封。
あけ口がどこか分からなくて困ったけれど、5分ほど格闘してようやくあけることができた。

開封後、内容物を並べてみると、なんと単3電池が付属している……。
エネループを買う必要が無かったとは……orz
まぁ、今後バッテリーを交換しなければ居なくなったときに備えているということで納得するか。
それにしても、最近の製品じゃ電池付属って当たり前なんだろうか?(´・ω・`)
少なくとも、子どもの頃ハマったミニ四駆は電池別売りだったぞ。
気を取り直して内容物を確認。
- マウス本体
- ナノレシーバー
- 単三電池×1
- クイックスタートガイド
ドライバやら、クイックスタートよりも詳しい取扱説明書の類は入っていないらしい。
小型ワイヤレスマウスってのがウリらしかったので、大きさが気になっていたけれど、単三電池より一回り大きいぐらいで、以前使っていたものとそう変わらなくて安心した。
ナノレシーバーには、Logicoolのロゴが印字されている。

マウス後部の電池カバーを開けてみたところ。
電池がやや入れづらい印象を受けた。
ただ、重さについてはAmazonで表示されていた輸送重量が500グラム弱だったので、重たいかな?と思っていたけれど、いざ電池を入れて持ってみると、重さもストレスになるほどのものではなく、コンパクトデジカメと大差なかったので安心。

マウス前面。
画像だとわかりにくいけれど、チルトホイールを搭載している。
以前使っていたマウスが、500円にしては珍しくチルトホイールを搭載していたので、これは譲れないポイントだった。
一度この使い心地になれると、なかなか他に乗り換えられないと思う。

パッケージ裏面で強調されていた、ソフトラバーの側面。
確かに触り心地はいいかも。

本体底部。
スイッチと電池カバーを開けるためのボタンが付いている。
使わないときは電源OFFにしとけば、電池の持ちも良くなるって事か?
一点だけ、マウス上部後方にロゴが印刷されているのに、底面にまでロジクールのロゴが必要なんだろうかとは思ったけれど、きっと自己主張の強い会社なんだろうね。

一通り眺めたところで、さっそくパソコンにつないでみる。
使い方は至ってシンプルで、
- 電池をマウス本体に入れる
- PCの電源を入れる
- ナノレシーバーをPCに差し込む
- マウスの電源をONする
という4ステップで使える。
マウスのボタンに機能を割り振るには専用のソフトを落としてくる必要があるけれど、そうでなければ特別ドライバをインストールするような作業も必要ない。
こういう所は、最近の高機能化が進むマルチボタンマウスに比べたら、断然使いやすい所だと思う。
電源を入れると、マウス上部のバッテリ残量ランプが緑色に光る。
でもこのランプ、電源ONの時に10秒ぐらい光るだけで、その後はほとんど活躍する場が無い。
バッテリ残量が少なくなったら、赤く点滅して警告してくれるらしいので、その時の働きに期待。

ナノレシーバーを差し込んでみたところと、大きさの比較。
横に刺さっているのは、HHK Lite2のUSBケーブル。(要するにプリンタなんかにも使われている普通のUSBケーブル。)
こうしてみると、ナノレシーバーは1/5ぐらいしか飛び出してないことが分かる。
小さいとは聞いていたけれど、ここまで小さいとは思わなかった。


実際にGIMPやIllustratorを使ったデザインチックな作業とか、プログラミングをするときのコンポーネント配置とか、Flashを使ったウェブゲームに使ってみたけれど、非常に快適に動いてくれている。
専用のソフトを入れればゲーミングマウスとしてゲーム起動時だけボタンの役割を変えるようなこともできるみたいだし、かなり使い勝手はいいと思う。
左右のボタンのクリック感も良く、ホイールも狙ったところにビシっと決められてストレスがない。
本体のサイズだけ合って、チルトホイールが若干使いにくいと感じる場面もあったけど、それ以外は100点な製品だと思う。もしかしたら、マウスにこだわるユーザにしてみたらダメなところがあるのかもしれないけれども。
また、マウスのように良く動かす製品について、ケーブルの取り回しがないことがこれほど楽なことだとは予想谷しなかった。
おそらく、今後買い換えるときもワイヤレスマウスにするだろうと思う。
これに感動したあげく、M305オーナーの会でも立ち上げてしまいそうな勢いだ。
ちょっと使えるマウスを探している方がいたら、一緒にM305オーナーになりませんか?
4.13.2009
本を読む。
これは技術書というのか、雑学書というのか……。
一言で言えば、数学の式とプログラムのコードが出てこない(実際には出てくるけど、内容の本質的な部分には絡んでこない)遺伝的アルゴリズムの入門書といった感じ。
ちょうど一般書と技術書の中間ぐらいに位置する、面白いポジションの本だと思う。
著者はゲームクリエイターで、人工知能を使った様々なゲームを提案しているのだという。
中には、この人の作ったゲームを知っている方も居るかもしれない。
内容は、マッチ箱を使って遺伝的アルゴリズムを体験するという異色の一冊。
けれども、概念的な説明を丁寧にして、その後でマッチ箱による実践とステップアップしていく構成だから、遺伝的アルゴリズムの概念をやさしく理解したいと考えているならオススメできるかも。
ただ、登場しているマッチ箱を使ったAIは、とても個人のレベルで実現できないから、私はExcelを使って実現したので、マッチ箱でやりたい!と思っている方はそれなりの覚悟がいるかも。
(仕組み的には、棒と小箱で代用できるので、マッチ箱AIベースの面白い「何か」を作った方は教えてください)
乱数発生の方法が分かっていれば、簡単なスクリプト言語でやっても実現可能だと思う。
自分で作った人工知能が、(選択問題とは言え)難しい問題を解いてていく様は、やっぱり感動するものがある。
ちなみに、購入した動機は人工知能系科目のレポート用で、その時はきちんと読んでいませんでしたが、今読むととても面白いことに気づきました。
まぁ、そういう不純な動機で購入しても、面白い本には出会えるってことだね。
逆に言えば、そういう目的の人にもお勧めできる一冊だと思う。
人工知能に興味があるなら、一度読んでみるといいかも。
一言で言えば、数学の式とプログラムのコードが出てこない(実際には出てくるけど、内容の本質的な部分には絡んでこない)遺伝的アルゴリズムの入門書といった感じ。
ちょうど一般書と技術書の中間ぐらいに位置する、面白いポジションの本だと思う。
著者はゲームクリエイターで、人工知能を使った様々なゲームを提案しているのだという。
中には、この人の作ったゲームを知っている方も居るかもしれない。
内容は、マッチ箱を使って遺伝的アルゴリズムを体験するという異色の一冊。
けれども、概念的な説明を丁寧にして、その後でマッチ箱による実践とステップアップしていく構成だから、遺伝的アルゴリズムの概念をやさしく理解したいと考えているならオススメできるかも。
ただ、登場しているマッチ箱を使ったAIは、とても個人のレベルで実現できないから、私はExcelを使って実現したので、マッチ箱でやりたい!と思っている方はそれなりの覚悟がいるかも。
(仕組み的には、棒と小箱で代用できるので、マッチ箱AIベースの面白い「何か」を作った方は教えてください)
乱数発生の方法が分かっていれば、簡単なスクリプト言語でやっても実現可能だと思う。
自分で作った人工知能が、(選択問題とは言え)難しい問題を解いてていく様は、やっぱり感動するものがある。
ちなみに、購入した動機は人工知能系科目のレポート用で、その時はきちんと読んでいませんでしたが、今読むととても面白いことに気づきました。
まぁ、そういう不純な動機で購入しても、面白い本には出会えるってことだね。
逆に言えば、そういう目的の人にもお勧めできる一冊だと思う。
人工知能に興味があるなら、一度読んでみるといいかも。
登録:
投稿 (Atom)