A Django site.
11月 16, 2008
» カナダ人とアメリカ人から聞いた話

日本の礼儀正しさは異常

「日本からカナダに帰国するとさ、日本のサービスがいかにすばらしいかよくわかるよ」
「飛行機から降りて受ける洗礼がいきなり、『メキシコ人はあっち!カナダ人はこっち行け!パスポートは開いて準備しておけ!』だぜ」
「まだ日本を離れて数時間なのにこれはツラい」
「そそ、こんだけ金払ってるんだからさ、もうちょっと丁寧なサービスしてほしいと思うことは多いねー」
「慣れるのに数日かかるよな」

アメリカの異常

「金融危機で大変なことになってるのは知ってるでしょ?」
「いまや誰も家を買わなくなって、街全体がゴーストタウンになってるわけ」
「んで、不動産屋の広告がイカしてるよ」
「『今この家をお買上げいただくともれなく別の区画の家をプレゼントします』だってwww」
「テレビでやってたんだけどさ、空き家になった家のクリーニングをしている業者の話をしてたのね」
「こういうご時世だから、家を取り上げられてしまうひとも多いのだけど、それにしても怖いことが」
「家を取り上げられるのはよくあるかもしれないけど、住んでた人たちの行動が俺には理解できないわけ」
「取り上げられるその日にね、そのまま彼らは出ていくのよ」
「家具も家電製品も家族のアルバムもぜーんぶそのままにして」
「その業者は毎日そんな光景を目にしているんだそうだ」
「さらにわからないのは、アメリカにはね、金利だけを返すローンがあるの」
「どうなるかって?そう、いつまでたっても借金は減らないよね」
「じゃ、金利の一部だけを返せばいいローンがあったらどうなると思う?」
「そう、借金は増える一方さ」
「アメリカ人の自分にもまったく理解不能」
「ロジックなんてまるでなし、アタマオカシイ」
「でもね、アメリカ人にもいいところがあるのさ」
「それは、危機的な問題に対処するのが上手ということ」
「ただし、危機的な問題を作るのも上手だけどな!ガハハ」

» Links Roundup

11月 14, 2008
» Links Roundup

11月 9, 2008
» Links Roundup

8月 18, 2008
» 親は大事に

って、ここ数年田舎に帰っていない自分がいうのもアレなんですけどね。

昔、付き合ってたひとに「なんで親と会話しないの」とか色々言われて「うっせーな」とか思っていたわけです。中学生のころくらいからぜんぜん口を聞かないとか、感謝の言葉をかけたことがないとか。家族で旅行にいけることとか、一緒に朝ご飯を食べることの大事さとか、なーんもわかっちゃいなかったですよ、その頃は。一応長男なんで、親の面倒は見なきゃいけないのかなー、とか漠然と考えてはいましたけど、自分の人生で手一杯で、まともに考えたことはあまりなかった。日本から飛び出して長い旅に出たときも、ろくに説明すらしなかったしな。

でもさ、唯一の家族の面倒を見るのはやっぱり自分しかいない、そう思うようになりました。遠く離れて暮らしているからできることは限られているんだけど、それでもできる限りのことはしないと。神戸で人の生き死にに触れたことがひとつのきっかけにはなっているかもしれないけど、やっぱりそれなりの年齢になって親のありがた味がわかるようになった。以前の自分はなんもわかっちゃいなかった。

一見つまんないことに見えても、できることはなんでもやろうよ。会えなくても悩みを電話で打ち明けてみるとか、一緒にご飯を食べるとか、「腹減ったからなんか作ってー」とか言ってみて「おいしい」とひとこと言うとか、どこでもいいから家族で旅行するとかね。金で解決できることよか、そういうなんでもないことが大事だったりするんだから。できることはできるうちになんでもやろうよ。人間いつ死ぬかなんてわからないわけで(子が親よりも早く死ぬことだってある)、最期に「あー、とりあえずできることはやったかな」と思えるようにしようよ。

家族なんだから。

8月 7, 2008
» 納豆ねぎ焼

簡単♪納豆ねぎ焼」を作ってみた。うまい。

卵は2個にした。ネギ1/2本を突っ込んだけど、もっと入れてよかった。ひっくり返すのはかなり度胸がいる。つなぎになんかいれたほうがいいかもしれない。

7月 7, 2008
» どーでもいいこと

クーラーをやめることにした。45Wと65WのCPUで迷うのがあほらしいくらい電気食う。サーバ置き場の部屋だけは、設定温度30度でクーラーいれるけど。扇風機最高。

