« 2005年12月 | トップページ | 2006年2月 »

2006年1月20日 (金)

ディスクの断片化

今日作業PCで「容量不足」と警告されました。
ちょっとデータ整理しないといけないなぁ、
と思いながら、ふとデフラグツールで分析した結果、

20060120T181500

こんなんでましたけど。(笑)

まあ、作業の内容からして、
毎日数千ファイルの出入りのあることが頻繁にあるので、
こうなっていくんでしょうけど…

DVD-RAM(私はRAM大好きです…)にバックアップを取りたい、
とは考えるんですが、今のご時世、
個人持ちのポータブルDVR-RAMドライブを接続するのも、
一筋縄ではいかないもので。

この後、試しにデフラグ実行ボタン押したら、

デフラグ用に空き容量15%ぐらいいるで、ドアホ。

と怒られました。
メディアにバックアップ取らないなら、
ファイル削除するしかないんですよ、
上の通りのディスク状況なので…

開発リソースはそれ用のサーバでCVS管理されていて、
理論的には自由に戻れるっちゃあ戻れるんですが、
自分の脳内タグで構築された構造の方が、
すぐ対応できるという意識もあるもんで…

捨てる勇気って私ないんですよねぇ。
デスクトップにもアイコン一杯散らかってますし。(笑)

| | コメント (0) | トラックバック (0)

[LaCoocan]Movable Type 3.2 のインストール

おそらくLaCoocanで@niftyさんが、
「こう使って欲しい」というモデルケースであろう、

Movable Type 3.2をインストールして使用する

というのをやってみました。

インストールの手順は、
前回のtDiaryのインストールと違って、
@niftyの「肝入り」であるMovable Typeなので、
こんな使い方として提供されるマニュアルに従ってやれば、
特に何の問題もないですね。

Movable TypeとココログのTypePadの具体的な違いは詳しく知らないのですが、
根っこは同じところだろうな、というのはインタフェースの類似性から感じます。
ココログの方は初心者向けにカスタマイズされているんでしょうか?
ちょっと今まで使ってみて物足りない部分があっていじりたいのですが、
あくまでWebブラウザを通じて提供されているカスタマイズだけしかできません。
でも、Movable Typeはスクリプトが自分で追えるので、いじり甲斐がありそうです。
難点はPerlであることですが…(あとライセンスもちょっとよく分かりません)

自分的には、不覚ながら、カテゴリの親子関係が定義できるMovable Typeに感動してしまいました。(笑)

ココログプロって確か容量10GBあったと思うのですが、
2GBのLaCoocanと入れ替えたいぐらいです…

| | コメント (0) | トラックバック (0)

2006年1月18日 (水)

[LaCoocan]SQLiteのバージョン

月末まで試用期間があるということで、
とりあえず登録して色々いじってみているところなのですが…

Ruby on RailsLaCoocanで試してみたい」

という欲求は、満たすことが難しいことが分かりました。
Railsってただのフレームワークライブラリ程度かと思っていたのですが、
どちらかと言うとアプリケーションサーバに近い感じなんですね。
1つサーバプロセスを常駐させるような感じのこと書いてありますし、
LaCoocanではtelnet接続できないので、
自分のスキルでは…(笑)
telnet.cgiも使用は規約違反と書いてありますし、
今自分の前には大きな山が聳え立っています。
(そびえたつってこんな漢字書くのか…)

もう一つの関心事であるデータベースのSQLiteですが、
簡単な操作には成功しました。
Rubyからの接続には、Ruby/DBIを使用すると簡単なようですね。

SELECT sqlite_version()

を発行したところ、2.8.17と返って来ました。
以前確かPHP5にSQLiteが同梱されるというので、
いじった時も2.xだった気がします。
3.xの方がいいなぁと思った記憶があるのですが、
理由は忘れました…
文字コード関係だった気がしますが、
もし日本語関係がうまく扱えない場合致命的ですね…

あと、特にデータベース不要なtDiaryもインストールしてみて、
何となく動いているようです。
かなり設定ファイルをいじり倒した気がします…

