Thu Apr 01 15:39:09 JST 2010

Eclipse 3.6 -- Helios が M6 まで来ているので、New and Noteworthy をまとめ読みした。 今年も Mr.N がまとめてくれている

M6 が API Freeze なので、まとめ読みのタイミングとしては今が良い。 Core と JDT しか読んでないけど、ざっとまとめると、以下のような感じか。

  • 「使われていないオブジェクトの生成」をチェックできるようになった。
    無駄に作り捨てているオブジェクトの検知には良さそう。
  • 1.6 のプロジェクトで @Override がチェックされるようになった。
    1.5 のプロジェクトでは今まで通りのようだ。
  • ×箇所に出る problem ホバーで、まとめて Quick Fix ができるようになった。
    import のまとめとか try-catch のまとめとかには便利かも。
  • Type Hierarchy の計算処理がバックグラウンドに回せるようになった。
    某プロジェクトのようにツリーがデカい時には、嬉しい。
  • JUnit の扱いが整理された。引き続き 3 系と 4 系が選択的に使用できる。
    Tiger 以降なら JUnit 4 で書きたいと思う。
  • Call Hierarchy に Remove from View が追加された。
    わっさわっさヒットしちゃって S/N 比が低い時には便利だろう。
  • Open Implementation にキー割当が可能になった。
    inmplemnts してる奴が特定できればそれを、複数あれば選択を出してくれるらしい。
  • フォーマッタで整形範囲指定ができるようになった。
    ウルトラ長い行の方が可読性が高かったりする時に使えるかもしれない。
  • フォーマッタの Export All... ができるようになった。
    前からできなかったっけ?
  • コメントの整形がエンハンスされて1行コメントも整形できるようになった。
    これは好嫌いのわかれるところかもしれない。

Mon Apr 05 10:29:04 JST 2010

会社にて。Firefox 3.6.3 が来ていた。Firefox の更新は、楽でよい。


Mon Apr 12 12:00:20 JST 2010

いつの間にか Java 1.6 update 19 が出ていた。 Oracle からのリリースとしては初なのかな。


Wed Apr 14 22:41:24 JST 2010

ついつい larn で遊んでしまった。

Score: 7888, Diff: 2,  sempreff killed by a xorn on  9

X 2匹に囲まれ、逃げられず。


Sat Apr 17 20:56:06 JST 2010

やっぱり遊んでしまうなぁ。

Score: 19650, Diff: 2,  sempreff killed by a white dragon on  6

white dragon と Troll に囲まれた…。


Mon Apr 19 23:14:06 JST 2010

diff 2 を解いた。

  Score    Difficulty   Time Needed   Larn Winners List
    200001      2        207 Mobuls   sempreff

slashing sword を拾ったのが効いたな。


Fri Apr 23 18:27:47 JST 2010

ports に p7zip があるのを発見。入れてみた。

% 7z
7-Zip (A)  4.58 beta  Copyright (c) 1999-2008 Igor Pavlov  2008-05-05
p7zip Version 4.58 (locale=ja_JP.eucJP,Utf16=on,HugeFiles=on,2 CPUs)

だそうで、若干古い。

The Geek Stuff の記事を日本語で書いてみると、こんな感じか

Q: FreeBSD 環境では、どうやって .7z ファイルを展開すりゃいいの?

A: 7za コマンドを使えばいいよ。

まず、7za コマンドがインストールされてるかどうかを確認してみてくれ。 ちなみに「7za」は、7zip のコマンドラインインタフェイスだ。

% whereis 7za
7za: /usr/local/bin/7za /usr/local/man/man1/7za.1.gz

インストールされてないなら、入れればいいよ。 FreeBSD では p7zip という名前で port になってるので、 internet 接続があるなら make すればよい。 ちなみに「p7zip」というのは「7za.exe の POSIX 版」らしいね。

# cd /usr/ports/archivers/p7zip
# make install clean

/usr/local/bin/ に 7z、7za、7zr、p7zip が入るよ。

コマンドラインで .7z ファイルを扱う方法は、lha に似ているよ。 gzip とか bzip2 とかとは、若干雰囲気が違うので、戸惑うかもしれない。

で、「.7z ファイルを展開する」には。

% 7za x hoge.7z

x は extract だ。わかりやすいよね。

次に、「ファイルを .7z 形式で圧縮する」には。

ファイルが無いと実験できないので、ファイルを作るところから。

% dd if=/dev/random of=random.bin bs=1024k count=100
% 7za a random.7z random.bin

a は add だ。わかりやすい。

ファイルの中身の確認も、もちろんできるよ。