網戸を有効に活用するために、蚊取り線香を使うようになった。網戸しててもやつらは侵入してくるから。なぜだ。なんとなく、あの匂いは「夏」って気分にさせてくれる。お香より気に入ってる自分は変でしょうか。

「エコ」とかぬかしながら、東京で車で通勤してるやつらは爆発すればいいと思う。テレビの主電源こまめに切る前に車を捨てるといいよ。

肉を食わなくなった。野菜うまい。料理がまた楽しくなってきた。緑黄色野菜マンセー。ベジーじゃないけど。

5月 31, 2008
» Links Roundup

5月 29, 2008
» mod_security 2.5をインストール

テスト環境をFreeBSD 7.0-STABLEにあげたついでに、先延ばしになってたmod_securityで遊ぶ。

2.5.xはminorアップグレードなんだけど、変更の多さはメジャー級。個人的には組み込みluaをサポートするSecRuleScript、クライアントの地理位置を条件にできるSecGeoLookupDB、output filterを使ったコンテンツのインジェクションが可能になるSecContentInjectionがおもしろそう。PDF XSS対策もできるらしい(Universal PDF XSS Revisited)。

まずはluaをサポートさせるのに、luaのライブラリをshared libでインストールしておかないといけない。defaultではsoを作ってくれないので、lang/luaにパッチ。

===> Generating patch
===> Viewing diff with more
diff -ruN --exclude=CVS /usr/ports/lang/lua/Makefile /usr/home/cherry/svk/ports/lang/lua/Makefile
--- /usr/ports/lang/lua/Makefile	2008-03-20 01:20:31.000000000 +0900
+++ /usr/home/cherry/svk/ports/lang/lua/Makefile	2008-05-31 20:27:59.000000000 +0900
@@ -7,7 +7,7 @@

 PORTNAME=	lua
 PORTVERSION=	5.1.3
-PORTREVISION=	1
+PORTREVISION=	2
 CATEGORIES=	lang
 MASTER_SITES=	http://www.lua.org/ftp/ \
 		ftp://ftp.tecgraf.puc-rio.br/pub/lua/ \
@@ -38,6 +38,13 @@
 		printf.lua readonly.lua sieve.lua sort.lua table.lua \
 		trace-calls.lua trace-globals.lua xd.lua

+.if defined(WITH_SHAREDLIB)
+LUA_LIB_VERSION=	0
+LUA_LIB_FILE=	liblua
+PLIST_SUB+=	LUA_LIB_VERSION=${LUA_LIB_VERSION}
+USE_LDCONFIG=	${LUA_LIBDIR}
+.endif
+
 post-patch:
 	@${REINPLACE_CMD} -Ee \
 		'/^INSTALL_.*=/s/INSTALL_TOP/prefix/ ; \
@@ -74,6 +81,13 @@
 # Libraries.
 	${MKDIR} ${LUA_LIBDIR}
 	${INSTALL_DATA} ${WRKSRC}/src/liblua.a ${LUA_LIBDIR}
+.if defined(WITH_SHAREDLIB)
+	${INSTALL_PROGRAM} ${WRKSRC}/src/liblua.so ${LUA_LIBDIR}/${LUA_LIB_FILE}.so.${LUA_LIB_VERSION}
+	${ECHO} "${LUA_LIBDIR}/${LUA_LIB_FILE}.so" | ${SED} 's,^${PREFIX}/,,' >> ${TMPPLIST}
+	${LN} -sf ${LUA_LIBDIR}/${LUA_LIB_FILE}.so.${LUA_LIB_VERSION} ${LUA_LIBDIR}/${LUA_LIB_FILE}.so
+	${ECHO} "${LUA_LIBDIR}/${LUA_LIB_FILE}.so.${LUA_LIB_VERSION}" | ${SED} 's,^${PREFIX}/,,' >> ${TMPPLIST}
+	${ECHO} "@dirrm ${LUA_LIBDIR}" | ${SED} 's,^${PREFIX}/,,' >> ${TMPPLIST}
+.endif
 # Manual pages.
 .for f in ${LUA_MAN}
 	${INSTALL_MAN} ${WRKSRC}/doc/${f} \
@@ -95,7 +109,7 @@
 .endif
 # lua.pc
 	${MKDIR} ${LOCALBASE}/libdata/pkgconfig
