2008/09/13(Sat)バッチファイルで時計表示
2008/09/13 17:56
とまぁこれが、結構面倒で^^;
time /Tコマンドでは、秒まで出てきません。
秒は%time%という変数を使うことまで1/100秒単位までご丁寧に出てくれるのですが、
で、これを使わざるをえないことに。
結構XPだったり2000だったりで出力に差があるらしいのですが、ここはXP x64 SP2ベースで書きます。
自分の場合は、24時間制で0補完済みの2桁ごとで区切られた数が得られたので、「あぁ、substringかけるだけじゃん~」と思ったら……
実は厄介でした。0の扱いが。
先頭に0がついた、06といった数字は、8進数の6を表すような解釈をするらしく、秒の部分だけを切りだして変数に入れる(set /aでは式の評価が行われる)と、システムの時計が8秒と9秒のとき、"無効な数字です"と文句を言われます。
というわけで、結構苦肉の策。
@echo off set n=-1 :LOOP set /a t=%time:~6,1% if %t% == 0 (set /a s=%time:~7,1%) else (set /a s=%time:~6,2%) if %s% == %n% goto LOOP set /a n=%s% echo %time:~0,8% goto LOOP実行結果
17:53:40 17:53:41 17:53:42 17:53:43 17:53:44 17:53:45 17:53:46 17:53:47 17:53:48 17:53:49 …もっとスマートに書けるのかもしれんが……。あぁ、とりあえず外部アプリのsleep.exeとか、JSを開く手はナシで。
ちなみに、ping -n [止めたい秒数] localhost >NULという書き方も紹介されてましたが、なんか1秒置きにうまく動いてくれませんでした。
まったくもって、Linuxのbashは賢すぎる。
あっちなら
echo -e "`date "+%Y/%m/%d %H:%M:%S"`"なんて手軽に書ける。曜日や"1日前"、なんてのもお茶の子さいさい。
あぁ、こんな表現使うの久々…(笑)
2008/09/12(Fri)BSOD 0x35 NO_MORE_IRP_STACK_LOCATIONS with KIS 解決法
2008/09/12 21:20
この話がマイナーな事を考えると、Windows XP x64 SP2限定の話で、x86には全く関係ないのかもしれない。
MSKBを探し回った結果
0x35エラーが引っかかったが、ドメイン参加ではないのでドメインにログオンしようとすると、「 STOP 0x00000035 NO_MORE_IRP_STACK_LOCATIONS」エラー メッセージを表示することがあります。は関係ない。SP2も適応済みであり、mup.sysのバージョンは公開されているパッチよりもずっと新しかった。
Kaspersky Laboを探しまわった結果
このエントリが引っかかって、I should also mention, I tried changing HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Klif Start key to 2 (currently still set that way), and that did not help. I then added to HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Parameters an IRPStackSize key, started at 15, ran it up to 50, but that also did nothing.というのがあったので、ダメ元で、
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\KLIF] "Start"=dword:00000002に変更。元々は、
"Start"=dword:00000001でした。
このStartの値が何を示すかというのは、MSKBによると0x01の方が0x02よりローレベルな段階で起動する模様。
ゆえに、エラーが起こった時はKernel Panic=BSODとなるわけですか…。ふむ。
とりあえず、結果からいえば、これで直った。
この変更を加えても、一応Firewallは正常に動作しているようで、未定義のルールについてはちゃんと警告出してきているし、Sambaのやり取りも問題なくなった。
一件落着。
今回はBSOD系のエラーでも、すごくマイナーな物だったから余計に苦労したな…。
追記
x86にKIS7をインストールしている場合でもStart=0x01だが、こちらはBSODにならない。ということは、x64環境の場合だけの問題のようですね。
追記
しばらく使ってたら、また青くなった。今度は、ここを変更してみた。
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\kl1] "Start"=dword:00000002現状とりあえず安定しているようなので、↑でダメだった人はやってみてください。
2008/09/12(Fri)zshセグメ違反 解決
2008/09/12 19:19
さて、zshに乗り換えようかな…?
▼zsh4.3.4になってました。
2008/09/12(Fri)LoadAverageが50!?
2008/09/12 19:06
あ、こりゃまずいと思った時には、SSHの操作を受け付けるのが非常に困難に。
しばらく待ってたら、だんだん落ち着いて、topコマンドが入るようになったので、見てたけど、なにやら起動したPerlアプリのメモリが70%食ってるとかありえない表示になってたり。おかしいなぁ、そんなに酷い処理は書いてないんだけど…。
とりあえずkillallで該当Perlにkillをかけてから、sftpが収まるのを待ってようやくスムーズに。
後でサーバーの保守ログから作成したグラフを見て驚いたwこれはすげぇ…、Load Average 50いってたんだ。しかもswapの減り方が……。あぁかわいそう。
そんなに忙しいにもかかわらず頑張ってグラフ描いてくれたんだね、偉い偉い。*1
まあ再起動することなく、おさまってくれてよかったです。
ちなみにおかしな挙動をしたPerlモジュールは変更せずにもう一回実行しても、↑のようなハングは起きませんでした。sftpのせい??
# 余談ですが、Linuxのsftpコマンドだけでレジューム転送ってどうやるんだろう?man調べたけどよく分からなかった。
2008/09/12(Fri)Safari+VLCで快適ストリーミング再生
2008/09/12 15:42
というのが、いちいち再生する毎にプレイリストにガンガン項目が増えていくこと。
サーバー上のmp3は頻繁に追加したり削除したりするので、別にプレイリストに増えて欲しくないのである。
しかも追加されたところで、日本語タグが化けて読めたものじゃない……。ほんとタグの面は特にiTunesはサイテーである。
で、適当なプレーヤーを探していたのだが、これまた私がMacに疎いからかあんまりよさげなものが見つからない。
やっと探し当てたのが、VLCメディアプレーヤー。
日本語タグも化けず、きちんと再生できる。おぉ……。
で、SafariからワンクリックでVLCに再生したくなったのだが、その方法に少々迷ったのでメモ。
なお、サーバー側は
Content-Type: audio/mpegurl Content-Disposition: inline; filename=stream.m3uというヘッダーを吐くように設定。(シャッフルしたプレイリストをcgiで自動生成させているため、そのままでは.cgiという拡張子になってしまう。MacのSafariだと。WindowsのIEとかは問題なし。)
無論、この設定でWindows上のWindowsMediaPlayerやWinampは問題なく、ワンクリックでプレーヤーが起動し再生する。m3uはテンポラリに入るだけ。
▼適当にm3uを保存して、"ファイル"メニューの"情報を見る"を開く。
▼"このアプリケーションで開く"をVLC.appに設定し、"すべてを変更"をクリック。
▼Safari側は自動的に開くように設定
はぁ、Windowsとは関連づけの方法が全然違うんですね…。拡張子の一覧があって、そこから選ぶようなのが便利だなあ。
特にブラウザのMIME設定によって保存するとかしないとかの設定が欲しい。
▼こんなやつ
しかし、この方法にも欠点があって、ダウンロード先のフォルダにm3uがstream.m3u, stream1.m3u, stream2.m3u…という風に溜まりまくってしまいます。
定期的に掃除でいいかな?
何かいい方法ありますかね…。