% 7za l random.7z
(snip)
   Date      Time    Attr         Size   Compressed  Name
------------------- ----- ------------ ------------  ------------------------
2010-04-23 19:42:22 ....A    104857600    106280573  random.bin
------------------- ----- ------------ ------------  ------------------------
                             104857600    106280573  1 files, 0 folders

l はもちろん list だね。これもわかりやすい。

ランダムなファイルは、そうそう圧縮できるものじゃないね。 これは例が良くなかった。だけど、一般的なファイルなら、かなりの圧縮率になるよ。

一つ注意点がある。7-zip はアーカイバなんだけど、unix 環境では圧縮エンジン として使った方がいい、っていうこと。 マニュアルを読むとわかるけど、7-zip は owner/group を保持しないので unix 環境では 7-zip 単体でバックアップの目的が果たせる、って思わないでほしい。 この点は、lha や zip や jar もそうだね。 tar とか、他の permission を保持できるアーカイバと組み合わせて使ってちょうだい。 例は以下の通りだ。

圧縮アーカイブを作るには、
% tar cpf - target | 7za a -si target.tar.7z
圧縮アーカイブを展開するには、
% 7za x -so target.tar.7z | tar xfp -

いずれも、標準入力や標準出力をパイプと組み合わせて使うんだ。わかるよね。

関連するサイトを上げておこう。

こんなところだ。


Fri Apr 23 20:04:28 JST 2010

このメモ記述時点の p7zip のバージョンは 9.04 で、それは SourceForge から入手できる。

ports には archivers/lzma と archivers/p7zip の二つがあるけど、 lzma の方は LZMA SDK から抜き出したもの。 アーカイブの可搬性が重要なら p7zip の使いたまえ、って pkg-descr に書いてあるね。


Tue Apr 27 23:26:00 JST 2010

DIGA で観た番組をジャンルごとに集計するスクリプトを書いてみた。 こんな出力。

yyyy.mm  MV  DS  DM  MC  MS  FS  OT  ED  SUM
------- --- --- --- --- --- --- --- --- ----
2010.01  11  47   2   0   0   1   0   0   61
2010.02   7   6   0   2   0   1   5   0   21
2010.03   8  14   8   1   4   1   3   0   39
2010.04  15  14   3   5   4   1   4   0   46
------- --- --- --- --- --- --- --- --- ----
all      41  81  13   8   8   4  12   0  167

ジャンル名がわからないな。あと、本数で数えてるから映画が少なく見える。


Wed Apr 28 02:03:16 JST 2010

kumofs の実験をしてみたくなった。かなりおんぼろの会社マシンでトライしたところ ruby のビルドで止まってしまってイケてないので、ThinkPad で実験することにする。 ノートPC で何が 分散処理か、という気もしないでもないが。

で、まずは ports ツリーの cvsup を敢行することにした。もちろんバックアップなぞ要らぬ。

いや、本当はバックアップを取っておくべきだった、と Enter を押してから気付いた。


Fri Apr 30 02:00:36 JST 2010

とりあえず ruby をアップデート。 portupgrade -Rrnv で見たら、大変な状態だ。

        - www/rubygem-actionwebservice (port directory error)
        + archivers/unzip (unzip-5.52_5)
        + lang/perl5.8 (perl-5.8.8_1)
        + converters/libiconv (libiconv-1.11_1)
        + devel/m4 (m4-1.4.11,1)
        + misc/help2man (help2man-1.36.4_2)
        + lang/ruby18 (ruby-1.8.6.287,1)
        + textproc/ruby-deplate (ruby18-deplate-0.8.4)
        + devel/ruby-gems (ruby18-gems-1.2.0_1)
        + devel/rubygem-rake (rubygem-rake-0.8.1)
        + databases/ruby-bdb (ruby18-bdb-0.6.4)
        + ports-mgmt/portupgrade (portupgrade-2.4.6,2)
        + devel/rubygem-activesupport (rubygem-activesupport-1.4.4)
        + databases/rubygem-activerecord (rubygem-activerecord-1.15.6)
        + www/rubygem-actionpack (rubygem-actionpack-1.13.6)
        + mail/rubygem-actionmailer (rubygem-actionmailer-1.3.6)
        * www/rubygem-rails (rubygem-rails-1.2.6)

ちまちま行こう。


Fri Apr 30 02:17:55 JST 2010

perl が上がって munin が文句を言っている。単品で上げてみる。

# portupgrade munin-main

munin-main は munin-master という名前になったようだ。 munin-master → rrdtool → libtool ということで、 libtool を更新しないといけない。根が深いかもしれんが、単品で行ってみる。

