メモの日々


2001年12月10日(月) GIGAの日

会社

  • 19:00 13時からずっとGIGA実証実験。松本さんにもつきあってもらって迷惑かけた。大学ののんびりしたペースにつきあわされてしまっては駄目だ。庄内さんとも話かみ合わないし疲れた。こんなに工数かけてしまっては利益はもうでないかも。
  • 19:20 ううう、監視とテープ交換があるのだった。テープ交換は明日でいいかなあ。もう何もやる気しないのだ。
  • 19:40 またフルバックアップが取れてない。BackupExecをいじってたら勝手に処理が始まった。何なん。ちゃんとしてくれ。
  • 現在財形は月1万円なのでボーナス時には10万円引かれているのであります。
  • 19:55 監視終了。Kはリリース作業をせねばならぬのだがさぼっている。サボり続けたらどうなるのだろうか。
  • 20:15 17時に帰りたかったのに。まさかこんな時間になるとは。それでも前向きに生きてやるぜ。

[book] 冷静と情熱のあいだ Rosso (江國香織)

冷静と情熱のあいだ Rosso(江國香織/著 角川書店装丁室/著) 読了。つまらなくはないがおもしろくもない。マーヴは完璧だ。

テレビ

  • アリーマイラブ4(録画)。なぜか10分遅れで始まっていたため終わりの10分間を見れなかった。ひどいなあ。もうカップルだらけだ。
  • 弾丸!ヒーローズ。森三中村上を美しくするのと声で電話をかけるのだけ見た。出演者が無駄に多い。
  • ガキの使いやあらへんで。途中から見た。村上ショージ登場。トークそこそこおもしろかったのに内容思い出せない。

2002年12月10日(火) ボーナスの日

Cプロジェクト

  • 18:00 えーとプロパティ関係をいじっているところ。切りが悪い。

その他

  • 10:00 渋谷で「日暮里はこっちのホームですか」と聞かれた。日暮里なんてどこにあるか知らんので知らないと答えてしまった。その後iモードで調べたら日暮里って山手線上にあるのね。へー。だって行ったことないから。
  • 10:01 WindowsUpdateでIEの新しいパッチをインストール。これからOS再起動だ。パッチが多いのは困るのかありがたいのか。Mozillaは1.2.1に移行すべきなのかなあ。でもまだ和ジラないしな。
  • 11:45 悶々としてきたので気分転換にまた過去のメイルを読んだ。十文字さんに納めたネットワーク状態表示のやつ。2ヶ月くらいで納品したのだ。またもやおれ頑張ってるなあ。なんであんなにうまく進められたのだろう。原田くんのおかげなのだろうか。とにかく、おれの能力はどんどん低下している。色々不満あったはずだがそれでも旧部の人々はまだまじめに仕事に取り組んでいたのかなあ。今の環境はひどいもんなあ。いや皆やる気はあるのでしょうけど。
  • 16:35 ボーナス貰った。やっぱり100万円には届かない。貰えるだけありがたいのか。まともに働いてないしね。

2003年12月10日(水)

[hard] Endeavor NT2600 (エプソンダイレクト)

アフィリエイトに参加しているので紹介がてらメモ。A4ノートで\89,800〜って安いのではないでしょうか。最近の相場は知らないけど。

ちなみに、アフィリエイト2月からはじめてこれまでの報酬は3526円です。知り合いに買って頂いたのですけれど。Amazonアソシエイトの方は374円。

[dev] XPアンチプラクティス (Object Garden)

XP(eXtreme Programming)をプロジェクトに導入した際に、その効果を得る代わりに、導入したからこその副作用に襲われる事があります。その副作用のことを、アンチプラクティスと呼びます。

そのスタンスとしては、XPの導入以前、つまり、導入に失敗したパターンではなく、むしろ導入自体は成功した後に発生する、XPならではの問題を捉えようとしています。アジャイル開発が、現場に広まりつつあるからこそ、今後、こうしたアイデアが必要だと考えました。

現在10個のアンチプラクティスが公開されている。XP-jp MLより。

[java] padding (Mathematical Information Technology)

0埋めの話題をちとメモ。

このサイトでは他にも色々な話題が取り上げられてている。連立一次方程式、ソート、素数の判定、Java関連など。marsのメモより。

[java] Three Rules for Effective Exception Handling (java.net)

これもメモしておこう。3つのルールでいいのなら習得できるだろう。後で読むこと。marsのメモより。

[service] サーブレットの使えるレンタルサーバ

ここ以外にもあったのでメモ。サーバーサイド技術が使えるレンタルサーバー一覧から辿った。

