2007-09-05

こらー、上段右から二番目はお前じゃないだろ!

倉田てつをというよりほとんど南光太郎公式サイトだ。でも Black は傑作なのでみんな見るといいよ。

サーバメンテナンス

emptypage.jp をホストしてるサーバが、9月13日(木)の7:00から10:00の間で90分ほど、さくらインターネットのメンテナンスでしばらくアクセスできなくなるそうです。困る人はいないでしょうが、wz2chbbs 巡回してる人(推定3名、自分含む)はびっくりしないでね。

FreeBSD の 4.1 から 6.1 になるそうで。もっとも、管理者じゃないからそれでどうにか便利になったりするわけじゃないんですけど。

更新情報

拡張子付きのコマンドが実行できなくなっていた不具合等を修正した、cmdlinex 2.18 を公開します。情報をいただいた大田黒さん、ご協力ありがとうございます。

以下雑談。

このマクロは、もともとはもう六年以上前に書いたものが土台だけど、それにしてもそのコードのひどさにはわれながらあきれる。おそろしいのは、書いてた時はこれがわかりやすいと思って書いていたに違いないということで、それが今見たら中学生が書いたもののように見えるという。紆余曲折で今では使われていないルーチンとか、仕様変更で間を削ったせいで意味のない条件分岐とかが残ってしまっているのも、アホっぽさに拍車をかけてます。

時間を置いてコードを見返すと、取り組んでいた問題の現実の複雑さを忘れてしまっているせいで、もっとシンプルに書けるはずと思い込んでしまうという誤謬もありますけどね。

コーディングスタイルも、今とぜんぜん違う。昔は if ( cond ) と書いていたのだけど、今は if (cond) と書く。比較しようとして代入してしまう誤りを防ぐための、if (3 == x) という書きかたを愛用してたけど、これもいまはやらない。数値比較をわかりやすくするために、if (0 < b) と、いつでも小さいほうを左側に書くようにしていたけど、今は場合によっては if (b > 0) と書いてもいいという考え。要するに、普通になった。ひねくれ者は、普通になるまでにものすごい遠回りをしなきゃいけないのです。

マクロのコンセプトとしても、今ならリダイレクトを自前で解析したりとかはしないだろう。指定されたコマンドラインにテンプレート処理をして、あとは cmd.exe に丸投げするだけにすると思う。当時は気持ちがはやっていて、至れり尽くせりにするべきだと思い込んでいた。しかしその代償は未だにコードが完成していないという事実。

数年前に自分の書いたコードを目にしたとして、今書いてもやはりこれと同じコードになるであろうという感覚を覚える日は来るんだろうか。いや、たんに成長が止まっただけかもしれないから、そんな日は来なくてもいいかもしれない。

数年前にも同じようなことを書いたような気がするけど。

しかしたった(?)六年で、こうまで考えが変わってしまうんだから、何年か前に言ってたことで、今も同じ意見でいるものなんてなくても不思議じゃない。

2007-09-01

雑談。r の付く月がやってきましたね。

ソフトを捨てる

ソフトウェアの「ライセンスを購入している」という形態だと、なぜかハードウェアと違って捨てるのをためらってしまう(ハードウェアだってなかなか捨てられないけれど)。Windows 98 でしか動かないやつとか、何年も前に会社もろともなくなってしまったようなやつとかを再びインストールしてみようなどということはもう絶対ないはずなのに。Windows 95 の FD 20枚とか、明らかにいらない(これは捨てよう)。あとダウンロード販売のシリアル番号とか、こういうのも思い切って抹消するか。

しかし VZ の FD はなんか捨てがたい。これがいけないんだけどねえ。だいたい DOS はもう使わないでしょ、と。いやモバイルギアが……、ってモバももう使わないでしょ、と。どうもこういう往年の名機的なブツ(とそれをハックするようなソフト)はセットで保存しておかなければいけないような気がしてしまって困る。

そういえば Explzh が最近フリーウェアになったそうで。ずいぶん長くお世話になってきたけど、今は使わなくなってしまいました。ノート PC を新調した時に、移さなかったんだな。

デスクトップアプリケーションを売って食ってる会社は、気がつくとメジャーどころはマイクロソフトとアドビだけになってしまったような。なんか寂しいっすね。Mac でも、いいのを作ったってすぐ次のバージョンの OS X でアップルにパクられちゃうしね。

Numbers

どうでもいい話だけど、Numbers って頭悪そうな名前です。「わーい すうじが いっぱいだー! だけど ぼく あんまり むずかしい けいさんは にがてだよ」とか言いそうで。

もう絶対どこかで誰かが言ってるだろうけど

「『ブログやめました』始めましたブログパーツ」とか「はてなブックマークのエントリページのブックマーク数表示スクリプト」とかもご一緒にいかがですか? 枝葉末節ばっかり膨らませていつまでたっても本題に入れない者どもよ。人を褒めるのもツールがないとできないっていうのは情けないね。メール書けメール。

2007-08-26

だいたい、日本人の尊敬の意識は個人に対する理解の成熟によって発展してくるものであるよりも、恐怖に始まり、畏怖→畏敬→尊敬→敬愛→親愛→愛狎(あいこう)→軽蔑というような道を通ることが多く、根本的には恐怖が意識の底にあると考えられる。