# portupgrade libtool

libtool 単品更新は成功したようだが、munin-main を再度上げようとしたところ rrdtool からの依存で png がひっかかった。上下のインパクトが大きすぎるので これも単品で上げる。

# portupgrade png

png 単品は上がったが、munin-main を再度上げようとしたところ rrdtool が何かでひっかかった。rrdtool を単品で上げてみるか。

# portupgrade rrdtool

失敗した。いかん、ぱっと見で何が悪いのかわからない。 configure の途中で pango とか cairo とかで warning が出ているけれど、 これが問題だとしたら影響範囲が大きすぎる。 先に munin-node の単品更新を試みる。

# portupgrade munin-node

p5-Net-Server がひっかかった。単品で上げる。

# portupgrade p5-Net-Server

pkgdb の更新メッセージが流れたけど、やってる気配がない。 わからない。 …あぁそうか、perl が上がったからバージョン変わってないけど入れ直せ、 っていうことか。

# cd /usr/ports/net/p5-Net-Server
# make deinstall
# make install
# portupgrade munin-node

見ていると、perl モジュールがどんどん入れ直されていってる。 で、なんだかんだでインストールされている packages の数が増えていく。 このあたりの挙動は、どうにもスッキリしないところだ。 やっぱり、数年経ってから ports アプリを上げるという作業は大変で、 クリーンインストールしてまっさら状態から構築した方が楽そう、な印象だ。

munin-node の deinstall で munin グループを消すかどうか聞かれる。 聞かないでほしい。入れ直しなんだってば。

munin-node のアップデートは成功。 ここでいったん munin-node を下げ上げしておいた方がいいのかな。

# /usr/local/etc/rc.d/munin-node stop
# /usr/local/etc/rc.d/munin-node start

これで 5 分以上待って munin-cron がエラーを吐かなければOKか。 munin-main のアップデートが残ってるけど、明日以降でいいや。寝る。

ヤク!


Fri Apr 30 03:25:00 JST 2010

munin-cron からのメイルが止まらないので、もうちょい小手先の作業をしてみる。

# cd /usr/local/lib/perl5/site_perl
# cp 5.8.8/Munin.pm 5.8.9
# cp 5.8.8/RRDp.pm 5.8.9
# cp 5.8.8/mach/RRDs.pm 5.8.9/mach/
# cd 5.8.8
# tar cf - mach/auto/RRDp | (cd ../5.8.9/; tar xvf -)
x mach/auto/RRDp/
x mach/auto/RRDp/.packlist
# tar cf - mach/auto/RRDs | ( cd ../5.8.9/ ; tar xvf - )
x mach/auto/RRDs/
x mach/auto/RRDs/RRDs.so
x mach/auto/RRDs/RRDs.bs
x mach/auto/RRDs/.packlist

これで 5 分放置。うまくいったらこのままでもいいや。


Fri Apr 30 03:40:45 JST 2010

munin-cron からのエラーメイルが HTML/Template が無い、という内容に変わった。 p5-HTML-Template のことか。単品で更新を試みる。

# portupgrade p5-HTML-Template

手応えなし。これも perl の 5.8.8 → 5.8.9 の影響か。

# cd /usr/ports/www/p5-HTML-Template
# make deinstall
# make install

さて、これで放置してみる。


Fri Apr 30 03:46:37 JST 2010

おっ、プロットされた。これで誤魔化し運用を継続することにする。

一方、クリーンインストール向けに、今使っているディスクの仕様など調べてみる。 dmesg によれば HTS542525K9SA00 なので、 5K250 の 250G だ。


Fri Apr 30 07:00:30 JST 2010

出社して popfile が機能していないことに気付く。 portupgrade -Rrnv popfile で確認するとこんな感じ。

        + devel/p5-Storable (p5-Storable-2.18)
        + databases/p5-DBI (p5-DBI-1.60.4)
        + devel/p5-TimeDate (p5-TimeDate-1.16,1)
        + lang/tcl84 (tcl-8.4.19,1)
        + converters/libiconv (libiconv-1.11_1)
        + databases/sqlite3 (sqlite3-3.5.6)
        + mail/popfile (popfile-1.0.1)

一個づつ行くか。


Fri Apr 30 07:17:10 JST 2010

とりあえず fetch だけカマす。 fetch-recursive したところ、DBI から DBD-SQLite への依存が発覚した。 portupgrade で発見できないのはなんでだろう? しかしながら distfiles は集まったので、上げてみる。

# portupgrade -Rrv popfile

順調に各個撃破していっているように見える。


