|
クオリアの問題に対してド真正面からぶつかる本。30過ぎてからいきなりこんな、一生かかっても引っかき傷一つ付けられないかもしれない問題に挑むなんで凄いというか何というか、いったい何があったんですかと思った。
本書では、「やさしい問題」とか「お気楽な」なんて表現されてる脳科学の方では最近読んだ進化しすぎた脳が面白かった。進化しすぎた脳の中でもクオリアの話は出てくるけど、ほぼ諦め気味というかホント困ったなって感じ。それだけにこの分野で何か進展があったらえらいことですな。
|
|
クオリアの問題に対してド真正面からぶつかる本。30過ぎてからいきなりこんな、一生かかっても引っかき傷一つ付けられないかもしれない問題に挑むなんで凄いというか何というか、いったい何があったんですかと思った。
本書では、「やさしい問題」とか「お気楽な」なんて表現されてる脳科学の方では最近読んだ進化しすぎた脳が面白かった。進化しすぎた脳の中でもクオリアの話は出てくるけど、ほぼ諦め気味というかホント困ったなって感じ。それだけにこの分野で何か進展があったらえらいことですな。
|
Mixiの日記をRSSにするときにmechanizeを使ってそれぞれの日記ページを取ってくるところでThreadが複数になるとInterrupted system call (Errno::EINTR)というエラーが出てうまくいかない。(1スレッドの場合は大丈夫)
↓こんな感じのコード。
# diary_urls --- MIXI日記のURLの配列
# agent ---Mixiに ログイン済みのmechanizeのインスタンス
diary_urls.each do |url|
threads << Thread.new(agent, url) do |a, u|
page = a.get(u)
res = page.root.seach(...)
entry = {
"url" => "...",
"title" => "...",
"body" => "..."
}
end
end
entries = []
threads.each {|t| entries << t.value }
Threadを使ったコードをあまり書いたことが無いので良くわからなくて難しい。
|
実務でJavaからRubyへ移行するための実践的な幾つかの作戦。
それとは別に気になったのがRubyを使った継続サーバについて何度か言及してるとこ。Wee、Borges、Iowaなど聞いたこと無いけど気になるなあ。でもIowaはちょっと聞いたことある気がする。ちょっとのぞいてみようかな。
hello_world.rb
#!/usr/local/bin/ruby
require 'iowa'
#require 'iowa_webrick' #Uncommment here and comment above to use WEBrick
class MySession < Iowa::Session
def initialize(*args)
#####
#// One can setup special per/session objects or data items here.
#####
super
end
end
class MyApplication < Iowa::Application
def initialize(*args)
#####
#// Initialize any application wide items here.
#// An example would be a database connection
#// connection pool.
#####
super
end
end
Iowa.startDaemon('hello_world.cnf')
Iowa.run
hello_world.cnf
socket:
hostname: localhost
port: 9988
logging:
basedir: /var/log/iowa/hello_world
minlevel: 0
maxsize: 10000000
maxage: 86400
だめだぁ、[あとでよむ]
ちょっと暇になるとすぐWindows入れたりUbuntu入れたり意味不明なOSの往復をしてるわけですが、今またUbuntu期です。(会社のパソコン)
以前、MacBookを使ってた方が退社されて、「誰か使いますか?」と募集があったところに、
⊂(゚Д゚⊂`つズザー ⊂(゚Д゚⊂`つズザー(俺)
と二人滑り込みました。そしてジョジョばりの渾身のじゃんけんの末、俺が敗北したわけですが、最近になって勝っただんだnさんが
「やっぱり交換してくれないスカ」 「キーボードが打ち辛い」 「ThinkPadにUbuntuが良いんじゃないかと」
などとMacに挫折気味の様子。そこでまず俺がUbuntu試してみることに。とりあえず覚えたばかりのScreencast作成方法でよくあるBeryl動画を作ってみました。
かなり使い易いのでMacと交換するか悩むところです・・・。
最速インターフェース研究会手間をかけずに日本語表示を試したい人は
Documents and Settings\username\Application Data\Apple Computer\Safari\WebKitPreferences.plist を編集してフォント名を指定している箇所を全て「MS UI Gothic」に変更すると良さげ。
こちらを参考にUbuntuのVMWareのWindowsにSafari3入れて日本語見えるようにしてみました。
おおー、結構ちゃんと動いてる!
これでTracにあがってるSafari系のバグが潰せるぞと・・・。(面倒)
「Wikiで昔のデータから戻すのはどうすればいいんですか?」という質問を受けました。何か丁度LinuxでのScreencastの録画方法を探してるところだったのでScreencastで、「↓こんな感じです」と返したら意外と喜ばれました。
LinuxでのScreencast作成用ソフトをいくつか試してみました。
Winkとか結構手間がかかるイメージだったんですが、Youtubeにアップするの前提だからswfよりmpeg吐いてくれた方が都合がいいんですよね。自分サーバーの容量も食わないしブログ貼り付けも楽。もっと活用できないかな。
はてなブックマーク – ウノウラボ Unoh Labs: MySQL5からのインデックス結合で1テーブル複数インデックスを使う
うわぁ、ショックだし理由が気になるわあ。追記:
$php→rails (rails に憧れる phper のブログ) – 複合インデックスと複数インデックスでも、上の構造で、name, age を元に抽出するつもりだとすると、
自分の感覚では複合インデックス付ける。
こちらを見てて気づいたんですが、「あの例なら複合インデックスを使う方が良い、もしくは複合インデックスの存在を知らないのか?うちらならクビ」ってことなのかな?
文字コードや品詞IDの問題があってDebianパッケージのMeCabは使わず、ソースから入れてたんですが、mecab_dict_indexという辞書をコンパイルするコマンドが付いていることを知ったのでパッケージから入れた辞書をリコンパイルしてみました。(なるべくパッケージで管理したい)
パッケージのやつ(Ubuntu 7.04)だと文字コードがEUC_JPで品詞IDが使えない状態。
$ mecab -F"%m\t%h\t%H\n"
すもももももももものうち
すもももももももものうち 0 ????,????,*,*,*,*,*
mecab-dict-indexに”辞書の元テキストの場所”、”辞書ファイルの出力先”、”辞書の元テキストの文字コード”、”辞書ファイル文字コード”、”品詞IDを使うためのオプション”を指定してやる。
/usr/lib/mecab/mecab-dict-index -d /usr/share/mecab/dic/ipadic -o /var/lib/mecab/dic/ipadic -f euc-jp -t utf-8 -p
$ mecab -F"%m\t%h\t%H\n"
すもももももももものうち
すもも 38 名詞,一般,*,*,*,*,すもも,スモモ,スモモ
も 16 助詞,係助詞,*,*,*,*,も,モ,モ
もも 38 名詞,一般,*,*,*,*,もも,モモ,モモ
も 16 助詞,係助詞,*,*,*,*,も,モ,モ
もも 38 名詞,一般,*,*,*,*,もも,モモ,モモ
の 24 助詞,連体化,*,*,*,*,の,ノ,ノ
うち 66 名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ
ちゃんと出るようになった。
各言語のバインディングはlibmecab-devを入れとけば通るハズ。たぶんrpmでも似た感じでいけるハズ。
YouTube APIの開発者ブログを見ていたら、そんなことが決定されたようだ。
ΩΩΩ < な、なんだっ(略
この瞬間に標準のWeb APIはGDataにきまっちゃった・・・?
MicrosoftがWin32 APIで開発者を取り込んで、(Windowsアプリが沢山出来たために)デスクトップOSで大成功したみたいに標準Web APIは糞重要なのにもう決まってしまった感が・・・。
候補としてはこんな感じ。
この候補にMicrosoft提案が入ってないのが悲しいですがしょうがない。とにかくGDataがかなりリードか!?
それとは別に野良APIの方でも今仕事で使ってますが、jester.jsのjsonp対応とか利便性が凄いのでこういうとこから新たな標準が出来ちゃうかもしれないですね。
RailsでRubyのl10n用ライブラリRuby-GetTextでハマってmasatoさんに助けられたのでメモります。
sudo gem install gettext
config/environment.rbに下記追加
$KCODE = 'u'
require 'jcode'
require 'gettext/rails'
app/controller/application_controller.rbに下記追加
class ApplicationController < ActionController::Base
init_gettext "my_app_name" # 自分のアプリ名
end
こんな感じのgettext.rakeタスク作成
require 'gettext/utils'
desc "Update pot/po files."
task :updatepo do
GetText.update_pofiles(
"my app name",
Dir.glob("{app,config,components,lib}/**/*.{rb,rhtml}"),
"my app name 0.0.1"
)
end
desc "Create mo-files"
task :createmo do
GetText.create_mofiles(true, "po", "locale")
end
potファイルを作成
rake updatepo
potから各言語用ファイルを生成(cpでもいいがmsginitを使うといい感じのヘッダを入れてくれる)
msginit -i po/my_app_name.pot -o po/ja/my_ap_name.po -l ja
今回糞ハマったのは foo.pot → ja/foo.po としなければならないところを foo.pot → ja/foo.pot とそのままの名前でコピってたとこ。これだと当然moはできねえ・・・。
poを適当にいじってmoを生成
rake createmo
ls locale/ja/LC_MESSAGES/my_app_name.mo
locale/ja/LC_MESSAGES/my_app_name.mo
エラーメッセージが勝手に多言語化されてたりと、poいじる前からかなり便利ですな。追記:
Ruby-Gettextの翻訳具合が気に食わない場合はそっちのpoをいじればOK。大体この辺に入ってるハズ。
/var/lib/gems/1.8/gems/gettext-1.9.0/po/ja/rails.po