-	${INSTALL_DATA} ${WRKSRC}/etc/lua.pc ${LOCALBASE}/libdata/pkgconfig/lua-${LUA_VER}.pc
+	${INSTALL_DATA} ${WRKSRC}/etc/lua.pc ${PREFIX}/libdata/pkgconfig/lua-${LUA_VER}.pc
 # Module directories.
 	${MKDIR} ${LUA_MODLIBDIR}
 	${MKDIR} ${LUA_MODSHAREDIR}
diff -ruN --exclude=CVS /usr/ports/lang/lua/files/patch-src-Makefile /usr/home/cherry/svk/ports/lang/lua/files/patch-src-Makefile
--- /usr/ports/lang/lua/files/patch-src-Makefile	1970-01-01 09:00:00.000000000 +0900
+++ /usr/home/cherry/svk/ports/lang/lua/files/patch-src-Makefile	2008-05-29 20:16:13.000000000 +0900
@@ -0,0 +1,27 @@
+--- src/Makefile.orig	2008-05-29 19:24:46.000000000 +0900
++++ src/Makefile	2008-05-29 19:27:30.000000000 +0900
+@@ -31,12 +31,13 @@
+
+ LUA_T=	lua
+ LUA_O=	lua.o
++LUA_SO=	liblua.so
+
+ LUAC_T=	luac
+ LUAC_O=	luac.o print.o
+
+ ALL_O= $(CORE_O) $(LIB_O) $(LUA_O) $(LUAC_O)
+-ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T)
++ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) $(LUA_SO)
+ ALL_A= $(LUA_A)
+
+ default: $(PLAT)
+@@ -47,6 +48,9 @@
+
+ a:	$(ALL_A)
+
++$(LUA_SO):	$(CORE_O) $(LIB_O)
++	$(CC) -o $@ $(MYLDFLAGS) -shared $?
++
+ $(LUA_A): $(CORE_O) $(LIB_O)
+ 	$(AR) $@ $?
+ 	$(RANLIB) $@
===> Done

liblua.n.soにしなくていいのかという話もあるけれど、テスト環境なので。

UPDATE: WITH_SHAREDLIBでbuildするようにした。(てきとーだけど)バージョンもつけるようにした。

次に、www/mod_security2にパッチ。configureベースになったのはいいのだけど、libluaを見つけてくれない。test関連のファイルがコンパイルできないのでカット。

diff -ruN --exclude=CVS /usr/ports/www/mod_security2/Makefile /usr/home/cherry/svk/ports/www/mod_security2/Makefile
--- /usr/ports/www/mod_security2/Makefile	2008-04-11 23:33:37.000000000 +0900
+++ /usr/home/cherry/svk/ports/www/mod_security2/Makefile	2008-05-29 19:39:29.000000000 +0900
@@ -6,8 +6,7 @@
 #

 PORTNAME=	mod_security2
