[天気:晴れ]
#1
電子辞書修理完了したらしい
去年の秋に壊れた電子辞書。
修理に出したら修理代9000円も取られてしまった(携行品破損で保険会社からお金貰った)が直った模様。
でもまだ取りに行ってない。
給料日が来たら取りに行こう。
[天気:晴れ]
#1
XMLDB で遊んでみたい
ちょっと前は XML のネイティブデータベースとかもてはやされた時期もあったんだが、
最近はとんとそーいう話を聞かなくなったなぁ。
ここんとこ XML なことが多いから XMLDB で遊んでみたいと思ったんだが…。
OSS な XMLDB っていうと今、何があるのしら。と調べては見たものの1年前から余り動きが無い様子…。
Apache Xindice
を昔試してみたことがあったので、それでまた遊んでみようと思って見に行ったらここ1年くらい殆ど更新ないしやる気が感じられないのでバツ。
OSS じゃないけど無償で使える XMLDB で
xpriori ってのがあるんだが、やっぱ OSS なライセンスの方がいろんな意味で使いやすいよな〜ってことでちょっと遊んで終了。
今使うならこれかな?と思ってるのは
eXist
っていう Java の XMLDB、ライセンスも LGPL で使いやすいし数個の jar でけで動かせるのも良い。
あーしかし。色々やりたいことはあるんだが時間がねぇなぁ…(--;
#2
時間ねぇ
学生の頃は良かったな。腐るほど時間があって。
あの時間は貴重だ。
でも金が無かったなぁ。
バイトしまくって時間を金に変換してた時代。
今は金はそこそこ出来たが時間が無い。
金で時間を買う感じ。何か本末転倒な世の中だ。
PC組むのにも秋葉でパーツ選んで1日過ごして〜とかやってたが、
今は金で済むことは通販でさくっとおわらせれればその方が良いと思ってるし。
もう年なのか…?
[天気:晴れ]
こないだ PostgreSQL 7.4.x ベースの 1.1 が出たと思ってのになぁ。
PostgreSQL 8 ベースの 1.3 がこんなに早く出てくるとは思わなかった。
古いバージョン対応ばっかで尻すぼみプロジェクトにならなさそうな予感で良い感じだ。
市町村が合併して新しい名前が「南セントレア市」って…。
抗議殺到で頓挫するらしいが、そもそもこれが委員会で全会一致で賛成で決まってたってほうが問題ある悪寒。
今になってあれは間違いだったとか言う委員もいるらしいし…。
この名前に全会一致ってよほど適当な委員会だったか、裏で色々あって全会一致に持ってったとしか思えんよな。
世の中そんなんばっかだ。
[天気:曇り]
ついに言っちゃったよー。
ブッシュや小泉さん、それに中国や韓国は今後どう出るんだろうか?
ちょっとファンが煩いがいい感じ。
今までHDDが13台も繋がっていて熱と電源不足あたりが原因でかなり不安定だったファイルサーバが、コレを使って4台外だしにしたら急に安定しだした。
4台搭載してUSBを繋ぐと普通に4つのマスストレージデバイスとして見えるので Linux とかでも問題なく認識したし、さらに後2個かって全部外出しにして、サーバ本体のケースはRAID1が出来るようにHDD2台だけつめれば十分っていうのに乗せかえると感じよさそう。
お金に余裕があったら考えてみよう。
@
Linuxで複数LUNなUSBデバイスを扱う:
上では問題なく使えたと書いているが実は結構面倒だったんだよねこれが。
Windows の場合は複数LUNなUSB機器(1つの機器で複数ドライブとして認識される)
を繋げるとあっさり全部認識するんだが、Linux や BSD なんかだとデフォルトでは複数LUNが扱えるようになっていない。これは1LUNなデバイスなのに無いはずの2番目のLUNを調べに行くと固まるものがあるというレアケースへの対応らしい。
で、複数LUNに対応させるにはどうしたらよいかというと、Linux の場合カーネルオプションを弄らなければいけない。
カーネルのバージョンや既存カーネルの設定によってやり方は微妙に異なってくる(grub や lilo で指定するカーネルの起動オプションで直ったり、initrd を作ればよかったり、カーネルの再構築が必要だったり)。
max_scsi_luns
とかでぐぐれば情報は出てくるので解決は簡単。
僕がいま使ってるサーバは Fedora Core 3 なんだが、結論から言うとこの場合カーネルを再構築する必要があった。
その手順は
Wiki
にメモっておいた。
[天気:晴れ]
#1
バレンタイン
おやつが多すぎて食べ切れません(^^;
痛みやすいのもあるので数日は頑張って食べねば。
[天気:晴れ]
#1
個人で取れる範囲のSSLサーバ証明書
ここ
に検討している人がいたのでメモリンク。
今までは
Thawte
が一番安いと思ってたんだが、
もっと安いとこがあるんだな。
COMODO InstantSSL
ここは $50/year だ。
これは破格だな〜。3年分纏め買いなら $43/year くらいまで下がる。
これくらいなら取っても良い。
広告費からドメイン維持費引いた残りでも賄える範囲だし。
get2cash って小切手の換金業者なんだが、サイトでうたってる通り時間はかかるが凄く安い手数料で換金出来た。嬉しい。
似たような手数料が安い換金業者で
リンクセンス
ってとこもあるんだが、こっちは利用した人のblogとかみると、サイトに書いてある手数料以外に○○手数料いくら△△手数料いくら…とかで結局4,5千円くらい取られて詐欺みたいだって言ってる人いたし、この手の業者はちょっと不安だったんだよね。
get2cash は今回使ってみて問題ない(むしろ好感が持てた)ことが分かったので今後も小切手の換金はここを使うことにしよう。
しかも今サイト見てみたら、僕が前回申し込んだときからサイトがリニューアルされてて、BBS とかが出来てたりして、初めて使うときの不安や分からないこととかが事前に質問できるようになっててより安心。
かなり高感度上がりました。
ping 打つ機能がある blog とか wiki があればここに打つようにすると、拾ってもらえるようになる ping サーバ。
この一覧は何かの役に立つかな。
寿命とか短くなろうが吸ってる人の勝手だかなぁ。ぶっちゃけどうでもいいんだよな。
非喫煙者からしたら、完全な分煙とマナーさえ直れば喫煙者の寿命なんてぶっちゃけどうでも良い話。
逆にそれさえ実現するんなら、長生きしてくれた方が税金払ってくれる分良いかも。
[天気:晴れ]
#1
Velocity コロス!!
20:35 [KaWaZ] うっしゃー動いた
20:35 [KaWaZ] 解決に5時間もかかってしまった…
20:36 [KaWaZ] Velocity 1.4 の AnakiaJDOMFactory ってクラスを使いたかったんだが、
20:36 [KaWaZ] 何でかクラスが足りないとかってエラーが出て new できなくて悩んで
20:36 [KaWaZ] 参照ライブラリとかイロイロ調べても謎でさ
20:37 [KaWaZ] 無いって言ってるクラスってのが org.jdom.input.DefaultJDOMFactory だったんだが
20:37 [KaWaZ] これは AnakiaJDOMFactory が extends DefaultJDOMFactory されてるからなんだが
20:38 [KaWaZ] でもね、jdom-1.0.jar は入ってるし、Eclipse の補完でも DefaultDCOMFactory は参照できてるんだよ
20:39 [KaWaZ] イロイロ悩んだ結果最終的に、jdom-1.0.jar を解凍してホントにクラスがあるのか見てみたら
20:39 [KaWaZ] org/jdom/input/DefaultJDOMFactory.class なんて無いんだよ!
20:40 [KaWaZ] なにーって思ったら、org/jdom/DefaultJDOMFactory.class ってクラスがあった…
20:40 [KaWaZ] パッケージ違うじゃん!
20:41 [KaWaZ] Velocity 1.4 のバイナリをビルドした環境では input の下にあったんだろうなぁ…だからコンパイルできてるわけだし
20:41 [KaWaZ] でも jdom-1.0 では別の場所にあるわけで、それでおかしなことになってたことが分かった
20:42 [KaWaZ] 原因が分かったので
20:42 (KaWaZ) package org.jdom.input;
20:42 (KaWaZ) public class DefaultJDOMFactory extends org.jdom.DefaultJDOMFactory {
20:42 (KaWaZ) }
20:42 [KaWaZ] こんなクラスを一個作って橋渡しするようにしたら解決した
20:43 [KaWaZ] Velocity か JDOM か、どっちが犯人?なのか分からんが殴りてぇ…
[天気:曇り]
#1
ファイルの Writer の開き方メモ
Writer writer = null;
OutputStream out = null;
try {
out = new FileOutputStream(file);
writer = new OutputStreamWriter(out, encoding);
:
} finally {
IOUtils.closeQuietly(out);
IOUtils.closeQuietly(writer);
}
ファイルのWriterを開くときはやっぱこうした方がよいな。
以前に、
Writer writer = null;
try {
writer = new OutputStreamWriter(new FileOutputStream(file), encoding);
:
} finally {
IOUtils.closeQuietly(writer);
}
いきなりこんな感じに開いても、writer.close() で中の FileOutputStream もちゃんと close してくれる筈だからこれでよいって話があったんだが、やっぱりこれは良くないことがわかった。
encoding が valid じゃない(null とか "hoge" とか無効なエンコーディングが指定されてる)場合に、
OutputStreamWriter の new の途中で UnsupportedEncodingException が発生して writer が null のまま finally に飛んでしまうので、
writer.close() はちゃんと行われず、new に成功した FileOutputStream が放置された状態になってファイルがロックされてしまう。
だからちゃんと FileOutputStream は別変数にとっておいて、個別に close してやらないといけないのだ。
ということに気が付いた。
昨日ハマってた AnakaiaJDOMFactory の問題を Bugzilla に
投稿
してみた。
早く直って欲しいな。
@
レスが来た:
開発版で直ってるようだ。
リリースはまだなのでsnapshotから取ってくれってさ。
[天気:曇り]
収入の2/3が借金返済で、更にその収入の約半分くらいの額の借金も毎月してて、現在のローン残高は年収の10倍くらい残っててその額も毎年年収目前の額で膨れていく…こんな状況ありえねぇ(--;
毎度毎度思うが現実を見ると本気で国外逃亡したくなるよなーこれ。
それでも政治は改革どころか批判の隙を狙ってまだ無駄を創出しようと頑張っているところ多し、という現状。
とりあえずあれだ、民間は無駄を無くそうと必死なのに、永田町の人々は無駄を出すほど金が引っ張れるとかって考えしてるんだからそりゃ終わるよな。
お国は責任を取らない、責任の所在がハッキリしない(させようとしない)から駄目なのだ。
使う金は人の金(税金、年金、貯金、etc)だし、そもそも政治家を選んだのは国民なんだからお前らの責任だとか言い出す始末の人も居るし。
総理大臣選ぶのだって大統領選挙とは違うんだから結局は今居るおまいらの都合で決まるんだろ?
あー、いっそアクメツ現れて欲しいよホント。
blog を付けるリスクとか匿名性ということについてイロイロ考察している。
訴訟のリスクのうち勝訴することが目的じゃなくても良いのだって辺りを見ると怖いなーと思ってしまいます。
ネットに情報を公開する以上それに付きまとうリスクとか責任とかもも考えず、
書いて良いことと悪いことの区別も付かない人ってのは結構居るわけで…。
最近は blog に書いた記事が元で会社を解雇されたという例も出てきてるようだしね
まぁ、そういう人達のことを心配するわけじゃなく、自分は気をつけねばなぁと思い直したわけです。
一応これまでも公開する情報についてはそれなりに気をつけてはいるつもり。
[天気:晴れ]
#1
日記の先頭に遡って書いておこう。
今思ったけど今日の日記はデスノート見てない人には超危険なネタバレが潜んでるので見ないでね。
WeakRederenceネタとデスノート倉庫で止めとけ。
と一応誰かのために配慮しておく。
#2
WeakReference って便利だということに気が付いた
日本語で言うと弱参照である。と言っても良く分からんよな。
僕も昔 Java を勉強してるときに弱参照だの強参照だのってよく分からなくて、
頭の中ではリフレクションと並んで理解を放置していたモノだった。
それから数年のときが経って、最近は DI も流行ってるし、インターフェースプログラミングも常識化してきて、リフレクションを使ったフレームワークも多く、簡単にリフレクションを利用するライブラリも出てきているので、リフレクションとかクラスローダに関しては、最近はもう殆ど抵抗感無く、むしろ便利だ〜とか思うようになっている。
そこで、過去リフレクションに並んで理解を放置してすでに存在すら忘れかけていた概念、弱参照である。
なんでこんなものを最近思い出したかって言うと、最近 Java で常駐モノのプログラムを書きたい場面が多いのよ。
で、いくら富豪的でゴゥでいいやとは言ってもやっぱパフォーマンスも気になってしまうのが常で。
とりあえず簡単なところででかいオブジェクトの初期化コストを抑えるために HashMap とかでオブジェクトキャッシュを始めた。
HashMap を使ったキャッシュは実装がとても簡単な上にそこそこ効果があるのでよく使うんだが、常駐系(起動しっぱなし)のプログラムだと、使われなくなったオブジェクトがずっと残ってメモリを圧迫してしまう。
本来なら本当に用がなくなって使われなくなったオブジェクトはガベージコレクタが回収してくれるんだが、HashMap にオブジェクトをキャッシュしていると、
HashMap がそのオブジェクトを参照しちゃっているのでガベージコレクタの対象にならない。その結果回収されずにメモリを圧迫するのである。
この問題の解決のためにタイマー付きの HashMap キャッシュみたいなのを作って、最終参照タイミングから指定時間経過したら HashMap からオブジェクトをremoveするとかってのを考えたりしてたんだけど、そこまでしてキャッシュしたいか?って思いのほうが先に立ってしまって結局、もうキャッシュなんてイラネ。とりあえず機能実装しよう。とかいう風に流れてしまう。
そんなとき、ふと弱参照…そんなのがあったなぁ、と思って調べてみたところ。
これまでの悩みを解決してくれるクラスがあるじゃないか!その名も WeakHashMap。
こいつはパフォーマンスや機能的には HashMap と殆ど同じなんだが、一つだけ大きな特徴があり、それはオブジェクトを弱参照で格納しておく、ということ。
弱参照で格納されてる場合、そのオブジェクトに対して弱参照じゃない参照(強参照)が全てなくなったらガベージコレクタの対象になってくれるという、まさに僕がやりたかったことを実現したクラスだった(ぉ
というわけで今後オブジェクトキャッシュをするときは積極的に使ってみようと思う。
これにはこれで何か欠点があるかもしれないけど、そんなことがあったらそのときにまた何か考えると言うことで…。
面白すぎw
#4
ところで
最近日記をかなりよく書いてる気がする。
まるでそこらの blog のようだw
わはは。
とか思ったりする納期前の自分でした…orz。
#5
最近のライト好きじゃない
2,3週間前まではライト好きだったんだが、デスノート取り返してから嫌いになった。
重要人物アッサリ人殺し過ぎだ。
先週くらいから俄然エル派になった。
頑張れエル。
ライトなんかぺぺぺのぺーで懲らしめてしまえ!
#6
な、なんだってーーーーーーっ!!!
もう火曜日に突入した時間だと言うのにさっきやっとジャンプを読んだ。
ついさっきデスノート倉庫みて笑ってたのは何かの予兆だったのか?
まだ読んでない人に配慮して何があったかは言えないが…。
デスノート…、デスノートがが凄いことになってるヨォーーーーー!
来週から何を楽しみにジャンプ読めばいいんだ…OTL。
[天気:晴れ]
classowrlds ってライブラリの uberjar 機能って良いなー。
これ使えば複数のjarをクラスバスに入れて java 起動するようなスクリプトとかが全く要らなくなる。
Javaアプリケーションの配布に便利だ。
仕組みとしては、単一の jar の中に依存 jar を全て含めてしまって特別なクラスローだを使って main クラスを起動できるようにする。
↓こんな風に起動出来るようになる。
java -jar foobar-uber.jar
Windows ならダブルクリックするだけで動く jar になるのだ。
しかも
maven-uberjar-plugin
使うと、
maven uberjar
を実行すれば一発で、
プロジェクトの依存ライブラリを勝手に含めて ${pom.artifactId}-${pom.version}-uber.jar なファイルを作ってくれる。
@
uber ってスラングなんだ:
super とか ultra のスラングらしい。
つまり uberjar は「スゲーjar」って意味か(笑
@
欠点もあるなあぁ:
起動が遅い…。
一度起動しちゃえばあとは変わらないんだけど。
あと使ってるライブラリのライセンスによっては駄目そうってところか。
でも BSD、Apache、LGPL あたりのしか使ってなければ問題なさげかな。
[天気:晴れ]
でもコレ見る限り、国際化URIって今までとシステムが分からしたら何も変わらないよね。
GETパラメータは元々デフォルトではUTF-8でURLエンコードされてるって決まりだったんだし。
要はブラウザが国際化URI対応になったらUTF-8でURLデコードした文字列がアドレスバーに表示されるようになるってことかな。
Wiki とかには良いかもしれないね。