PostgreSQL8.0.3/DI/LIRS


[その前] [その後] [目次]

【2005年8月11日(木)】

200508_2.html#20050811

[午前中]

@ 千葉は曇り。

@ 午前中は本社ビルで打ち合わせ。

@ 昼になったので、帰社の途中で有楽町ビックに寄ってみるが、EP-EX1 は 404。むぅ。

[午後]

@ 昼飯アワーはオムライスハヤシソース。

@ 午後は資料作り。

@ 夕方から電話会議。

@ 残業アワーに突入。

[夜]

@ 結局、2425退社。ムネン、アトヲタノム。

@ 帰宅するがどうも眠れない。

@ 多分2800頃遮断。


【2005年8月12日(金)】

200508_2.html#20050812

[午前中]

@ 千葉は曇りときどき雨。

@ 昨日の晩飯を朝飯として食べたら、量が多くていきなり腹一杯(汗;)。

@ 激しく酸欠気味だが、何とか起動して出撃。

@ 今日は休みが多くてガラーンとしているな。

[午後]

@ 昼飯アワーはチャンポン麺。

@ ふにふにと資料作成。

@ 定時で離脱。

[夜]

@ まっすぐに帰宅して晩飯アワー。

@ 風呂部活動。最近の娘は簡単に仰向けになってくれないので、髪の毛が洗いにくいな。

@ 2045くらいにダウン。

[misc]

@ バブルボブルのやつは「スカル」じゃなかったかな(記憶不明瞭)。他だとケイブシャーク@ドラゴンバスターとか(あれは永パ防止キャラになっていなかったらしいが)。

@ 取りあえずメモ。BIBLO の BIOS は Ver.1.30


【2005年8月13日(土)】

200508_2.html#20050813

[午後]

@ 千葉は晴れ。

@ 1400くらいまでずっとぽなくなり。なんか最近休日でもいつもと同じくらいに目が覚めてしまって二度寝できない感じだったんだが、久しぶりに寝まくった感じだ。

@ 地元の図書館に出かけて、カードを作ってみる。その後、買い物に出かけ、パンパースMサイズを査収。

@ ヤマダ電機で、EP-EX1 を発見したので 2つ確保。偉いぞヤマダ電機。しかし、無くす前に確保した新品が部屋内遭難する方に1票だな orz

[夜]

@ 家で晩飯アワー。ゴーヤチャンプル。

@ 2週間分の電車男をまとめて見る。

@ トリビアも録画を見る。

@ 近々ハイウェイカードがぽなくなりらしいので、ETCカードでも申し込んでみるテスト。あまりこういうのはネットで申し込むの嫌いなんだが、申込書を取り寄せる方がもっと面倒だ。この間の明細に入っていたやつを捨てずに取っておけば良かったな。

[PostgreSQL 8.0.3]

@ PostgreSQL 8.0.3 を導入してみる。DB 関係は素人なので、少し勉強したい感じだが……どうなることやら。

@ 2630 遮断。


【2005年8月14日(日)】

200508_2.html#20050814

[午前中]

@ 千葉は晴れ。1030起動。

@ 昼飯アワーは生ラーメン。

[午後]

@ 午後から轟弥號2004で出撃。

@ 微妙にバンパーにダメージを受ける。うぐぅ。

@ ハードオフを2件ほどハシゴしてみたが、やはり FMVND13G2 は発見できず。

[夜]

@ ちょっと早めに安楽亭で晩飯アワー。昨年7月31日以来か。

@ しかしやはり乳児連れでは焼肉は難しいな。

@ スーパーでビール1ケース買う。

@ 帰宅。

@ ビールを飲んで寝る。


【2005年8月15日(月)】

200508_2.html#20050815

[PostgresQL 8.0.3]

@ 先日インストールした PostgresQL 8.0.3 だが、/etc/rc.conf に

postgresql_enable="YES"
postgresql_data="/usr/local/pgsql/data"
postgresql_flags="-w -s -m fast"
を追加して再起動したのだが、どうもうまく起動していないっぽい。/usr/local/pgsql/data/postgresql.conf が見つからないとか出ているな。

@ /usr/local/etc/rc.d/010.pgsql.sh をザックリ眺めると、なんか initdb 関連の記述があるのだが、叩き方が違うのかなぁ。

@ よく分からないので、

# su - pgsql
$ pwd
/usr/local/pgsql
$ initdb --no-locale -E EUC_JP
これで一応できたらしいので再起動。今度は無事起動しているっぽい。ちうか、locale の設定は C でいいのかなぁ?

@ 次はユーザを作るのかな。

$ whoami
pgsql
$ which createuser
/usr/local/bin/createuser
$ createuser gussar
Shall the new user be allowed to create databases? (y/n) y
Shall the new user be allowed to create more new users? (y/n) n
CREATE USER
参考