(追記)

サーブレット・JSPが使えるレンタルサーバでまとめられていた。

プチショック

アイロンかけておいたシャツを着ようとしたら、ダブルカフスの袖の折り目が逆だった。

生活

今日は打ち合わせだったので人と喋ることができた。よかった (^_^;

やること

  • 相澤くんに4500円払う。

2004年12月10日(金)

  • やっぱり左下腹部痛い。でも今は治ってる。午前中だけ痛い。
  • やっぱり広告代わってない。なんだよ。
  • 喫煙ルームの煙吸い込みマシーンが無くなっててMくん吃驚してた。機械が壊れたのかな。
  • T-Engineについて少し勉強。POSEのような、PC上で動くエミュレータはないのかしら。
  • あれー、家から見ると広告代わってる。なんでや。時間帯により表示される広告が変わるようになった?
  • 忘年会に参加させてもらった。2次会までの間に時間が余ってしまいカラオケに行ったり。カラオケは一年ぶりかな。

[service] Google Groups新しくなってた

Googleでネットニュースを見ようとしたら英語ページに飛ばされるようになっていた。使い方もよくわからなくなってしまっている。なんだよ。

しかも昔にGoogleへ張っていたリンクがちゃんと機能しなくなっているではないか。なにー。

あれー、これも家から見ると昔の通りの日本語化されたページだ。リンクも機能している。どういうこと?昼間はGoogleの設定が間違っていたのか、家から繋ぐインターネットと職場からのそれとは別物なのか。

やること

  • プリンタ処分
  • リンク元のスリム化
  • ナンバーアナウンス解約
  • スーツをクリーニングへ
  • tDiaryバージョンアップ
  • FSWikiバージョンアップ
  • AVGバージョンアップ
  • バックアップ
  • JREバージョンアップ
  • 11月分決算
  • 洗剤を買う
  • 秋の新モデルって広告は古いので、代える

2006年12月10日(日)

[life] 法事へ行く

従兄の49日の法要へ行った。従兄の家には子供の頃よく行っていたのだが最近は無沙汰しており久しぶりに伺った。 家の周りは昔とそれほど変わっていなかったが、裏山はこんなに小さかったかなあという感じ。

お線香をあげて香典を置いてお茶を頂いていると坊さんが来てお経が始まる。お坊さん髪の毛剃ってない。49日は満中陰と言うんだというような話をしてくれた。正座をしていたのでお経が終わる頃には足の感覚がなくなっており立てるかどうか心配だったが頑張ったら立てた。すぐふらついたが柱に掴まって耐えた。足の方は意外とすぐに元に戻ったのだけれど、立ち上がるときになぜか左胸の辺りが攣ってそっちの方が辛かった。

そのまま裏にあるお墓へ行って納骨。お墓にお線香を供えたが線香が多すぎてどんどんこぼれてきてちと難儀。その後は食事。お坊さんの隣の席になってしまった。今持っているPCが古いゲートウェイ製のものらしく、デル製のものに買い換えようと思うんだがどうか、というような事を聞かれたりした。

その後は従兄弟達と話をした。酒車スキーゴルフの話とか。どれも詳しくないのであまり話せず。最後にお線香をあげて帰る。どうぞ安らかに。

[life] 図書館へ行く

先週行って、

  • 社長物語 (薄井ゆうじ)
  • 突撃!自衛隊 (さかもと未明)
  • サッカーマガジン 2006.10.3 「コンビのチカラ」

を借りた。CDなんかは置いてないよなあ。

やること

  • デザイン変更
  • 保険
  • 健康診断
  • 蛍光灯

2007年12月10日(月)

[life] 祖母の告別式

仕事を休んで告別式へ参加。場所は昨日と同じ所。

控え室に少しだけいて、すぐ会場へ。確か、はじめに祖母の生い立ちのナレーションがあった。お坊さん登場、一般焼香、遺族の焼香など、昨日と同じことをする。お経は何を言っているのか分かるように発音してくれれば退屈しなくていいのにと思う。

葬儀の後の流れを忘れてしまった。お棺に花を入れる儀式があったな。祖母の周りが花で一杯になる。これが最後のお別れですと言われる。顔をよく見ておく。喪主の挨拶もあった。なかなかいい話だった。

次は焼き場へ。お棺を霊柩車に積むのも遺族がやった。落としたりしたら大変なので気を使う。霊柩車は火葬場へ。火葬場はすぐ近くなので歩いて追いかける。他にもお葬式をやっている。実に悲しい。遂に火葬炉の前。お棺が炉に入れられ、入り口が閉じられる。ああ。炉の前でお焼香。1時間くらいかかるとのことで、火葬場の待合室で待つ。従兄弟らと少し話す。お坊さんが祖父の葬儀のときと同じだとか言っていたが、よくそんなこと覚えているなあ。

時間が来たので降りていく。お骨が出され、2人ペアになり箸で壷へ移す。それが終わると、骨壷や位牌を先頭にして葬儀の会場へ戻る。続けて初七日の儀式をやってしまうとのこと。再びお経が始まり、遺族が焼香をする。お経が終わり、お坊さんが説教をするがつまらない話だった。そして食事。親戚と少し話す。写真撮ってもらったり。

全てが終わり、控え室に親戚一同集まる。伯父さんが話す。49日の予定とか。そして解散。

帰ったら疲れが出てすぐ寝た。

やること

  • 免許

2008年12月10日(水)

  • Apach Axis2を使っている。色々わからない。

[java][db][web][howto] Tomcat 6でのJDBC Data Sourceの設定

Tomcatは3年に1度くらいしか使わないので全然覚えない。使う度にバージョンが変わっているし。今はバージョン6.0.18。

JDBC Data Sourceの設定方法を調べたのでメモしておく。

JDBC Data Sourceとは

javax.sqlパッケージ にあるDataSourceインタフェースのことだと思う。このインタフェースの使い方は JDBC API 入門 などに説明がある。

JDBCを使うときには java.sql.Connection を利用するが、これのインスタンスを取得するのにDataSourceオブジェクトが必要になる。ウェブアプリケーションでは、アプリケーションコンテナにDataSourceオブジェクトを作らせそれをJNDI APIを使って取得するように実装することが推奨されているみたい。

コネクションプーリング機能を持ったDataSourceオブジェクトをコンテナに作らせれば、ウェブアプリケーション側では意識せずともプーリングされたConnectionオブジェクトを利用できる。

Tomcatでの設定方法

Tomcatにはコネクションプーリング機能を持ったDataSourceオブジェクトを作る機能があるようなので、それを利用したい。設定方法は JNDI Resources HOW-TO に書いてある。この後、ここに書いてあるのと同じことをメモする。なお、同じマニュアルのTomcat 5版の日本語訳が Ja-Jakarta にありありがたく参照したが、Resourceの設定方法がTomcat 5.5以降で変わったようで、それに気付かず長時間はまった。

やることは次の3つ。

  • JDBCドライバの配置
    • 使用するDBMS用のJDBCドライバをTomcatが読み込める場所に配置する。$CATALINA_HOME/lib に配置するのが簡単だと書いてあった。
  • Context設定ファイルの配置
    • TomcatがDataSourceインスタンスを作成してそれをJNDIに登録するための情報を、Contextという形で設定するみたい。
    • Contextの設定方法は The Context Container というページに書いてあった。Contextを記述したXMLファイルを作ればいいみたい。
    • XMLファイルの置き場所は色々あるようで、その中の /META-INF/context.xml に置くのがよさそうに思ってそうしてみたが、ここに置いても読み込んでくれなかった。META-INFの場所をおれが勘違いしているのかなあ。
    • $CATALINA_BASE/conf/[enginename]/[hostname]/[コンテキストパス].xml に置くのでもよいと書いてあるのでそうしたら動いた。コンテキストパスというのがよく分かっていないけど、URLに現れるアプリケーション名のことだと思っている。
    • XMLファイルの内容は次のような感じ。この書き方がTomcat 5までとは違う。Tomcatは Commons DBCP を使っているようなので、設定パラメータについては Commons DBCPのマニュアル も参考になりそう。
<Context>
    <Resource name="jdbc/oreore"
              auth="Container"
              type="javax.sql.DataSource"
              username="user"
              password="pswd"
              driverClassName="org.apache.derby.jdbc.ClientDriver"
              url="jdbc:derby://localhost/oreoreDB"
              maxActive="8"
              maxIdle="4"/>
</Context>
  • アプリケーションのweb.xmlの編集
    • 上で設定したDataSourceをアプリケーションからJNDI APIで参照できるようにするために、web.xmlに次のような設定を追加する必要があるみたい。web-app要素内に書く。authの所をよく分かっていないなあ。本当に必要なのだろうか。
<resource-ref>
  <res-ref-name>jdbc/oreore</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>Container</res-auth>
</resource-ref>

アプリケーションからのDataSourceの取得方法

上のように設定すると、アプリケーションのコードで

Context ictx = new InitialContext();
DataSource dataSource = (DataSource)ictx.lookup("java:comp/env/jdbc/oreore");

のようにJNDIを使ってDataSourceオブジェクトを取得できる。

「jdbc/oreore」を3箇所に分散して書かないといけない所がひどい。

[java][db] DataSourceはスレッドセーフなのか

スレッドセーフじゃないと困ると思うが、明記したドキュメントが見当たらない。

検索したら @IT会議室 がヒットし、そこに For Driver Writers の「A.1.6 Support Multithreading」に記述があるという発言があった。確かに

All operations on java.sql and javax.sql objects are required to be multithread safe.

で始まっている。それ以降はちゃんと読んでないけど。

これを信じてもいいんだろうか。Connectionのスレッド安全性は実装依存というのを以前にどこかで読んだ記憶があるんだよな。念のため自分で排他制御すべきかなあ。

[java][web] Axis2でのサービスオブジェクトのライフサイクル

Axis2にて、サービスクラスのインスタンスはどのように管理されるのか。

コンストラクタでログを出力するようにして試したところ、デフォルトでは要求を受信する度に新しいインスタンスが作られるようだった。

Axis2 Configuration Guide のService Configuration節に、

scope: (Optional Attribute) The time period during which runtime information of the deployed services will be available. Scope is of several types- "Application", "SOAPSession", "TransportSession", "Request". The default value (if you don't enter any value) will be "Request"

と書いてあった。デフォルト値が Request だからか。

それならと services.xml に「scope="Application"」を追記して試してみたが、やっぱり要求を受信する度に新しいインスタンスが作られる。なんでや。

調べると「scope="application"」のように全部小文字の例があったのでそれを試したら、Tomcatの起動時にインスタンスが生成され、新しい要求を受信しても新しいインスタンスは作られないようになった。ということは、ドキュメントの説明がおかしい。あっ、それともXMLってクォーテーション内も小文字だけ使うんだったっけか。いやいや、そんなことないよなあ。

[java][web] Axis2のライフサイクル管理

上で引用したService Configuration節に、

class: (Optional attribute) The full qualified name of the service lifecycle implementation class. ServiceLifeCycle class is useful when you want to do some tasks when the system starts and when it shuts down.

なんてことも書かれている。この説明だけでは何の事だか分からない。属性名がclassってのはひどい。

検索すると、Axis2 services : LifeCycle Vs ServiceLifeCycle というページがあった。ServiceLifeCycleとLifecycleという2つのインタフェースがあるのか。LifeCycleなのかLifecycleなのかはネイディブの人でも悩むのかね。

試した結果をメモ。

org.apache.axis2.engine.ServiceLifeCycle

このインタフェースを実装したクラスを作り、そのクラス名をservices.xml内のclass属性に指定しておくと、

  • Axisエンジン起動時にインスタンスが作られ、startUp(ConfigurationContext configctx, AxisService service) が呼ばれる。
  • Axisエンジン終了時に shutDown(ConfigurationContext configctx, AxisService service) が呼ばれる。

となるみたい。引数で渡されるオブジェクトをどう使えばいいのかがよく分からない。

Axis2のアーカイブ内のsamplesディレクトリに servicelifecycle というサンプルがあって、そこでこのインタフェースを使っていた。

org.apache.axis2.service.Lifecycle

サービスクラスにてこのインタフェースを実装しておくと、

  • サービスクラスのインスタンスが作られたときに init(ServiceContext context) が呼ばれる。
  • サービスクラスのインスタンスが用済みになったときに destroy(ServiceContext context) が呼ばれる。いつ用済みになるかは上に書いた「scope」の設定で決まる。

となるのかと思ったが、そうならないケースもあった。うーん。

scopeをapplicationにしているときは上のようになったが、requestにしたときはdestroy()が呼ばれない。finalize()は呼ばれているのにdestroy()は呼ばれない。なんでや。

やること

  • 請書
  • スポンジ
  • Microsoft Update
  • 換金

2013年12月10日(火)

[howto][dev] Jenkinsの使用可能プラグイン一覧を更新

新規にJenkinsをインストールしてプラグインを導入しようとしたら、プラグインマネージャの「使用可能」タブの内容が空になっていて困った。

ドキュメント

Sometimes when you install, you will notice that the list of available plugins is empty. If that is the case, from Advanced tab on the Manage Plugins page, click on Check now (button available in the bottom right of the page) to forcefully check for new updates. Once that is done, you should see the list of plugins.

とあったので、「高度な設定」タブの右下の「更新」ボタンを押したら、使用可能タブにプラグインがたくさん表示されるようになった。