カレンダー
クイックサーチカテゴリ管理最近のエントリヤフオク用Greasemonkeyスクリプト VIII
土曜日, 8月 28 2010 C# .Net Frameworkで2重起動に対応 土曜日, 8月 28 2010 ヤフオク用Greasemonkeyスクリプト VII 土曜日, 7月 24 2010 ヤフオク用Greasemonkeyスクリプト VI 日曜日, 7月 18 2010 スモールオフィスのネットワーク III 火曜日, 7月 6 2010 IE、ChromeのGreasemonkey script 月曜日, 7月 5 2010 serendipity Chrome / Safari patch 月曜日, 7月 5 2010 スモールオフィスのネットワーク II 金曜日, 7月 2 2010 スモールオフィスのネットワーク I 金曜日, 6月 25 2010 ヤフオク用Greasemonkeyスクリプト V 水曜日, 6月 23 2010 |
2010年 7月 5(月曜日)IE、ChromeのGreasemonkey scriptFirefox以外のGreaseMonkeyユーザスクリプト実行環境Firefoxには、ウェブページのGUIをカスタマイズするユーザスプリプト実行環境Greasemonkeyがあります。私もユーザスクリプトを2つ公開しています。最近はWindows環境のIEやChromeを使うことがありますので、そこでもユーザスクリプトを使うことができないか、と思い、調査してみました。 IEとChromeに関してはGreasemonkey互換環境があり、YahooAuctionSは問題なく動作しました。 インターネットエクスプローラIEには2種類あるようです。TrixieとGreasemonkey for IEです。ネイティブな記述言語は、前者はJavascript、後者はDHTMLです。Trixieのほうが歴史が古く、Greasemonkeyとの互換性という点では良さそうです。 TrixieTrixieは外部プログラムになっており、インストールもMSIファイルになります。インストールすると、「ツール」メニューの中に"Trixie Options..."というメニューが追加され、設定を行うことができるようになります。ユーザスクリプトは、<<C:\Program Files\Bhelpuri\Trixie\Scripts\>>にコピーすれば自動的に読み込まれます。(読み込まれない場合、Trixie OptionsでReload Scriptsボタンを押します)。 Google Chrome今年の春に組込み機能としてサポートされたようです。基本的に環境のインストールは必要がなく、ユーザスクリプトをファイルとしてブラウザに読み込ませることでインストールされ、それ以降はスクリプトが動作するようになります。こちらもYahooAuctionSの動作には問題はありません。 しかし、一つ問題があります。それは、ユーザスクリプトがインストールされるフォルダのパスが可読な形式でないことです。例えば、私のところでは、こんなパスです→<<C:\Users\XXXX\AppData\Local\Google\Chrome\User Data\Default\Extensions\ecegpedmokfjpiaofpacmkejhjfidfbf\1.0\>>。つまり、Extensionsの下に直に(他のAddOnと同列に)置かれてしまい、かつ、GUIDのような無意味な文字列のフォルダ名にされてしまいます。しかも、その下は、"manifest.json"と"script.js"とファイルが自動生成されています。(後者はyafooauctions.user.jsをリネームしたもの)。このため、どこにインストールされたかは、ファイルを開けて捜さないと分りません。 YahooAutionSおまけで更新しました。マイオークションメニューの「値下げ交渉」リンクを「検索履歴」に差し替えることができるようになります。「値下げ交渉」というのは使われているのでしょうか? 検索履歴は良く使うので代りにメニューに入れました。 とすることでメニューが切り替わります。var SUBSTITUTE_OFFERDISCOUNT_TO_SEARCHHISTORY = true; ※ (7/7追記 前回「終了したウォッチリストの削除から戻る」が間違ったページに戻るようになっていたのを修正) 2010年 7月 5(月曜日)serendipity Chrome / Safari patchblogシステムserendipityをchromeで編集できるようにするパッチChromeブラウザでserendiputyの管理者スィートを立ち上げた場合、警告(alert)が度々表示される不具合があります。"mozilla < 1.3 beta is not supported"というものです。これをfixするパッチを作りました。 これは、Safari系ブラウザに共通なもののようです。このアラートは、Geckoエンジン(SafariはKHTMLのような?)の場合に、リリース日時を調べて、一定以上昔の場合に表示されています。通常はこれでOKなのですが、Safariの場合はちょっと動作が違っていて、初期リリース(1.0版)のリリース日時を返すとのこと。このため、必要以上に古い日時が返されて警告が表示されていました。 Safari系のブラウザ(Safari, Chrome)は新しく、時期的に"< mozilla 1.3"とかいうことはありませんので、単純に警告を抑制することにしました。実際には、AppleWebKitを使っているものに対して抑制します。調べていませんが、このモジュールが上記動作をしていると思われます。 もしかしたら、serendipityの最新リリースでは直っているかもしれません。(ソースコメントに、この部分の実装が不完全なことが注記されていますので)
2010年 5月 28(金曜日)SKKのインストール Windows & LinuxSKKの入れ替え嵌り易い漢字変換システムにSKKがあります。その名の通りシンプルな単語変換ですが、入力の手順が手書きと似ているところが気に入っています。元々はEmacsに特化したシステムだったこともあり、ユーザも多くはないながらも熱心な人が多いようで、廃れることもなかったので、利用し続けてきました。また、幸いなことに今ではLinux(iBus, SCIM, UIM, XIM), Windows、Macなど多くの環境で利用することができます。 やっと、受託していた開発を納品することができましたので、なんだか無駄なことがしたくなり、SKK関係の不満を解消しようと思い立ちました。 SKKIME on WindowsWindowsにはSKKIMEがあります。本当に素晴しい。これと、XKeymacsがあるおかげでWindows上でも快適に作業をすることができるようになりました。しかし、私が使っていたバージョンでは「IMEをオープンしたときに"かな"に戻す」の設定が効いていないことが、小さな不満でした。特にWindowsではステータスバーがウィンドウから離れた端っこのほうに出るので、いちいち確認していられないのです。 さて、サイトを見てみると新しい版が出ていますので、入れ替えてみました。設定が大幅に変わっているようで、Shift+Spaceを押しても動きません。どうやら、この辺のキーハンドルが自分でできるように変更されたようです。このため、XKeymacsで設定していた"toggle-ime"のキーマップを解除し、skkimeのプロパティ設定のキーマップの設定で、Shift-Spaceを追加して、toggle-imeを設定。これでできました。最新版では、上記の「"かな"に戻す」も動作しています。 この設定を見ていると、もっとカスタマイズできそうなので、以前から気になっていたのを変更することにします。 SkkInput3 on Linuxこれで気を良くしたので、Linuxのほうも変更してみることにしました。ディストリビューションにはskkinput2が入っているため、こちらをバージョンアップしつつ使っていたのですが、何かの拍子に落ちてしまうこと(しばしばFirefoxと共に落ちる)や、漢字登録ダイアログが消去できなくなってしまうことがあり、解決策を捜していました。 バージョン3版を取ってきてコンパイルしてみると動きそうです。(以前は何故か動かなかった記憶が)。とりあえず、実行ファイルも同じskkinputになるので、同じように使うことができますが、共存は想定されていないようです。 こちらもしばらく使っていた限りでは、前述の問題は解決されています。落ちないようですし、登録ダイアログの動作も申し分ありません。なのですが、原因不明の不具合が発生しており、一時的にバージョン2に戻していて、そのまま乗り換えには至っていません。不具合はFirefox上で"Enter"が入力できなくなってしまうことがある、のと、Backspaceが誤動作(?)することです。skkinput以外の何かの設定が原因かもしれません。 2010年 4月 11(日曜日)VIA RhineのLinuxドライバVIA VT6102イーサネットコントローラの不具合解決VIA Technologies Inc.社のチップセットKT600(多分他のファミリにも)には、VT6102(6105とかも)イーサネットコントローラ(NIC)が付いています。このNICはRhine/Rhine IIと呼ばれていて、勿論Linuxでもサポートされているのですが動作上の不具合があり、今に至るもfixされていないようです。しかし、VIAが提供するドライバを使えば解決することが解りました。 不具合の内容不具合は、このデバイスをLinuxで使うとき、長時間コネクション繋ぎっぱなし、もしくは連続して大量のデータの通信をすると、"NETDEV WATCHDOG: eth0: transmit timed out"というwatchdogタイマによるリセットが入ってコネクションが切断されてしまう、というものです。リセット後は再度接続可能になるため、Webなど小まめに切断される通信では問題となりませんので、殆どのユーザは気付かずに使っているかもしれません。 しかし、サーバとして使うなどして、大きなファイル転送などを行うと途中で切れてしまうので、使い物になりません。また、Windowsではこのような不具合は報告されていないようですので、原因はハードウェアバグとしてもドライバソフトウェアでの回避は可能なはずです。 以前に一回調査してみたのですが原因が掴めていないようで、カーネルの残バグとして残っています。対症療法として、ACPIを切れば動くとか、APICを使わなければ動くとか書いてあるものもあり、やってみましたが直りませんでした。(Linuxカーネルでは、何か不具合あると、仕様が必ずしもオープンでないACPIやAPICに原因を求めようとする悪い癖があるような。度々grub.confに色々書き込んで試しています)。結局仕方なく、別途NICカードを差して対処していました。 VIAのドライバ今回、ひょんなことからVIAがLinux向けにドライバの提供を行っていると知り、もしやと思って捜してみたらRhine II向けもありました。ソース提供なのでコンパイルして"rhinefet"というモジュールをロードしてみます。今迄使ってみていますが、不具合は出ていないようです。作業で1GBx40個のファイルを転送しましたが大丈夫です。有難いことです。もしも、この不具合に悩まされているサーバ屋さんがいらっしゃいましたら、このドライバを試してみることをお勧めします。 それにしても、Linuxのサポートが全くなかったり、不具合以外のfirmwareやBIOSのupdateを行わないのは、今や日本メーカだけなのではないでしょうか。酷い場合には、アメリカサイトでは提供しているのに、日本サイトだけには置いていなかったりします。最近もF通のPC(Inetl 865チップセット)でPrescottが使えなくて残念な思いをしました。以前はサポートのことも考えて国内メーカ製の機器を選んでいましたが、今は韓国や台湾を始めとする海外メーカのものを選んでしまいます。 2010年 3月 17(水曜日)世界時計Linuxで使える世界時計
検索してみると、意外なことに、こういった世界時計は多くありません。なんだか平気で有料シェアウェアとかになっています。時差があるだけで簡単なものだと思うのですが。このため、時計を横に並べたようなものを自分で作ってみようかとemiclockのソースを取ってきたりしたのですが、残念ながらこれはGPLではないため改造して使うことはできないようです。 zdumpそうこうしている内に、zdumpというプログラムを見つけました。使い方は簡単で、 $ zdump Europe/Pais これで現在時刻の表示ができました。色々な場所を一度に表示したければ、 $ zdump Europe/London Australia/Sydney Asia/Tokyo Asia/Singapore Asia/Katmandu Europe/Paris \ というふうにできます。いつも一時に表示したければ、こんな感じで良いでしょう。 $ alias wclock='zdump Europe/London Australia/Sydney Asia/Tokyo Asia/Singapore Asia/Katmandu \ worldclock.plさて、これで充分なのですが、ディストリビューションやバージョンによってはzdumpが動かないことがあるようです。何かのバージョン不整合があったのか、私のデスクトップマシンでは最初動きませんでした。いつも同じ時刻(グリニッジ標準時か東京時刻)を表示してしまいます。これは結局zoneinfoのインストールが上手くなかったようで、zoneinfoの少し新しいバージョンを入れたら動作するようになりました。元々はzoneinfo(/usr/share/zoneinfo)に.ics(中身はVCalendar)のファイルしかなかったのですが、追加したら拡張子が付かないバイナリファイル(TZif形式)が追加されてました。 それで、動かない間に、元々の.icsファイを読んでzdumpと同じ動作をするworldclock.pl(worldclock.pl.zip)を作成しました。こちらは少しおまけが付いていて、都市だけで、もしくは都市名に完全に一致しなくても、マッチするものを表示します。 $ worldclock.pl Par こちらも、都市名(Aria/City)を複数指定して、上記のwclockのようにalias等を設定することができます。 #!/usr/bin/perl 因みにzoneinfoがあるディレクトリは/usr/share/zoneinfoだと思いますが、これがなかった場合、あるいはあってもVCalendar形式ファイルがなくTZifのバイナリファイルだけの場合には、システム中からlocateで捜します。evolutionの下にあったりするようです。 2010年 1月 11(月曜日)XCalendar祝日設定ファイルのダウンロードXCalendar.hol 2010年版さすがに、もう使っている人もいないのかもしれませんが、LinuxとかBSDの X11用のカレンダーソフト"xcalendar"の2010年用の祝日設定ファイルxcalendar.holです。"/usr/X11R6/lib/X11/xcalendar/xcalendar.hol"にコピーして使います。(本当は"/usr/X11R6/lib/X11/ja/xcalendar/xcalendar.hol"のほうが良いような気がしますが、こちらに置くと動作しませんね) 2009年 10月 7(水曜日)eacceleratorとmod_perlApacheの高速化: eacceleratorとmod_perlWebで動的なページを作るとき、私は通常ページはPHP、CGIにはPerlを使っています。これらの処理が遅いと思ったことは特にないのですが、各々を高速化するソフトウェアがあります。私が書いているコードは大した行数ではないので効果は薄いかもしれませんが、PHPで書かれているserendipityには多少なりとも効果があるかもしれないと思い、導入してみることにしました。 PHPの高速化eacceleratorの設定eacceleratorというものがあるのを最近知りました。Apacheには元々PHPのインタープリターが組込まれているので、特に高速化手段はいらないものと思っていましたが誤解であったようです。仕組としては、コンパイル済みコードをメモリ/ハードディスクにキャッシュしておくようです。(PHPも実行時コンパイルする仕掛だったのですね) ソースはEacceleratorのプロジェクトページから取得することができます。 cd eaccelerator-0.9.5.2/ しかし、何故かphpizeでエラーします。以下のように"/usr/bin/phpize"を修正します。色々インストールしていたからでしょうか。phpizeを修正してから、再度実行します。 6,7c6 インストールします。 make install httpdのrestartの前には、"/etc/php.d/eaccelerator.ini"を編集しておきましょう。 eaccelerator.cache_dir = "/var/cache/eaccelerator" 動作状況は、http://yourhost/usage/control.phpをアクセスすると表示されます。(この画面から設定もできるようです) Perl CGIの高速化: mod_perl通常PerlはCGIとして動かされています。つまり、別プロセスとして起動したperlによって処理されています。 mod_perlは各ディストリビューションで配布されていますので、インストールして下さい。 Alias /perl /var/www/perl これで設定は完了です。httpdを立ち上げ直せば動作します。以下の"hello.cgi"を置くとmod_perlのバージョンが表示されます。 #!/usr/bin/perl -w しかしながら、cgi-binから/var/www/perlにCGIを移動しただけでは、簡単には動作しないようです。 まず、ライブラリのサーチパスが変わってしまい、カレントディレクトリは含まれません。これに対しては、 効果や考察などさて、効果ですが、計測していません。eacceleratorのほうは動いていて、遅くなることはなさそうですのでそのまま使っています。特にエラーも出ていないようです。 mod_perlのほうはちゃんとは動いていないので、使うことができていません。くやしいので少し考察してみました。 localhost$ time for i in `seq 1 1000`; do ./bar; done ここで、"bar"はmain(){exit(0);}だけのプロセスです。trueはbashの組み込みコマンドなので、プロセス起動コストの大まかな評価としてはこれで良いでしょう。 これで見ると、プロセス1個の起動に掛かる時間は大体600μ秒くらいでしょうか。とりあえずは、問題のないオーバーヘッドと思われます。アクセスが極度に多いサーバ、かつ、一回のCGIで行っている処理が軽い場合には無視できないかもしれません。 2009年 10月 4(日曜日)Dave's CD player その2dcdのパッチその2数日前にdcdのパッチを掲載しましたが、更なる変更を加えました。複数のCD ROMを使えるようにする目的でオプションを追加したパッチdcd-0.99.2-2.patch.gzを作成しました。 パソコンに2台以上のCD ROMやDVDのドライブが付いている場合、デバイス名で使い分けることになります。音楽CD(CDDA)の場合は、どのドライブでも再生できるわけですから、dcdでもデバイス指定して動作させたいところです。しかし、元々はビルド時に指定できるだけでしたので、コマンドラインオプションを追加することにしました。オプションは"-D デバイス名"です。 プログラムの構造とコンフリクトがあり、変更が少し大きくなってしまいました。その上、両方同時に再生するのには問題が残っていて、2番目に再生するドライブで"dcd s"としても同時再生できません。これは、常駐プロセスが1台のみ管理することを想定しているためと思われます。しかし、同時再生してミックスして聴く必要は通常ないと思いますので、対応はしないことにしました。
2009年 10月 1(木曜日)Dave's CD playerdcdのインストールとパッチLinux/BSDにdcdというCDプレイヤーがあります。それのコマンドラインでのプログラムモードを可能にするパッチです。 PCのCDプレイヤー今迄gnome-cdを使っていましたが、プログラムモードがない(≒プレイリストが作れない)ことに不便を感じていました。 据え置き型のオーディオCDプレイヤーには必ず「プログラム」モードがあって、カレンダーボタンで簡単に操作できます。この辺りの操作はWindowsのMediaplayerやUbuntuのRythmboxのプレイリスト機能でも許容範囲なのですが、それでもリストからマウスで選択して行くのはやはり面倒です。 dcdのインストールDave's CD playerというCD playerを見つけました。ダウンロードはこちらからできます。これはCUIのCDplayerです。似たようなプロダクトにcdplayがありますが、ずっと高機能です。これはコマンドラインでトラックリストを渡すことができるため、希望している機能に近いようです。 しかし、どうした訳か、単純に"dcd 3 4 5"のように再生することができません。"dcd 3 4 5 quit"や"dcd loop 3 4 5"のようにはできます。"dcd start 3 4 5"ができないのは仕様としても不思議です。 そこで、少しイジってみました。このパッチdcd-0.99.2-1.patch.gzで、以下の処理を加えました。 localhost% dcd 3 5 7 トラック3,5,7を連続で再生してから、再生を止める。 これで快適。しばらく、こちらを使ってみようと思います。 2009年 9月 16(水曜日)Windows 7のインストールWindows VistaからWindows 7へのアップグレードMSDNでWindows 7の商用版(RTL)がダウンロード可能になっていましたので、開発マシンのWindows Vistaをアップグレードしてみました。基本的にVistaからのアップグレードインストールには問題はありません。動作がキビキビするようになって快適になりますのでお勧めすることができます。 インストール状況アップグレードはWindows Vista UltimateからWindows 7 Ultimateで行いましたが、インストール自体は自動で完了しました。 雑多な問題点私は所謂XMouse機能を使っていますが、これ自体はVistaのときと同じく、"コンピュータの簡単操作"で設定することができます。しかし、GUIのレスポンスが向上したためか、AutoRaise機能(マウスを入れて選択したウィンドウが自動的に前面にポップされる)が速すぎて使い難くなってしまいました。これはUNIX系では通常delayを設定できるものです。この遅延設定は以下のレジストリで設定できました。"HKEY_CURRENT_USER\Control Panel\Desktop\ActiveWndTrkTimeout"、単位はミリ秒です。注意点としては、同じパスに"ActiveWndTrackTimeout"という紛らわしいキーがあることです。多分開発途中で不要になったのでしょうがリリース前には整理して欲しいですね。システムからAcrobat Readerが何かエラーを出していると報告されます。解決するにはアップデートしろと言われますが、自動アップデータ(実体はインストーラAdbeRdr910_ja_JP.exe)では"AdbeRdr910_ja_JP.msi"でネットワークエラーが起りました、と言われて失敗してしまいます。ネットを調べたところ、MSIファイルを直接ダウンロード<<http://ardownload.adobe.com/pub/adobe/reader/win/9.x/9.1/jpn/AdbeRdr910_ja_JP.msi>>して、「ない」と言われているフォルダに置けばインストーラが先に進むようになります。ja_JPのmsiの抽出に失敗しているようです。 試験環境をVirtual PCで構築していますが、インストール後には"Virtual Machine Network Service"に対応したNICがないと怒られてしまいます。そこで、"ネットワークと共有センター"の"ローカルエリア接続"にサービス"Virtual Machine Network Services"をインストールします。しかし、途中で"VMNetSrv.sys"がないと言って止まります。これは、"WINDOWS\system32\DriverStore"の下にありますので、それを指定すれば無事完了させることができました。 状況が今一掴めていませんが、時々画面解像度が1024x768になってしまいます。実際のディスプレイは1280x1024でして、PnPディスプレイを再認識させると直ります。この過程で、画面上に置いたアイコンがグチャグチャな順番になってしまいますので、かなり迷惑な仕様(もしくはバグ)です。もしかすると、ディスプレイが繋っていない状態で起動すると、設定をリセットしてしまうのかもしれません。(ディスプレイ切り替え器を使っています)。これはVistaでは問題ありませんでしたし、自動認識できなければ設定をそのままにすべきですよね。 結論アップグレードインストール自体は比較的すんなり行きます。費用を考えなければ、全般的には軽くて快適になるのでアップグレードしたほうが良いと思います。しかし、これがアップグレードだけで27,000円と言われると必要ないかなぁとも思ってしまいます。 問題があるとすれば、Windows XPからのアップグレードが用意されていないことでしょう。Vistaを我慢していたユーザをバッサリ切り捨ててしまっています。しかしながら考えてみると、Vistaにしなかった/できなかった人の場合、マシン性能上の問題も大きかったと思いますので、どうせハードを新規に買うからイイダロと思っているのでしょうか。 おまけ:ハードウェア要求についてハードウェア要求について注意点を少し書いておきます。基本的にはVistaと同じになります。 一番問題なのはVGAで、DirectX 9のサポートがないとAeroが動きません。オンボードのチップセットでは、intel 945以降になります。広く出ている 845, 865はおろか、915でも不足です。CPU種類で言うと、Socket478は全滅、Socket775で945からです。単体カードのほうは、nVidiaのGPUではGeForce FX5200以降、Radeonは9500以降。nVidiaは良いとして、ベストセラーのRadeon 9200で動きません。 サウンドは、チップセット付属のものは大体大丈夫(上記のようになんとかなるレベルも含む)ようです。単体カードのほうは、性能というよりもドライバが提供されるかどうかが鍵になっています。メーカの多くが弱小のこともありサポートが打ち切られているものが殆どであるため、古いのはほぼ駄目と考えなくてはなりません。中でも問題なのはCreative Labo.で、Sound Blaster Live Value以前のドライバ更新を提供していません。マイクロソフト製のがありますが、少なくとも私のカードでは音が歪んで使い物になりませんでした。 CPUは、Pentium4 2.4GHzレベルで充分、メモリはDDR333が1GBあれば問題なしのようです。 2009年 1月 7(水曜日)fetchmail patchfetchmail 6.3.8 のパッチを作成した。最新版の6.3.9 でも特に直っているようには見えないのでそのまま使えるはず。私はfetchmail + sendmail + procmail を使っていて、もう、こんな環境を使っている方はいないかもしれないのだけれど。 GmailがIMAP対応して以来POPからIMAPに移行したのだけど、メール本文に読めない文字が1行分くらい入るようになった。でも、POP3に戻るのは嫌だったので我慢して使っていた。しかしながら、本文にゴミが付いてしまうというのは見過せないので、fetchmailの最新ソースを取ってきて入れ代え、調査してみた。 その結果、エンコードが不明で読めなかったので分り難かったのだけど、どうやらreport_build()が吐いているlogっぽいメッセージが混じってしまうようだった。report_buildはstdoutに吐いていて、それが混っているようだったので、stderrに吐くように変更したら、どうやら不具合は解消されたようである。 1ヶ月ほど使ってみて、特に問題なさそうなので、fetchmailの開発元にpatchを送ってみた。report_build()がどういう目的で使われているか確認していないので、これで正しい直し方なのかは分らない。また、日本語固有の問題だったり、sendmail + procmail を最新にしたら直るようなことなのかもしれない。 2008年 12月 14(日曜日)パッケージ管理ソフト RPM の依存管理のジレンマRedHat系のパッケージは、rpmというコマンドで管理する。パッケージ間の依存性や要求パッケージを管理して、適切なインストール状態を保ってくれる。使っていると、その管理には2つ課題があることに気付く。行き当りばったりではあるが、問題と対処法を紹介する。
rpmは一旦依存性が崩れる(--forceとか--nodepsとかをしてインストールしてしまう)と、それ以降関係するパッケージは全部駄目になる(--forceとか付けることになる)ので、なるべく rpm を作ってインストールするようにしており、このために、checkinstallというツールを使っている。今回もこれでdbusをインストールしたのだが、いくつかのパッケージが依存していてインストールできない、とか言っているので、強引に--nodepsとかやってしまった。しかし、Firefoxのほうは結局コンパイルエラーが出てしまい、一旦頓挫した。 それで、何日か経ってみるとプリントができなくなっていた。cupsが上らない。messagesを見て、何時から上がらなくなっているかを確認し、その時刻近辺で変更されたファイルをfind / -ctime xx で確認する。で、dbusが悪いようだ。 UNIXのライブラリは原則としてversionの共存ができる。version番号が付いており、コンパイル時に使ったバージョンのライブラリを実行時にもリンクできる。ところが、古いバージョンのライブラリは消えてしまっていていて、それがリンクできない、ということで起動できなくなっている。rpmはupgrade(-U)でなくても消してしまうようだ。実際には、configuration(/etcとか)やファイル(/usr/shareとかに)を持つものは、libxx.soが共存できても、configとかのせいで動かなくなるかもしれない。ここまで考えて、ライブラリを共存させることは禁止にしているのだろう。 でも、実際には動くものもある。今回も dbus の古いライブラリだけをコピーしてやれば、動くようになった。やり方は、古いrpmを取ってきて、alien というツールでバラす。(alien --to-tgz xxxx.rpmとするとファイルがtar.gz形式で取り出せる)。それを /tmp のようなところで展開して、libxx.so.0.xxのようなファイルをコピーし、libxx.so.0へのリンクを作っておく。(詳しくはないが、major versionでリンクを管理するようだ)。 実際問題として、dbusを通常の通り make install でインストールしてしまえば、古いライブラリは概ね残って問題はなかったはずだ。でもrpmの依存性を壊したくなければ、rpmにしてインストールする。この辺りをスッキリ解決できるようにするアイデアはないのだろうか。aptではできているのかなぁ。 2008年 12月 12(金曜日)音声ファイルとLinuxでの再生インタネット上には色々な音声ファイルがころがっている。Linuxでも、Windowsでもデフォルト状態では再生できないものも多い。Linuxでの再生方法を少し整理してみたい。
因みに、ffplayでは大抵再生できるようだ。 コマンドライン再生には、wav用の/usr/bin/playというのがあるが、それに習って、上記のフォーマットを再生できるようにしたplay.plを使っているので、お見せする。出力がoss決め打ちだったり、WAVを吐いたりするデコーダをラップしている。また、m4aフォーマットは、ファイルの頭(magic+α)を読んで判別しているが、仕様書は確認していない。 #!/usr/bin/perl 2008年 12月 10(水曜日)Serendipity インストールblogのページを作ってみたくて、ブログツールをインストールしてみた。 この手のものはあまり知らなかったのだが、Movable Typeの名前だけを知っていたので、それをキーにしてWikiPediaを見てみると、随分色々とある。WordPressとNucleusというのが良く使われているようだ。試しに Movable Typeをインストールしてみて、その具合を見て、結局Serendipityにした。 基本的に組み合わせは、
この中では、4が一つの選択のキーとなるだろう。フリーで使えるのは、MySQL, Postgres, SQLite。この内、SQLiteは呼出しプロセス内で動くみたいで、軽そうである。因みにMobile Typeは、MySQL, Postgres, SQLiteに対応、WordPressとNucleusは、MとP、SerendipityはMとSに対応している。私のサーバは非力でOSがちょっと古いし、沢山のユーザに提供するわけではないので、SQLiteが良さそうだ。 Serendipityのインストールserendipity-1.3.1、Linux-2.4.X、Apache-2.X、PHP4.4、SQLite-2.8で動かした。PHPにSQLite APIが必要で、php-sqlite-1.0.2というのを別途インストールし、php.iniに、"extension=sqlite.so"を足した。(PHP5なら付属しているとのこと。また、php-sqliteはPHP4.3以前では動かない)。SerendipityのアーカイブはDocumentRootにserendipityというディレクトリとして展開すればOK。後はブラウザから展開したURL(http://foo.com/serendipity/index.php)にアクセスすると自動的にインストーラに入る。要求適合の状況が表示され、問題がなければ、後は自動でインストールされる。(RDBが使えなかったりすると、赤表示になって進まなくなる)。簡単だ。 ほぼ完全に日本語化されている。(アドミンメニューに若干の英語が残っている程度) Movable Typeのインストール(ついでのおまけ)MTOS-4.23-en、Linux-2.4.X、Apache-2.X、Perl-5.8、PHP4.3、SQLite-2.8で動かした。PerlのSQLitel APIが必要でperl-DBD-SQLite-1.13というのを入れた。cgiなので、基本的に本体アーカイブをcgi-bin/mt/に、static-mtをDocumentRootに展開する。cgi-bin/mt/mt-config.cgi-original を mt-config.cgi にリネームして設定する。CGIPath、StaticPath、Databaseを設定(SQLite以外はコメントアウトし、DBファイルのパスを指定)。DBファイルは、apacheさんが書き込みできる必要がある。 動き自体は軽い。しかしながら、設定メニューなどは日本語で問題ないのだが、肝心の公開される画面のメッセージカタログが英語になってしまう?。調べていて、開発元の日本法人Six Apart K.K.のページを見るとライセンスが?な感じ(GPL版は問題ないと思うけど)もあり、日本語化の方法も分らなかったので、使うのを諦めた。(静的なコンテンツ作成対応など、技術的には良いと思うのだけど) |
ブログ管理 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