他の皆さんのLaCoocanネタを拝見してから最終決断しようと思いますが、
最悪登録解除するかもしれません。

P.S.
LaCoocanのサーバはLinuxのようですね。
ディストリビューションまでは分かりませんが…

| | コメント (0) | トラックバック (0)

2006年1月17日 (火)

LaCoocan(ラクーカン)

以前、インターネットに自分の城たる1ノードが欲しい、
という記事を書きましたが、
私がお世話になっているプロバイダの@niftyで、
LaCoocan(ラクーカン)なんて言うサービスが始まるらしいですね。

自分的な条件としては、
Java or Rubyが使えること(メチャクチャ妥協してPHP)と、
データベースが使用できることなのですが、
以前@niftyのホスティング系のサービスを調べた時は、
適当なものがありませんでした。
でも、これならRuby使えるということなので、
最低限クリアできますね。

え?データベースですか?

パッと見た感じ、データベース使えねぇのかよ、
なんてWebページを見ていたら、
ちょこっと書いていました、SQLiteが使えることを。

SQLiteと言えばPHPって印象がありますが、
RubyにもSQLite/Rubyというライブラリがあるようですね。

これだけ使えれば、
ちょこっとRuby on Railsで遊んでみることができるのでは?
ということで興味津々です。

引き続き調査を続けます。

| | コメント (0) | トラックバック (0)

2006年1月11日 (水)

java.util.Dateクラスとタイムゾーン情報

ちょっとこの記事、
自信のないまま書くのですが…
(まあ、他も大して変わりませんが)

java.util.Dateクラスで保持されている値って、
タイムゾーン情報無いんですよね?
というか、あえて言うならGMTなんですよね?
「あえて言うなら」という表現もユーザに選択権があるように感じるので、
GMTとして処理す「べき」ぐらい?

Dateクラスをインスタンス化して、
toString()とgetTime()を出力するプログラムを、
実行マシンのタイムゾーンJSTとGMTで切替えて実行したところ、

Wed Jan 11 16:59:33 JST 2006
1136966373468

Wed Jan 11 07:59:51 GMT 2006
1136966391281

17813ミリ秒の差(+0900と考えると32400秒)

となりますし、java.sql.DateのJavadocには、

ミリ秒の値は、1970 年 1 月 1 日グリニッジ標準時 00:00:00.000 からの経過時間をミリ秒で表した数値です。

とある。
java.util.Dateクラスの説明ではないので確信は持てないですが、
ソース見ても明らかな変換処理は見受けられませんでした。

なぜこんなこと言っているかと言うと、
本番環境とテスト環境で表示結果が異なっていて、
それぞれのサーバのタイムゾーンがGMTとJSTで異なるためなんです。
もっと言うと、Oracleから

SELECT TO_CHAR(SYSDATE, "...") FROM DUAL;

のように「文字列」で持ってきて、
何かゴニョゴニョしているようです。

Date convert(Date)

みたいな処理もあります。(引数と戻り値でlong値が異なっている)

これ、TO_CHARやめて、ResultSetからgetDate()で引っ張ってきた場合、
SYSDATEでタイムゾーン情報は欠落しているが、
OracleサーバがGMTだろうがJSTだろうが「適切に変換されて」、
受け側では等価のDateオブジェクトが得られるのでは?

TO_CHAR使うならば、タイムゾーン情報を含むSYSTIMESTAMP関数を用いてやり取りし、
アプリケーション側で「適切に」Dateオブジェクトに変換する。
前の仮定が本当なら、これは面倒なのでやりたくないですね。

なーんか、タイムゾーン「決め打ちで」、
妙にタイムゾーンを意識した処理を実装したため、
特定の環境でしか正常に動作しない状況になっているように、
思えてなりません…

| | コメント (0) | トラックバック (1)

2006年1月10日 (火)

頚動脈が締め付けられて…落ちた!(OutOfMemoryError)

2006年初ぼやきで書いたように、
細々と数千ファイル/日吐かれる通信ログをAntで操作する件ですが、
きちんと処理されているか巡回中、
どうも操作結果が中途半端なサーバを発見しました。