-PORTVERSION=	2.1.7
-PORTREVISION=	1
+PORTVERSION=	2.5.4
 CATEGORIES=	www security
 MASTER_SITES=	http://www.modsecurity.org/download/
 DISTNAME=	${PORTNAME:S/_//:S/2//}-apache_${PORTVERSION}
@@ -31,6 +30,8 @@
 DOCSDIR=	${PREFIX}/share/doc/${MODULENAME}
 SUB_FILES+=	mod_security2.conf
 SUB_LIST+=	APACHEETCDIR="${APACHEETCDIR}"
+HAS_CONFIGURE=	yes
+OPTIONS=	LUA "Embedded Lua language support (EXPERIMENTAL)" off

 .if !defined(SKIP_RULES)
 SUB_FILES+=	pkg-message.rules
@@ -66,6 +67,11 @@
 LIB_DEPENDS+=	pcre.0:${PORTSDIR}/devel/pcre
 .endif

+.if defined(WITH_LUA)
+CONFIGURE_ARGS+=	--with-lua=${LUA_LIBDIR}
+USE_LUA=	5.1+
+.endif
+
 post-patch:
 	@${REINPLACE_CMD} -e '\
 		s|SecRuleEngine On|SecRuleEngine DetectionOnly|; \
@@ -73,6 +79,11 @@
 		s|SecDebugLog.*logs/modsec_debug.log|SecDebugLog /var/log/httpd-modsec2_debug.log|; \
 		s|SecServerSignature "Apache/2.2.0 (Fedora)"|SecServerSignature "Apache/${APACHE_VERSION:C/[0-9]/\0./g}x (${OPSYS})"|; \
 		' ${WRKSRCTOP}/rules/modsecurity_crs_10_config.conf
+	# XXX prevent it from compiling
+	${RM} ${WRKSRC}/msc_test.*
+.if defined(WITH_LUA)
+	${REINPLACE_CMD} -e 's|%%LUA_INCDIR%%|${LUA_INCDIR}|' ${WRKSRC}/configure
+.endif

 post-install:
 .if !defined(NOPORTDOCS)
diff -ruN --exclude=CVS /usr/ports/www/mod_security2/distinfo /usr/home/cherry/svk/ports/www/mod_security2/distinfo
--- /usr/ports/www/mod_security2/distinfo	2008-04-08 12:23:57.000000000 +0900
+++ /usr/home/cherry/svk/ports/www/mod_security2/distinfo	2008-05-29 18:23:18.000000000 +0900
@@ -1,3 +1,3 @@
-MD5 (modsecurity-apache_2.1.7.tar.gz) = 19c34dd5611e0c516c0717de793f4640
-SHA256 (modsecurity-apache_2.1.7.tar.gz) = 3960aaa4a4f6087f990b0d25c3756c3a505f3b19a909e4724980dc5bbc583513
-SIZE (modsecurity-apache_2.1.7.tar.gz) = 679496
+MD5 (modsecurity-apache_2.5.4.tar.gz) = 9fe4d4cb481e00c2a49a65e59261f622
+SHA256 (modsecurity-apache_2.5.4.tar.gz) = be515456add43ecac6c441da1fcdb1ab94908ae6ff0c837854bcf141343932ae
+SIZE (modsecurity-apache_2.5.4.tar.gz) = 1071980
diff -ruN --exclude=CVS /usr/ports/www/mod_security2/files/patch-apache2-Makefile.in /usr/home/cherry/svk/ports/www/mod_security2/files/patch-apache2-Makefile.in
--- /usr/ports/www/mod_security2/files/patch-apache2-Makefile.in	1970-01-01 09:00:00.000000000 +0900
+++ /usr/home/cherry/svk/ports/www/mod_security2/files/patch-apache2-Makefile.in	2008-05-29 17:59:44.000000000 +0900
@@ -0,0 +1,20 @@
+--- Makefile.in.orig	2008-05-29 17:59:26.000000000 +0900
++++ Makefile.in	2008-05-29 17:59:41.000000000 +0900
+@@ -112,17 +112,6 @@
+ 	&& echo "See: mlogc-src/INSTALL" \
+ 	&& echo
+
+-### Experimental Test Framework (*NIX only right now)
+-msc_test.lo: msc_test.c
+-	$(LIBTOOL) --mode=compile $(CC) $(APXS_INCLUDES) $(APXS_CFLAGS) $(EXTRA_CFLAGS) $(MODSEC_EXTRA_CFLAGS) $(CPPFLAGS) $(APR_CFLAGS) $(APU_CFLAGS) -o msc_test.lo -c msc_test.c
+-
+-msc_test: $(TESTOBJS) $(MOD_SECURITY2_H}) msc_test.lo
+-	@objs=""; \
+-	for f in $(MSC_TEST); do \
+-		objs="$$objs $$f.lo"; \
+-	done; \
+-	$(LIBTOOL) --mode=link $(CC) $$objs -o msc_test msc_test.lo $(LDFLAGS) $(LIBS) $(APR_LINK_LD) $(APU_LINK_LD)
+-
+ test: t/run-tests.pl msc_test
+ 	@rm -f msc-test-debug.log; \
+ 	$(PERL) t/run-tests.pl
diff -ruN --exclude=CVS /usr/ports/www/mod_security2/files/patch-configure /usr/home/cherry/svk/ports/www/mod_security2/files/patch-configure
--- /usr/ports/www/mod_security2/files/patch-configure	1970-01-01 09:00:00.000000000 +0900
+++ /usr/home/cherry/svk/ports/www/mod_security2/files/patch-configure	2008-05-29 18:19:29.000000000 +0900
@@ -0,0 +1,11 @@
+--- configure.orig	2008-05-29 18:16:45.000000000 +0900
++++ configure	2008-05-29 18:18:56.000000000 +0900
+@@ -5620,7 +5620,7 @@
+                 lua_lib_name=""
+             fi
+         done
+-        for x in ${test_paths}; do
++        for x in ${test_paths} %%LUA_INCDIR%% ; do
+             if test -e "${x}/lua.h"; then
+                 with_lua_inc="${x}"
+                 break
diff -ruN --exclude=CVS /usr/ports/www/mod_security2/files/pkg-message.rules.in /usr/home/cherry/svk/ports/www/mod_security2/files/pkg-message.rules.in
--- /usr/ports/www/mod_security2/files/pkg-message.rules.in	2007-03-09 18:46:21.000000000 +0900
+++ /usr/home/cherry/svk/ports/www/mod_security2/files/pkg-message.rules.in	2008-05-29 19:02:18.000000000 +0900
@@ -8,3 +8,8 @@
 Please read http://www.modsecurity.org/projects/rules/index.html

 Logging is done to /var/log/httpd-modsec-*.log