Fri Apr 30 07:38:46 JST 2010

うまく行ったっぽいので上げようとしたら、モノがない。

--->  Listing the results (+:done / -:ignored / *:skipped / !:failed)
        + devel/p5-Storable (p5-Storable-2.18)
        + databases/p5-DBI (p5-DBI-1.60.4)
        + devel/p5-TimeDate (p5-TimeDate-1.16,1)
        + lang/tcl84 (tcl-8.4.19,1)
        + converters/libiconv (libiconv-1.11_1)
        + databases/sqlite3 (sqlite3-3.5.6)
        + mail/popfile (popfile-1.0.1)
--->  Packages processed: 7 done, 0 ignored, 0 skipped and 0 failed
--->  Session ended at: Fri, 30 Apr 2010 07:30:30 +0900 (consumed 00:13:24)

こう出てたら正常終了って思うよね。でも実は違った。上まで遡ると、こう。

===>  Installing for p5-HTML-Tagset-3.20
===>   p5-HTML-Tagset-3.20 depends on file: /usr/local/bin/perl5.8.9 - found
===>   Generating temporary packing list
===>  Checking if www/p5-HTML-Tagset already installed
===>   p5-HTML-Tagset-3.20 is already installed
      You may wish to ``make deinstall'' and install this port again
      by ``make reinstall'' to upgrade it properly.
      If you really wish to overwrite the old port of www/p5-HTML-Tagset
      without deleting it first, set the variable "FORCE_PKG_REGISTER"
      in your environment or the "make install" command line.
*** Error code 1

Stop in /usr/ports/www/p5-HTML-Tagset.
*** Error code 1

Stop in /usr/ports/www/p5-HTML-Tagset.
*** Error code 1

Stop in /usr/ports/mail/popfile.
*** Error code 1

Stop in /usr/ports/mail/popfile.
===>  Cleaning for p5-DBD-SQLite-1.29
===>  Cleaning for p5-HTML-Tagset-3.20
===>  Cleaning for popfile-1.1.1
--->  Removing temporary files and directories
--->  Removing old package'
--->  Installation of mail/popfile ended at: Fri, 30 Apr 2010 07:30:07 +0900 (consumed 00:01:00)
--->  Cleaning out obsolete shared libraries
[Updating the pkgdb <format:bdb_btree> in /var/db/pkg ... - 811 packages found (-0 +1) . done]
--->  Upgrade of mail/popfile ended at: Fri, 30 Apr 2010 07:30:14 +0900 (consumed 00:01:46)
--->  ** Upgrade tasks 7: 7 done, 0 ignored, 0 skipped and 0 failed
--->  Listing the results (+:done / -:ignored / *:skipped / !:failed)
        + devel/p5-Storable (p5-Storable-2.18)
        + databases/p5-DBI (p5-DBI-1.60.4)
        + devel/p5-TimeDate (p5-TimeDate-1.16,1)
        + lang/tcl84 (tcl-8.4.19,1)
        + converters/libiconv (libiconv-1.11_1)
        + databases/sqlite3 (sqlite3-3.5.6)
        + mail/popfile (popfile-1.0.1)
--->  Packages processed: 7 done, 0 ignored, 0 skipped and 0 failed
--->  Session ended at: Fri, 30 Apr 2010 07:30:30 +0900 (consumed 00:13:24)

先に portupgrade を上げた方がいいかもしんない。 だが、今は p5-HTML-Tagset を上げる。

# cd /usr/ports/www/p5-HTML-Tagset
# make deinstall
# make install

Fri Apr 30 07:41:59 JST 2010

popfile は portupgrade に uninstall されてしまったので、 手で入れる。なんじゃそりゃ。

# cd /usr/ports/mail/popfile
# make install

エラーになった。Kakasi が要るらしい。

# cd /usr/ports/japanese/p5-Text-Kakasi
# make deinstall
# make install
# cd /usr/ports/mail/popfile
# make install

ようやく入った。


Fri Apr 30 07:46:30 JST 2010

動かないようだ。>popfile

install_driver(SQLite2) failed: Can't locate DBD/SQLite2.pm in @INC
Perhaps the DBD::SQLite2 perl module hasn't been fully installed,
or perhaps the capitalisation of 'SQLite2' isn't right.

だそうで。

% pkg_info -aI | grep DBD
p5-DBD-Pg-2.9.0     Provides access to PostgreSQL databases through the DBI
p5-DBD-SQLite-1.29  Provides access to SQLite3 databases through the DBI
p5-DBD-SQLite2-0.33 Provides access to SQLite2 databases through the DBI
p5-DBI-1.60.9       The perl5 Database Interface.  Required for DBD::* modules

