32nd Diary

トップ | 最新 | 過去の日記 | もっと過去の日記

2004年
10月
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
めーるあどれす
ruby -rbase64 -e'puts Base64.decode64 %q(dGFrYW5vMzJAZ21haWwuY29t)'



2004-10-23 (Saturday) [長年日記]

[WEB] 娘のためにサイトの閉鎖をお願いする母親のメール

このメイルすごいっすね.(ある意味)感動しました.

いや,でも若干ながらそういうことを考えてしまう親の気持ちもわかる.

私の知り合いにも「息子がネットゲームにはまってしまっているため,なんとかして受験が終わるまでは止めさせたい.」と,いうようなことを言っていた方いますし...

インターネットに「度を越してハマる」というのは,なかなか深刻な問題だとは思いますが,家庭内で問題になるならまだしも,それを管理人などにサービスやめれ,というのはあまりに自分勝手すぎる.

ちなみに私の知り合いの場合はご自身がパソコンをあまり使わないようなので,「ケーブルを切るなどすれば,被害額もあまり出ず,一時的な対処になりそう?」とか言っていました.

その後,どうなったんダロ...今度あったら聞いてみよう...

[Diary] トラックバック動いてたのかぁ...

tDiary 2.0.0の導入後,なぜか自分から自分へのトラックバックテストがうまく動作していませんでした.

たぶん,受信側がうまく動いていないんだろうな.と思っていたのですけど...先日のトラックバックで実は受信側は正常に動作していることがわかりました.

結果的に動作の確認が出来ました.トラックバック送信,ありがとうございます.

とりあえず,こちらからどっかにトラックバックして成功すれば,送信側の動作も確認できるかな.

[WEB] Search Engine Optimization

なんでも世間ではSEOコンテストなるものが行われているらしい.

SEOとはSearch Engine Optimizationのことで,簡単に言えば,あるワードを検索エンジンの上位に表示させることである.

で,今回のコンテストで選ばれた語句が「ゴッゴル」という単語となっているようだ.

コンテスト開始時には0件だったそうだが,現在はスゴイ件数がヒットする.なかなか結果が楽しみですな.

[UNIX][XML] Berkeley DB XML導入 @ FreeBSD(98)

参考にしたサイトはDon'tStopMusic

今回はFreeBSD(98)への導入だったので,基本的なライブラリ(xerces-c2, libpathan)はportsから導入してみましたが,導入直後にエラー発生.なんでも,Use Xerces-C 2.4 instead.とのことでした.(portsのバージョンは2.5)

xercesの層からだと全部最初からやり直しデシタヨ...普通にDB作れてるのにXMLのパースに失敗かよ...ザケンナー.

やっぱ新しいものを使うとなるとパッケージに期待できませんな.結局すべてソースから構築.こんなに苦労したのははじめてRWikiを導入したとき以来かな?

今回はそれぞれを/usr/local/BerkeleyDB.4.2, /usr/local/BerkeleyDBXML.1.2, /usr/local/Xerces-C.2.4.0, /usr/local/Pathan.1.2へインストールします.この方法なら不要になったら手軽に消せますし.

