僕の恐竜を返せー

とても評判の良いWindows 7をどうしても欲しくなり、先日アップグレード版を購入。Parallels上で動いていたWindows XPをアップグレードインストールして、Windows 7ユーザの仲間入りをしました。

僕はもちろんWindows 3.1の頃からずっとWindowsは使い続けていますが、NT3.51の頃からずーっと愛用していたものがあります。それは「恐竜」です。

saurus

これは、Windowsに標準で入っているマウスカーソルです。上は青の恐竜ですが、黄色の恐竜もあり、しかもリボンがついている可愛いやつです。どれだけ僕の心を癒してくれていたことか。Windowsをインストールし終わって、真っ先に最初にすることは、マウスカーソルをこの「恐竜」に変更することでした。

なのに!Windows 7には、恐竜がいない!

mouse_list

これはかなりのショックです。Windowsは退化したといってもいいくらいです。ひどいです。あんまりです。Parallels 5.0になってAeroも効くようになり、さぞかし恐竜も気持ちよく歩いてくれると信じていたのに。。。

誰か僕にWindows 7で恐竜を復活させるための呪文を教えてください。

Solaris FreewareのURLが変更になってる件

サーバのOSに使ってるSolaris 10は、フリーソフトのインストールに関してOpen Source Software for Solarisを利用している。pkg-getコマンドを使って、パッケージをサクッとインストールできる手軽さが魅力なのだが、今日やってみると・・・

Resolving ibiblio.org… 152.46.7.80
Connecting to ibiblio.org|152.46.7.80|:80… connected.
HTTP request sent, awaiting response… 404 Not Found
10:58:52 ERROR 404: Not Found.

ERROR: could not get catalog file

とエラーになってしまった。どうやら、パッケージの配布のURLが変更になったらしい。
/opt/csw/etc/pkg-get.confファイルのurlパラメータを以下のように変更すると、うまくいった(情報ソース)。
#url=http://ibiblio.org/pub/packages/solaris/csw/unstable
url=http://ibiblio.org/pub/packages/solaris/opencsw/unstable
なんでこんな変更するのよ。。。

Solaris10でのbindが遅かったこととその改善策

新居に引っ越して、もうすぐで1ヶ月。外構も昨日終わり、ほぼ完成。今まで実家に置いてあったサーバも新居に持ってきたため、自宅でのネットワーク環境もそのサーバが提供するサービスが基盤となった。アパートでは、ルータのDNS機能を使っていたが、今は自作サーバのbindが自宅内ネットワークのDNSを担当している。
しかし、何故か名前解決が遅い。5秒程度かかっている模様。完全に体感できる遅さで、だんだんとストレスが溜まってきた。試しにルータのDNSに切り替えてみると、瞬時に結果が得られる。これは自分で構築したbindが何かいけないことになってるはずだ。
ということでいろいろ検索して原因を探すと、ipv6が遅さの原因らしい。Solaris10付属のbindは、ipv6に対応したコンフィグレーションとなっていて、ipv4よりも前にipv6が優先されて参照され、毎度毎度ipv6のタイムアウトを待っている状態だった。しかも、bindのipv6対応の無効化は、再makeが必要とのこと。面倒なことになりそうだけど、ネット環境は精神衛生上大切なので、チャレンジすることにした。
最新のbindを落としてきて、–enable-ipv6=noを付けてconfigure&make。「そう言えばbind8からbind9へのバージョンアップだな」とか思いながら、コンパイル&インストールは終了。設定ファイルはそのまま引き継ぐので手を加えず、svcのマニフェストファイルに手を入れて新しくインストールしたbindが使われるようにして、サービスを再起動。
期待通り、namedが起動しない。「unknown key ***」。設定ファイルいじってないのに。。。
どうもbind9では、named.confファイルからrndc.keyファイルをinclueしないといけなくなったらしい。そのための文をnamed.confファイルに追記して再度サービスを起動したら、ちゃんとnamedが常駐するようになった。
速い。これは速い。というか、これが普通。今までのipv6タイムアウト状態があり得なかった。
というわけで、新居でも快適なネット環境となりましたとさ。めでたしめでたし。
[参考にしたサイト]
http://cocorat.com/blog/entry/solaris10%E3%81%A7ipv6%E3%82%92%E7%84%A1%E5%8A%B9%E3%81%AB%E3%81%97%E3%81%9Fbind9%E3%82%92%E5%B0%8E%E5%85%A5%E3%81%99%E3%82%8B
http://sakanade.asablo.jp/blog/2008/05/29/3548480

