SVX日記

2004|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|06|07|08|09|10|11|12|
2025|01|02|03|04|05|06|07|08|

2005-04-14(Thu) Gmailにインポート!!

  今日もプロッタをチョコチョコとイジる。昨日、漢字は図形モード出力、英数字は文字モード出力というハイブリッド印刷が望ましいという考えに至ったが、よく考えたら文字モードでプリンタに出力すると、いわゆるイニシエのパイカのような、比較的正方形に近い形状の英数字が印字されてしまうコトに気づいた。つまり、画面上のような「全角と半角」というイメージにはならないのだ。しかも、文字を左から順に印刷しようとすると、図形モードから文字モードへの切り替えの際にペンが毎度ホームポジションに戻ってしまうため、うまくいかない。どうやら、ドライバ側でもペンの位置を把握しつつ、比較的高度な制御を行う必要がありそうである。腹鰭幌晴。

  で、次は新しいオモチャであるGmailをイジる。アカウントを取っただけでは使い勝手もナニもないので、使い勝手を試すタメにメールをザクザクと注ぎ込みたいトコロだ。しッかァーしッ!! Gmailにはメールをインポートする仕組みが備わっていないのだ。せっかくのビッグストレージだからこそ、ナンも考えなしに既存のメールを全部ブチ込みたいのに、どーゆーコトよ!! 製造してやるッ!! ……というコトで、現状、サーバ上に載っているUNIX-mbox形式内のメールすべてを、ドカドカとGmailに送りつけるRubyスクリプトをサックリと書いて、インポート作業を行ってみた。

  まずは、既存のメールのバックアップだ。バックアップ中にメールが来てグチャっとならないように、念のためMTAを落としておく。

/etc/init.d/exim stop

  大事なファイルをガシガシとイジる時には、できるだけ大雑把にバックアップを取ったほうが安全だ。ホームディレクトリごと、ごっそり別ユーザのディレクトリにコピーしておく。

cp -R /home/athrun /home/kira/backup

  MTAを上げる前に、メールディレクトリにある全てのmbox形式ファイルを初期状態にクリアしておく。ゆくゆくはGmailをメインのメールボックスにするつもりではあるが、当面は現サーバでもメールを受ける必要があるため、Gmailに移動してしまったメールと、それ以降に来たメールが混ざらないためのクリア処理である。

cp 99:SPAM.init 00:MAIN
cp 99:SPAM.init 01:ITLINE
 :
 :
cp 99:SPAM.init 64:PIC
cp 99:SPAM.init 65:SVX
cp 99:SPAM.init 90:IMPORTANT
cp 99:SPAM.init 99:SPAM

  メールファイルのバックアップ処理およびクリア処理が終わったので、MTAを上げて現サーバでのメール受付を再開。

/etc/init.d/exim start

  で、ここからいよいよGmailへのメールのインポートである……が、最初にインポートするメールを、あえて現在スパムメールフォルダに溜まっている500通のスパムにしてみたい。これで、Gmailのスパムフィルタの選別能力を判定しようというのである。

  メールのインポートはさっき作ったスクリプトで行う。使い方はこんな感じ。

./import2gmail /home/kira/backup/athrun/mail/99:SPAM smtp.archangel.co.jp athrun@gmail.com athrun@zaft.com exec

  最初は、末尾のexecナシでドライラン(表示だけで送信しない)をさせてみよう。ちゃんとメールが一通ずつ認識されるか、メール通数が合っているかを確認できる。OKっぽいならexecをつけて本実行だ。1秒に1通ずつポッコンポッコンとGmailにメールが転送されるぞ。実行ッ!!

  画像の説明

  おぉッ!? スゲェ!! これはまだ転送途中の状態であるが、500通のスパムのうち、スパムでないと判定されたメールはたった5通程度であった。これがGmailユーザ内でスパム情報を共有している威力なのかッ!? オイラが丹精込めて熟成させたウチのbsfilterによるベイジアン式フィルタに勝るとも劣らない破壊力である。

  調子に乗って、今度はスパムでない本番メールを1000通程度(これで半分程度だ)インポートしてみた。フォルダという概念がないってのが、ちょっと使い慣れない感じだが、十分に検索能力が高ければどうということはないということか……って、ぜんぜん検索に引っかからないじゃん!? ……と、思ったが落ち着け、オレ。Googleのような検索エンジンは一度全てのメールをスキャンし、インデックスを形成してからでないと最低限レベルの検索しかできないのだ。明日までは待つべし、待つべし。

  ちなみに、節操なく1000通もブチこんだのにも係らず、画面の下のほうには……

