mini9とmini10v
inspiron mini10vが出て、VGAの外部出力ができるようになったが、mini9が終焉の兆しを見せてきた。mini10vの細かい仕様の情報があまりないので、内部を見ればだいたいわかるだろうということで、デルの分解のサイトを調べてみた。
四機種すべてについて解説のページがあり(mini9、mini10、mini10v、mini12)、サービスマニュアルを見ると分解の仕方が説明してある。mini10vは、基板の形はmini10と似ているが、メモリ等はmini9に似ている。また、HDDは2.5inchのSATAのようだ。拡張性をかうならば、10vが一番優れているだろう。
cronでntpdate
時刻のずれ
久しぶりに
sudo ntpdate-debian
を実行してみたら、三分もずれていた。ntpを入れてからは、PCの時刻を正確だと思っていたのだが、予想よりもずれるようだ。そこで、cronに登録して、自動的にntpに問い合わせるようにした。/etc/cron.daily/ntpdateを作成して、
#!/bin/sh ntpdate-debian
と内容で保存して、
sudo chmod +x ntpdate
として実行権限を与える。これで、一日一回、時刻を合わせてくれるはずだ。一時間に一回ぐらいの方が良いかな。
n進法表記
linuxでの16進数の計算
WindowsとLinuxのソフトを比較すると、多くの点でLinuxの方が使いやすい。しかし、標準で入っているソフトの中で、唯一Windowsの方が勝っていると感じるのが計算機である。binaryをいじっていると、16進数の計算をしたくなるが、Windowsのcalcでは計算できるが、Linuxのxcalcだとできない。kcalcだとできるようだが。
そこで、rubyを使って計算することになる。これまでは、
ruby -e 'p "%x"%(0xa+0xb)'
とやっていたが、実はもっと便利なmethodがあることを知った。to_s(n)で、n進数の表記に変換できるのだ。すると、
ruby -e 'p (0xa+0xb).to_s(16)'
とすれば良いことになる。でもこちらの方がbyte数が多いな。ちなみに、1-zまでで表せる36進数まで対応しているようだ。99じゃなくてffの表を作るプログラムはこんな感じ。
n=16 for i in 1...n for j in 1...n print "%2s "%(i*j).to_s(n) end puts end
これで、nを変えるだけでzzの表まで作ることができる。
lennyのtex
ptex-jisfontsとrevtex
論文を書くためにaptitudeでrevtexを入れたら、文句を言われた。ptex-jisfontsとかちあうとかなんとか。すると、platexが使えなくなってしまった。まあ、英語の場合はlatexで問題ないだろうが、日本語のprosperが動くのか心配だ。
texのパッケージも日々変化していると思うので、lennyになったときにどれを入れようかと迷って、結局ptex-bin, xdvik-ja, ptex-jisfonts, gs, gv, gs-esp, gs-cjk-resource, xpdf, xpdf-japaneseを入れた。しかし、revtexを入れたことによって、ptex-binとptex-jisfontsがはずれたはずなので、何が残っているのやら。
いつか、インストールすべき適切なパッケージが何かを調べなければ。
PCの不調
家のPCの一台が起動できなくなった。
問題のPCは、二番目に速いマシンで、使用頻度は一番高いものだった。HDDも三つぐらい積んでいたと思う。しかし、最近はmini9を家に持ち帰って使っていて、立ち上げる回数が減っていたので、すねてしまったのかも知れない。
発見した初日は、途中まで立ち上がって、いきなり再起動を繰り返すという症状だったが、今はbootの初期画面で止まってしまうようになった。最初は、電源が不調になって、途中で供給電力が不足してrebootするのかと予想したが、今は初期段階で止まるようになったので、マザーボードを疑っている。もしかするとHDDの問題かもしれないが、それならそのようなコメントが出る気がする。電源はいくつか予備があった気がするが、故障しているものもあるので、正常なものをいくつ持っているのか定かではない。近い型番のマザーボードもどこかにあった気がするが、捨ててないことを期待する。ほとんど同じマザーボードなら、うまくいくとOSも再インストールしないでそのままつかえるし。
良い機会なので、中身から一層して、組み直すべきかもしれない。しかし、そんなことをしている時間も気力も無いかもしれない。
2009/6/15追記 なかなか寝付けなかったので、問題のPCを開腹してみた。電源を別のものにつなぎ変えても症状は変わらないので、電源はとりあえず大丈夫だと判断した。マザーボードにも一見何の異常も無い。そこで、メモリを疑うことにした。メモリは四枚挿さっているが、これをいろいろと挿し替えると、起動することを確認して、これが原因であることが分かった。一つのメモリが死んだのかと思って、一つ一つ挿して調べてみたが、どうやら死んでいないようだ。マザーボードの仕様としては、四枚挿す場合には、二つずつ同じ規格のものを使わなければならない。しかし、そのPCを立ち上げた時には、良いペアが見つからなかったので、その辺りを適当にしていた。しかも、512M3+256Mという構成である。メモリをあさって同じ規格のものを探すと、512M2+256M*2のペアが見つかったので、これに付け替えると、無事起動するようになった。まあ、メモリの量は減ってしまったが。
PCManFileManager
lennyとxubuntu
lennyのPCManFileManagerでCDROMにアクセスしようとしたら、簡単にはできなかったので、結局コマンドからmountして使った。また、その後いろいろといじっていたら、ドライブの自動認識部分が死んでしまったようだ。どうやって復活させるのだろう。
別のPCだが、xubuntuでは、CDROMは自動で認識された。その当たりはubuntuの方がきちんとしているのだろうか。
lennyのxscreensaver
バグかな
PCを長時間使って無かったときには、xscreensaverが働いているが、lennyのものは、ときどきハングしているようだ。最初はlinux自体が止まったのかと思ったが、X無しでは動いていたので、別のターミナルからxscreensaverをkillしたら、動き出したので、おそらくxscreensaverがハングしていると結論した。etchの時にはこんなことは経験しなかったが、lennyになってからだろう。
SDへのxubuntuのインストール
2Gでぎりぎり
Windowsで動いているeeepc 901で、ubuntuも起動できるようにするために、SDにインストールを試みた。用意したのは2GのSD。これでは容量が足りないかも知れないとは思ったが、とりあえず決行。まずは、ubuntu9.04のnetbook remixを試したが、これはあっけなく容量不足で失敗。60%代でエラーが出る。xubuntuなら、1.5Gぐらいだという噂を見て、次に挑戦したが、あと一歩ということろで断念したが、とりあえずその記録をしておく。
まずは、xubuntuで、partitionerでSDを指すsdcを手動でext3の一つのファイルシステムにしてルートをマウントポイントとして指定する。これでとりあえずインストールは完了したのだが、二つ問題が生じた。
一つは、やはり容量の問題だ。インストール直後は問題なかったが、日本語環境を設定したら、SDの使用率が100%になってしまい、これ以上は無理と判断した。aptitude cleanをしたり、不要なapplicationを消したりしたが、なかなか厳しい。まずは、日本語を入れる前に、かなり容量を削って、そして日本語を入れるのが良いようだ。
次に問題だったのが、grubがSDDにインストールされてしまったことだ。普通は聞かれるだろうと思っていたが、何も聞かれずに無断にインストールされてしまった。よくよく調べてみると、advancedを選んで、grubをSDに入れるように指定すれば良いようだ。これは今度試してみよう。SD無しではWindowsが立ち上がらなくなってしまったので、どうしようと思っていたが、XpのCDROMで修復を行ったら、MBRを元に戻すことができた。具体的には、XpのCDROMから立ち上げて、修復を選択、Cを選んで、fixmbrを実行する。
まあ、この練習を踏まえて後日再挑戦する予定です。
プログラミング言語Ruby
1.8と1.9の違い
先日、図書室にいったら、rubyの本があったので、手に取ってみた。とりあえず、発行日を調べたら、今年の一月だった。けっこう新しいなと思って中を見てみたら、面白そうだったので、買ってみた。「プログラミング言語Ruby」という本で、著者には一応まつもとゆきひろが入っている。
少し読んでみたが、1.8と1.9に関しては、普通の拡張なのかと思っていたが、結構大きな変更があるようだ。特に文字列の操作に関しては、マルチバイト文字への対応の関係だと思うが、かなり変わっている。
"abc"[0]
とした場合に、ruby1.8だと、一文字目の文字コード97が返ってくるが、ruby1.9.0では、文字"a"が返ってくるらしい。しかし、debian etchのruby1.9だと97が返ってくるな。debian lennyとubuntu9.04のruby1.9.0だとちゃんと"a"になる。
rubyでbinaryを扱う場合には、この違いは非常に重要である。文字として取り出すときには、1.8では
"abc"[0,1] "abc"[0].chr
のようにしていたが、これらは1.9でも動くようだ。一方で、数字で取り出したいときには、1.9では
"abc".getbyte(0)
とするが、これは1.8では動かない。両方に互換性にある書き方をできないのかな。また、binaryを扱うときのopenの仕方も、
open("file.dat","rb") open("file.dat","r:binary")
と変わったようだ。"rb"でも動くようにしてくれないかな。
今後、binaryを扱うプログラムをどのようなコードで書くかを検討しないといけない。
2009/5/30追記 第一版のP110に間違いを見つけた。 「真」を「進」と書いているだけなのだが。
LXDE on xubuntuのnetwork
wicd
昨日インストールしたxubuntuであるが、xfceではあまり問題ないようだが、LXDEでは少し問題があることが分かった。ネットワークの設定ができないのだ。/etc/network/interfacesをいじれば良いかと思っていたが、このファイルにはloしか記述が無い。eth0とかはどこにあるのかと探してみたが、見つからない。
いろいろと調べていたら、network-managerがそのあたりの処理をやっているらしい。しかし、LXDEからの立ち上げ方が分からない。xfceで設定して、logoutしてLXDEに入ればうまく動いているようだが、これではまるで意味が無い。そこで、wicdを入れることにした。
wicdをインストールしようとすると、network-manager-gnomeがはずれるが、気にせずそのまま進めたら、うまくインストールされなかった。おそらく、wicdを取得する前に、networkが切断されたようだ。しかし、network-managerがアンインストールされているので、networkにつなげない。しかたがないので、/etc/network/interfacesを編集してから、立ち上げ直して、インストールしたらうまくいった。
panelにwicdを入れてそこから設定すると、うまくいっているようだ。無線LANにも問題無くつなげることができる。あとで自宅の固定IPにつなげるかを試してみよう。
2009/5/11追記 固定IPもうまく動いた。ただ問題なのは、DHCPと切り替えると、IPの情報が失われてしまうので、毎回IPを指定しないといけないことだ。どこかに設定が残っていないのかな。