執筆環境

IKEAでこの前買ってきたダイニングテーブルにて、現在各種記事を執筆中。
RIMG2575.JPG
RIMG2578.JPG
先週末で前職は終了。現在の僕は「フリー」「ニート」「ぷー」「無職」「社会不適合者」「落ち武者」「脱落者」「・・・」と、様々な言い方が当てはまる。こんな状況も悪くない。あ、執筆活動とかやってるから、無職とかは嘘になる、のか。。。
そんなこんなで、元気です。

CSWでのパッケージ更新に失敗した時の解決方法

Solarisでのパッケージ管理にCSWを使っているが、ある日を境にupgradeに失敗してしまう状況が続いていた。

<CSWcommon> の削除が一時停止しました (対話型操作が必要です)。
システムは変更されていません。
Analysing special files…
Hmmm. Retrying with different archive offset…28 ブロック

現在の管理上では、<CSWcommon> パッケージに固有なインスタンスを作成する必要があります。ただし、同じシステム上で 1 度にサポートできる最大数のパッケージインスがすでに存在しています。

システムは変更されていません。
ERROR: could not add CSWcommon.

この現象で、せっかくmercurialを使ってみようと思っていたのに、出鼻をくじかれることになった。あれこれ調べた結果、/var/sadm/install/admin/defaultファイルのinstance項目を、uniqueからoverwriteに変更することで問題を回避することに成功。どうやらuniqueだと「上書きインストール厳禁」という設定らしく、これをoverwriteにして「上書きインストール大歓迎」としてあげればオッケーになった。

GATSBYを使ってMighty Mouseのボールを掃除する方法

長らくMighty Mouseを使ってきたが、ついにボールの転がしによる下スクロールが一切効かなくなってしまった。いろいろと調べた結果、
Mighty Mouse の清掃方法 – 公式のお掃除方法
Appleマイティマウスを分解しないで掃除する – Any Way You Want it
Mighty Mouse にサラダ油? – 感じ通信
まず、公式なお掃除方法をやってみたがNG。両面テープはなく、会社の自分のデスクにいる僕にサラダ油を使えるわけもない。
そこで目に入ったのが、GATSBY FACIAL PAPER。
200807021102000.jpg
これで何とかなるかもしれない。まず、ペーパーの角を、ボールと本体の間に差し込んでいく。この際、シャーペンの先を使って押し込んでいった。全然入らないかと思いきや、結構入っていく。
200807021057000.jpg
そして差し込んでいった後の状態がこれ。この状態で、ボールを左右に回してみる。ペーパーが間に挟まっているので回らないんだけど、グリグリとしてみる。
200807021058000.jpg
その後、ペーパーを引き抜く。
200807021058001.jpg
そして、マウスを本体に接続してボールを回転させてみると・・・なんと、下スクロールが復活!買った当初のように、快適にスクロールするようになった。
巷では「分解掃除」なんてことも試みている人もいるようだが、GATSBYはかなりオススメ。最初ウェットティッシュを考えたのだが、それよりはGATSBY FACIAL PAPERの方が強度があるため、ちぎれちゃって取れない、的な事故も起きにくいので安心である。
Mighty Mouseの掃除でお困りの方は、ぜひ参考にして欲しい。

Tracのリストア