大野晋『日本語の文法を考える』

リポジトリでウェブサイトを管理しています。実際のサイトを、コミットするたびに自動的に更新させるにはどうすればよいでしょう?

原文: I’m managing a website in my repository. How can I make the live site automatically update after every commit?

こうしたことは昔から行われていて、post-commit フックスクリプトをリポジトリに加えるのが定石です。第5章のフックスクリプトの項を参照してください。基本的な考えとしては、実際のサイトをたんなる作業コピーにしておいて、post-commit フックスクリプトでその作業コピーに対して svn update を実行します。

運用時に注意すべき点がいくつかあります。post-commit フックスクリプトを走らせるのは、コミットを処理するサーバとなっているプログラム(svnserve なり Apache なり)自身です。このことは、そのプログラムが作業コピーを更新するのに適切な権限を持っていなければならないということを意味します。言い換えると、svnserve や Apache を走らせているのと同じユーザーが作業コピーの所有権も持っていなければならない、あるいは、少なくとも作業コピーのほうに適切な権限が設定されていなければならないということです。

サーバプログラムに所有権がない作業コピー(たとえばユーザー joe‾/public_html/ 内など)を更新させなければならないのであれば、更新を実行する +s 付きのバイナリプログラムを作成するという手があります。Unix では、スクリプトは +s 付きにはできないのです。次のような C プログラムをコンパイルします。

#include <stddef.h>
#include <stdlib.h>
#include <unistd.h>
int main(void)
{
  execl("/usr/local/bin/svn", "svn", "update", "/home/joe/public_html/",
        (const char *) NULL);
  return(EXIT_FAILURE);
}

そしてできあがったバイナリに対して chmod +s して、その所有者が joe になっているのを確認します。そうして、post-commit フックにこのバイナリを実行する行を加えるのです。

フックを動かすのに問題が生じたら、“Why aren’t my repository hooks working?” を参照してください。

また、ふつうは Apache に実際のサイトとなる作業コピーにある .svn/ ディレクトリを公開させたくはないでしょうから、httpd.conf に次のように追記します。

# Disallow browsing of Subversion working copy administrative dirs.
<DirectoryMatch "^/.*/¥.svn/">
    Order deny,allow
    Deny from all
</DirectoryMatch>

さくらのレンタルサーバでは

DirectoryMatch ディレクティブは .htaccess では使えないので、上掲のノウハウはさくらのレンタルサーバでは使えない。ちぇ。

ThinkPad X60s のパームレストが熱くなる

ウェブでもけっこう言われているようだけど、AC 電源で使っていると、右側パームレスト(ここには無線 LAN のカードが収まっている)がいやな感じに熱を持つ。最近のラインでそれ以前のから改良が加えられたりしているようですが、自分のはどっちなんだろう。改良されててこんなに熱いってのはないのかな。なんにしても、気が散るのでよろしくないです。いままで ThinkPad でこんなことはなかったぞ。

それにしても、「X60s – ThinkPad X60s/X40/X31 メモ」というページはすごい。読み応えある。

チェア

チェアっていうか、椅子。帰宅してからもパソコン叩いたり書き物をしたりと怪しい作業に没入する生活なので、椅子に座っている時間が長いのです。その割にはちゃんとした椅子を使っていたことがない。今家のデスクで使ってるのは CCH-L001OR ですが、これだって昔働いてたとこからのもらい物です。これになるまでは折りたたみの小さくて硬い椅子をずっと使ってた。なんだ自分、苦学生かよ。

腰痛になることもしばしばだし、いいかげんちょっとまともな椅子を買ったほうがいいかもしれない。アーロンチェアとまではいかなくても、長時間きくやつを。下に車輪が付いてるやつと付いてないやつと、どっちが疲れにくいとかあるのかな? 先日人とそういう話をしましたが結論が出なかった。

2007-08-21

おつかれさまでした。

雑談。

出典

近況

夏休みというのと、偶然も重なって、久しぶりにいろんな人に会い(まだ一部進行中だけど)、いろいろと思う。思ってどうなるかはまだわからないけどさ。

飛行機だけは

適当にグーグルで検索してたら、中学生専用の掲示板とかいうページが引っかかってしまった。しかし件名が「雑談野郎Eチーム」とか、おまえらほんとに中学生か? しかしコンテンツ消費の高度にフラット化した現代ならそういうこともあるのかもしれない。テレビもすぐに懐古ものに頼るしね。

ちなみに検索してた語は「がるん゛る」。

Joel Spolsky 氏曰く、

Whenever anyone asks, my advice is to stay with Windows XP (and to purchase new systems with XP preinstalled).

誰に対してであれ、私の助言は Windows XP のままにしておけ(新しく買うとしても XP プリインストールのモデルを選べ)、ということだ。

その他

実験中だった掲示板が Internal Server Error になっちゃってます。これは使ってないだろ、という古いライブラリをがしがし削除してたらじつは使ってたようでして。ま、そのうち直します。

ここのディレクトリ(/whining/)の HTML ファイルが 500 個を超えてきて、さすがに取り回しにくくなってきた。どうすべえ。