@ 次は createdb かな。

$ which createdb
/usr/local/bin/createdb
$ createdb -O gussar testdb
CREATE DATABASE
$ psql -l
       List of databases
   Name    | Owner  | Encoding
-----------+--------+----------
 template0 | pgsql  | EUC_JP
 template1 | pgsql  | EUC_JP
 testdb    | gussar | EUC_JP
(3 rows)

@ さて、何か試してみよう。

$ psql testdb gussar
Welcome to psql 8.0.3, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help with psql commands
       \g or terminate with semicolon to execute query
       \q to quit

testdb=# create table addr (name text, address text);
CREATE TABLE
testdb=# insert into addr values('gussar', 'Japan');
INSERT 17236 1
testdb=# insert into addr values('netavendor', 'World');
INSERT 17237 1
testdb=# select * from addr;
    name    | address
------------+---------
 gussar     | Japan
 netavendor | World
(2 rows)

testdb=# select * from addr where name = 'netavendor';
    name    | address
------------+---------
 netavendor | World
(1 row)

testdb-# \q
$
フフニヤ。

@ 日本語のテストもしてみよう。まずは EUC で SQL 文を書いておいてから、psql testdb2 -f hoge.sql みたいな感じで。もちろん、ターミナルの漢字コードを EUC にしてあれば、このままでも日本語 OK のようだ。ヲレは通常は Shift_JIS 環境なので、psql testdb2 で起動してから、

testdb2=# \encoding SJIS
testdb2=# select name from addr where address = '世界';
    name
------------
 ネタベンダ
 ネタベンダ
