2008/08/30(Sat)Plagger on Fedora 8

2008/08/30 15:13 Software::Linux
CPANでがんばっていたのだが、全然前に進まないので、yumのリポジトリを探した所、Fedora7までしかなかったのだが、無理やりFedora8にインストールしてみた。

まず、repoファイルをwget……してもいいのだが、rpmがあるのでこれを利用
$ wget http://pub.woremacx.com/worepo/deprecated/worepo-release-7.rpm
# sudo rpm -ivh worepo-release-7.rpm
# ls /etc/yum.repos.d/wo.repo
/etc/yum.repos.d/wo.repo
wo.repo内のアドレスが変わっているようなので、修正。
# vi /etc/yum.repos.d/wo.repo
 - baseurl=http://pub.woremacx.com/worepo/fedora7/i386
 + baseurl=http://pub.woremacx.com/worepo/deprecated/fedora7/i386
で、
# yum install perl-Plagger
....

Transaction Summary
======================================================
Install      314 Package(s)
Update         2 Package(s)
Remove         0 Package(s)

Total download size:  45 M
Is this ok [y/N]: y

...

Complete!
という感じで物凄いインストール。
仮にcpanで同じインストールをするとして、314パッケージもmakeの面倒見るなんて御免だ。パッケージに頼るに限る。


で、無事動いてます。

2008/08/30(Sat)CPANをサクサク動くように

2008/08/30 3:50 Software::Linux
Fedora8をVMにインストールして、ちょっと実験しようと思い、一通りyumをかけ、
さて、PerlModuleを入れるためcpanを…とやってると、どうもトロい。Fetching...とかで数十秒近く待たされた挙句FTPセッションを張るのに失敗。

どうやらftp.perl.orgが忙しいようなので、ミラーサーバーに切り替えてみる。
/usr/lib/perl5/5.8.8/CPAN/Config.pmに対して、以下のようなURLListを設定。
$CPAN::Config = {
  'urllist' => [q[ftp://ftp.kddilabs.jp/CPAN/]],
};
うむ。速くなった。

cpan中 2008/08/30

やっぱCPANだめだ、コケすぎ。
依存関係の解消ということで、ひたすらEnter連打待ちなのも如何なものか。
そしてmakeに失敗するんですよね、わかります。
→結局3万2千行も標準出力に吐いといて、最終的に失敗。

あーもう、yumが便利すぎる。
でも、ニッチな物は標準のリポジトリに追加されてないんだよなぁ……。
リポジトリを追加する方向で考えよう。

2008/08/22(Fri)キーボードだけでアプリを昇格 on Vista

2008/08/22 13:44 Software::Windows
Vista発売当初から、「あれ?」と思っていたことなのだが、アプリケーションを昇格状態で起動するのって、わざわざショートカットを右クリックして、"管理者として実行する..."を選ぶしか方法がないのかなぁ、キーボードだけで起動する方法無いのかなぁ、と思っていたのだが、たまたま調べて発見した。

cmd_from_startmenu.png


Vista新設のこのスタートメニューのテキストボックスに目的のアプリを入力(例えばcmd)し、Ctrl+Shift+Enterを押すと……


昇格ダイアログが開いて、Alt+Cを押せば昇格したアプリを立ち上げられる。
おぉ、こりゃ便利。


が、問題はクラシックメニューにしてるとこのテキストボックスが出ない&Win+Rで出現するダイアログではCtrl+Shift+Enterが有効でないようなので、まだ何か探さないとなぁ……というところである。
runas /trustlevel:0x20000とかじゃあ昇格できないしなぁ…。

2008/08/22(Fri)バッチファイルTips "%~dp0"

2008/08/22 13:20 Software::Windows
Windowsには、ちょっとした処理をやらせるのに便利なバッチファイルというのがあるが、VistaからのUAC(ユーザーアカウント制御)で困っていた点があった。

というのが、VistaでUACがONの場合にシステムフォルダのような昇格が必要なフォルダへの書き込みを行った場合、
  • 昇格しないとカレントディレクトリは実行位置だが、書き込めない
  • 昇格すると、カレントディレクトリが強制的にC:\Windows\System32になる
という点である。

カレントディレクトリが分からないとなぜ困るかというと、カレントディレクトリにあるファイルを特定のフォルダへコピーさせるのが厄介だからである。

で、色々探してたら、いいコマンドがあった。
cd /d %~dp0
詳細部を説明していくと
cd
Change Directoryコマンド
/d
現在のドライブ名も一緒に変更する(これが無いとドライブを跨いだcdが不可能)
%0
%1, %2, %3...で第1, 2, 3,...引数を取得できるように、%0で実行パスが取得できる
~dp
dでカレントドライブ、pでカレントディレクトリ、~で""を削るという指定。~が無かった場合、中途半端に"が残ったりするので。*1


というわけで、バッチファイルの先頭には
@echo off
cd /d %~dp0

からはじめる癖をつけようか…。

参考元:な○の 屋: Vista エピソード その1

*1 : %1で受け取ったディレクトリにa.txtを作りたい場合、%1a.txtとすると、"C:\abc\"a.txtという風になる可能性がある。これを防ぐため、%~1a.txtとすれば、C:\abc\a.txtとなる。

2008/08/20(Wed)adiaryでStatus:404を返すように

2008/08/20 20:17 NetService::adiary
Google ウェブマスター ツールを使ってサイトの情報を確認しようと思ったら、"サイトの管理者かどうかの確認が要る"ということだったので、"HTTPファイルをアップロード"を選んだわけですが、adiaryがエラーページでステータスコード404を返さない仕様のため、処理が完了しなかった。

なので、ちょっとスケルトンを修正して404を出力させるように変更。
--- diary.skel/_main_onelog.html        2008-08-18 22:01:02.000000000 +0900
+++ diary.user.skel/_main_onelog.html   2008-08-20 20:10:02.000000000 +0900
@@ -13,6 +13,7 @@
 <$ifmessage(v.diary_id, "日記帳 <@v.diary_id> が存在しません", "日記帳が指定されていません")>
 <$ifmessage(v.diary_id && ! Auth.ok, "もしあなたが「ID:<@v.diary_id>」ならば、右上からログインしてください 。")>
 <$else>
+<$if(!v.load_days, print_header("Status", "404"))>
 <$ifmessage(!v.load_days, "該当する記事がありません")>
 <$end>
 <@ifexec(Message, begin)>
_main.htmlの方も修正した方がいいのかもしれないけど、一覧表示で記事が無いことは、blog開設直後だけだろう……ということで放置。

w3m Tips

↑の確認をしようと思ったのだが、たまたま使っているPCにはProxomitronが導入されておらず、ブラウザはSleipnirだった。
Firefox+LiveHTTPHeadersを使えって話だけど、わざわざヘッダー確認のためだけにブラウザを導入するのは大げさなので、ターミナル一枚開いてw3mでどうにかできないかと……。

便利なオプションがあった。
$ w3m -dump_head http://mo.kerosoft.com/test
HTTP/1.1 404 Not Found
Date: Wed, 20 Aug 2008 11:10:28 GMT
Server: Apache
Cache-Control: max-age=0
Last-Modified: Tue, 19 Aug 2008 18:57:14 GMT
Connection: close
Content-Type: text/html; charset=UTF-8;
w3mを自分の鯖にも導入しておこうかしら。