Fedoraで運用していた各種tracのSolarisへの移行を試みるも、期待通りに(?)簡単にできず。これまた時間を費やす結果となった。結果としては、うまくいったんだけど。
最近のSolarisは非常に便利になっていて、CSW(Community SoftWare)なんてものを頼れば、かなり簡単に環境が整う。何も移行するものがなく、新規にサーバを立てるだけなら、ホントにあっさりとうまくいってしまうだろう。しかし、今回はFedoraで運用していたものを移行しなければならない。そのためには、バックアップしたものがちゃんとSolaris上でも有効でなければならない。
つまり、導入する各種ソフトウェアのバージョンの差が問題になるのだ。昨日tracをCSWからpkg-get -iでインストールした結果、依存ライブラリとして同時にインストールされたsqlite3のバージョンが古かったために、バックアップしておいたtracのコンテンツがエラー(OperationalError: unsupported file format)となってしまった。どうやら3.3.xで作られたデータベースは、3.2.xでは読み込めないらしい。当然といえば当然。CSWからインストールされたものは、Sqlite3.2系統。きっとFedoraで運用していたときは3.3系統だったのだろう。
仕方なく、sqlite3.5系統のソースファイルをダウンロードしてmakeをする。CSWによってインストールされたsqliteのインストール先は/opt/csw下だったので、configure実行時に「–prefix /opt/csw」を付けておく。で、make installで強引に上書きインストールを行い、apacheを再起動。なんとか無事にtracが復活した。こみゅすけのRESTful APIも見れるようになった。
細かな点でいろいろとまだやることが残っているのだが、あとは地道にゆっくりと楽しむつもり。Solarisに換えて、こみゅすけがちょっぴり速くなった気もする。。。

サーバをSolaris10に移行しています

ここ数日、このブログも、Eclipseのアップデートサイトも、こみゅすけも、eisbahn.jpで提供している全てのサービスを停止させていただいていた。昨日のデブサミでも何名かの方々から「どうしたの?」とご心配いただいてしまった。
落としている間何をしていたかというと、3年近く運用環境としていたLinuxのディストリビューション「Fedora(3, 6)」に別れを告げ、Solaris 10に移行しようと思ってせっせと作業をしていた。OSのインストール、Bind、Postfix、qpopper、Apache、PostgreSQL、perl、MovableType、VNCといったところがやっと導入完了。作業を始めたのがこの前の日曜日なので、約5日間かかってブログの再開までこぎつけた。
とにかく、とにかく、とーにかく、SolarisはFedoraのように簡単にはいかなかった。はまった点を残しておこう。

  • dtloginはXDMCPが有効になってない。そもそもdtloginの起動オプションに「-udpPort 0」とかついてて、VNCで繋ごうとしてもログイン画面が出なかった。このオプションを外して、無事にVNC & XDMCPで遠隔ログイン完了。
  • perlのCPANでDBIがインストールできない。Companion CDを丸ごとぶち込んでもNG。cc絡みなのか、Sun Studio 12をインストールすることで、無事DBIのインストール完了。
  • perlのCPANでDBD::Pgのtestが通らない。データベースへの接続に失敗してしまう。「DBI_DSN=dbi:Pg:dbname=hoge perl -MCPAN -e shell」として、わざと存在しないデータベース名を指定してテストをスキップさせてしまうことで、DBD::Pgのインストールを完了させた。
  • /var/svc/manifest/下のxmlファイル群は、その内容を変更しただけでは反映されない。svccfg import [ファイル名]をやってあげることで変更内容が反映された。
  • sfw、csw、/usr/local、などなど、パッケージがいろんな箇所にインストールされるため、いろんな場所にあるlibを見るようにしないといけない。crleコマンドを使って/var/ld/ld.configファイルを作ることで対応した。
  • 標準で導入されたApache1系と2.0系をアンインストールして、csw版のapache2.2系をインストール。しかしsvcのmanifestファイルがなく、自動起動できないじゃん、と数時間悩む。実際にはmanifestがなくてもちゃんと「cswapache2」という名前で登録されていたので、無事起動完了。