You are currently using 30 MB (1%) of your 2093 MB.

  ……という表示がッ!! たった1%だとぉ!? ふ、不敵なッ!! なんという挑戦的な態度であろうか!? 無敵すぎるぞッ!! Google!!

  今回つくったRubyによるGmailへのインポートスクリプトを置いておく。んが、このmboxという形式、調べるとかなりいー加減な形式らしい。モトがいー加減な形式なら、スクリプトの造りもいー加減である。30行ちょっとでいー加減でないわけがないので、使うときはいー加減な気分で使ってほしい。

  ……って、あれ? あれれ? 既にインポートするプログラム存在するのね。しかも、こっちはmbox以外にもいろいろな形式に対応しているではないか。どうやら、見事に車輪の再発明をしてしまったようだ。ま、再発明ほど楽しいことはないんだから、いいんだけども。

  さーて、明日は残りのメールをインポートするとともに、バックアップストレージとして活用するためのスクリプトの開発でも始めようかねぇ。

  2010年6月19日追記: いまさらだがMailDir形式対応版も置いておく。

本日のツッコミ(全4件) [ツッコミを入れる]

だーはら [フォルダの概念がないというのは、どうも気になるんだが。 使いやすいんだろうか。]

フルタニアン(管理者) [うーむ、なんとも説明しづらいですが、フォルダが無くてもあまり気にならない感じですかねぇ。 結局フォルダはメールを整理..]

だーはら [会社に、"月"単位でフォルダを作って(200505とか)単にそこに放り込むというメール管理方法をしている人がいて。す..]

フルタニアン(管理者) [興味深い話題なので更にツッコンで言及。 聞きかじりですが、超整理法ってのは全ての情報を「時系列」に並べるという方法で..]


2006-04-14(Fri) coLinuxの再コンパイルで再びコンパイすル

  今日はちょっとハードをお休みしてソフトをやる。先日、coLinuxのバージョンを0.6.1から0.6.2や0.6.3-pre13に上げてからというもの、安定性は向上し、快適性は増したのだが、カーネルのコンパイルができなくてコンパイしていルのである。

  0.6.1の時はできていたのに……というのも、coLinuxではカーネルコンパイルの際、ナゼかgccのバージョンを合わせねばならないのだ。以前、WBEL3を使っていた時のgccは3.2と、0.6.1と適合していたのだが、0.6.2および0.6.3-pre13ではgccが3.3である必要がある。だが、WBEL4にはgccの3.4が乗っちゃっているのである。絶妙にダメなのである。

  某rpmパッケージではRedHat10になりそこねたSevern、FedoraCoreの1と2において、gccの3.3が提供されているようだが、それを無理やり当ててコンパイルして作ったvmlinuxを使ったらブルースクリーンになってしまった。よくわからんが、なにしろダメなようである。

  ちゅーわけで不本意ながら、仕方なくそのまま使っていたのだが、先日ちょっと本屋でcoLinuxの本を発見し、軽く立ち読みしたら、gccを自分でインストールしてコンパイルして動かしちゃっている……なんじゃ、そんなコトなのか。ほんじゃ……というワケで、オイラもマネしてみるのであった。

  まずはパッケージ集め。今回は0.6.3-pre13上で動いているWBEL4の上でカーネルコンパイルをしてみることにする。gccの3.3、linuxの2.6.11、colinuxの0.6.3-pre13のアーカイブを持ってくる。このヘンこのヘンこのヘンにあるぞ。

<root> 金  4月 14 - 19:40:36
wbel4-co:/usr/src # ls
合計 59620
drwxr-xr-x  5 root  root       4096  3月 24 14:07 kernels/
drwxr-xr-x  7 root  root       4096  3月 24 14:08 whitebox/
-rwxr--r--  1 mitsu furuta   438707  4月 14 19:40 stable-colinux-20050524.tar.gz*
-rwxr--r--  1 mitsu furuta 37075679  4月 14 19:40 linux-2.6.11.tar.bz2*
-rwxr--r--  1 mitsu furuta 23447616  4月 14 19:40 gcc-3.3.tar.bz2*

  で、gccのインストールから始めよう。/usr/srcの下に展開する。

<root> 金  4月 14 - 19:42:42
wbel4-co:/usr/src # tar xvfj gcc-3.3.tar.bz2
 
<root> 金  4月 14 - 19:42:52
wbel4-co:/usr/src # cd gcc-3.3

  と、ココでハタと困った。現状のgccの3.4環境を壊したくない。だが、こんな要求は当然だろう。ちゅーことはどこかに書いてあるハズである。READMEとかINSTALLとか……ほれ、FAQにあったぞ。

