free as in air

2007|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|09|11|12|
2012|03|04|05|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|03|04|06|09|
トップ 最新 /追記

2008-03-01 [長年日記] この日を編集

§ [ruby] Re: Rubyのリリース方針について

 1.9.1のリリース自体は早い方がいいよね。1.9.1のリリースができて初めて1.8系の寿命が決められるんだから。プログラマは基本怠惰なんだから、ケツが決まらないと誰も移行作業してくれないよ?…あれ?Rjbは1.9.0で動くなあ。だれがやったんだろう…。(笑うところ)

 なんかあれば1.8系の寿命を延ばせばいいだけだし、という保険もあるわけで、それこそ今年のクリスマスでいいんじゃないのとか思う。

 ところでRjbのテスト動かないよ→-rubygemsしてよの件はtest.rbでrequire "rubygems"しとけばいい気もする。ついでに例外捨ててもいいかも。

§ [//] 天気

 快晴だったのに唐突に吹雪。なんだこりゃ。ここは山か(山ですが)。

§ [computer] 物故Thinkpad X31

 最初電源すら入らんかってん。ACアダプタ抜き差ししたら電源入るようになったけどPOSTしない。HDD外してメモリ交換しても無理。もう駄目かもわからんね、と。とりあえず引き取りを依頼はしたが、80k円〜90k円と予想していて、そうなら直さない予定だけど。手持ちのデスクトップの残骸をゴニョるか。

お名前 : コメント :

本日のツッコミ(全1件) [ツッコミを入れる]

<< arton [おお、本当だ。ありがとう>1.9.0対応。というのと、test.rbに入れるのはちょっと別だと思うが。確かに入れても..]


2008-03-03 [長年日記] この日を編集

§ [book] プログラミングGauche

 絶対買う(しかし積読候補)。

§ [//] 駄文を貪り書くターン

 アカデミック寄りの言語は商用の処理系が出てなんぼな気がする。スーツ病。

 毎度DeepCopyして返せば副作用のないOOと強弁できなくもない。IOモナドとか無いけど。

 Excelは関数型言語。副作用がないからか。非正格だけど。んじゃ、Excelのセルに式を詰め込んで色々できる人は関数型言語が使えると思っていい(マクロは知らん)。HaskellとかCleanは、その辺のLLなんかより実は理解しやすいんじゃないのかとか。参照透過性のある関数型言語を見える化するとExcel。Excelライクなマッシュアップツールも作れるとは思うのだが、結果とってきて保存したりなんだりとかを考えると、素でやると無駄が多いな。大概静的じゃないし。利点は、Excel使える人には優しいところのみ。やはり分散するしか。

 動的型の言語では以下のようなプログラムの問題を検出できない、という指摘←→{static,dynamic} {weak,strong} typing

§ [music] The Apples in stereo

 ヒネたポップが聴きたいが身に覚えがないと呟いたら@sasahira教えてもらった。ありがとう。この感じ、かなり好き。開いたページで試聴できるので是非。

お名前 : コメント :


2008-03-04 [長年日記] この日を編集

§ [rjb] a patch

 It is working copy for me.

§ [//] WinXP+Firefox2.0.1.2でサロゲートペア文字の編集にバグがある

 BSで半分ずつ消える。そもそも合成文字はWindowsでは表示されるけどLinuxでは表示されないな。Xのフォントレンダラが合成文字に対応してないとか?

 追記:なんか同一のものの様に書いてるけど、サロゲートペアと合成文字は別物。サロゲートペアはUTF-16限定の話で、いわば夢と野望と浅慮の結果。16bitじゃ収まらねーよ→2文字分使うか、という安易な考え。合成文字はUnicode全般の話で、丸数字は丸数字のフォントを用意するんじゃなくて○と数字をくっ付けりゃいんじゃね、という合理的な話(でもまだちゃんと実装されてるソフトは少ない気がする)。

 なんか用語が氾濫してるみたいだな。合成文字→結合文字のほうが正しい様子。

お名前 : コメント :

本日のツッコミ(全4件) [ツッコミを入れる]

<< arton [軽く見た感じ、コミットしてほしい。でも、test.rbのは、begin;require 'rjb';rescue L..]

<< arton [でも、コミット前にsvn updateをしてからにしてね。]

<< 桑島雄一郎 [あー、すみません、まだダラダラと弄っていました。 rjb_s_throw()の中で、Java側にはThrow(||T..]

<< 桑島雄一郎 [コミットしました。続きはTwitterかMLで。]


2008-03-05 [長年日記] この日を編集

§ [rjb] todo

 unloadでもっと環境を綺麗にする。unbindのテストを考える。more short, beauty, right and clear code.

 ところでコミットしたんだけど、rjbexception.cからはrjb_s_load()(rjb.c)を参照できないので、rjb_s_throw()ではrb_funcall()で解決してたりして凄く悩ましい。安易にextern増やすのも嫌だし。

 load.cに移してそっちでexternするのがいいのかも。

 追記:書いたのは(2行目から下は消化済だけど)、あくまで俺のtodo。Rjbプロジェクトとして…、という話ではない。早々にやらなきゃなと思っているだけで、いつまでにやる、とかいう話でもない。普通に使う範囲にはたぶん影響しない。

 unloadが気になっているのは、testのteardownでunloadしてるけど、ちゃんとキレイになってないので後発のテストでちゃんと失敗しないところがある、と考えてるから。あ、いや、違うな。load/unload自体のテストがないってことか。現状ではRjbのクラスメソッドを読んだ途端にグローバルに状態が変わる。状態が変わっていく中で操作してエラーにならんかとか見ないといけない。少なくともsegvは避けたい。グローバルに状態を変えないようなデザインにもできると思うのだが、しかしそれでは使いづらいと思う。(常にRjbインスタンス経由でアクセスする(でなきゃ継承するとかブロック使うか)ことになるのかな。それだとカジュアルには使いづらいだろう。)

 より良いコードにするのはユーザには、まあ、関係ないか。なくはないけどないといえばない。今のコードも結構イケてる。少なくとも、全然ダメとは思ってない。(俺のコードは微々たるものなので、こう書くとなんか偉そうだが)

お名前 : コメント :

本日のツッコミ(全3件) [ツッコミを入れる]

<< arton [うーん、rjb_s_loadはRubyに移出している関数で、移出元はすべからくメインのrjb.cに入れたい。したがっ..]

<< arton [niが確定モードになってたものだから、Enterで送信されてしまいました。 load.cへ移動してそこでextern..]

<< kuwa1 [それに近いことになりました。]


2008-03-06 [長年日記] この日を編集

§ [//] LDRのフィードの公開設定を一括変更する。

 今ひとつどこから辿るかわからないが、フィードの共有設定からできる。素晴らしすぎて泣ける。

§ [computer] さやうなら Thinkpad X31

 見積もり来た。HDD交換、システムボード交換(ケース割れ、バッテリのヘタりは含まず)で102K円。さやうならX31。

 戻ってくるけど、要るデータはバックアップとってあるし、実は戻ってこなくていいな。X31いらない子。

 一回くらいバラして掃除して組み直してみるとか。

 しかし3年保証って微妙だよな。正直。

§ [music] バッハ無伴奏3番・サラバンド

 録音が全然違うけど、ブダペストの17歳が弾く方は、なんて言えばいいのかわからんが、キュートだ。コアな情熱みたいなもんかな。若さと言うと安っぽいが。ミーシャ・マイスキーのほうは、前者と比して言うなら、情感というより憧憬だ。カザルスはもう、なんか、神だね(音質的にはヒスノイズが気になるけど。観客の笑い声とか)。

お名前 : コメント :

本日のツッコミ(全2件) [ツッコミを入れる]

<< acn [南無阿弥陀仏・・・。嫌な見積もり来てて笑ったわw]

<< kuwa1 [まあ送る前から予想はしてたけどね。 しかし一人一台無いと困るな。]


2008-03-07 [長年日記] この日を編集

§ 今更ながらソーシャルブックマークを使う日

 IDがあったので、はてブLivedoorクリップを使う。

 tumblrだとどうもQuoteしなきゃないような気がしていたので、リンクだけ残せるのは確かにいいかなあ。

 似たカテゴリの人とのマッチングとかあんま興味ないのだが。topic見るのも面倒だしなあ。

 しかし本当にレイトマジョリティ(しかもラガード寄り)ですね。

お名前 : コメント :


2008-03-10 [長年日記] この日を編集

§ [ruby] Cygwin

 今、1.81.8.5と1.8.6は今のCygwinの環境でコンパイルできません。

 svn diff -r 14222:14224のように変更するとコンパイルはできそうなのですが、なぜか僕の環境ではconfigureからmake installまでがあまりにも遅いので、やる気になれません。

 みんなこの機会にCygwin捨てたらいいと思う(えー。

 追記: branches/ruby_1_8は大丈夫と思う。

お名前 : コメント :

本日のツッコミ(全3件) [ツッコミを入れる]

<< なかだ [具体的にはどのようにできないんでしょうか。 それと、cygwinとgccのバージョンはいくつですか?]

<< kuwa1 [~/rubysrc/ruby-1.8.6-p114 $ make gcc -g -O2 -DRUBY_EXP..]

<< なかだ [なるほど、1.8.6と1.8.5ブランチでしたか。 確かにr14223とr14224はバックポートする必要があります..]


2008-03-11 [長年日記] この日を編集

§ [OpenBSD] 4.3 Pre-Orders Online

 注文の受付がはじまった。最近はチェックすらしてないよ。買うけど。

お名前 : コメント :


2008-03-12 [長年日記] この日を編集

§ test

 I lost access logs, and ...?

 追記: ロボットと見做すUAとしてPathtraqを追加してたせいだな。^Pathtraqならよさげ。Feedが空になったのはようわからん。

§ [ruby] Excelで重複行を非表示にする

require 'win32ole'
excel = WIN32OLE::connect 'Excel.Application'
ws = excel.workbooks(1).worksheets(1)
#自分が関係する行だけ
r = (2..237).find_all{|i| ws.range('E'+i.to_s).value == 'kuwashima'}
r.reverse.each do |i|
  if !ws.rows(i).hidden #既に非表示な行は無視
    fn = ws.range('B'+i.to_s).value
    r.find_all{|j| j < i}.each do |j|
      ws.rows(j).hidden = true if ws.range('B'+j.to_s).value == fn 
    end
  end
end

§ [ruby] WIN32OLEとExcel

 RangeとかRowsでコレクションが返ってくるのだが、Enumerableでないのでmapできない。require 'enumerator'してenum_forするとよいらしいというバッドノウハウ。range('A1:A10').enum_for.inject{|x,c| x += c.value}

§ [linux] Ubuntu gutsy gibbon + ATOK + Firefox3 beta

 起動直後にpollしっぱなしになりっぱなしだったのだが、ふと思いついてXMODIFIERS='' ./firefoxしたら使えるようになった。im-switchでscim-bridgeにした。会社ではskkimeだしな。

お名前 : コメント :


2008-03-13 [長年日記] この日を編集

§ [ruby] Changes in Ruby 1.9

今更見てる。Windowsのバイナリで試し中なのだが、->とその引数の;に早くも面喰ってるところ。

irb(main):060:0> d = 1;->a,*b,&c;d{p a,b,c,d=3}.(1,2,3,4){p 0};p d
1
[2, 3, 4]
#<Proc:0xe2a34c@(irb):60>
3
1
=> 1

それとは関係ないが那由多屋Rubyコーディング標準。那由多屋って那由多さんがやってんじゃないのか。

Mandatory arguments after optional arguments allowedもすごいな。foo(1,2,3,:x=>4,5)はsyntax errorか。Newlines allowed before ternary colonは地味に嬉しいのかも。 NameErrorって、1.9.0-1だとStandardErrorだな。去年の10月とも結構違うんだな。

アプリケーション次第では書き方が変わるのかもね。でも意外と違わないな、という気がしてきた。

§ [music] D.O.B.

 ちょっとだけ持ってるDate Of Birth. メジャーな曲ってYou Are My Secretくらいか。Pack My Bagも嫌いじゃないけど。Echoes Of Loveは普通。 FOLK SONGS(DATE OF BIRTH)がいいんだけど、売ってないし聴けない。一体なんなんだろうこの国は。

お名前 : コメント :


2008-03-14 [長年日記] この日を編集

§ [rjb] Rjb::loadはnilを返す

 なんか、俺が意図を汲めてないんじゃないかという気がしてきた。「VMの作成に成功したらtrueを返してほしい」というようなニュアンスだろうと考えていたのだが、もしかして「Rjbのインスタンスが取得できないんだけど」という話なのかも。

 Error during initialization of VMは、正直全然わからない。Hashtableのほうは、initPropertiesから呼ばれてるから、もしかしたらVMを作成するときのオプションがnullになる場合がある?linux boxってなんだろ。

お名前 : コメント :

本日のツッコミ(全1件) [ツッコミを入れる]

<< arton [わかるとこだけ。boxはコンピュータの意味。翻訳すると「おれのLinuxマシン」]


2008-03-15 [長年日記] この日を編集

§ [//] 天気雨

 狐の嫁入りだっけ。虹

お名前 : コメント :

本日のツッコミ(全4件) [ツッコミを入れる]

<< 2号 [雪ないじゃん。やばいなー;酪農家になるのが惜しく感じる今日この頃とか内緒。]

<< kuwa1 [そもそも、うちは収支的にどうなんだというのが激しく疑問なのだが。]

<< kuwa1 [でも、プロスノーボーダーになって生計立てるよりは手堅いな。 しかし家庭内政治をクリアにせんことには話にならんのがなー..]

<< 2号 [儲かる商売なはずなんだけどなぁ。つーかスカンピンデ即就農が不可だねwwBを処理してくださいw]


2008-03-16 [長年日記] この日を編集

§ [//] Amazonのほしいものリスト

 最短のURLってhttp://www.amazon.co.jp/gp/registry/wishlist/#{id}でいいのかな。どうもmod_rewrite的なもので縮めてる気がする。Amazon様の空気を読んで手でURLを縮める場合がままあるのだが、普通に表示されるURLを最短のものにしといてほしい。

 ちなみに俺のリストは絶賛公開中ですよ。しかし、たまに整理しないといけないな。興味の方向がちょくちょく変わるし、昨日プログラミング作法(ブライアン カーニハン/ロブ パイク/Brian Kernighan/Rob Pike/福崎 俊博)買ったし。

 ところでプログラミングGaucheは岩手の本屋にはまだない気がする。勉強会も華麗にスルーしたことだし、気になってる本をまとめて買おうかなあ。

 あと要らない技術書などありましたら有り難く頂きたく思いますのでご連絡お待ちしております。

§ [//] まともにプログラム書く気がないプログラマを俺は人間的に信用しない

 あ、タイトルで終わりだ。

 先週あたりから、新社会人が読むべき本とかいうエントリを何件か見ているけど、プログラマ向けとして小手先な本を薦めてるケースが多かったのが気になっている。

 プログラムの初心者からRubyの上級者にスケールするための本は「Matzの本、そして宣伝、そして決意、抱負」を見ればいいと思う。

 しかし、プログラムとは何かという理解と、オブジェクト指向とは何かという理解と、いいプログラムとは何かという理解とは、関係あるようでそんなに関係ないよな。

お名前 : コメント :


2008-03-17 [長年日記] この日を編集

§ [ruby] ext

Rubyは拡張ライブラリをかなり書きやすいとは言え(もう全部VALUEとか、 Cの型と相互に変換する方法が充実してるとか、GCのとことか)、しかし、やはりデバッグが辛い。segvすればまだわかりやすいのだが、StringValueCStrで「ヌル文字が含まれています」とか言われるとかなり辛い。←イマココ!

なんかgdb --argsで起動してbreak rb_raiseしてrunしてbtすりゃいいらし。

しかしJNIでDestroyしちゃいけない気がする。Linuxだけか?取り急ぎとはいえ拙すぎるコードだが、どうにも初回しかVMの作成に成功しない。

#include <jni.h>
int main(char* argv)
{
    JavaVM *jvm1, *jvm2, *jvm3, *jvm4, *jvm5;
    JNIEnv *env1, *env2, *env3, *env4, *env5;
    JavaVMInitArgs vm_args; /* JDK/JRE 6 VM initialization arguments */
    JavaVMOption options[1];
    jint res;
    options[0].optionString = "-Djava.class.path=";
    vm_args.version = JNI_VERSION_1_6;
    vm_args.nOptions = 1;
    vm_args.options = options;
    vm_args.ignoreUnrecognized = 0;
    printf("%d", (res = JNI_CreateJavaVM(&jvm1, (void**)&env1, &vm_args)));
    if (res == JNI_OK) jvm1[0]->DestroyJavaVM(jvm1);
    printf("%d", (res = JNI_CreateJavaVM(&jvm2, (void**)&env2, &vm_args)));
    if (res == JNI_OK) jvm2[0]->DestroyJavaVM(jvm2);
    printf("%d", (res = JNI_CreateJavaVM(&jvm3, (void**)&env3, &vm_args)));
    if (res == JNI_OK) jvm3[0]->DestroyJavaVM(jvm3);
    printf("%d", (res = JNI_CreateJavaVM(&jvm4, (void**)&env4, &vm_args)));
    if (res == JNI_OK) jvm4[0]->DestroyJavaVM(jvm4);
    printf("%d", (res = JNI_CreateJavaVM(&jvm5, (void**)&env5, &vm_args)));
    if (res == JNI_OK) jvm5[0]->DestroyJavaVM(jvm5);
}
% gcc -I/usr/java/default/include -I/usr/java/default/include/linux -g jnitest.c /usr/java/default/jre/lib/i386/server/libjvm.so
% LD_LIBRARY_PATH=/usr/java/default/jre/lib/i386/server/ gdb ./a.out
0-1-1-1-1

お名前 : コメント :


2008-03-19 [長年日記] この日を編集

§ [//] down, down, down, down.

 現状を考えると、良心的なプログラマがソフトウェアの助けを得ていいソフトウェアを作る状態(良心的でない人達はそれなりに)。(ビジネスの本質が変容しないなら)ビジネス自体をモデル化してソフトウェアだけでいんじゃね的な未来があるとして、まあとりあえず今、グルグルダンスを踊って。

お名前 : コメント :


2008-03-21 [長年日記] この日を編集

§ [rjb] ウムラウトつき文字が文字化けするらしい

 状況があんまりよくわからないんだけど、結合文字の類いじゃないかなあ、と予想している。実際、結合文字が化けないかとか、サロゲートペア文字が化けないかとかは、テストしなきゃないかも。と思いつつのテスト用の作業コピー1,2.

 Javaのユニコードエスケープ構文ってUTF-16BEなんだな。たぶん。

お名前 : コメント :

本日のツッコミ(全1件) [ツッコミを入れる]

<< arton [ウムラウトって、それなのかぁ。]


2008-03-26 [長年日記] この日を編集

§ [//] カレーオフ行ってきた

 半額だったので(?)。普通にカレー食いたかったのもあるけれども。二次会まで見てきた。生活がプログラマに特化しすぎてるのかな、とちょっと反省した。見てるブログは全然違うようだったし(参考:視野の狭いのがバレるLDRの公開フィード)、対象としてる仕事も違うみたいだし、接点なさすぎ。ほとんど話できなかった。

 でも行ってよかった。今話聞きたい人達だったんだなと、なんか今思った。

 話はやや飛ぶけど、普通の開発会社の普通の開発はもういんじゃね。というか、俺はもう、そこにいる人達に飽きてるんじゃないのか。

 そこはむしろ前時代的な会社の前時代的な開発と言うべきか。

 追記:近代的開発という幻想がありますね\(^_^)/

 

お名前 : コメント :