このへんか。

# cd /usr/ports/databases/p5-DBD-SQLite2/
# make deinstall
# make install

起動はできたが、動作しない。

DBI connect('dbname=/home/takeo/.popfile/popfile.db','',...) failed:
 file is encrypted or is not a database(1) at dbdimp.c line 57
 at /usr/local/lib/perl5/site_perl/5.8.9/mach/DBI.pm line 1515

これは哀しい。


Fri Apr 30 07:57:29 JST 2010

Bayes の DB は諦めるとして、とりあえず popfile は動いてくれないと困るから。

% mv $HOME/.popfile $HOME/.popfile.old
% mkdir $HOME/.popfile
% cp $HOME/.popfile.old/popfile.cfg $HOME/.popfile/

バケツまで消えた。トホホだな、これは。とり急ぎ ham と spam だけを作る。

メイルを送ってみる。受信できることは確認できた。しかし、unclassified か。 また鍛え直すのかぁ…。


Fri Apr 30 08:28:41 JST 2010

遅れ馳せながら UPDATING も確認。perl はもう 5.10 にするぜ、と言ってる。 その割に portupgrade されたのは 5.8.9 だったりする。元が perl5.8 だからね。 それは置いておいて、UPDATING で嫌いな記述は

    2) Reinstall everything that depends on Perl:

これなんだよね…。これを見るたびに、結局クリーンインストールした方がいい、 と思えて仕方がない。


Fri Apr 30 08:52:26 JST 2010

perl module 及びその関連ブツを、ちょっとづつ上げることにする。

# portupgrade -Rrv ja-p5-MeCab-0.97

Fri Apr 30 09:25:46 JST 2010

にゃろう、devel/p5-File-MMagic でコケてやがる。

# cd /usr/ports/devel/p5-File-MMagic
# make deinstall
# make install
# portupgrade -Rrv ja-p5-MeCab

これでうまくいったが、いちいち見てられない。p5- な奴を先に殲滅したい。


Fri Apr 30 09:37:32 JST 2010

機械的にやってみる試み。

% pkg_info -aI | grep p5 | awk '{print $1}' > /tmp/p5
# /bin/sh
# cat /tmp/p5 | while read line
> do
>   portupgrade -f $line
> done

実際にこれでうまく行くとしても、ON 中のサーバにやる処理じゃないな。


Fri Apr 30 10:20:48 JST 2010

ちょっとづつ流して様子を見てたら、p5-DateTime でコケてる。 結局手動でやった方がいいのか…

# portupgrade -fv p5-DateTime

こんなんでいいのか?いや、ダメそうだ。

===>  Configuring for p5-DateTime-0.55
Checking prerequisites...
  build_requires:
    !  Test::Exception is not installed
    !  Test::More (0.80) is installed, but we need version >= 0.88

ERRORS/WARNINGS FOUND IN PREREQUISITES.  You may wish to install the versions
of the modules indicated above before proceeding with this installation

Run 'Build installdeps' to install missing prerequisites.

しかし portupgrade は成功してしまっている。ヨシとする。

今のところ急ぐものでもないので、ちまちま地道に行こう。 …クリーンインストールを決意するまでは。っていうかもうすぐ決意しそう。


Fri Apr 30 13:34:23 JST 2010

バックグラウンドで kumofs とやりとりする側の情報を収集していたら、 kumo の次、的な奴のスライド がひっかかった。第二世代分散データストア? また、 Java + kumofs は苦痛が伴うのでオススメできない も発見してしまった。 あれっ、テンション下がるなぁ。 乗りかかった船ということで memcached の勉強まではやってみるとするか?


Fri Apr 30 15:23:18 JST 2010

popfile は 30 通程度でいい感じに ham とか spam とか判定し始めた。 今のところ外れなし。とは言え、平日のこの時間で 30 数通っていうのは 圧倒的に流量が少ない。


Fri Apr 30 20:13:17 JST 2010

gcalcli なる物体の存在を知った。Python モノか。ちょいとやってみる。 ちなみに make fetch-resursive にひっかかった新着ものは

gcalcli-1.4.tgz
Python-2.5.5.tgz
gdata-2.0.9.tar.gz
python-dateutil-1.4.1.tar.gz
setuptools-0.6c11.tar.gz

こんな感じ。python25 を portupgrade で -Rrnv してみたら、関係多すぎ (304!)。 これはもう単品で。Python も Perl みたいなことになるのかな?


HOME | index | prev | next
[Rev: --not under control--]
[EOF]