ひしだまの変更履歴

ひしだまHPの更新履歴。
主にTRPGリプレイの元ネタ集、プログラミング技術メモと自作ソフト、好きなゲームや音楽です。

2010年は勉強の年

2010-12-31 04:56:21 | Weblog

柄にも無く一年の振り返りを書いてみるなど。

そもそも2010年の目標は、HTMLを操作するツールを作ることだったんだよなー。Ant版でも一応使えるけど、やっぱり便利とは言いがたいから。

ところが2月にHadoopというものを知って以来、その勉強にシフト!
(そういやHadoopになぜ興味を持ったのか書こうと思って、まだ書いてないや(爆))
Hadoop上で使えるDBとしてHBaseも勉強。
HBaseと同様のNoSQLとして、Cassandraも勉強。
(象本に載っていたから、Cascadingも勉強。でもPigとHiveはまだだったりする^^;)

これらの勉強会が開催されているのを知り、参加してみたいと思いつつも気付いたときにはいつも定員いっぱいなので、開催情報を知りたくてTwitterを始めたのだった(笑)
でもリアルタイムでは見てないから、およそTwitterらしい使い方はしてないな(苦笑)

それから、tatsuya6502さんのHBaseのサンプルがScalaで書かれていた為に、Scalaの勉強を開始。
まだScalaらしいところまで進んでいないけれども、「better Java」としてだけでも非常に興味深い。「なるほど、これは便利だ」という事がけっこう実現されている。

ということで、2010年は久々に色々勉強した年だった。
まだScalaも途中だけど、もう少しで基礎は一通り終わりそうな気がするので、そうしたらHadoop・HBase・Cassandraに戻る。最近あまり追ってなかったけど、バージョンアップもされてるし。
2011年も引き続き勉強だ~。
(Twitterのアイコンも作りたいなー。アイデアはあるんだけど絵は描けないから、描いてくれる人を探さないとw)


implicit ClassManifest

2010-12-30 23:59:52 | PG(Scala)

暗黙の型変換(implicit conversion)に続いて、implicitキーワードを使っている暗黙の引数(implicit parameter)についてメモ。

次いで、それがよく使われると思われるClassManifestについてメモ。
ClassManifestをメソッドの引数に渡す方法は分かったけど、どういう呼び出しを経てClassManifestのインスタンスが決まるのか、ちっとも理解できない><
単純なClassManifest[Int]だと、実体としてはClassManifestオブジェクトのIntというフィールドが返ってるみたいだし、複雑なArray[List[Int]]とかもそれらしいインスタンスが生成されている。
implicitly[ClassManifest]」を実行したときに出てくるエラーから、なんとなくPredefのconforms関数が絡んでいるような気がするけど…。

あるスコープ内でどんな暗黙メソッド・値が使われるか、確認する方法は無いのかなぁ。
scalacでコンパイルオプション「-Xprint:packageobjects」「-Xprint:typer」をつけてコンパイルしてみると、その間で暗黙の引数が解決されたのは分かるんだけど、どういう理由でそうなったのかは全く分からん(苦笑)
ただ単にClassManifestを使うだけだったら全く困らないけど、気になるー。


Excel TIPS 2010年残

2010-12-30 05:18:02 | PG(Excel)

書き漏れていたTIPS第2弾、Excel編。

Excelってほんと色々高機能で、人によって知っている/使っている機能がけっこう違うんだよね~。「そんな事が出来たのか?!」って驚くことが多い。

あと、他セルを参照しているセル上でF4キーを押すと「$」が付くっていうのを教わったんで「おお、そんなものが!」と思ってメモしようとしたら、既に書いてあったし(爆)
…本気で覚えてない(汗)
けどまぁ、忘れやすいからメモしてあるんだし、機会があったら読み直すのがいいんだろうなー。

う、もうひとつ気付いちゃった。なんだよ「usege.html」って(汗) どう考えても「usage.html」の間違い。最初は「use.html」にでもしようとしていたのかなぁ…。うーーん、気が向いたら直そう。(URLの一部だからリンクも直さなきゃいけなくて面倒なんだよなー)

しかしExcelの他のメモを「ですます調」で書いているのが、古さを感じる^^; 今は基本的に「である調」に統一しているから、違和感が…。これも気が向いたら修正しよう。


Oracle TIPS 2010年残

2010-12-30 02:41:04 | PG(RDBMS)

年末なので(というかまとまった休みに入ったので)、今年書いておこうと思って結局書いてなかったちょっとしたメモ(TIPS)をいよいよ書こうと思って、まずはOracle分。

「大抵の場合、INはEXISTSに置き換えられる」というのは有名な話だけど、「じゃあどういう場合は置き換えられないのか?」というのは疑問に思っていた。
そこをミックさんが明確に書いていたので、これはメモしておかなければ。

…しかしあれだな、やっぱまとめて書こうとすると面倒だな(爆) やはりその都度書いていかないと(苦笑)


Processのストリームのクローズ

2010-12-26 21:35:55 | PG(Java)

ブログを書こうと思ったときくらいしかブログを見ないので、ブログ宛にメールが来ていても気付くのが遅れます(ごめんなさい)。そもそも滅多にメール来ないしなー。

というところで、「ProcessのページでBufferedReaderをクローズしてない」という指摘を受けて、びっくり。改めて見てみると、ホントだー?!

てなワケで、クローズしなくてもいい理由を必死に調査・考えた(爆)

最初はProcess#waitFor()辺りでクローズしてないかなーと思ったが、waitFor()を呼んだ後でもストリームを取得できるので、やってる訳が無い。
その後で呼べるProcessのメソッドは無いしなー。

結論を言うと、自分が取得していない隠れたストリームも含めてファイナライザーでクローズされるので、よほどGCが動かない状態でなければ問題は無いんじゃないかなーと思う。
(調べたのはWindows版のJDK1.6と1.4だが、たぶん他でも同じだと期待する)
ただまぁ、自分で取得した分くらいはクローズすべきではあると思うので、ウェブページのサンプルにはクローズ処理を軒並み追加した。

…ふう、もっと大ごとになるかと思った。危ない危ない^^;