+
+You need to add:
+    LoadFile %%PREFIX%%/lib/libxml2.so
+    LoadFile %%PREFIX%%/lua51/liblua.a
+before "LoadModule security2_module modules/mod_security2.so"
===> Done

httpd.confに追加。

LoadFile /usr/local/lib/libxml2.so
LoadFile /usr/local/lib/lua51/liblua.so
LoadModule security2_module   libexec/apache22/mod_security2.so

これで動く。動作確認ができるまではsend-prはおあずけ。

3月 25, 2008
» Idea: Puppet Module Dojo

近いうちにPuppet Module Dojoなるものをやろうかと考えてます。4月の中旬から下旬あたり。内容は、各自が持ち寄ったmoduleをpeer reviewしたり、すでにあるclassをmoduleに変更してみんなで幸せになったり、moduleがサポートするOSやdistributionを増やしたりする。Dojoといっても講義形式ではなくて、どっちかというと相互扶助のpico-hackathon。

できれば軽く飲食ができるような場所で、コンセントが使えて、会議室っぽい部屋。みなとみらいのBLENZ GENTO YOKOHAMA店には貸切にできるそんな部屋があるんだけど。「こんな場所あるよ」とかあれば教えてください。各自のlaptopは必須、Puppetが動作するlocalもしくはremoteの環境も必要。インターネット環境はあれば可。なくても有線もしくは無線LANのAPを持ち込んでなんとかします。時間は2時間くらいで、10人くらい集まると仮定して予算はひとり1000円程度で10,000円かな。テキストとかはなし。参加資格は特にないけど、Puppetの基礎は押さえておいてほしい。使っているdistributionをある程度使いこなしていて、そのパッケージ管理システムについて理解しているのが望ましい。

参加してみたいひといますか?

11月 3, 2007
» 横浜に勉強するのにうってつけのお店はあまりない

以前、「勉強するのにうってつけのお店あれこれ」を読んで、横浜にもないものかと探した結果。結論だけいうとあまりない。ちなみに自分の条件は、落ち着けること、タバコが吸えること、それから客層が悪くないこと。

西口にあるStarbacksは常に混んでいるのだけど、Starbacks 横浜北幸店(mapion)だけはそこそこ空いている。1人掛けソファは奥に2組4つ。仕事帰りにまとめるレポートとかはここで。スタバなので喫煙者は外。雨が降るときつい。土日の日中は混むことが多い。オフィス街だからなのか閉店は22:00、日曜は21:00。

相鉄JOINUSの比較的最近できたWIRED CAFE(mapion)。ここのメリットはなんといってもFREESPOTが使えること。WEPすらないので、IPSec使うなりSSHでトンネル掘るなりする必要あり。昼はふつーのカフェ、夜はバーというスタイル。分煙。平日の日中ならすぐに座れるけど、土日は無理。若干ファミレス化しているので静けさを求める場合はおすすめしない。

東口というかほぼみなとみらいのBLENZ(mapion)。完全分煙。広くてソファたくさん。テラス席もあって快適。21:00以降まで仕事したら、109シネマズでレイトショーを観るのがおすすめ。WiFi環境があれば最強になるのに。

ランドマークタワー(mapion)Tullys。オフィス街なので平日日中が混んでいる。見つけられないせいか、土日でも観光客で混むことは少ない。完全分煙。喫煙ルームにもソファあり。

ということで、すべてチェーン店になってしまいました。基本的に観光地なんで、オサレな店は観光客に占領される。みなとみらいにはオフィスビルもあるけれど、毎度昼メシには苦労させられる。というわけで、横浜はあまり好きではない。WiFiが利用できる場所もホテルとかばっかりだしな。使えないよ横浜使えないよ

7月 13, 2007
» HDDクラッシュ

backendのDBが死にました。各方面にご迷惑をお掛けしております。復旧のメドは立ちました。

6月 17, 2007
» 新しい名刺ができた

新しい名刺よろしくおねがいします。