DATE : 2007/06/02 (Sat)
これまで MD ラジカセでラジオドラマを録音してきました。しかし、増え続ける MD に整理が追いつかなくなってきました。
(;^ω^)青春アドベンチャーの場合、話ひとつがだいたい150分なので80分 MD が2枚必要になってしまいます。80分 MD5枚で1000円程度なので、3話分で1000円かかってしまいます。
というわけで、MD → PC にラジオドラマを移す環境を整えようと考えました。気に入った話は MD と PC の両方に残しておいて、どうでもいい話は PC のみに移しておけば、MD を買い足さずに再利用できる、という魂胆です。
(;^ω^)最近は MD も下火ですしね。
ところが、私の PC にはライン入力端子がありません。マイク端子はあるのですが、この端子ではモノラルでしか取り込めません。
そこで、「USB Sound Blaster Digital Music LX」を購入しました。ライン入力端子付きの USB 接続のサウンドボードです。付属ソフトを使って録音することになりますが、クリック音やサーッと言うヒスノイズを除去できる機能があるので、ラジオドラマの録音には最適です。
(;^ω^)唯一の弱点といえば、アナログ録音なので、録音中に突発的な負荷がPC にかかると音とびしてしまう場合があることですね。
( ^ω^)これで手持ちのラジオドラマをどんどん PC に移せますね。
(;´Д`)次は HDD の容量が問題ですが……。
DATE : 2007/05/31 (Thu)
今月は何かと忙しい月でした。
月の後半に、これまで進めてきた企画をちょっとした集まりで発表することになっていたので、その準備に追われていました。
(;^ω^)……と思ったら、その数日前にコンセプトが似たものを au が発表したりと、発表前の数日間はまったく落ち着く余裕がありませんでした。
とりあえず、その発表はそれなりに好評だったので何よりでした。
(;´Д`)ばたばたしていたのと、発表の作りを少し変えてみたので、準備不足な面も多々ありましたが。
( ^ω^)これでようやく、次の企画の準備が始められますね。
DATE : 2007/05/27 (Sun)
「Code Complete 第2版 ――完全なプログラミングを目指して」(Steve McConnel 著、(株)クイープ訳、日経 BP ソフトプレス、2005)を読みました。
変数名やインデントの付け方から開発工程まで、ソフトウェア開発に関する話題を一望できる本です(ただし、半分以上はプログラミングに関する話題で占められています)。
中でも興味深い部分は「言語の中でのプログラミング」と「言語の中へのプログラミング」でした。前者は、プログラミング言語やツールに用意されたものの範囲内に考えを限定してプログラミングを行うことで、後者は、用意された言語やツールを利用して考えを表現します。つまり、考えが言語やツールの中にあるか外にあるかということです。
(;´Д`)思えば、私も「言語の中でのプログラミング」からまだ抜け出せていないようです。Java ではうまく書けたことが他の言語になるとうまく書けないことも良くありますし。
他にも、コメントの付け方なども興味深い点でした。この点は、いつも迷っているところだったので、明確な指針が必要と常々考えていました。なので、コードを書く時期によってコメントの量や付け方が変わっていたのですが、本書のおかげでコメントの適切な付け方を学べました。これだけでもかなりの価値があるように思います。
(;^ω^)こう考えると、しっかりとした基盤や指針のない経験というのはかなり危ういものだと気付かされます。ある時は良い書き方をしていたのが、指針がないばかりに次には悪い書き方に変わっていたり、逆にさらに良い書き方になっていたり、良い・悪いの判断が主観に頼るしかないため、非常に不安定です。
( ^ω^)なので、コードの書き方に迷った時の指針として、この本は必須ですね。
DATE : 2007/05/26 (Sat)
Spring Frameworkの org.springframework.orm.hibernate3.HibernateTemplate#load()を使用してオブジェクトを取得した後にそのオブジェクトのメソッドを呼び出すと、org.hibernate.LazyInitializationException という例外が発生してしまいました。
HibernateTemplate#load() は、内部で Session#load()を呼び出しています。Hibernate には遅延読み込みという機能があり、Session#load()から返されるオブジェクトはオブジェクトそのものではなく、そのオブジェクトの内容を(データベースなどから)読み込むオブジェクトが返されます。こうすることで、オブジェクトのプロパティが必要になった時になって初めてデータが読み込まれるので、オブジェクトの生成に時間がかからないわけです。
ところが、そのデータを読み込めるのは Hibernate セッションが開いている間だけです。つまり、Hibernate セッションを閉じた後にプロパティを初めて参照した場合は例外が発生します。それが LazyInitializationException です。
通常は、Hibernate セッションの管理は開発者が手動で行わなければなりませんが、HibernateTemplate は Hibernate セッションを自動的に管理してくれるので、セッションの管理を気にする必要はなくなります。
(;^ω^)ところが、ここに落とし穴があって、HibernateTemplate#load() も例に漏れず、内部で Hibernate セッションが閉じられていました。なので、Hibernate セッション外で HibernateTemplate#load() を使って読み込んだオブジェクトのプロパティを参照すると、LazyInitializationException が発生します。
そこで、HibernateTemplate#get() に処理を変えました。Session#load() と違い、Session#get() はオブジェクトそのものを読み込みます。そのため、Hibernate セッションが閉じられた後でもオブジェクトのプロパティを参照できます。
(;^ω^)Session#load() と Session#get() は一見おなじような機能なので、適当に load() を利用していたのが間違いでした。同じような機能が複数ある場合は、違いをよく確認しないといけませんね。
参考文献
DATE : 2007/05/22 (Tue)
本日、au の新商品が発表されました。
と、その中に――
「災害時ナビ」の提供について ~GPSを活用した災害時支援サービス~
「災害時ナビ」は、日本全国の広域避難所や主要道路などの地図を携帯電話にプリセットした上で、StandaloneGPS (注) を活用し、災害時など通信ができない状態でも利用料無料で自分の現在位置を測位することで最寄りの避難スポットまでの方向(編注:方角)や距離を知ることができるサービスです。
( ´∀`)……
(つд⊂)ゴシゴシ
(;゚ Д゚) コンセプトが同じじゃないか……。
( 'A`)以前やっていた企画とコンセプトが思いきり同じなんですよね。データを端末に入れておくとか、避難場所への方角や距離を知るとか。
どちらが先かはよく分かりませんが、細かい部分では違うので特許などの問題に発展することはないとは思いますが……。
(;´∀`)まあ、企画の目の付け所は悪くなかったのがこれで証明されたようなものなので、その点では良かったような気がします。