(2 rows)
(バッチリだ!)なぜ2つ出てくるのかは訊くな(ぉ

@ 最初は FreeBSD のユーザアカウントと関係の無いユーザ名を作ってみたのだが、実は不便なだけ(というわけでもないんだろうけど)だったので、別の DB ユーザも作ってみるか。

@ この辺も参考文献としてメモっておくか。

[午前中]

@ 千葉は曇り時々雨。

@ 電車が空いているなぁ。

@ 午前中は担当内ミーティング。

[午後]

@ 昼休みは実家に謎資料を送付するために封筒を買いに行ったり、郵便局に行ったり。

@ 午後は資料作り。

@ 定時をちょっとすぎたあたりで離脱。

[夜]

@ 課長とサシで飲み。

@ むむ、実はこの店結構高かったのか。orz

@ 帰宅。

@ 寝るか。


【2005年8月16日(火)】

200508_2.html#20050816

[PostgreSQL 8.0.3]

@ 昨日に続いて実験君。gusa.di あたりから適当なデータを使って投入してみる。

testdb2=# create table di (URL text, Last_Modified timestamp with time zone);
CREATE TABLE
testdb2=# insert into di values('http://x.haun.org/diary/', 'Tue, 16 Aug 2005 04:44:23 GMT');
INSERT 17261 1
testdb2=# insert into di values('http://tamuyou.haun.org/mt/', 'Tue, 16 Aug 2005 05:35:57 GMT');
INSERT 17262 1
testdb2=# select * from di;
             url             |     last_modified
-----------------------------+------------------------
 http://x.haun.org/diary/    | 2005-08-16 13:44:23+09
 http://tamuyou.haun.org/mt/ | 2005-08-16 14:35:57+09
(2 rows)
おぉ、rfc1123 形式をいきなり入れられるのか。しかもなぜか日本時間に変換されている(のか?)。すごいね、びっくりだね(psql が型変換しているだけだったりして(汗;))。

@ さて、rfc1123 形式で出力するにはどうすればいいんだろう。

testdb2=# select to_char(last_modified, 'Dy, DD Mon YYYY HH24:MI:SS TZ') from di;
            to_char
-------------------------------
 Tue, 16 Aug 2005 13:44:23 JST
 Tue, 16 Aug 2005 14:35:57 JST
(2 rows)
参考文献。JST じゃなくて GMT にするにはどうするのかな。
testdb2=# select to_char(last_modified at time zone 'GMT', 'Dy, DD Mon YYYY HH24:MI:SS TZ') from di;
          to_char
----------------------------
 Tue, 16 Aug 2005 04:44:23
 Tue, 16 Aug 2005 05:35:57
(2 rows)
うーん、表示時刻は GMT に変換されたけど、GMT という文字列が出てきませんな。うぐぅ。

[午前中]

@ 千葉は曇り。なんかときどきすごい雨が降るようだ。

@ 朝は微妙に雨が降り始めていたが、轟傘號で駅まで強行突破。

@ ふにふにと仕事。

@ うわー地震だ。しかも結構長いな。揺れが微妙で酔う〜(汗;)

[午後]

@ 昼飯アワーは担々麺。

@ 午後はあちこちに電話したり。

@ 残業アワーに突入。

[夜]

@ 割と早く帰れるかと思いきや、問題発覚。

@ 結局2200退社。

@ 帰宅してから晩飯アワー。

@ 寝よう。


【2005年8月17日(水)】

200508_2.html#20050817

[misc]

@ メモ。BIBLO NE IX26 の改造

[午前中]

@ 千葉は晴れ。

@ ヨメと娘がガゼーの呪いにやられているようなので、1日お休み。

@ なんか娘は鼻風邪っぽく、ときどき鼻提灯が発生(汗;)。まるで漫画のようだ。

@ 取りあえず娘の世話をして、ヨメはぽなくなり部活動。

@ ブランチアワーは素麺。

[午後]

@ 午後も娘の世話。空調入れられないので暑くてキツいな。

@ 晩飯アワーはマジスパレトルト。ハンバーグとかチーズとかいろいろ入れたので、なかなかいい感じに。

[夜]

@ 夜は英会話へ出かける。来週からの新しい講師への引き継ぎを兼ねているので、今日は講師が二人で生徒がヲレ一人という珍しい状態に。

@ ミスドで100円モードになっていたので、エンゼルフレンチを買ってみる。

@ 録画トリビアを見たり。

@ 帰宅。

@ 寝るか。


【2005年8月18日(木)】

200508_2.html#20050818

[PostgreSQL 8.0.3]

@ 引き続き実験君。LIRS データを取り込んでみる。LIRS フォーマットは、本家サイトがどこへ引っ越したのかよく分からなかったので、ぐぐってここを発見。拡張部分についてはよく分からないので、とりあえず実装しない。更新時刻情報が Epoch フォーマット(という言い方が正しいのかどうかよく知らないが)になっているので、この辺を見ながら、TIMESTAMP 型に変換する方法を調べてみた。lirs データはがちゃぴんアンテナから natsumican.lirs.gz をダウンロードして、2つほど手投入。

testdb2=# \encoding SJIS
testdb2=# CREATE TABLE lirs (
testdb2(#         header                  TEXT,
testdb2(#         last_modified           TIMESTAMP WITH TIME ZONE,
testdb2(#         last_modified_detected  TIMESTAMP WITH TIME ZONE,
testdb2(#         diff_timezone           INT,
testdb2(#         content_length          INT,
testdb2(#         url                     TEXT,
testdb2(#         title                   TEXT,
testdb2(#         author_name             TEXT,
testdb2(#         authorized_url          TEXT
testdb2(# );
CREATE TABLE
testdb2=# INSERT INTO lirs VALUES('LIRS', TIMESTAMP WITH TIME ZONE 'epoch' + 1124212543 * INTERVAL '1 second', TIMESTAMP WITH TIME ZONE 'epoch' + 1124314202 * INTERVAL '1 second', 32400, 0, 'http://gorry.hauN.org/diary/digestdiary.html', 'なびろぐ', '東の GORRY セソセイ', 'http://club.h14m.org/gachapin/');
INSERT 17275 1
testdb2=# INSERT INTO lirs VALUES('LIRS', TIMESTAMP WITH TIME ZONE 'epoch' + 1123464420 * INTERVAL '1 second', TIMESTAMP WITH TIME ZONE 'epoch' + 1124308803 * INTERVAL '1 second', 32400, 0, 'http://aeneis.haun.org/janus/d/', '藝夢日報', 'janus さん', 'http://na01.shonan.ne.jp/~gorry/hina/');
INSERT 17276 1
testdb2=# SELECT * FROM lirs;
 header |     last_modified      | last_modified_detected | diff_timezone | content_length |                     url                      |  title   |     author_name     |            authorized_url
--------+------------------------+------------------------+---------------+----------------+----------------------------------------------+----------+---------------------+---------------------------------------
 LIRS   | 2005-08-17 02:15:43+09 | 2005-08-18 06:30:02+09 |         32400 |              0 | http://gorry.hauN.org/diary/digestdiary.html | なびろぐ | 東の GORRY セソセイ | http://club.h14m.org/gachapin/
 LIRS   | 2005-08-08 10:27:00+09 | 2005-08-18 05:00:03+09 |         32400 |              0 | http://aeneis.haun.org/janus/d/              | 藝夢日報 | janus さん          | http://na01.shonan.ne.jp/~gorry/hina/
(2 rows)
一応、入ったには入ったけど、LIRS ファイルからダイレクトに流し込むには、何かしらの工夫が必要ですな。\copy で読むには、拡張部分を削らないとダメっぽいし、TIMESTAMP 型への変換の部分を関数化しないといけないのかな。

@ DI の方はどう作るのがいいのかな。dirp/0.3 draft 1を見て、とりあえず以下のような感じで。Expire だけは s をつけている。

CREATE TABLE di (
        url                     TEXT PRIMARY KEY,
        last_modified           TIMESTAMP WITH TIME ZONE,
        last_modified_detected  TIMESTAMP WITH TIME ZONE,
        authorized              TEXT,
        authorized_id           TEXT,
        authorized_url          TEXT,
        expires                 TIMESTAMP WITH TIME ZONE,
        title                   TEXT,
        content_type            TEXT,
        content_length          INT,
        author_name             TEXT,
        author_email            TEXT,
        author_url              TEXT,
        keyword                 TEXT,
        comment                 TEXT,
        method                  TEXT,
        index                   TEXT,
        started                 TIMESTAMP WITH TIME ZONE,
        finished                TIMESTAMP WITH TIME ZONE
);
実は hina-di には、ここに出てこないヘッダが結構あったりするので、その辺をどうするのかも考えどころかな。まだリアルデータを格納するところを試していないので、何とも言えないけど。

@ というか、テーブル分割とかもっと先に考えるべきところがありそうな気もする(汗;)。

@ databases/p5-DBD-Pg と databases/p5-DBI を portinstall。

@ 適当に perl で lirs ファイルから、さっき作った lirs テーブルに流し込むプログラムを書いてみる。

@ とりあえず流し込めることを確認。まぁ、こんなところか。あとは、最初に URL で引っ掛けておいてから Last-Modified-Detected を比較して、新しいものだったら update、古かったらステ、DB 内に無かったら insert を使い分けるような感じにすればいいんだろうな。

@ 今頃になって OpenDesign 2001年8月号が役に立っていたり(苦笑)。

[午前中]

@ 千葉は晴れ。暑い。

@ メールの未読処理。5MB 近い spam がやたら飛んできて困ったもんだ。

@ 昼飯アワーはうな重。社員食堂版なのであまり期待してなかったのだが、思ったよりはマトモだった。

[午後]

@ 午後は Excel とにらめっこ。

@ 残業アワーに突入。

[夜]

@ 2030 くらいに退社。

@ 帰宅して、蟹味噌の缶詰でビール。

@ 電車男を視聴。15分くらい放送時間がずれているな。

@ うぅむ、肩が凝った。抱っこ効果だなぁ。

@ PostgreSQL で遊んでから寝る。


【2005年8月19日(金)】

200508_2.html#20050819

[なつみかん]

@ LIRS データを PostgreSQL に流し込んだりとかいろいろ試していたが、2003年12月24日に「なつみかん」の開発/保守/運用の凍結宣言が出ていたのを発見。当時は覚えていたんだろうけど、いつのまにか忘れてしまっていたようだ(汗;)。さてどうしたものか。

@ RNA ちうのがあるのか。ふむふむ。

[午前中]

@ 千葉は晴れ。暑い……

@ ふにふにと仕事。

@ 昼飯アワーはチキンなんとかという謎のメニュー。ターメリックライスにホワイトシチューを掛けたようなものだ。

[午後]

@ 午後は酸欠気味だが何とか耐える。

@ 定時で退散。

[夜]

@ 家で晩飯アワー。

@ 風呂部活動。日中はかなり不機嫌だったのだが、機嫌も直ったようだ。

@ ビールでも飲むか。


【2005年8月20日(土)】

200508_2.html#20050820

[BIBLO]

@ この辺を見て、BIBLO の調子の悪いマルチベイCD-ROMドライブを分解してみることを思いつく。うまくセカンドHDDでも繋げられればラッキーかと思われたが、フィルムケーブルの先の形状(CD-ROMドライブ側)が見たことのない形状(少なくとも3.5インチや2.5インチのIDEーHDDのものではない)だったので諦めた。残念。

@ 定価12万だからとても手が出ないけど、故障用パーツとかで FMVND13G2 のガワだけとか手に入らないかなぁ。うぅむ。まぁそこまでしてこだわるほどのマシンではないのだが(汗;)。

[午前中]

@ LDAP の勉強でもするかなぁ。まずは、OpenLDAP ソフトウェア 2.3 管理者ガイドあたりを読んでみるか。

@ 千葉は晴れ。昼くらいまでゴロゴロ。

[午後]

@ 昼飯アワーは生ラーメン。

@ ヨメが買い物に出かけたので、娘と留守番部活動。

[夜]

@ 晩飯アワーはシチュー。

@ 久しぶりに暴君ハバネロでビール。

@ 久しぶりにのんびりテレビを見たり。

@ 2500遮断。


[その前] [その後] [目次]
[ArctanX のホームページに戻る]
ArctanX <arctanx@hauN.org>