トップ 最新 追記 RSS feed

継続にっき

2004|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|12|
2006|01|03|05|06|08|09|10|12|
2007|01|02|03|05|07|12|
2008|10|
2009|01|05|12|
2010|04|05|11|
2011|01|09|12|
2012|02|03|05|09|12|
2013|02|03|
2014|05|09|
2015|12|
2017|09|

2004-08-01 (Sun)

))) レアル vs ヴェルディ

ジダンのマルセイユルーレットに始まって、ベッカム、フィーゴなどのすごいプレーの連続。 あっという間の90分だったな。

))) 素晴らしきハッカー ---Great Hackers---

Gaucheの作者でもある川合さんによるPaul Grahamの文書の訳が出ていた。


2004-08-03 (Tue)

))) 日本 vs バーレーン(アジアカップ準決勝)

睡魔に勝てず前後半完全に見逃した……。もったいなさすぎ。


2004-08-04 (Wed)

))) パソコン購入(3)

予定通り本日到着。モニタも当たり前のように一緒に届いた。

))) 窓使いの憂鬱

Windowsの環境構築といえば何をさしおいても窓使いの憂鬱な訳ですよ。MLでアナウンスされているスナップショットをインストール。

設定ファイルはこんな感じで。

include "109.mayu"

keymap Global
key *IC- =

# Emacsキーバインドエミュレート
mod mod0 = !!英数
key m0-*p = *Up
key m0-*f = *Right
key m0-*b = *Left
key m0-*n = *Down
key m0-*h = *BackSpace
key m0-*e = *End
key m0-*a = *Home
key m0-*d = *Delete
key m0-*v = *Pagedown
key m0-YenSign = $ToggleIME

# WindowsキーをノートパソコンのFnキーっぽく
mod mod1 = !!LeftWindows
key m1-*Left = *Home
key m1-*Right = *End
key m1-*Down = *Pagedown
key m1-*Up = *Pageup

# 一部のアプリケーションは普通にスワップ
keymap CTRL_CAPS_SWAP
mod ctrl += 英数
key *英数 = *LControl
mod ctrl -= LControl
key *LControl = *英数

window xyzzy (/xyzzy\.exe:/ && /:xyzzy.+@/)  : CTRL_CAPS_SWAP
window putty (/putty(jp)?\.exe:/ && /putty(jp)?\.exe:/) : CTRL_CAPS_SWAP
window vpc (/Virtual PC\.exe:/ && /Virtual PC\.exe:/) : CTRL_CAPS_SWAP

# リモートデスクトップ使うときもそれなりに
keymap2 Tm
mod !shift !alt !control !windows
mod control += 英数

window msrdp (/TSSHELLWND/ && /Remote Desktop/) : Global
key m0-x = C-x &Prefix(Tm)
key m0-c = C-c &Prefix(Tm)

key m0-u = C-u
key m0-k = C-k
key m0-s = C-s
key m0-r = C-r
key m0-y = C-y
key m0-w = C-w
key m0-j = C-j
key m0-m = C-m
key m0-LeftSquareBracket = Esc
key m0-Solidus = C-Solidus
key m0-S-ReverseSolidus = C-S-ReverseSolidus
key m0-g = C-g
key m0-SPACE = C-space

こうすると、

  • 普通にEmacsキーバインドを使ってカーソル移動ができる
  • ただしCaps Lock単独の押下はそのままCaps Lock押下として認識させて、それをCraftLuanchのホットキーに使う
  • xyzzyとPuTTYとVirtual PCでは完全にCaps LockとCtrlを入れ替えた状態になる

という変則的なキーバインドが実現できる。

ソフトウェアの性格上動かないということも十分考えられたけど、特に問題ないようでよかった。

))) Ruby-1.8.1 on Cygwin

configureした後makeしようとすると失敗する。

