fishが紹介されてるので、あえてzshの補完機能のアピールをしてみるテスト(笑
以前にも紹介してるのですが、それ以外に個人的にすげーと思ってる補完機能を紹介。
Makefileの中身を見てくれます。
$ ls
Makefile foo1.c foo2.c main.c
$ cat Makefile
CC = gcc
CFLAGS = -Wall -g
OBJS = main.o foo1.o foo2.o
hoge: $(OBJS)
clean:
rm -f $(TARGET) $(OBJS) *~
$ make <-ここまで打ってTABキーを押す
clean hoge
※makeのターゲット一覧が補完の候補として表示される。
ここまで補完してくれるのは、ちょっとやりすぎのような気がしないでもなかったり…(笑
$ wget http://jaist.dl.sourceforge.net/sourceforge/w3m/w3m-0.5.1.tar.gz
$ tar xvfz w3m-0.5.1.tar.gz
$ cd w3m-0.5.1/
$ ./configure --enable- <-ここまで打ってTABキーを押す
--enable-alarm --enable-japanese
--enable-ansi-color --enable-keymap
--enable-bgcolor --enable-m17n
--enable-color --enable-menu
--enable-cookie --enable-messagel10n
--enable-dict --enable-mouse
--enable-digest-auth --enable-nls
--enable-external-uri-loader --enable-nntp
--enable-gopher --enable-rpath
--enable-help-cgi --enable-sslverify
--enable-history --enable-unicode
--enable-image --enable-w3mmailer
--enable-ipv6 --enable-xface
※オプション一覧が補完の候補として表示される。
zshがconfigureファイルの中身を見て候補を表示している。
build.xmlの中身まで見て補完してくれるのでびっくり。
$ ls
Hoge.java build.xml
$ cat build.xml
<?xml version="1.0" encoding="UTF-8"?>
<project name="hoge" default="compile" basedir=".">
<property name="mainclass" value="Hoge" />
<property name="jarfile" value="hoge.jar" />
<target name="compile">
<javac srcdir="." />
</target>
<target name="clean">
<delete>
<fileset dir="." includes="**/*.class" />
<fileset file="${jarfile}" />
</delete>
</target>
<target name="jar" depends="compile" >
<jar jarfile="${jarfile}" basedir="." includes="**/*.class" />
</target>
<target name="run" depends="jar">
<java classpath="${jarfile}" classname="${mainclass}" />
</target>
</project>
$ ant <-ここまで打ってTABキーを押す
clean compile jar run
※ターゲットの一覧が補完の候補として表示される。
MSNにつなぐとGaimがおちるなぁ…と思っていたのですが、その修正もされてるみたいです。
先月にリリースされてたみたいですが、全然気づいていなかったのでとりあえずメモ。
と勘違いして、力いっぱい↓のプログラムを動かしてたよ…(;´Д`)
#!/usr/bin/ruby
require 'open-uri'
sleep_time = 0.3
url_base = "http://ナイショ/"
url_ext = ".htm"
start_time = Time.now
def timestr(t)
d = t.divmod(24 * 60 * 60)
h = d[1].divmod(60 * 60)
m = h[1].divmod(60)
s = m[1].to_i
return "#{d[0]}day #{h[0]}:#{m[0]}:#{s}"
end
(0..999999).each {|n|
# print progress
if n % 100 == 0 && n > 0
te = Time.now - start_time
tl = (1000000 - n) * (te / n)
puts "n=#{n} ... time elapsed= #{timestr(te)}, time left=#{timestr(tl)}"
end
# make uri
num_str = ("000000" + n.to_s)[-6, 6]
uri = url_base + num_str + url_ext
# open uri using open-uri
begin
open(uri) {|f|
puts "HIT!! uri=#{uri}"
exit 0
}
rescue OpenURI::HTTPError => e
end
sleep sleep_time
}
put "not found..."
…いやー、open-uriってお手軽でいいね。
うお、いま使っているノートPCってThinkPad T43だよ…_| ̄|○
さっき、マウスホイールで地図の拡大・縮小表示の操作ができることに気が付いたよ…いつから対応してたのかな?
…それよりも、マウスホイールの操作ってJavaScriptからどうやって取得してるのかな?
なにー、マウスホイール用のイベントがあるって知らなかったよ…_| ̄|○
<html>
<head>
<script type="text/javascript">
<!--
function wheelTest(e) {
if (!e) e = window.event;
if (e.wheelDelta) {
d = e.wheelDelta;
if (window.opera) d = -d;
}
else if (e.detail) {
d = -e.detail;
}
document.getElementById("msg").innerHTML = d;
}
// add event handler
if (window.addEventListener) {
window.addEventListener('DOMMouseScroll', wheelTest, false);
}
window.onmousewheel = document.onmousewheel = wheelTest;
// -->
</script>
</head>
<body>
wheelDelta => <div id="msg"></div>
</body>
</html>
ナンバーポータビリティが始まったら、乗り換えちゃおうかな?定額プランが用意されるのもいいかも。
ドコモも思い切ってhTc Zを一般向けに売ればいいのに…
会社で使っているT43が対象に入ってるみたいなので、早速試してみた…
…どうやらリコールの対象外だったみたいで一安心。調べてみたら三洋のバッテリだったみたい。

KnoppixがシャットダウンしたときにCD-ROMをイジェクトしてるけど、どうやって実行してるのかな?と疑問に思ったので、/etc/init.d/knoppix-haltを見てみたら、一番最後に…
if [ -z "$NOEJECT" ]; then
# Preload "halt" command into memory before it is gone.
$FINALCMD --help >/dev/null 2>&1
eject -m -p /cdrom >/dev/null 2>&1 &
if [ -z "$NOPROMPT" ]; then
read -s -p "${CYAN}Please remove CD, close cdrom drive and hit return [auto 2 minutes].${NORMAL}" -t 120 a </dev/console
fi
fi
exec $FINALCMD $options
※$FINALCMDには/sbin/haltが入っている
と、いうコードが書いてあって、すげーと思う。
CD-ROMをイジェクトした後ではCD-ROMの内容を参照できないので、一回ダミーで/sbin/haltを実行しておいてキャッシュに載せる工夫がしてあるみたい。普通にスクリプト書いてたらこの方法は思いつかないよ(笑
さっきまでここが見えない状態になってました。現在はとりあえず復旧しています。ご迷惑をおかけしました(;´Д`)
この辺の通信障害に巻き込まれていたみたいなのですが、とりあえずイベント順にメモ。
| 10:02 | 回線の通信障害発生 |
| 10:52 | Xenサーバがbootしたログが残っていた。どうも電源が落ちたような雰囲気… |
| 13:25 | 回線が復旧。ただこの地点でwww.sabamiso.netは復旧していない。XenサーバのゲストOSとして動いていて手動でブートしているため、ダウンしたまま…(;´Д`) |
| 15:46 | 回線は生きているのにwww.sabamiso.netがダウンしている状態にようやく気が付いて、この地点でようやく起動。無事を確認。 |
◆ kikuzou [Debianでzshを使っているときに気がついたのですが「apt」コマンドの補完をしてくれたときはビックリしました。]
◆ よぎ〜 [apt-get install [tab]で、パッケージ名の補完ができるのはすげーと思います。よく使ってます(笑]