2006年2月のアレ
2006年2月28日
複雑なことはシンプルを組み合わせて実現する
今日の役に立たない一言a
より。
なるほど。 単純な部分への分解、というのは基本技かもしれない。
シンプルな最小単位をデザインしていく
というプロセスに注目したということだが、 私が気になったのは、その他、二つある。
まず、シンプルなものを複雑に組み合わせるという技能は、 どうなのか。 個々はシンプルでも、結構大変ではないか。 というか、かなりの高等技術が必要ではないか。
もう一つ。 複雑なことをシンプルな単位に分解した。 組み合わせたら、シンプルなものができてしまった。 それはそれでいいかもしれない。
§
TSUTAYA に行けば Wカード半額なのだが、 寒くて行く気力が出なかった。 寒いし花粉は飛んでいるし、絶対によくない。
2006年2月27日
Windows で、 firefox の優先度を落としてあるのだが、 forrest を実行したら、 firefox が負けてしまって、全然操作できなくなる罠。
§
ふと思ったのだが、 昔、ラジオとか自作するときに、 イヤホンジャックにプラグを入れたら電源が入る、 みたいな技を使うことがあった。 プラグを抜くと自動的に電源が切れるので、 うっかり電池を無駄にせずに済むのだ。
で、VAIO BX なんだけど、 mute の状態で、ヘッドホンジャックにプラグを入れたら自動的に mute を解除、 抜いたらまた mute、 というような仕組みは作れないのだろうか? プラグを入れてるのだから、 mute を解除したいのは自明だと思うのだが。
§
java.lang.NoClassDefFoundError: org/apache/commons/fileupload/FileUpload
メッセージはそのまんまなのに、 単に commons-fileupload-1.0.jar が lib に入ってないだけだ、 と気付くのに結構かかった。
§
うっかり http://localhost:8080/ に接続しようとして、 servlet が動いていなかったせいでややこしいことになる。 Firefox は気を利かせて、 勝手に http://localhost.com:8080/ とか見に行くからだ。 だから、 普段は http://127.0.0.1:8080/ をアクセスするように気をつけているのだが、 つい油断した。
§
ベイジアンフィルタを用いた spam フィルタ、 あるいはベイズ理論を使ったナニでもいいのだが、 本文が空であるメールを spam と判定することは原理的に不可能?
ヘッダで処理すればいいか…。
2006年2月26日
VAIO BX をもってベローチェへ。 パソコンを使っている人が意外と多い。 すぐ隣に、 Panasonicのノート、Shartのノートを使っている人が。
バッテリーが切れて、途中で交換する。 やはりまだ片手では交換できない。
起動はすぐできたのだが、 Air Edge に接続しようとしたら「発信音がありません」というエラーで接続できない罠。 Air Edge のカードを一旦外して、 挿入し直したらうまくいった。
§
NTT東日本とNTT西日本が、 顧客情報1396件がインターネットに流出したことを発表。 裏の戯言に書いた。 (NTT東日本とNTT西日本が顧客情報1396件のインターネット流出を発表)
私はどうかというと、 殆どの作業は私物のパソコンでしてきた。 理由は簡単。
1. ノートパソコンを会社が買ってくれなかった。 EWS は論外としても、デスクトップを持ち運ぶわけにもいかない。 そういえば、Mac (初代?) 持ち歩いていた人もいたけど。
2. ノートpcを外で使うのは危険だという説もあるが、 私の経験からいうと、 会社の中で備え付けのデスクトップpcを使う方が、 私が普段使っているノートパソコンを使うよりもかなり危ない。
VAIO BX に至っては、 自分で登録した指紋でもログインできない位だから、 セキュリティ的には完璧【謎】。
もちろん、情報を持ち出すというのはご法度だが、 そういうヤバい情報はノートには入れてないというか、 だいたいディスクが足りないのに無駄なもの入れる余裕はない。 そもそも、個人情報とかないし。 むしろ、自分の情報の方が危ないか。
2006年2月25日
月詠を返しに TSUTAYA に行ってきたのだが、 近所の TSUTAYA、 火曜日にWカード限定半額、というのをやってる。 火曜日に借りに行くというのはかなり厳しいのだが、 借りたいものはあったりして…。
ついでに、お昼のお弁当を買う。 やっと決着したらしいが、 オリジン弁当。 でも、 スヌーピーのボウルが欲しいのでセブンイレブンに行ってしまう軟弱者です。 すみません。
2006年2月24日
昨日の100倍遅くなるという件。 サーバー側にアプリケーション置いて、 というのが未検証だが、 ふと思いついて Ethereal でパケットを見てみると、 MySQL に1つデータ問い合わせるのに「なぜこんなに大量のパケットが」 と、驚くほどの細かいパケットが飛び交っているのが分かった。 いや、大量といっても100個とか、そういうオーダーなんだけど。 これで1000単語の更新すれば、 10万個のパケットが出入りするという仕組みか。 この状況なら100倍遅いというのも納得である。
MySQL のドキュメントには、 5.0 から SSH で接続しやすくなったとか、 そういう話は書いてあったようだが、 この状況ではインターネットを経由して SSH で接続というのは非現実的だ。 もっとも、1回のアクセスで100パケット出たところで、 1秒とか2秒で済むわけで、 その程度でも問題ないから簡単にセキュアにしたい、 というようなソリューションもあるかもしれないが。
ということで、 とりあえず一番簡単に検証するには、 JSF + Spring + Hibernate を使って、 ファイルを upload してそれを処理する、 というようなサーバーを立てる、というのがよさそうだ。
大作業みたいに見えるかもしれないが、 JSF というか MyFace で file upload する処理は既にあるし、 ローカルで spring + hibernate を使う処理が既にあるわけで (それが100倍遅くなったと騒いでいるわけで)、 そこ組み合わせるだけみたいな。 ただ、Linux 側で MySQL 5.0 とか、 Spring とか含めたライブラリを配置して、 ant で起動する、程度のことは書く必要がある。
2006年2月23日
Java。 Spring 1.2.6 + Hibernate 3.1.2 + MySQL 5.0.18。 テストデータではなく本当に解析を始める前にということで、 MySQL を 4.x から、5.0.18 に update したわけだが、 作っているアレが動かなくなった。
ERROR org.hibernate.util.JDBCExceptionReporter:72 - Cannot add or update a child row: a foreign key constraint fails (`cat/cat_kvbase`, CONSTRAINT `FK171087457FEF979B` FOREIGN KEY (`parent`) REFERENCES `cat_kvlist` (`id`)) ERROR org.hibernate.event.def.AbstractFlushingEventListener:299 - Could not synchronize database state with session org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update at org.hibernate.exception.SQLStateConverter.convert (SQLStateConverter.java:69) at org.hibernate.exception.JDBCExceptionHelper.convert (JDBCExceptionHelper.java:43) ...
症状としては昨年12月に書いたアレに似ている。
MySQL のバージョン変えただけで動かなくなるというのがポイント。 日本語を扱う話の所で書いたように、 schema で outputfilename を指定して、ファイルに落としてある。 長いので途中省略してあるが、 デフォルトでは、こんな感じの sql を実行している。
alter table cat_kvb drop foreign key FK211E746E302CA19; alter table cat_kvbase drop foreign key FK171087457FEF979B; ... drop table if exists cat_kvb; drop table if exists cat_kvbase; ... create table cat_kvb (id integer not null, value bit, primary key (id)); create table cat_kvbase (id integer not null, parent integer, lpos integer not null, kvkey integer, primary key (id)); ... alter table cat_kvb add index FK211E746E302CA19 (id), add constraint FK211E746E302CA19 foreign key (id) references cat_kvbase (id); alter table cat_kvbase add index FK171087457FEF979B (parent), add constraint FK171087457FEF979B foreign key (parent) references cat_kvlist (id);
日本語化の話では、 これを perl にかけて、 create の所に少し追加したスクリプトを生成するというアイデアだった。 置換後のスクリプトはこんな感じになる。
... create table cat_kvb (id integer not null, value bit, primary key (id)) DEFAULT CHARACTER SET = utf8; create table cat_kvbase (id integer not null, parent integer, lpos integer not null, kvkey integer, primary key (id)) DEFAULT CHARACTER SET = utf8; ...
長いので改行してあるが、 改行してあっても別に構わないような気がした。 実際は1行である。 これを mysql コマンドに食わせてテーブルを作り直すのだが、 さて、これにさらに追加して、このようにしてみた。
... create table cat_kvb (id integer not null, value bit, primary key (id)) TYPE = MYISAM DEFAULT CHARACTER SET = utf8; create table cat_kvbase (id integer not null, parent integer, lpos integer not null, kvkey integer, primary key (id)) TYPE = MYISAM DEFAULT CHARACTER SET = utf8; ...
これで解決。 動くようになった。 要するに、 TYPE = MYISAM を指定して create table しただけである。
ただ、深夜のchatでブチブチと言ってた問題が解決していない。 Windows 上で全部やった場合と比べて、 Linux 上の MySQL サーバーに ssh でトンネル掘って接続したら100倍遅かった、 という話。 もっとも、処理時間は100倍かかるのだが、 CPUの負荷はWindows 100% から、Windows クライアント側が数%、 Linux 側は load average が 0.1 未満、という感じで、 どこに負荷がかかっているか分からない。 単純に考えたら、 インターネットのどこか途中経路とか、そのあたりのような気もするのだが。
状況確認の方法として、 サーバー側で Java のコードも動かしたらどうなるか、 という比較検証を行う予定である。
2006年2月22日
裏裏で、02:22 に投稿する。 pcの時刻は心配だったが、うまく ntp で合わせてあったようだ。 サーバー側の時刻はこちらではなすすべもないが、 普通に合っていた。
もっとも、最近はセキュリティの問題絡みで、 サーバーの時刻を極めて正確に保つことが重要なのだが。
§
VAIO BX、 起動直後の状態でタスクマネージャを開くと、 コミットチャージが 360MB程度だった。 ちなみに、今これを書いている時点で、 mysqld を起動し、 Firefox と Thunderbird を開いた直後で、 Eclipse を使ってコレを書いているのだが、 ちょうど 512MB。
§
キットカット、スペシャル限定バージョンをやっと get!
§
Hibernate の download page の件。 さっき見たら 2006 に修正されていた。 しかし今見てもひどい英語だな、17日のは。 せめて、
I have sent a mail ..
とするべきであったと思っていたりする。 The page has corrected. Thanks. ちなみに、まあこないと思うけど、 今、英文で普通にメールが着たら、 90%の確率で誤認識してしまうような気がする。
ところが直ったら直ったで、 バージョンの自動チェックプログラムが… そりゃもう前回保存時より1年進んだ訳だから動作としては正しいわけだが。
§
最近、あまり WZ Editor で編集しなくなった。 これだって Eclipse で書いているのである。
Eclipse といえば、 とりあえず適当に plugin を追加して、 XML が編集できるようになったので、 3.1.2 に乗り換えた。 3.1.1 は plugin の下を殆ど削除。 後にこういうのが残った。
2006年2月21日
VAIO BX。 またハイバネーションからの復帰に長時間かかる。 具体的には、10分強かかった。 我慢して放置しておき、 タスクマネージャで調べると、 Firefox と Thunderbird がそれぞれ 50% ずつ CPU を取り合って 100% になっている。
ハイバネーション前は、別の場所で無線LANに接続していたので、 その影響なのかもしれないが、 どうも釈然としない。 ということで、 ちょっと思いつきを実行してみることにする。 Firefox と Thunderbird のタスクの優先度を下げておくのだ。 仮に CPU を全部使い切りに行っても、 優先度が低ければ、 ハイバネーションからの復帰には影響ないのではなかろうか?
§
エラー: 不明なプロパティ 'aligh' が使用されています。 このスタイル宣言は無視されました。 ソースファイル: https://shop.jp.s********.***/******/****/***** 行: 0
§
重くて Air Edge ではとても読む気になれない ITmediaだが、 こんな面白い記事もあった。
ITmedia News:母がDVDをビデオ化する、もう1つの理由
母がビデオを好む理由は、途中まで見て取り出しても、次にまたデッキに入れれば止めたところから再生できるから。
確かに、 PSX ってうっかり「最初から観る」をメニューで選択してしまったらはいそれまで、 ということで続きから観ることは二度と不可能というか、 その時点まで何とか早送りできればいいだけの話だが、 結構面倒い。 もちろん、続きから観る機能自体はあるのである。 VAIO BX に付属の DVD プレイヤーも同じで、 以前に観た DVD を入れて再生すれば、 きっちり前回の続きから再生してくれる。
母は、近所の主婦と韓国ドラマのビデオを貸し合っている。
それは著作権の侵害行為なのでは?
2006年2月20日
「あっぱれご意見番」の「蟹の味噌汁」の話だが、 普通に google で「蟹の味噌汁」で検索したら7番目に出てきた。 便利な時代になったものだ。 google がヒットしたページの一部を抜き出してくれているが、 かなり絶妙なところで切ってくれているようだ。
約10年前に書いた話だ。 自分でも、文章のリズムが今と違うというのが分かる。 話に出てくる回転寿司というのは下北沢の南口を出たところにあったもので、 今でもあるのかどうかは知らない。
§
Hibernate のトランザクション管理、 どうもうまく動かないと思ったら、 何てことはない、 Spring + Hibernate + JUnit のときにはちょっとしたコツがいるのだった。 Hints の Hibernate (2) を修正。
2006年2月19日
今日の役に立たない一言 - Today’s Trifle! - の、男女不平等 という所で、 34%, 34%, 32% という話が出てくるが、 これはもしかすると、 3で割って33.3%→切り上げて34%、最後に残ったのが32%、 というアルゴリズムではないだろうか?
生命保険の金額のような桁数あるのなら、 33.3%とかいう桁まで出してもいいと思うのだが、 だとしても、想像通りだと、 33.4%、33.4%、33.2%、に分けてしまうと思う。
妄想根拠から論理が発展していくので恐縮だが、 普通に考えたら四捨五入して、 33.3%、33.3%、最後に残り全部で 33.4%、とするのが自然である。 そうなっていないのが、 もしかすると、 筆頭受取人の方が少ないというのでクレームが多かったりしたのではないだろうか。 考えすぎだろうか。
集計用のプログラムとか書いていると、 合計が100%にならないと気持ち悪いというので、 最後に「その他」とかいう欄があったら、100から今までの合計を引く、 というような処理をよく書いたりする。 全部四捨五入だと誤差が出てしまうことがある。 極端な話、全部 0.4 という数値を四捨五入して整数値で合算したら、 各項目、全部構成比が 0% で、合計は 0 ではなく 100%、 とかいうまことに円グラフにしにくい値が出てきてしまう。
§
この前行ったのがいつか思い出せない位久しぶりに回転寿司に行く。 インターホンで注文するシステムで、 注文の仕方とか分からなくて大変。 もっとも、お茶はパックを入れて飲めとか取説【違】に書いてあるのに、 実際はツボに入った粉末を溶かす、のような歴史的記述に騙されたりしたが。
蟹の味噌汁の話とか、昔「あっぱれご意見番」に書いたよなぁ…。 どんな話だったかは、神のみぞ知る【寒】。
§
ちょっと頭痛い。 風邪薬を飲んでとりあえず寝てみる。 頭痛が取れたらプログラム書こう。
2006年2月18日
VAIO BX。 モバイル的に使っていて、 バッテリー切れでハイバネーション状態になって終了。 ここまではいいのだが、 その後、再起動してマトモに使えるようになるまで30分以上かかる。
DoCoMo の Wireless LAN に接続した状態で切れたら、 次の再起動で無茶苦茶長時間かかる、というのは何度か経験しているのだが、 これを回避する方法はないのだろうか?
§
マンガ喫茶に行って、 ジュースをおもいっきりキーボードの上にひっくり返す。 蓋をしてあった VAIO BX の上にも直撃。 蓋が幸いしたが、毛管現象で少し内部にもぐりこんだ感じで、ディスプレイの枠のところまで回りこむ。 ただし、液晶は直撃せず、 液晶の上につけてあったオプションのセキュリティシートが身代わりになった。
セキュリティシートは後で拭くしかないか。
2006年2月17日
1週間ほど前に、 Hibernate にメールを送った。 というのは、download のページに、 こういう記述があるのだ。
Hibernate Tools 3.1 beta 4 30.01.2005 Development Download
トップページには、
30.01.2006 - Hibernate Tools 3.1.0beta4 released
と書いてあるし、 Hibernate Tools は最近よく使っているので 2006で間違いないと思うのだが、 download page は 2005 になっている。 実は私はこの種のバージョンチェックをクロールするソフトを使っているので、 Hibernate Tools のバージョンが上がったときに更新日時がいきなり1年戻ったために、 このソフトが発狂寸前というかパニック状態になっているのだ。
まあソフトの方は作った私の責任なので仕方ないとして、 2006の間違いじゃないのか、というメールがシカトされているというのは納得できないというか、 spam だと思われたか、私の英語力ってそんなモンですな。
I send a mail to the webmaster of Hibernate home page, which suggested that '2005' was a typo of '2006' in fact. But, it seems to be completely ignored.
2006年2月16日
forrest 0.7 の build を Eclipse から起動。 0.7 のドキュメントの、 Using Forrest の、 Invoking Forrest from Ant という所に書いてある build.xml 用のデータを殆どそのまま。
<?xml version="1.0" encoding="UTF-8"?> <project name="build ura site" default="site"> <!-- FORREST_HOME must be set as an environment variable --> <property environment="env" /> <import file="${env.FORREST_HOME}/main/forrest.build.xml" /> <!-- 'site' is a target imported from forrest.build.xml --> <target name="post-build" depends="site"> <echo>something here</echo> </target> <target name="load-project-props"> </target> <target name="examine-proj"> </target> </project>
load-project-props と、 examine-proj は追加した。 import file の方は、 forrest 0.7 をインストールしたディレクトリを FORREST_HOME にしてあるので、 main/ というパスを追加しないと not found ということになってしまう。
DTD の指定は、 Air Edge で接続しているときにいちいちサイトを見に行ってしまうのがどうもいやなので、 ローカルのファイルを見るように修正。 Eclipse の Window > Preferences で Web & XML を開き、 XML Catalog の、 User Specified Entities に、 次の情報を追加する。
URI:file:///d:/java/apache-forrest-0.7/main/webapp/resources/schema/dtd/document-v20.dtd
key Type: Publc ID
key: -//APACHE//DTD Documentation V2.0//EN
Specify alternative web address にチェックを入れて、 http://forrest.apache.org/dtd/document-v20.dtd と書いておく。
2006年2月14日
バレンタインデーでつか。 あまり私には関係なさそうな気もするが、 ネットでの盛り上がりはどうだったのだろうか。 昔、パソコン通信やってた頃は、 いろいろ盛り上がりもあったのだが。
2006年2月13日
鈴木ゆかりさん、頑張っているなぁ… spam。
トリノの冬季オリンピックの原田、 らしい失格で話題しては盛り上がった。 それにしても、 ボクシングなんかだと、 試合前に計量するわけで、 ジャンプ競技も、飛ぶ前に長さチェックするとか、 そういうことはできないのか?
飛んだ後で水でも飲んでいたら問題なかった、 とかいう凄い噂もあるようだが、 それはちょっと…。
2006年2月12日
今日は VAIO BX を起動する前に、 Wireless のスイッチを off にしてみた。 約30秒で起動できた。
地下鉄の対面に座った、 幼稚園位の女の子が、 「電車の中でパソコンしてもいいの?」 とママに聞いていた。 そういえば、 電車の中で携帯がどうだという話題は結構盛り上がるというか定番だが、 電車の中でパソコン使っていいのか、 という議論はあまり聞いたことがない。 個人的には、 電車の中だと振動がパソコンによくないから、 使わない方がいい、 というような視点での意見は書いたことがあるが。
まあそれはそうとして、 ママの方は小声で話すので何と返事したか分からなかったが、 その女の子が 「パソコンもってくればよかった」と言ったのはちょっと意外だった。 既に幼稚園からパソコンという時代になっていたか。
§
携帯のバッテリー切れ。 忘れた頃に切れるのだが、 要するにACアダプタ持ち歩けば殆どの場合問題解決しそうな気がする。
2006年2月11日
VAIO BX。 なぜかとっても忙しいので、 電車の中で使うことにした。 実はBX を電車の中で使うのは初めてである。
ところが、起動しない。 VAIO Z の場合、 ハイバネーション状態から復帰するのに1駅程度かかったのだが、 3駅経過してもまだログインの画面が出てこない。 使えねー奴。 ということで、 強制リセットして、最初から起動。
原因はよく分からないが、例によって次のどれかだろう。
・Windows XP Pro SP2 の設定。
・Scemantec Internet Security が何かしている。
特に、電車の中だとネットワークが全くつながらないので、
それを何とかリトライしているとか?
・Firefox?
・Thunderbird? 以前、復帰がすごく遅いので、
我慢して復帰してから調べると、
Thunderbird が CPU を 100% 食っていたことがあった。
これもネットワーク絡みの話かもしれない。
ちなみに、帰りの電車の中だと、 30秒でハイバネーション状態から復帰した。
2006年2月10日
TSUTAYA に行きたかったのだが行けなかった罠。
2006年2月9日
最近、このページの原稿もそうなのだが、 XML のドキュメントを編集するのに、 WZ Editor のような普通のエディタではなく、 Eclipse の XML エディタを使っている。 タグの対応とか間違っていると即座に警告を出してくれるのがいい。 特に、forrest 用のドキュメントは、 forrest で処理するときに出るエラーメッセージだけでは、 どこが間違っているのかよく分からないことが多い。
C のプログラムで何かコンパイルエラーが出たときに、 エラーメッセージが指摘している行ではなくて、 そのちょっと前にへんなことをしていたのが原因、 ということがよくあるが、 そんな感じである。 例えば、 </section> があるべき所にない、 というようなエラーが出た場合、 これは section タグの問題ではなく、 他のタグの対応が取れていないから、というようなことがあって、 それがどこのタグの問題だか分からないのだ。
※↑これ書いているときに、> と書くべきところを > と書いていて、forrest がエラーになってしまった。 XML Editor は何も教えてくれなかった。 残念~!
それが、Eclipse で書いていると、 対応が取れないことが検出された瞬間に、 リアルタイムで警告が表示されるので便利。
ただ、常にエラーがない状態で書くような習慣がないと、 面倒かもしれない。 例えば、 <p> を書いたら、すぐに </p> も書いておかないと、 閉じるタグがないということで警告が出てしまう。
2006年2月8日
SOAP を使ったプログラム。 動かない。 今日中に動かすということなので、考え込んでしまったのだが、 設定ミスを発見するのに6時間かかる。
自分で設定したところではないし、 それが動作しているところを確認していたので、 まさか設定ファイルが間違っているとは気付かなかった。 6時間というと、 もしかしたら自分で axis を入れた方が早かったかもしれない、 という感じだが、 まあ動くことは動いたので桶。
§
そろそろリンク集を再開したいのだが、 データ構造とか変わっているのでどうなるか。
2006年2月7日
Sony の IC レコーダーの件。 データを pc に転送するときに、 Digital Voice Editor という付属ソフトを使うのだが、 これに関する問い合わせの返事が来た。 要するに、 ICレコーダーに付属のソフトは、 pc1台で使うというライセンスになっているので、 1台にしかインストールしかできない。 また、複数のpcにインストールするためのライセンスは販売していない。
しかし、複数のpcで使うのなら、 台数分の接続キットを買えばいいとのこと。 つまり、接続キットにはソフトウェアが含まれているので、 接続キットを買えば、ライセンスを1つ買ったことになるわけだ。 なるほど、その手があったか。
パソコン接続キット ICKIT-W9 を購入すると、 その中に Digital Voice Editor 2.1 が添付されている。 これを追加したい pc にインストールすればいい。 今使っているバージョンは 2.31b だが、 これは 2.1 からバージョンアップできるので問題ないはず。 対応機種も結構分かりにくいが、 ICD-MX50 も大丈夫。 というか、実際 2.31b は使っているので。
もちろん、接続キットを買うとUSBケーブルも付いてくる。 USB ケーブル自体はどれでも多分同じなので、 そんなにあっても仕方ないのだが、 昔ハードディスクを買ったらたくさんケーブルが集まってどうしてくれよう状態になったときのように、 USB ケーブルは類友系のアイテムのようだ。
USBケーブル何本も持ち歩くのが面倒なので、 最近は1本だけ持ち歩いている。 って当たり前か。 またケーブル増えるのがナニというより、 5,775 円もするのではちょっと買う気がしないというか、 買う余裕がない。 当分1台のpcで使うとして、 ICレコーダーをできるだけ使わない という対応で、pcに取り込む手間を省くことにしたい。
一時期割と使っていたのだが、 その後あまり使わなくなって、 最近また使うようになってきた。 ICレコーダーではなく、pc 本体を使って録音、という手もあるはずなのだが、 どうだろ? 会議の録音とかなら、それで済むはずなのだ。 VAIO BX にはマイク端子がついているし、 何かソフトを使えばできそうな気もするのだが、 こういうのはうぐぅ氏【誰】が得意かもしれない。
そういえば、これで録音したデータを mp3 に変換するのって、 どうするのだっけ?
§
dW : Java technology : Javaアプリケーションのテスト用に証明書チェーンを生成
OpenSSL で証明書を作成する手順とか。
§
Hibernate。 <list-index> で指定した column に値が入らないというハマーリ。 inverse="true" という指定を削除したら値が入るようになった。 というか、なぜ inverse?
<list-index> って <index> と書いていたような気もする。
2006年2月6日
Hibernate。 何かよく分からないというか見たことのない Exception が出てくる。 もっとも、単にマッピングファイルの内容が不適切なのでそうなっているだけなのだが、 例えば。
org.springframework.dao.InvalidDataAccessApiUsageException: com.phinloda.commons.KeyValuePair; nested exception is org.hibernate.TransientObjectException: com.phinloda.commons.KeyValuePair org.hibernate.TransientObjectException: com.phinloda.commons.KeyValuePair at org.hibernate.engine.ForeignKeys.getEntityIdentifierIfNotUnsaved (ForeignKeys.java:216)
適当なところで折り返しているが、実際は3行。
次のは簡単。
org.springframework.orm.hibernate3.HibernateSystemException: Unknown entity: com.phinloda.commons.KVList; nested exception is org.hibernate.MappingException: Unknown entity: com.phinloda.commons.KVList org.hibernate.MappingException: Unknown entity: com.phinloda.commons.KVList at org.hibernate.impl.SessionFactoryImpl.getEntityPersister (SessionFactoryImpl.java:513)
単に KVList という entity がないぞという話である。 なぜないのかというと、 実は、hoge.hbm.xml が src/com/phinloda/commons/ にオリジナルがあって、 実行時には bin/com/phinloda/commons/ を見ているので、 src の下のを編集したら bin にコピーしないと更新されていない罠。 ちょっとマッピングファイルの属性を追加・修正してテストするときに、 いちいち ant schema とかしないので、 ant prepare とかしてコピーしないとハマる。
もうちょっとややこしいのは、これ。
org.springframework.dao.DataIntegrityViolationException: Hibernate operation: Could not execute JDBC batch update; SQL [update kvbase set uid=?, lpos=? where uid=?]; Duplicate entry '1' for key 1; nested exception is java.sql.BatchUpdateException: Duplicate entry '1' for key 1 java.sql.BatchUpdateException: Duplicate entry '1' for key 1 at com.mysql.jdbc.ServerPreparedStatement.executeBatch (ServerPreparedStatement.java:647)
これは key が重複しているということで、 key column の指定が間違っている可能性がある。
2006年2月5日
吾妻ひでおの「失踪日記」を読む。
いやまだ失踪するような状況ではないのですが、マジで。 まあそれはそうとして、 吾妻先生の場合、 ホームレス化してもタバコと酒は欠かせない、というところが凄いと思った。 というか、 あそこまで極限状態に陥っても、 タバコと酒のために生きている、みたいな感じがするわけだ。
§
VAIO BX のインストール。 IC レコーダーの処理に必要なので、 Sony Digital Voice Editor をインストールした。 ところで、 このソフトは「1台のパソコン」にインストールして使うという使用許諾になっているのだが、パソコンを2台以上持っている場合はどうすればいいのだろうか?
2006年2月4日
VAIO BX に本格移行してちょっと心配なのがバッテリー。 VAIO Z のときはバッテリー2本使っていたのだが、 こういうところに互換性がないために、 新しいのを買わないといけない。 もしかしてヨドバシカメラに売ってるだろうかと思って新宿に来てみたら、 ヨドバシカメラの中で VAIO のコーナーはミニスカのお姉さまがビラを配っていた。 って裏裏に書いた通りだ。
結局、SonyStyle で買えみたいなことを言われて、 バッテリーは get できず。
案の定、 原稿を書いているうちにバッテリーが切れる。 このとき、自動的にハイバネーション状態になるのだが、 次にここから復帰するときに大変だった。
何が原因なのか推測するしかないのだが、 NTT DoCoMo Wireless LAN Utility が問題のような気がする。 バッテリーが切れるときに、 通常の切断手順を踏まずにいきなりプログラムが中断になり、 次に電源が入ったときに続行しようとしたら、 そりゃかなりヤバい状態になりそうな気がする。
以前、同様に復帰がなかなか進まなかったときには、 Thunderbird が CPU を 100% 使い切った状態になっていたのだが、 今回はそのような状態ではなかった。
§
昔からよく言うのだが、 因果関係はハッキリしろと。 何が原因なのか分からないと根本的な対策にはならない。 そういうことは頭では理解しているはずだが、 実際にそういうことを考えて行動するには、 それなりの訓練がいるようだ。
少し前に放送していた「蟲師」に、 片目の魚が出てくる話があった。 池にいる魚は片目しかない。 これは片目を蟲に取られてしまうからなのだが、 これを見た子供が、 なぜ両目ともない魚はいないのかと尋ねるのだが、 「片目は残しておいてくれるのだ」のような返事をされる。
実際に、池にいる魚は片目があるのだから、 この返事は一応説明にはなっている。 しかし、この子供は、 本当は両目を取られた魚は消えてしまうのだということに気付く。 ここで重要なことは、 まず、「両目を取られると消える」という根本的な原因に、 子供がなぜか気付くということである。
「なぜ」という質問に対して、 ブレインストーム的に原因を想像してみる。 これは練習すれば割とできるようになるものである。 ただ、実際にそのような状況におかれたときに、 現実の問題に対してきっちり「なぜ」を想定できるかどうかは別の問題で、 私の経験では、かなりの人というか、 むしろまず殆ど全員がこういう状況では騙されてしまうような気がするのだが。
2006年2月3日
昨日の referer の件、 どうもおかしい。 設定は変えてないのに、 MZone からアクセスできなかった。 MZone からだと別のルールが有効になるのだろうか?
RATOC のキーボード切り替え器の話。 順調に使っていたのだが、 何か様子がおかしい。 PC1、PC2 の LED が両方点灯した状態になってしまう。 VAIO BX 側に切り替えると、 数秒はそちらから使えるのだが、 すぐにデスクトップ側に切り替わってしまう。
ちなみに、 このキーボード切り替え器を一旦外して、 再度 USB に接続したら正常に戻った。
VAIO BX の話の続き。 Z に比べて使いやすいところ。 HDD アクセスのランプが見やすい。 というか、これは Z の方が見辛すぎるというべきか。
ミュートボタンの LED が見やすいのも good。 特に、オフィスやカフェで使うときに、 ミュートになっていることが一瞬で認識できるのでありがたい。
Hibernate を 3.1.2 に update。 Hibernate Tools は 3.1.0beta4 に update。
2006年2月2日
昨日の referer の件、 結局、Symantec Internet Security が原因だと分かった。 詳細は 裏裏 へ書いた。
てなわけで、VAIO BX への移行作業はおおむね完了。 でも終わってないということで、 MZone に接続するソフトをインストール。 何か割とうまくいった。
使い勝手の話ですが、 カーソルキーの位置が VAIO Z と微妙にずれていて、 そのあたりがちょっとまだ慣れない。 上下を間違うことがある。
2006年2月1日
ごたごたした影響で、 1月31日中にダウンロードしておかないとダメなデータを保存し損ねる。 もっとも、まあたいしたものではないと。
§
私のサイトは、 基本的に、 w3c の validator を実行して ok をもらったという証のバナーが張ってあるのだが、 このバナーをクリックすると自動的に referer を検出して現状でチェックしてくれる、 というありがたいリンクになっている。 ところが、この referer が検出できない、というエラーが出てしまった。
つまり、VAIO BX に移行した影響だと思われるのだが、 原因不明。 いずれにしても、昨日から BX に完全移行している。 あといくつかソフトをインストールしないといけないけど、 日常業務【謎】には差し支えない状況になった。