gcc -g -O2   -I. -I/tmp/ruby-1.8.1 -I/tmp/ruby-1.8.1  -I/tmp/ruby-1.8.1/ext/win32ole -DNONAMELESSUNION -DHAVE_WINDOWS_H  -c win32ole.c
win32ole.c: In function `find_default_source':
win32ole.c:5010: error: `GUIDKIND_DEFAULT_SOURCE_DISP_IID' undeclared (first use in this function)
win32ole.c:5010: error: (Each undeclared identifier is reported only once
win32ole.c:5010: error: for each function it appears in.)
make[1]: *** [win32ole.o] Error 1
make[1]: Leaving directory `/tmp/ruby-1.8.1/ext/win32ole'
make: *** [all] Error 1

蚊遁鉄句(2004-05-18)にあるようにパッチを当てればOK。

--- ext/win32ole/win32ole.c.orig        2003-09-25 08:54:21.000000000 +0900
+++ ext/win32ole/win32ole.c     2004-08-05 00:56:55.075375000 +0900
@@ -21,6 +21,7 @@
 #include <windows.h>
 #include <ocidl.h>
 #include <ole2.h>
+#include <olectl.h>
 #ifdef HAVE_STDARG_PROTOTYPES
 #include <stdarg.h>
 #define va_init_list(a,b) va_start(a,b)

2004-08-07 (Sat)

))) autofs + LDAP

ようやっとSamba(PDC)+LDAP認証なサーバ & Samba+NFSなファイルサーバの連携に成功した。 これでクライアントはWindowsでのドメインログオン & LinuxでのLDAP認証によるログイン (ホームディレクトリ共有)が出来るようになる。

とりあえずSambaは置いておくとして、autofs+LDAPについてWeb上にまとまったドキュメントがなくて苦労した。 以下はそのあたりについての断片的なドキュメント。LDAPでの各ユーザーエントリはsmbldap-toolsによって生成された ものをベースとしている点に注意。いつかSambaとあわせてちゃんとまとめなきゃな。

構成

サーバ
役割IP
認証サーバ192.168.1.2
ファイルサーバ192.168.1.3
認証サーバ側

LDAPのbasednは「dc=example,dc=com」、root dnは「cn=Manager,dc=example,dc=com」。

ファイルサーバ

/export以下を公開する。

  • ユーザーのホームディレクトリは/export/home/username

LDAP

ユーザーエントリに対してobjectClass「automount」を追加できるように スキーマファイルを修正する。

--- /etc/openldap/schema/redhat/autofs.schema.orig  2004-08-06 17:57:40.000000000 +0900
+++ /etc/openldap/schema/redhat/autofs.schema       2004-08-06 17:58:28.000000000 +0900
@@ -13,7 +13,7 @@
        EQUALITY caseExactIA5Match
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )

-objectclass ( 1.3.6.1.1.1.1.13 NAME 'automount' SUP top STRUCTURAL
+objectclass ( 1.3.6.1.1.1.1.13 NAME 'automount' SUP top AUXILIARY
        DESC 'An entry in an automounter map'
        MUST ( cn $ automountInformation )
        MAY ( description ) )

autofs用にエントリの追加を行う。

# cat autofsinit.ldif

 dn: ou=auto.master,dc=example,dc=com
 objectClass: top
 objectClass: automountMap
 ou: auto.master

 dn: cn=/home,ou=auto.master,dc=example,dc=com
 objectClass: organization
 objectClass: automount
 o: /home
 cn: /home
 automountInformation: ldap://192.168.1.2/ou=Users,dc=example,dc=com

# ldapadd -x -D 'cn=Manager,dc=example,dc=com' -W -f autofsinit.ldif

各ユーザエントリに対してautomount用のAttributeを追加する。この例ではユーザdomainuserに対する処理を行っている。

# cat addatribute

 dn: uid=domainuser, ou=Users, dc=example,dc=com
 changetype: modify
 add: objectClass
 objectClass: automount
 -
 add: automountInformation
 automountInformation: 192.168.1.3:/export/home/domainuser

# ldapmodify -x -D 'cn=Manager,dc=example,dc=com' -W -f addatribute

ファイルサーバ側

/etc/exportsに以下の行を追加。

/export 127.0.0.1/255.255.255.0(rw,sync,no_root_squash)
/export 192.168.1.0/255.255.255.0(rw,sync,no_root_squash)

あとは関連サービスを起動させる。

# /etc/init.d/portmap start
# /etc/init.d/nfs start

クライアント(autofs)側

authconfigでLDAPサーバ認証をするように設定し、 /etc/nsswitch.confのautomountの項目にldapがあるか確認しておく。

autofsのバージョンを確認する。

# /usr/sbin/automount --version
 Linux automount version 4.1.2

FC1などにある3.x系はautomountの書式が異なり「//ldaphost/basedn」ではなく 「ldaphost:basedn」という形をとるので注意。 その場合は新しいものをいれればいい。

# yum remove autofs
# cd /usr/local/src
# wget http://www.kernel.org/pub/linux/daemons/autofs/v4/autofs-4.1.3.tar.gz
# tar zxf autofs-4.1.3.tar.gz
# ./configure
# make
# make install

autofsを起動し、マウントポイントを確認する。

# /etc/init.d/autofs start
# /etc/init.d/autofs status
 Configured Mount Points:
 ------------------------
 /usr/sbin/automount --timeout=60 /home ldap //192.168.1.2/ou=Users,dc=example,dc=com

これで終了。

最初マウントするときにやたら時間がかかる現象に見舞われた(1分30秒とか)。そのときのログは 以下のようなもの。

Aug  7 15:55:56 localhost kernel: portmap: server localhost not responding, timed out
Aug  7 15:55:56 localhost kernel: RPC: failed to contact portmap (errno -5).

これはクライアント側で

  • nfslock
  • portmap

を実行していなかったのが原因だった。

))) 日本 vs 中国(アジアカップ決勝)

文句なしの試合展開で危なげなく優勝。いやぁ、楽しかった。


2004-08-08 (Sun)

))) 日本Rubyの会設立

これまでもちょろちょろと話が出ていたけど、今度のLL Weekendを機に発足したみたいです。 とりあえず出来た程度でまだまだこれからといった感じだけど期待しています。

))) LL Weekend 2004

発表資料を眺めるに、

  • Groovy
  • Squeak

あたりが面白そう。GroovyはJava VM上で動くといった程度のことは知っていたけど、もう少し 深い部分まで手を出してみたいかな。

))) CUI版LDAP Editor

LDAPのディレクトリツリーにアクセスして属性をいじったりする時には、 LDAP Browser/Editorを使っているのだけど やっぱりシェル上で簡単にやる手段があると便利かなということで Ruby/LDAPを使って簡単なプログラムを組んでみる。 ldapmodifyもあるけれど、RubyからLDAP使えるとなにかと便利ではないかということで勉強がてらに。

LDAPにおける厳密な意味などは考えず、シェルを模して「cdで動きlsで一覧表示」といったインターフェースを 持たせる。さくさくと100行程度で作れてしまうんだからすごい。*1

))) Estraierのフィルタ

ダイナミックリンクライブラリによる外部フィルタを実現しようと思ってやってみたけど、 どうしても

estindex: no valid function in estfilter.so

というようになってしまう。

  • configureのオプションで--enable-dlfilterを付ける。
  • ライブラリのある場所はLD_LIBRARY_PATHで指定しておく。
  • estindexでのオプション指定は「-xsuf '*' text/plain @estfilter.so」

ほかに何か注意点はあるのだろうか。*2 どうしようもなくて結局Rubyで書いてしまう*3というだめだめぶり。

*1 恐ろしく適当だし

*2 もちろんあるんだろうけど

*3 正確に言えば流用


2004-08-09 (Mon)

))) WebDAVサーバ

WindowsからLinuxサーバのファイルにアクセスするにはSCPを使うのが一番手っ取り早いけれど、 WebDAVを使えばシームレスにアクセスできる。もちろん同一ネットワークならSambaによる ファイル共有になるだろうけど、それ以外ならSSL経由のWebDAVが今の時点では一番よいと思う。

ただ、WebDAVアクセスを行うとApacheの実行権限でファイルが書き込まれるため 個人用にサーバを新しく立ててみた。*1

インストール

Apache

configure時にprefixを適切に設定する以外には特に注意点はなし。

$ "./configure" \
 "--with-layout=Apache" \
 "--prefix=/home/kazuki/httpd" \
 "--with-mpm=worker" \
 "--enable-mods-shared=all" \
 "--enable-deflate" \
 "--enable-so" \
 "--enable-ssl" \
 "--disable-asis" \
 "--disable-auth_anon" \
 "--disable-auth_dbm" \
 "--enable-dav" \
 "--enable-dav-fs" \
 "--disable-imap" \
 "--disable-status"
mod_endcoding

@ITの記事をなぞればOK。

$ cd ~/src
$ wget http://webdav.todo.gr.jp/download/mod_encoding-20020611a.tar.gz
$ wget http://webdav.todo.gr.jp/download/experimental/mod_encoding.c.apache2.20040616
$ tar zxf mod_encoding-20020611a.tar.gz
$ cp mod_encoding.c.apache2.20040616 mod_encoding-20020611a/mod_encoding.c
$ cd mod_encoding-20020611a/lib
$ ./configure
$ make
$ su -c 'make install; /sbin/ldconfig'
$ cd ..
$ ./configure --with-apxs=~/httpd/bin/apxs
$ make
$ gcc -shared -o mod_encoding.so mod_encoding.o -Wc,-Wall -L/usr/local/lib -Llib -liconv_hook
$ make install

設定

httpd.conf

変更したのは

  • Listen
  • User
  • Group
  • ServerName

あたり。

WebDAVに関する設定は

LoadModule encoding_module  modules/mod_encoding.so
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so

<IfModule mod_encoding.c>
  EncodingEngine    on
  NormalizeUsername on
  SetServerEncoding     UTF-8
  DefaultClientEncoding JA-AUTO-SJIS-MS SJIS

  AddClientEncoding "cadaver/" EUC-JP
</IfModule>

<Location />
  deny from all
</Location>

Alias /dav "/home/username/"
<Location /dav>
   allow from all
   DAV on
   <Limit GET PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
     AuthType Basic
     AuthName "WebDAV"
     AuthUserFile /home/username/.htpasswd-webdav
     Require valid-user
   </Limit>
</Location>
DAVLockDB  /home/username/httpd/var/DAVLock
ssl.conf

修正が必要なのは

  • Listen
  • <VirtualHost _default_:443>
  • ServerName

あたり。

使ってみる

これで準備は終わったので起動する。同梱の起動スクリプトは一般ユーザーからでは使えないようなので apachectlから。

$ ~/httpd/bin/apachectl -D SSL -k start

WindowsXPだったら[マイネットワーク]->[ネットワークプレースの追加]からWeb Folderを追加できる。 が、それでは使い勝手が悪いので「net use」を使ってドライブとして割り当てよう、と。

> net use z: https://host:nn/dav
システム エラー 67 が発生しました。

ネットワーク名が見つかりません。

……えー。どうやらhttp://host/という形でないとだめらしい。http://host:port/ですらだめ。 Web Folderでは問題なく使えるのに。ドライブレターもらえないとまるで使えないのでがっくり。

))) kksytle

もう一つバグ修正。<kkstyle-1.2.tar.gz> 最初キャッシュがあるのを忘れていて、ファイルを入れ替えても直らないのであせった。

*1 このあたりはperchildに期待だなぁ


2004-08-10 (Tue)

))) Back To The Future

見たことあるようなないような、そんな感じの映画。 以前機会*1があったときに見逃したのだけど、 衛星放送でやっていたのでのんびり鑑賞。で、どうやら見ていないという結論に至りました。 (たぶんPart3は見てる。)

今日から三夜連続ですべてやってくれるようなので楽しみです。

*1 研究室で夜通し上映


2004-08-11 (Wed)

))) WebDAV続き

欲しかった情報があらかたDON's Diaryに まとまっていたのでメモ。


2004-08-12 (Thu)

))) 「継続」のお話

今まで何度か挑んでみるもその度に跳ね返されてきた「継続」。勉強しても実際に 使える場面っていうのは非常に限られると思うけど、こういった概念というものは 知っているのとそうでないのとでは全然違うんじゃないかなーと思っているので 発作的にやりたくなる。

と、w.l.o.g.の2004/08/10で 解説されているのを見つけたので再度チャレンジ。


2004-08-14 (Sat)

))) オリンピック開幕

柔道は谷選手2連覇、野村選手3連覇。「すごー」としか言いようがない。 画面から緊迫感がひしひしと伝わってきて、なんだかこっちまで緊張してたし。

)))

ここのところやたらと眠気が襲ってくる。1日13時間とか平気で寝てますよ。


2004-08-15 (Sun)

))) SonicStage 2.0雑感

ネットワークウォークマンやらCLIEやらで縁のあるSony製ソフトウェア。 もともと使っていた1.1では操作性の悪さや動作の重さなど少しも評価できるものがなかったが、 バージョンあげれば改善されるかなーと2.0にアップデートしてみた。が……はっきりいってさらに 使いづらくなってる。

特に気になったのは、

  • デザインのみに注力した画面レイアウト。見た目は非常にスマートだけど、実際に使い始めると欲しい情報を表示するスペースがなさすぎて萎える。
  • フィルタリング機能の貧弱さ。単一キーワード検索しかサポートしていない。and、or検索やランダムセレクト、プレイ回数による検索など夢のまた夢。

Sony製プレイヤー使うとするとこれしか選択肢がないというのがつらい。 自分の使い方だとHi-MDはかなり理想のスタイルだけど今のままなら絶対買う気しないしな。


2004-08-16 (Mon)

))) 男子サッカー予選敗退

開始10分までに2失点は痛い。試合内容はそんなに悪くなかっただけに、 ここぞというときにきっちり決めるイタリアのうまさが逆に際だったような。

それより井原の解説はいいね。武田も好きだけど。


2004-08-20 (Fri)

))) 柔道終了

最後は二人そろって金とまさに有終の美。昨日の井上康生は残念だったな。

ただあれだね、何も知らない人間が見ている分には柔道は軽い方が面白い。


2004-08-26 (Thu)

))) Subversion1.1.0-rc2

fsfsどんなかなーと 思って試してみた。サーバ側のconfigureオプションはこんな感じ。

$ "./configure" \
  "--prefix=/usr/local/subversion" \
  "--with-apr=/usr/local/httpd" \
  "--with-apr-util=/usr/local/httpd" \
  "--with-apxs=/usr/local/httpd/bin/apxs" \
  "--with-ssl"

fsfsは1リビジョンごとに(直前のリビジョンとの差分が書かれている)1つのファイルを作っているっぽい。 ということは、CVSとは逆にHEADを取り出すときが一番処理が必要になるのかな?ちなみに、作業コピー上で ディレクトリ作ったときにリポジトリ側にもディレクトリが作られるなんて事はなく、純粋に1リビジョン1ファイル。 とはいえ、loadとdumpでシステムを好きなときに変更できるようので *1 純粋に選択肢が増えたというだけでも無条件に評価できるんではないかと。

ただ、いざというときに何とかデータ救出できそうな(気がする)感はあまりない。ファイルベースということで 少し期待していたけれどこれはしょうがないんだろうな……。

Windows(Cygwin)上ではクライアントに徹する。Cygwin固有の問題もあったりして最終的なものは以下のようになった。 httpd-2.0.50/srclib/{apr,apr-util}持ってきた後、

$ "./configure" \
  "--prefix=/usr/local/subversion" \
  "--without-berkeley-db" \
  "--enable-all-static" \
  "--with-ssl"

手元の環境ではパッケージがいくつか足りなかったので必要なものを入れる。試行錯誤しながらやったので 最低限どれが必要かはまだ不明。

  • Detabase
    • libdb4.2-devel
  • Libs
    • (apr)
    • (apr-util)
    • libiconv
    • openssl-devel

*1 svnadmin dump ~/repos-fsfs|svnadmin load ~/repos-db


2004-08-30 (Mon)

))) 閉幕

なんか柔道とサッカーを見ただけで終わってしまったような気がする。


2004-08-31 (Tue)

))) ハリポタ

いよいよ明日発売ですね。大学行ったついでに生協で買おうかなと思っていたけど、 さっき発作が起きて急遽早朝販売で手に入れることに決定。

それから調べはじめて、自宅近くの売っている店を特定するまで数分。ネットは偉大だ。


2004|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|12|
2006|01|03|05|06|08|09|10|12|
2007|01|02|03|05|07|12|
2008|10|
2009|01|05|12|
2010|04|05|11|
2011|01|09|12|
2012|02|03|05|09|12|
2013|02|03|
2014|05|09|
2015|12|
2017|09|
トップ 最新 追記 RSS feed