細かなことをあげるともっとあるのだが、とりあえず山は脱したという感じ。まさかSun Studioまでインストールするはめになるとは思わなかった。しかし、久々に楽しい作業である。「次々と襲ってくる困難に立ち向かう」という挑戦魂と、できたときの喜びは、何とも言いがたいものがある。
次は、こみゅすけを初めとしたrailsアプリの復活に取り掛かる予定。引き続きeisbahn.jpをよろしくお願いいたします。

なぜソースコードをオープンにすることに抵抗がないのか

僕は、自分が作ったソフトウェアのソースコードを公開することについて、ほとんど抵抗がない。一般的には、バイナリコードのみを公開すれば、利用者は満足するはずである。にも関わらず、ソースコードを公開することに関して、「別に当然じゃん」的なことを思ったりする。何故なのか?
PCというものに出会ったのは、小学校高学年。それ以来、僕はPCというものが手元にずっとある状態だった。もちろん昔はインターネットなどがなかった時代。ソフトウェアは、店頭にならんでいるもの、という認識が一般的だった。
しかし、僕が小学校に行ってたとき、つまり80年代から、僕は「ソースコードが公開された状態のソフトウェア」が数多く存在する環境で育った。そう、雑誌である。雑誌の中でも、「マイコンBASICマガジン」や「I/O」など、読者が投稿したプログラムが数多く掲載されている雑誌を好んで読んだ。これらは月刊だったので、1冊につき20本以上掲載されたソースコードについて、毎月目を通していたということになる。年にすると、最低でも20×12=240本のソースコードを読んでいる計算。
1本1本は誰が作ったかもわからない、レベルも様々なもの。僕は「ファミリーベーシック」「FM-77」「PC88MH」という経路を辿ってきたが、それこそ自分が持っていない機種のソースコードまで、脳内で実行していた。機種依存のわからない命令は、本屋に行ってその機種を解説している本を見つけ、立ち読みしたり購入したりして知識を手に入れる。そんな毎日だった。
つまり、今でいうオープンソースの中で、僕は育ってきたのだ。「いつかは雑誌に掲載されるようなプログラムを作るんだ」というモチベーションが、当時の僕をPCに向かわせていたと振り返ることができる。ソースコードが公開される、という素晴らしい結果に憧れていたんだ。
もちろん、店頭に並んでいるゲームやワープロなどといった、いっぱい売れて広く認知されるバイナリコードを生み出すことにも憧れはあった。でも、特に売れたゲームなどは、その高い技術が「内部解説本」としてユーザの手に渡ることがあった。その解説本には、もちろんそのゲームで使われている技術が、ソースコードの状態で掲載されていた。つまり、店頭に並んでいたバイナリコードも、そのソースコードの一部はオープンにされ、僕はそれを見て高い技術に触れてきた(当時理解できていたかどうかはともかく)、ということだ。
結局、昔も今も、個人や企業が作ったソフトウェアはソースコードが公開され、技術者が目にすることができる、という状況にかわりはないという感覚を僕は持っている。そして、自分で書いたソースコードをオープンソースにできるということは、自分にとってこの上ない喜びなのだ。
ちょっと極端な感じの内容になってしまったが、最近なぜか学生当時のプログラミングに対する気持ちがよみがえってくることが多かったので、電波的な話をエントリしてみた。
どうなんだろう、今となっては、↑は「年寄りの昔話」なのだろうか。。。

tracがsubversionの履歴を拾ってくれなくなったとき

気がつくと,ある日からsubversionへのコミット履歴などをtracが拾ってくれなくなっている現象が発生するときがある。今まさに,その状況に直面した。「subversionのリポジトリが壊れたのかっ!?」とtracの表示を信じてしまったのだが,別のsubversionクライアント(subclipse)で覗いてみると,壊れていないっぽい。
ググって調べてみると,tracがsubversionの履歴を拾ってくれなくなったら,以下のコマンドを試すといいらしい。

trac-admin [svnリポジトリのパス] resync

見事にこれで復活可能。subversionの履歴がtracのTimelineに表示されるようになった。
・・・冷や冷やものだ。そろそろバックアップを真剣に考えなければ。

Get Adobe Flash playerPlugin by wpburn.com wordpress themes