書いてる人: 高橋カヲル | [mixi] | [PGP] | [TETRiS DS] | [portscout] | [RSS]
rave の MTA を postfix に変える。実験のため。
例によって CD の準備。今回は songs も含めて焼いてみる。
song32.ogg、 今までと路線が違う。
いかんな、LC2002 の後、サシで飲んだときの言葉がまだ痛えや。割り切ることができねぇ。
でました。
atapicamが FreeBSD 4-STABLE にマージされていることに気づく。さっそく使ってみるとしよう。 burncd で直に焼くとどうも不安定なんでな。トラブルあったら sudo atacontrol reinit 1 しないといかん。
不自然な記述をあっさりスルーしちまった。 make -d cv で見ても反応ないわけだよ。
.if defined(${FOO})
SUBDIR+=foo
.endif
普通はこう書くんだ。
.if defined(FOO) SUBDIR+=foo .endif
後者は普通に FOO という変数の定義を見るのだが、前者は ${FOO} を評価した結果を変数名として定義を確認しちまう。
今日だけで3回もエンディング見た。ダメ人間すぎる。 TANKER-PLANT の NOKILL で発砲数削減クリア。 NOKILL 縛りがあると、PSG1 1発の代わりに PSG1-T 4発が必要になる。 NOKILL 最低発砲数の 21発でクリア。チャフも発砲扱いになることに注意。
慌てなければ TANKER を 4発でクリアできることに気づく。オープニングで頭に1発当ててから待っていれば、気絶ゲージの半分までジワジワ減る。
基本的に、素手で倒せるやつは素手で倒す。援護はフル活用。チャフを使えないのでサイファーの動きを見切って移動。
溜池で作業。結局、一人で作業なんだがな。どんな高等技術も安定した運用につながらなければ、それはただの曲芸に終わる。あらかじめ buildkernel, buildworld してあったものを目の前で installkernel, installworld. apache, sudo を上げ、rsync を追加で入れる。仕上げに HDD をいじめてテスト。ノートラブルで終わる。ふーん、シスプリって2が出るのか…。よーしらんが。
戻って ARAID-99 1000 とのバトルの続き。もろもろの作業したり環境整備したり。
第15回きました。
xfig, dia, pixmap を入れる。dia の DEPENDS で諦めがついたので、 gnome-iconedit も入れる。 gnome-iconedit も pixmap も layer がないみたい。もっと楽にドット打ちてえな。
ペナルティの期限を勘違いしていた。明日出直すとするか。
Wanderlust ML に来たと思って advice 書いて test もして、
(defadvice wl-summary-burst-subr (around umask077 activate)
(let ((orig-mode (default-file-modes)))
(unwind-protect
(progn
(set-default-file-modes (* 7 64))
ad-do-it)
(set-default-file-modes orig-mode))))
さあ投げようと A (wl-summary-reply-with-citation) したら To: に mew-dist@ が出てきて萎え。確認しなかったのがいけないんだけどな。捨てるのも悔しいので投げた。
初電で大学に行き、終電で会社から帰った。めずらしいこともあるもんだ。
distinfo が古いまま。まあミスはしょうがないのだが、 1.6.1 がとっくに出てるのに、いまさら 1.6.0 に上げるのが信じらんね。昔からこの maintainer はそうなんだがな。(過去の経験から考えて)やる気があるとは思えない maintainer だから、嫌がらせのような send-prをする。 over to maintainer になるのはわかってる。
寿司。ごちそうさま。
PlayStation でだけ使えるメモリカード、その中のデータを PlayStation2 用メモリカードにバックアップしておく。ほとんどがメソ・インテグラルの VR REPLAY。いくつかレコードのもあるし、はやいところキャプチャしておきたい。戦績は公開鍵のページの後ろの方にある。
HyperEducation日記を読んで気になったので確認。 wl-highlight-x-face-func だけだ。 bitmap-mule 8.5 のリリース前に気づきたかったな。
;; [Wanderlust 2.7.0 and later] ;; Add the following code in your ~/.wl file: ;; ;; (if window-system ;; (progn ;; (autoload 'x-face-decode-message-header "x-face-mule") ;; (setq wl-highlight-x-face-function ;; 'x-face-decode-message-header)))
本で対処法を昔読んだことがあったのだが、忘れてしまった。 man fork して調べてみる。ふむ、KERN_MAXPROC, KERN_MAXPROCPERUID を低く押さえてやれば fork() は失敗するのか。
defconst だからこんなことしなくちゃならねえ。もっとも、defconst を使うのは当然なんだが。
(require 'wl-demo) (setq wl-demo-icon-name (concat "wl-" (wl-version-status) "-xmas-logo"))
portupgrade しておく。 major version あがってるから、XEmacs の build しなおし。こんな sh script で configure の手抜きしてるわけだが。
echo -n ./configure --extra-verbose --cflags=-O2 --dynamic=yes \ --with-mule --with-site-lisp --with-x11 --with-tty \ --with-xface --with-xpm \ --with-gtk=no --with-gnome=no --with-xim=no --with-sound=none \ --with-ldap=no --with-postgresql=no \ --x-includes=/usr/X11R6/include --x-libraries=/usr/X11R6/lib echo -n ' ' case $1 in rave) echo --with-canna=no --with-wnn6=yes --with-wnn=no \ --with-png --with-gif --with-jpeg \ --with-pop \ --site-includes=/usr/local/include:/usr/local/include/wnn6 \ --site-libraries=/usr/local/lib \ --site-prefixes=/usr/local ;; snake) echo --with-wnn --with-canna=no \ --with-png --with-gif --with-jpeg \ --site-prefixes=/usr/local ;; ska) echo --with-wnn --with-canna=no \ --with-png=no --with-gif=no --with-jpeg=no --with-tiff=no \ --with-ncurses=no \ --with-modules=no --with-database=no \ --site-prefixes=/usr/local:/usr:/usr/X11R6 ;; *) ;; esac
間隔を30秒に変えた(daemon mode)。
set daemon 30
poll pop.example.org
protocol pop3
user kaoru
password /TRiO/4i
nokeep
fetchall
expunge 0
mda "/usr/local/cyrus/bin/deliver -D -e -a kaoru kaoru"
password は * で潰すのも芸がないので、適当なの generate して差しかえ。
alias pwgen='head -c 6 /dev/urandom | mmencode'
2003年1月24日(金)だなんて、どう考えても見に行けません。
このホスト (triaez.kaisei.org) を serial console でいじれるようにする。 ddb に落ちても remote から対処できるようにな。
set tty com0
console "/usr/libexec/getty Pc" vt220 on secure
こんなことしていないで kernel hack して aha が不安定なの直せってか。
はあ、そうですか。 LAN ケーブル引っこ抜かれたら何もできないじゃないですか。大学方面にも serial console 導入しとくんだったよ。
/etc/make.conf で NOUUCP=true にしておくと cu がインストールされないことに気づく。当然か。
FreeBSD handbook を読み直す。
(defun edit-today-diary ()
(interactive)
(find-file
(expand-file-name
(format-time-string "%Y%m%d.xml") diary-data-xml-directory))
(if (= 0 (buffer-size))
(gen-diary-skel)
(goto-char (point-max))))
(defun gen-diary-skel ()
(interactive)
;;; (erase-buffer)
(insert
(format-time-string
"<?xml version='1.0' encoding='utf-8'?>
<diary><date><year>%Y</year><month>%m</month><day>%d</day></date>
<Topics>
\t<Topic><Title> </Title>
\t</Topic>
</Topics>
</diary>")))
オレならまずは出来合いのものを探してきて使うけどね。技術的にマッチョな人は尊い。
ほとんどのところは 9.2.1 だが、8.3.3 のホストがいくつかある。面倒だ。
どんな高等テクニックも安定した運用につながらなければ、それはただの曲芸に終わる。 /etc 以下を tarball で作業マシンへ運び、現在のサービスに影響しないものだけを merge し、 tarball を生成してターゲットに運ぶ。勝手にインストールされるファイルどもの処理に気をつける必要があるな。
メモし忘れていた。DNS まわりの check してくれる。
RFC2375 (IPv6 Multicast Address Assignments) には DNS 関係が載っていない。調べてみて draft-ietf-ipngwg-dns-discovery-03.txt (IPv6 Stateless DNS Discovery)があることに気づく。 fec0:0:0:ffff::1, fec0:0:0:ffff::2, fec0:0:0:ffff::3 を使うのか。
ドライブがてら様子を見に行ったら、 UPS に繋げたつもりが繋がっていなかったことが判明。
上げるなら一気にやっちまえということか。激しくハマり、いったん帰ってからまた行くハメに。
一発で pf.conf の設定を片付けられた。 BIND9, ntp, postfix を入れておく。
INSTALL, INSTALL.ja の更新を済ます。インストールしてから cd wl-2_10 && gmake EMACS=xemacs check で確認。動作させて確認まではやってられない。
ports で IPv6 patch を当ててインストールしなおす。
mynetworks = 192.168.0.0/24, 127.0.0.0/8, [::1]/128
(setq wl-smtp-posting-server "::1") で確認。 IPv6 で投げたいがテストできる相手がいない。
Solaris も libc.so.1 が消えるとそれなりに痛い。 /usr/sbin/static/ と /sbin/ が使えるのはいいのだが、肝心の libc.so.1 がないのでお手上げ。
office で上映会やってた。
stream cipher の理解が甘かった。
blocklen - data block length in bytes (value 1 must be used for stream cipher algorithms).
ってあるから stream は 1byte 以下の単位なんじゃろうきっと。手元の本で
の違いをきちんと理解するか。
$USER でなく $SUDO_USER を使えば sudo を叩いたユーザを取れることに気づく。ので、某所の Makefile を書き換える。
update: sudo cvs -d :ext:$$SUDO_USER@cvs.example.org:/export/cvsroot update -dP
こういうことをしたかっただけ。諸事情で :local も :pserver も使えない。
Randal の YAPC での発表資料。
An Introduction to Linguistics for Perl Developers or "Wouldn't know a tagmeme if it bit me on the parse."
理解を深めるために実装してみた。
(eval-when-compile
(require 'cl))
(defun rc4-swap-byte (array index1 index2)
"Swap array[i] array[j] value."
(let ((swapbyte))
(setq swapbyte (aref array index1))
(aset array index1 (aref array index2))
(aset array index2 swapbyte))
array)
(defun rc4-init-key (keydata)
(let ((state (make-vector 256 0)))
(dotimes (i 256)
(aset state i i))
(let ((index1 0) (index2 0))
(dotimes (i 256)
(setq index2
(mod (+ (aref keydata index1) (aref state i) index2) 256))
(rc4-swap-byte state i index2)
(setq index1 (mod (1+ index1) (length keydata)))))
(list 0 0 state)))
(defun rc4 (input key)
(let ((x (nth 0 key)) (y (nth 1 key)) (state (nth 2 key))
(output (make-vector (length input) 0)))
(dotimes (i (length input))
(setq x (mod (1+ x) 256))
(setq y (mod (+ (aref state x) y) 256))
(rc4-swap-byte state x y)
(let (xorindex)
(setq xorindex (mod (+ (aref state x) (aref state y)) 256))
(aset output i
(logxor (aref input i) (aref state xorindex)))))
(setcar (cdr key) y)
(setcar key x)
output))
/usr/src/crypto/openssl/crypto/rc4/rc4test.c から testcase をパクってくる。
(equal
(let ((key))
(progn
(setq key (rc4-init-key [#x01 #x23 #x45 #x67 #x89 #xab #xcd #xef]))
(rc4-encrypt [#x01 #x23 #x45 #x67 #x89 #xab #xcd #xef] key)))
[#x75 #xb7 #x87 #x80 #x99 #xe0 #xc5 #x96])
testcase いじってみる。
;; testcase
(equal
(rc4 [#x01 #x23 #x45 #x67 #x89 #xab #xcd #xef]
(rc4-init-key [#x01 #x23 #x45 #x67 #x89 #xab #xcd #xef]))
[#x75 #xb7 #x87 #x80 #x99 #xe0 #xc5 #x96])
(let (keydata ptext ctext)
(setq ptext [#x01 #x23 #x45 #x67 #x89 #xab #xcd #xef #x00 #x02])
(setq keydata [#x01 #x23 #x45 #x67 #x89 #xab #xcd #xef #x03 #x03 #x33])
(setq ctext (rc4 ptext (rc4-init-key keydata)))
(equal ptext (rc4 ctext (rc4-init-key keydata))))
LAN で rsync したいときの気休めのために(ssh -c に使える) blowfish, arcfour (RC4)の速度を測る。
kaoru@rave% openssl speed blowfish rc4 des [snip] The 'numbers' are in 1000s of bytes per second processed. type 8 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes rc4 59222.48k 80774.14k 85093.61k 85942.41k 85480.53k blowfish cbc 18749.93k 21052.31k 21576.03k 21563.27k 21547.02k
100BASE-TX + PentiumIII 750MHz クラスでどれだけ効果があるかは疑問だな。 ssh で使うときには圧縮のことも考えないといかん。
lists.airs.net には v6 で投げられることを思いだした。ので投げてみた。
Received: from lists.airs.net (excalibur.northeye.org [::ffff:210.166.75.26]) by lilac.debian.gr.jp (Postfix) with ESMTP id 90B9E966A4; Tue, 19 Nov 2002 16:45:42 +0900 (JST) Received: from rave.kaoru.trans-nt.com (unknown [2002:dba5:d43e::1]) by excalibur.northeye.org (Postfix) with ESMTP id 3A26813EEB9 for <wl lists.airs.net>; Tue, 19 Nov 2002 16:45:42 +0900 (JST) Received: from rave.kaoru.trans-nt.com (localhost [::1]) by rave.kaoru.trans-nt.com (Postfix) with ESMTP id 638E822FF9 for <wl lists.airs.net>; Tue, 19 Nov 2002 16:44:19 +0900 (JST)
ダメダメ
_ 20, November
cvs update -A の代わりに cvs update -r HEAD は使えない。枝以外の sticky なやつらをむやみに使うべからず。
Security Release ですか。
Solaris 9 の CD を持っていったんだから復旧できるよな、そりゃ。
予想通り 0 bytes の libc.so.1.同一セグメントだろうが ifconfig の後に route設定してやらなきゃいけないってのにやられたがな。
SOA expires が 1000時間で長いと警告されることに気づく。
rc.conf の枠組みから逃げずに IPv6 も filtering するとなると ipf では面倒。いまの v4:ipf, v6:ipfw を捨てて、両方とも ipfw2 にしてみる。 ppp linkup 時の stf0 の変更と ipf との相性が悪そうというのも理由だが。 (今では linkup のたびに /sbin/ipf -Fav -f /etc/ipf.rules -E してる)
ipfilter_enable="NO" ipmon_enable="NO" firewall_enable="YES" firewall_type="/etc/ipfw.rules" ipv6_firewall_enable="YES" ipv6_firewall_type="/etc/ip6fw.rules"
なんてのを残しているあたりがダメダメだ。
ではないので念のため…。
届いた。早いよ。
ipv6 reset でいけるようだ。
_ 床屋
また texinfmt.el の秘孔をついてしまったらしい。とりあえず minimal な失敗例作ってみた。
\input texinfo @c -*-texinfo -*-
@c %**start of header
@setfilename example.info
@footnotestyle separate
@c %**end of header
@node Top, C++, (dir), (dir)
@top Top
@menu
* C++:: "C++" is invalid regexp.
@end menu
@node C++, , Top, Top
@chapter C++
@footnote{Signaling: (invalid-regexp "Invalid preceding regular expression")}
@bye
Standard Emacs だと invalid regexp については黙っている。 @footnote を複数つかえば node が重複してくれるので、それを使ってみよう。
\input texinfo @c -*-texinfo -*-
@c %**start of header
@setfilename example.info
@footnotestyle separate
@c %**end of header
@node Top, C++, (dir), (dir)
@top Top
@menu
* C++:: "C++" is invalid regexp.
@end menu
@node C++, , Top, Top
@chapter C++
@footnote{foo.}
@footnote{bar.}
@footnote{baz.}
@bye
インチキ英語で report してみる。 Use search-backward Instead of re-search-backward.
David Greenman <dg@FreeBSD.org> 氏による補足: カーネルアドレス空間は 2 の乗数である必要があると思いますが, それが確かなことかどうかははっきりしていません. 昔の起動コードには, 良く高位アドレスビットのトリックが使われていたため, 少なくとも 256MB の粒度であることが想定されていたと思います.
kernel を strip して痛い目を見たのが懐かしい。こういうことだったのか。
環境整備のつづき。いざというときに困らないために。しかし、こんな用途に RAID 使うのはもったいないな。
B賞ひきまくり。
XEmacs 方面にはサクっと commit されたようだ。
Early Times の SODA 割りをあおる。 sudoer (root) 作業が危うい程度に酔っぱらう。
Standard Emacs 方面にも commit されたようだ。一番の問題は ptexinfmt.el 用の broken-facility 書かねばならぬことだ。自分自身に match しない regexp でニヤリとする pattern はないか。
ルノアールで ska の working copy をいじってから、まだ commit していない。そろそろこのフォーマットもだるくなってきたが、まあしょうがない。
UPnP モノ。
This project is a deamon that emulates Microsoft's Internet ConnectionService (ICS). It implements the UPnP Internet Gateway Device specification(IGD) and allows UPnP aware clients, such as MSN Messenger to work properlyfrom behind a NAT firewall.
重い腰をあげて手元で cvsupd をあげる実験をしたのでまとめ。CVSup サーバの構築と
この二つを独立に考えること。 FreeBSD の distrib collection に引っ張られて一緒に考えてはいけない。
src tree だけ取るのと crontab を汚さないように質問に答えた気がする。理解したら手動で構築しなおすつもりだった。 cvsupin は作らなくてもよかったかもしれん。 client として走らせるのは自分のユーザ権限でもいいわけだから。
ぜんぶ /usr/local/cvsup/etc/ の話。
sup/ を FreeBSD 専用にして、 OpenBSD, NetBSD 用のものを sup.local/ にどけることにした。 cvsupd -c sup:sup.local として sup.local/ も探索させる必要がある。混じるのが嫌でなければ sup/ にまとめて OK だろう、きっと。
ここから repository の実体にリンクを飛ばす。
kaoru@rave% pwd /usr/local/etc/cvsup/prefixes kaoru@rave% ls -l total 0 lrwxr-xr-x 1 root wheel 4 Nov 25 07:16 FreeBSD-gnats.current@ -> SKIP lrwxr-xr-x 1 root wheel 4 Nov 25 07:16 FreeBSD-mail.current@ -> SKIP lrwxr-xr-x 1 root wheel 4 Nov 25 07:16 FreeBSD-www.current@ -> SKIP lrwxr-xr-x 1 root wheel 26 Nov 25 07:13 FreeBSD.cvs@ -> /usr/local/cvsroot/FreeBSD lrwxr-xr-x 1 root wheel 25 Nov 25 07:51 NetBSD.cvs@ -> /usr/local/cvsroot/NetBSD lrwxr-xr-x 1 root wheel 26 Nov 25 07:51 OpenBSD.cvs@ -> /usr/local/cvsroot/OpenBSD lrwxr-xr-x 1 root wheel 2 Nov 25 07:13 distrib.self@ -> ..
distrib.self は深く考えたら負け。自分で使っているのを配布してしているだけ。
要は上流から定期的に repository を引っ張ってくればいいだけのこと。はっきり言って、一時間に一回はやりすぎだ。気をつけるべきは FreeBSD の distrib collection だけだ。他は今まで通り。いっそ 「distrib collection は追い掛けない」と開き直るとすっきりするかもしれない。 FreeBSD のことだけ考えるなら update.sh を流用したっていいが、すでに今まで運用してたものがあるのでそれを使う。 distrib collection に関する記述を追加した。 base=/var なのは /var/sup を collDir にしたいから。
*default host=cvsup3.jp.freebsd.org *default base=/var *default prefix=/usr/local/cvsroot/FreeBSD *default release=cvs *default delete use-rel-suffix *default compress cvs-all release=cvs prefix=/usr/local/cvsroot/FreeBSD distrib release=self prefix=/usr/local/etc/cvsup/
*default host=cvsup.jp.netbsd.org *default base=/var *default prefix=/usr/local/cvsroot/NetBSD *default release=cvs *default delete use-rel-suffix *default compress netbsd
*default host=cvsup.jp.openbsd.org *default base=/var *default prefix=/usr/local/cvsroot/OpenBSD *default release=cvs *default delete use-rel-suffix *default compress OpenBSD-all
update.sh, config.sh にはお世話にならなかった。
IPv6 で使える cvsup, cvsupd はないのだろうか。
FreeBSD 4.7 だと finger で .pubkey を表示できるようになったのか。
group が増えていることに気づく。手元の addgroup.sh 更新。こんなもの、普通の人には無用の長物だろうがな。
[ `uname -s` != 'OpenBSD' ] && exit groupadd -g 63 _radius groupadd -g 64 _token groupadd -g 65 _shadow groupadd -g 66 crontab groupadd -g 72 authpf groupadd -g 27 sshd groupadd -g 28 _portmap groupadd -g 29 _identd groupadd -g 30 _rstatd groupadd -g 32 _rusersd groupadd -g 33 _fingerd groupadd -g 34 _sshagnt groupadd -g 35 _x11 groupadd -g 71 proxy groupadd -g 25 smmsp groupadd -g 26 popa3d groupadd -g 11 auth
OpenBSD は 2.6 と 2.7 との間に大きな溝がある。そこに気づかないと痛い目にあうんだ。
移動していたようなのでメモ。
はい、それから〜
廊下にでると、 Solaris 入っててホスト名 crux の Let's が転がっていた。
backgame 崩れだが運よく狩れた。 8枚上げられてからようやく hit.こっちも進み過ぎで 6ポイントが空き、かなりヤバイところだったが dance しつづけてくれて勝てた。
If you wish to refer to an Info file in a URI, you can use the(unofficial) syntax exemplified in the following. This works withEmacs/W3, for example:
info:///usr/info/emacs#Dissociated%20Press
info:emacs#Dissociated%20Press
info://localhost/usr/info/emacs#Dissociated%20Press
The `info' program itself does not follow URI's of any kind.
使うことはないだろうな。 (Info-goto-node "(texinfo) Info Files")
cm_verb() の実装とあわせるのなら、 (concat delimiter "}") で search ではいけない。
;; @verb{<char>TEXT<char>} (makeinfo 4.1 or later)
(put 'verb 'texinfo-format 'texinfo-format-verb)
(defun texinfo-format-verb ()
"Format @verb{}."
(let ((delimiter (buffer-substring-no-properties
(1+ texinfo-command-end) (+ 2 texinfo-command-end))))
(assert (looking-at "{"))
(delete-region texinfo-command-start (+ 2 texinfo-command-end))
(search-forward delimiter)
(delete-backward-char 1)
(assert (looking-at "}"))
(delete-char 1)))
assert は適当な error message に置き換えるべき。
激しく現実逃避。行頭から @include で始まるのが中に入ってると発狂する。 @include の前処理があるからだ。
(put 'verbatim 'texinfo-format 'texinfo-format-verbatim) (defun texinfo-format-verbatim () (texinfo-discard-line) (re-search-forward "^@end verbatim[ \t]*\n") (delete-region (progn (forward-line -1) (point)) (progn (end-of-line) (point))) (setq texinfo-command-end (point)))
日本語化された makeinfo + Info-tagify が正しいのはわかってる。わかってるんだよ。
ダメ人間スギ
ポップン8待つのがだるくてトナ2PEをやっていたら上級EASY,中級HARDのラップがいまだに伸びていた。あんまりにもあっさり青表示のタイムが出ると逆にイヤになるな。中級HARDは勝負ラップと勝負ラップ前では 2-3 の攻め方が変わるので、全ラップでベストを狙えない。
Powered by 早起き生活