よくよく調べてみると、
アーカイブするファイル数が多すぎて、
OutOfMemoryErrorで落ちている模様。
Antのログを見る限り、
60分ぐらいはガリガリがんばっていたみたいです…

対象はWindowsサーバで、毎日朝方リブートされる設定になっていて、
タスクスケジューラで起動時にAntスクリプトが実行されるようにしていたのですが、
起動して早々にOutOfMemoryErrorで落ちるような処理走ったら、
何のためにリブートしてるか分かんないですね…

上記のような運用形態なので、
一発目の操作は放置されていた期間分のログファイルが溜まっていて、
ウン十万ファイルレベルの操作になっていたんでしょう…
一発目終われば後はせいぜい数千ファイルずつだから頑張れ!
と思っていたのですが、ダメでした。(笑)
今日手動でちょっとずつ削除しました。
エクスプローラでログ出力ディレクトリ閲覧するのも、
やたらと時間がかかって大変なんですよね。

P.S.
リモートデスクトップで「タスクの実行」した後、
終了前にログオフすると、
コマンドプロンプト系だけかどうかは分かりませんが、
プロセス無くなるみたいですね…

| | コメント (0) | トラックバック (0)

2006年1月 6日 (金)

秀丸の正規表現検索機能

私は今、エディタは秀丸エディタを使用しているのですが、
今日はエディタ絡みで1ネタありました。

先ほどの記事のぼやきで書いた絡みなんですが、
どうもここ数日の通信応答時間が長いとクレームが入りました。

そこで、原因の切り分けのために、
その通信ログに出力されている処理時間を検索しようとしました。
例えば、次のように出力されているとします。

処理時間: 12345 ミリ秒

そこで、秀丸の正規表現を用いたgrepをしようと、

処理時間: [0-9]{5} ミリ秒
※今までの処理時間と桁が違うほど時間がかかっているのを抽出

などと言うパターンを書いて検索しても、
1つも引っかかりません。
えぇぇ、繰り返しって使えないの?と思って秀丸エディタのWebサイトを覗くと、

強力な正規表現検索機能

ということで、Ver5.00では使えるんですね。
私の使用しているのはVer3.10でした。

使うのと使わないのでは効率が桁違いなんです…
何せ数千ファイルの内ほとんどが正常なログなんですから…

| | コメント (2) | トラックバック (0)

2006年初ぼやき

明けましておめでとうございます。
このblogは2006年初エントリーですね。

前にも書いたのかなぁ、
今携わっているシステムでずーっと気になっているのですが、
とある通信ログが6000ファイル弱/日出ています。
出力部はシステム全体が使用しているCommons Loggingのメソッドを使用していなくて、
直接FileWriterなどを使用して実装されているようです。
こんなの明らかな規約違反なんですが、
今の今まで放置されていますし、
実装者はすでにこのプロジェクトにいません。
要は修正するなら私がやらざるを得ないんですね…
保守するの大変ですから。
(もちろん吐いたら吐きっぱなしです)

年末年始も健気に(笑)出力し続け、
テスト時期から残っているログを見ると、26万ファイルとかありました。
Windowsの仕様とかで、
1フォルダ以下のファイル数の上限とかあるんでしょうかね?

問題は、出力部をコメントアウトするなりして、
「吐かない様にする」のが手っ取り早くていいのですが、
今この辺の問題で不具合が頻発していて、
ログ必須なんです。
作業者みんなこの形式に慣れてしまっていて、
1ファイルに追記していく形にもそう簡単にできず…

また、Commons Loggingの仕組みに組み込むことで、
今までのログファイルの内容に「加えて」通信ログが出力されることになるわけで…
えぇ、Commons Loggingの下はLog4jを使用していて、
loggerをうまく定義してやれば、
今までのログファイルと修正した通信ログの出力先は分けられるんでしょうけど、
今root loggerだけ定義されてるんですよね。

現状Antで定期的にファイルをアーカイブし、
基準の日数過ぎたら削除ってやってるんですが、
どうしたもんかなぁと思い悩む日が続きそうです。

| | コメント (0) | トラックバック (1)

« 2005年12月 | トップページ | 2006年2月 »