1.9.1のリリース自体は早い方がいいよね。1.9.1のリリースができて初めて1.8系の寿命が決められるんだから。プログラマは基本怠惰なんだから、ケツが決まらないと誰も移行作業してくれないよ?…あれ?Rjbは1.9.0で動くなあ。だれがやったんだろう…。(笑うところ)
なんかあれば1.8系の寿命を延ばせばいいだけだし、という保険もあるわけで、それこそ今年のクリスマスでいいんじゃないのとか思う。
ところでRjbのテスト動かないよ→-rubygemsしてよの件はtest.rbでrequire "rubygems"しとけばいい気もする。ついでに例外捨ててもいいかも。
絶対買う(しかし積読候補)。
アカデミック寄りの言語は商用の処理系が出てなんぼな気がする。スーツ病。
毎度DeepCopyして返せば副作用のないOOと強弁できなくもない。IOモナドとか無いけど。
Excelは関数型言語。副作用がないからか。非正格だけど。んじゃ、Excelのセルに式を詰め込んで色々できる人は関数型言語が使えると思っていい(マクロは知らん)。HaskellとかCleanは、その辺のLLなんかより実は理解しやすいんじゃないのかとか。参照透過性のある関数型言語を見える化するとExcel。Excelライクなマッシュアップツールも作れるとは思うのだが、結果とってきて保存したりなんだりとかを考えると、素でやると無駄が多いな。大概静的じゃないし。利点は、Excel使える人には優しいところのみ。やはり分散するしか。
動的型の言語では以下のようなプログラムの問題を検出できない、という指摘←→{static,dynamic} {weak,strong} typing。
ヒネたポップが聴きたいが身に覚えがないと呟いたら@sasahiraに教えてもらった。ありがとう。この感じ、かなり好き。開いたページで試聴できるので是非。
BSで半分ずつ消える。そもそも合成文字はWindowsでは表示されるけどLinuxでは表示されないな。Xのフォントレンダラが合成文字に対応してないとか?
追記:なんか同一のものの様に書いてるけど、サロゲートペアと合成文字は別物。サロゲートペアはUTF-16限定の話で、いわば夢と野望と浅慮の結果。16bitじゃ収まらねーよ→2文字分使うか、という安易な考え。合成文字はUnicode全般の話で、丸数字は丸数字のフォントを用意するんじゃなくて○と数字をくっ付けりゃいんじゃね、という合理的な話(でもまだちゃんと実装されてるソフトは少ない気がする)。
なんか用語が氾濫してるみたいだな。合成文字→結合文字のほうが正しい様子。
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インスタンス経由でアクセスする(でなきゃ継承するとかブロック使うか)ことになるのかな。それだとカジュアルには使いづらいだろう。)
より良いコードにするのはユーザには、まあ、関係ないか。なくはないけどないといえばない。今のコードも結構イケてる。少なくとも、全然ダメとは思ってない。(俺のコードは微々たるものなので、こう書くとなんか偉そうだが)
見積もり来た。HDD交換、システムボード交換(ケース割れ、バッテリのヘタりは含まず)で102K円。さやうならX31。
戻ってくるけど、要るデータはバックアップとってあるし、実は戻ってこなくていいな。X31いらない子。
一回くらいバラして掃除して組み直してみるとか。
しかし3年保証って微妙だよな。正直。
録音が全然違うけど、ブダペストの17歳が弾く方は、なんて言えばいいのかわからんが、キュートだ。コアな情熱みたいなもんかな。若さと言うと安っぽいが。ミーシャ・マイスキーのほうは、前者と比して言うなら、情感というより憧憬だ。カザルスはもう、なんか、神だね(音質的にはヒスノイズが気になるけど。観客の笑い声とか)。
IDがあったので、はてブとLivedoorクリップを使う。
tumblrだとどうもQuoteしなきゃないような気がしていたので、リンクだけ残せるのは確かにいいかなあ。
似たカテゴリの人とのマッチングとかあんま興味ないのだが。topic見るのも面倒だしなあ。
しかし本当にレイトマジョリティ(しかもラガード寄り)ですね。
I lost access logs, and ...?
追記: ロボットと見做すUAとしてPathtraq
を追加してたせいだな。^Pathtraq
ならよさげ。Feedが空になったのはようわからん。
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
今更見てる。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月とも結構違うんだな。
アプリケーション次第では書き方が変わるのかもね。でも意外と違わないな、という気がしてきた。
ちょっとだけ持ってるDate Of Birth. メジャーな曲ってYou Are My Secretくらいか。Pack My Bagも嫌いじゃないけど。Echoes Of Loveは普通。 FOLK SONGS(DATE OF BIRTH)がいいんだけど、売ってないし聴けない。一体なんなんだろうこの国は。
なんか、俺が意図を汲めてないんじゃないかという気がしてきた。「VMの作成に成功したらtrueを返してほしい」というようなニュアンスだろうと考えていたのだが、もしかして「Rjbのインスタンスが取得できないんだけど」という話なのかも。
Error during initialization of VMは、正直全然わからない。Hashtableのほうは、initPropertiesから呼ばれてるから、もしかしたらVMを作成するときのオプションがnullになる場合がある?linux boxってなんだろ。
<< arton [わかるとこだけ。boxはコンピュータの意味。翻訳すると「おれのLinuxマシン」]
最短のURLってhttp://www.amazon.co.jp/gp/registry/wishlist/#{id}
でいいのかな。どうもmod_rewrite的なもので縮めてる気がする。Amazon様の空気を読んで手でURLを縮める場合がままあるのだが、普通に表示されるURLを最短のものにしといてほしい。
ちなみに俺のリストは絶賛公開中ですよ。しかし、たまに整理しないといけないな。興味の方向がちょくちょく変わるし、昨日プログラミング作法(ブライアン カーニハン/ロブ パイク/Brian Kernighan/Rob Pike/福崎 俊博)買ったし。
ところでプログラミングGaucheは岩手の本屋にはまだない気がする。勉強会も華麗にスルーしたことだし、気になってる本をまとめて買おうかなあ。
あと要らない技術書などありましたら有り難く頂きたく思いますのでご連絡お待ちしております。
あ、タイトルで終わりだ。
先週あたりから、新社会人が読むべき本とかいうエントリを何件か見ているけど、プログラマ向けとして小手先な本を薦めてるケースが多かったのが気になっている。
プログラムの初心者からRubyの上級者にスケールするための本は「Matzの本、そして宣伝、そして決意、抱負」を見ればいいと思う。
しかし、プログラムとは何かという理解と、オブジェクト指向とは何かという理解と、いいプログラムとは何かという理解とは、関係あるようでそんなに関係ないよな。
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
半額だったので(?)。普通にカレー食いたかったのもあるけれども。二次会まで見てきた。生活がプログラマに特化しすぎてるのかな、とちょっと反省した。見てるブログは全然違うようだったし(参考:視野の狭いのがバレるLDRの公開フィード)、対象としてる仕事も違うみたいだし、接点なさすぎ。ほとんど話できなかった。
でも行ってよかった。今話聞きたい人達だったんだなと、なんか今思った。
話はやや飛ぶけど、普通の開発会社の普通の開発はもういんじゃね。というか、俺はもう、そこにいる人達に飽きてるんじゃないのか。
そこはむしろ前時代的な会社の前時代的な開発と言うべきか。
追記:近代的開発という幻想がありますね\(^_^)/
<< arton [おお、本当だ。ありがとう>1.9.0対応。というのと、test.rbに入れるのはちょっと別だと思うが。確かに入れても..]