<root> 金  4月 14 - 19:45:06
wbel4-co:/usr/src/gcc-3.3 # view FAQ
 
   The  easiest  way  to  do  this  is  to  configure  the  new  GCC with
   --prefix=/usr/local/gcc      and      the      older     gcc2     with
   --prefix=/usr/local/gcc2.  Build and install both compilers. Then make
   a  symlink  from /usr/local/bin/gcc to /usr/local/gcc/bin/gcc and from
   /usr/local/bin/gcc2  to  /usr/local/gcc2/bin/gcc. Create similar links
   for the "g++", "c++" and "g77" compiler drivers.

  要は、configureの際に引数を与えてやればいいみたいだ。

<root> 金  4月 14 - 19:45:42
wbel4-co:/usr/src/gcc-3.3 # ./configure --prefix=/usr/local/gcc33

  で、おもむろにmakeするのである……が!?

<root> 金  4月 14 - 19:47:49
wbel4-co:/usr/src/gcc-3.3 # make
 
gcc -c   -g -O2 -DIN_GCC   -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes    -DHAVE_CONFIG_H    -I. -If -I. -I./f -I./config -I./../include f/com.c -o f/com.o
f/com.c:11078: error: conflicting types for 'ffecom_gfrt_basictype'
f/com.h:236: error: previous declaration of 'ffecom_gfrt_basictype' was here
f/com.c:11078: error: conflicting types for 'ffecom_gfrt_basictype'
f/com.h:236: error: previous declaration of 'ffecom_gfrt_basictype' was here
make[1]: *** [f/com.o] エラー 1
make[1]: Leaving directory `/home/src/gcc-3.3/gcc'
make: *** [all-gcc] エラー 2

  なんか、コンパイルエラーが出るんですけど……なんで? 軽くソースを読むと、ソースファイルとヘッダファイルの関数定義が食い違っている……ちゅーか、コードの流れからするとヘッダファイルの単純な打ち間違え以外に考えられない。236行目の「ffeinfoKindtype」を「ffeinfoBasictype」にサクッと直す。

<root> 金  4月 14 - 19:58:04
wbel4-co:/usr/src/gcc-3.3 # vi gcc/f/com.h
 
    235   ATTRIBUTE_PRINTF_1;
    236 ffeinfoBasictype ffecom_gfrt_basictype (ffecomGfrt ix);
    237 ffeinfoKindtype ffecom_gfrt_kindtype (ffecomGfrt ix);

  makeを再開。

<root> 金  4月 14 - 19:58:19
wbel4-co:/usr/src/gcc-3.3 # make

  結構、時間かかるね……フリーセルして待っているけど、早くしないと駅に着いちゃうんですが……って、ハイ。例によって電車の中でコンパイルしてますです。この文章もほぼリアルタイムで書いてますです。早くぅ〜、終われぇ〜。なんだか、java関係を一生懸命コンパイルしてますが、javaなんて要らんのに……あー、着いちまったッ!! 仕方ない。サスペンドせず稼動状態のまま小脇に抱えて、電車を降りて家に向かおぅ……しかし、家についても余裕でコンパイルは終わらない……コンパイラのコンパイルにはカーネルなんかより遥かに時間がかかるのね。

/usr/bin/ld: final link failed: Memory exhausted
collect2: ld returned 1 exit status
make[2]: *** [libgcj.la] エラー 1
make[2]: Leaving directory `/home/src/gcc-3.3/i686-pc-linux-gnu/libjava'
make[1]: *** [all-recursive] エラー 1
make[1]: Leaving directory `/home/src/gcc-3.3/i686-pc-linux-gnu/libjava'
make: *** [all-target-libjava] エラー 2
 
<root> 金  4月 14 - 21:13:51
wbel4-co:/usr/src/gcc-3.3 #

  で、しまいにゃ、エラーかよッ!! もいっちょ!!

make[1]: *** [all-recursive] ハングアップ
make[2]: *** [libgcj.la] ハングアップ
make: *** [all-target-libjava] ハングアップ
ハングアップ

  今度はパニック? ちょっとメモリの割り当てがが64Mでは少なすぎるか……一度落として、128Mに上げて再起動。

<root> 金  4月 14 - 22:36:40
wbel4-co:/usr/src/gcc-3.3 # make
 
make[2]: Leaving directory `/home/src/gcc-3.3/i686-pc-linux-gnu/libjava'
make[1]: Leaving directory `/home/src/gcc-3.3/i686-pc-linux-gnu/libjava'
 
<root> 金  4月 14 - 22:46:50
wbel4-co:/usr/src/gcc-3.3 #

  一応、終わったッ!!

<root> 金  4月 14 - 22:51:55
wbel4-co:/usr/src/gcc-3.3 # ls -lrtR /lib /bin /usr /sbin /etc > before.ls-R
 
<root> 金  4月 14 - 22:53:09
wbel4-co:/usr/src/gcc-3.3 # make install
 
<root> 金  4月 14 - 22:59:41
wbel4-co:/usr/src/gcc-3.3 # ls -lrtR /lib /bin /usr /sbin /etc > after.ls-R
 
<root> 金  4月 14 - 23:01:51
wbel4-co:/usr/src/gcc-3.3 # diff before.ls-R after.ls-R  | less

  なーんてやって、余計なファイルが書き込まれていないのを確認しつつ……一応、gccのインストールは完了である!! そして抜く手も見せずにカーネルのコンパイルに移る。

<root> 金  4月 14 - 23:02:17
wbel4-co:/usr/src/gcc-3.3 # cd ..
 
<root> 金  4月 14 - 23:02:27
wbel4-co:/usr/src # tar xvfj linux-2.6.11.tar.bz2
 
<root> 金  4月 14 - 23:05:26
wbel4-co:/usr/src # mkdir stable-colinux-20050524
 
<root> 金  4月 14 - 23:05:33
wbel4-co:/usr/src # cd stable-colinux-20050524
 
<root> 金  4月 14 - 23:05:59
wbel4-co:/usr/src/stable-colinux-20050524 # tar xvfz ../stable-colinux-20050524.tar.gz
 
<root> 金  4月 14 - 23:10:40
wbel4-co:/usr/src/stable-colinux-20050524 # cd ../linux-2.6.11
 
<root> 金  4月 14 - 23:11:40
wbel4-co:/usr/src/linux-2.6.11 # patch -p1 < ../stable-colinux-20050524/patch/linux
 
<root> 金  4月 14 - 23:53:02
wbel4-co:/usr/src/linux-2.6.11 # cp ../stable-colinux-20050524/conf/linux-config .
 
<root> 金  4月 14 - 23:53:20
wbel4-co:/usr/src/linux-2.6.11 # make menuconfig

  coLinuxのconfigファイルを「Load an Alternate Configuration File」から読み込んでから、カーネルのコンパイル開始ッ!!

<root> 土  4月 15 - 00:03:17
wbel4-co:/usr/src/linux-2.6.11 # make

  コンパイル完了ッ!! できたvmlinuxをWindows環境に持ってきて、coLinux起動ッ!!

<mitsu> Sat Apr 15 - 00:49:02
SUZAKU:/cygdrive/c/Program Files/coLinux $ ./colinux-daemon.exe -c wbel3.colinux.xml
 
colinux: error, expected gcc version 3.3.x, got 3.4.x
error initializing
daemon: exit code 88668014
daemon: error - CO_RC_ERROR_COMPILER_MISMATCHED, line 416, file colinux/user/daemon.o (67)

  わーっ!! gccの3.3を使うのを忘れとったぁ……オレはアホかッ!?

<root> 土  4月 15 - 00:50:11
wbel4-co:/usr/src/linux-2.6.11 # make clean
 
<root> 土  4月 15 - 00:50:43
wbel4-co:/usr/src/linux-2.6.11 # make CC=/usr/local/gcc33/bin/gcc

  今度こそ。

<mitsu> Sat Apr 15 - 01:17:22
SUZAKU:/cygdrive/c/Program Files/coLinux $ ./colinux-daemon.exe -c wbel3.colinux.xml

  よっしゃーッ!! 起動成功ッ!!

<mitsu> Sat Apr 15 - 01:19:11
SUZAKU:/cygdrive/c/Program Files/coLinux $ ssh wbel3-co -l mitsu
 
<mitsu> 土  4月 15 - 01:19:17
wbel3-co:/home/mitsu $ uname -a
Linux wbel3-co 2.6.11 #2 Sat Apr 15 01:14:09 JST 2006 i686 i686 i386 GNU/Linux

  確かに新しいカーネルで動いているようである。

  ただし、これだけではナニもうれしくはない。今回はコンパイルが可能かどうかの試験のため、デフォルトのcoLinuxのカーネルコンフィグを使ったが、ココで適切なコンフィグができるトコロに再コンパイルのおいしさがあるのである。と、いうわけで、それはまた後日。では。


2007-04-14(Sat) アリアリアリアリ

  画像の説明 画像の説明


2018-04-14(Sat) パックマンの巾着完成

  先日の画竜点睛を欠いている部分とは何か? それは、黄色い球状のループエンドなのであった。

  画像の説明

  「黄色い球」は、パワーエサであり、パックマン自身であり、純正筐体のジョイスティックのボールであり、究極的にはナムコの象徴でもあるのだ。

  というわけで、これにて、アーカードをもってしても「パーフェクトだウォルター」と言わしめるであろう、コダわり抜いた、究極の弁当箱用の巾着袋の完成であるッ!