JDK 1.4
Berkeley DBのJavaインターフェイスも作っておこうと思い,Javaもビルド.
しかし,jdk14をmakeしようとすると...
IMPORTANT: To build JDK 1.4.2 port, you should have at least
1.7Gb of free disk space in build area!
構築に1.7Gb必要って...デスクトップ環境コンパイルするわけじゃねぇんだよ!!
そんなスペースねぇよ...Portsにnativeあんのに使えねぇ...
linux-sun-jdk14でガマンすることにした.これはLinuxのエミュレータを使うタイプのportsなのだ.いろいろウザイものもインストールされるが,仕方あるまい.
インストール後"/usr/local/linux-sun-jdk1.4.2/bin"にパスを通す.
Xerces-C 2.4.0
ダウンロードしたら,Readme.htmlのUNIX Platformの手順で実行.runConfigureはこんな感じ.-rnoneでスレッド無効にしましょう.
./runConfigure -pfreebsd -cgcc -xg++ -rnone -P/usr/local/Xerces-C.2.4.0
portsで導入する場合は"NO_THREADS=yes"とかMakefile.localに書けばよいでしょう.今回はバージョン管理が面倒になりそうでしたのでソースからビルド.
ちなみにthreadを無効にしておかないと,bdbxmlの構築に成功しても使うことが出来ません.
Pathan 1.2
注意点としてはXerces同様gmakeを使うことくらいですかね.
オプションはこんな感じ.XERCESCROOTに先ほどのインストールで展開したXerces-Cのソースへのパスを与えます.
XERCESCROOT=$HOME/tmp/xerces-c-src2_4_0 \
./runConfigure --prefix=/usr/local/Pathan.1.2
BerkeleyDB4.2
オプションはこんな感じかな.
../dist/configure --enable-compat185 --enable-cxx --enable-java \
--with-tcl=/usr/local/lib/tcl8.4 CFLAGS='-I/usr/local/include/tcl8.4'
tclの位置が環境によって違うかも. ビルド時に
/usr/local/linux-sun-jdk1.4.2/include/jni.h:27: \
jni_md.h: No such file or directory
といわれたら,該当ファイルの#include "jni_md.h"を#include "linux/jni_md.h"と直せばよい.
Berkeley DB XML 1.2
特別なことは必要ないのですが,インクルードパスの設定が面倒ですね.
今回の環境だと以下の通り.
CPPFLAGS="-I/usr/local/include -I/usr/local/BerkeleyDB.4.2/include \
-I/usr/local/Xerces-C.2.4.0/include -I/usr/local/include/tcl8.4" \
 ../dist/configure --enable-java \
--enable-tcl --with-tcl=/usr/local/lib/tcl8.4 \
 --with-berkeleydb=/usr/local/BerkeleyDB.4.2 \
--with-xerces=/usr/local/Xerces-C.2.4.0 \
--with-pathan=/usr/local/Pathan.1.2
BDB 0.5.1
ついにBerkeley DBのRubyバインドの導入.
Berkeley DBの位置を今回インストールしたものに合わせましょう.
srcディレクトリにて下記のように設定.
ruby extconf.rb --with-db-dir=/usr/local/BerkeleyDB.4.2
BDB::XML 0.5.1
BDB 0.5.1のbdbxmlディレクトリにて提供されています.
myconfigファイルによって設定するみたいです.今までインストールしたものそれぞれへのパスを指定します.以下が設定ファイルの一部です.
$base = "/usr/local"
$include = {
   'db' => "#{$base}/BerkeleyDB.4.2/include",
   'dbxml' => "#{$base}/BerkeleyDBXML.1.2/include",
   'xercesc' => "#{$base}/Xerces-C.2.4.0/include"
}
$library = {
   'db' => ["#{$base}/BerkeleyDB.4.2/lib", ["db-4.2", "db_cxx-4.2"]],
   'dbxml' => ["#{$base}/BerkeleyDBXML.1.2/lib", "dbxml-1.2"],
   'pathan' => ["#{$base}/Pathan.1.2/lib", "pathan"],
   'xercesc' => ["#{$base}/Xerces-C.2.4.0/lib", "xerces-c"]
}
test.rb
bdb.so, bdbxml.soにパスを通して実行.
#!/usr/bin/env ruby
require 'bdbxml'
container = BDB::XML::Container.new( 'test.db', 'a+' )
text = <<TEXT
<?xml version="1.0" encoding="UTF-8"?>
<test></test>
TEXT
doc = BDB::XML::Document.new( text )
container.push( doc, 0 )
container.each{|doc|
  p doc
}
container.close
test.dbという名前でファイルが作られ,その中にデータが格納されます.
実行するたびにDocumentが挿入され,eachによる出力が一個ずつ増えるはず.
とりあえず,今日はこのコードが動くことを確認しました. やっとこデータベースとしていじれます.

その他の参考になったサイトなどはWikiにメモ.

後日,Linuxにもインストールし,きれいに手順をまとめなおしたいかも.(こんなにバージョン依存が強いなら,専用のユーザを作り,$HOMEにインストールした方がいいだろう.)

本日のツッコミ(全1件) [ツッコミを入れる]
takano32 (2004-10-24 (Sunday) 04:51)

ARTIFACTにトラックバック成功.どうやら送受信ともにうまく動作しているみたい.

本日のPingbacks(全0件)