2009年1月31日土曜日

とどろけ!一番

最近読んで面白かったマンガ、その2。



とどろけ!一番
のむらしんぼ



200901301



以前、コロコロコミックの復刻版(?)「コロコロ伝説」が出たときに、付録のコミックスとして、この「とどろけ!一番」がついてて読んだこともあったのですが、今回読んだこれも、コロコロ伝説とあわせて出版されたもの。

過去記事



コロコロ伝説で読んだとき、「あの話がのってない!」と残念だったのが、今回読んだ、こっちの本では収録されてました。



あの話というのは、「四菱ハイユニ」を自分で作る、というもの。



「ピンチ!秘技しばり」の巻



200901302



自分で鉛筆を作る、しかもこんなにもトンデモな鉛筆を!!ということで、小学生のときに読んで以来、ずっと記憶に残ってたんですけど、話の流れはすっかりと忘れてました。鉛筆が無くなったので自作することになった、ということは覚えていたんですが、ヒロインの明日香が隠してしまったとは・・・。



さて、読んでみたんですけど・・・



自作せずに、お店に買いに行けばよかったんじゃない?



一応、「もう時間がない!よし、こうなったら、四菱ハイユニを作るしかない!!」というセリフが入ってはいますが、そのわりには、失敗して何度も作り直してるし・・・



なんていう指摘は、まったくもって無粋。このマンガでは、そんな論理は通じない。頭をカラッポにして、おもいっきりバカになって読むべし。





名前で思い出したんですが、そういえば、轟二郎というタレントがいましたね。びっくり日本新記録という番組に毎週のように出てた人。





2009年1月30日金曜日

デスマスクの旋律

最近読んで、おもしろかったマンガ。



200901291



↑に収録されていた、「デスマスクの旋律」



200901292



なんかもう、死語のオンパレードって感じが、なんともいえず・・・



「録(レコ)って」って、そんな言葉あったんでしょうかね???



胸がはだけた服装とか・・・



まあ、そんなところ以外でも、なんか、恐怖新聞っぽいところがよかったです。



ただ私は、高校生のとき「うしろの百太郎」にハマって以来、うしろの百太郎の方が好きですけど。







この本には「デスマスクの旋律」のほかに、「星と太陽と死神」、「ホラーペンション」が収録されていましたが、そっちは、別の本で読んだことがありました。
「星と~」は、なんかもうね・・・(笑)



2009年1月29日木曜日

PC-1480U

大学に入学してすぐに買った(というか半強制的に買うことになっていた?)ポケコン、PC-1480Uです。








20090128



ソニーのVAIO type Pよりは一回り小さいので、きちんと、ジーンズのポケットに入ります(笑)



これ、シャープと大学生協が共同開発したとかいうことで、型番に「U」という文字がついてます。



毎年のようにモデルチェンジしてて、入学した年によって、PC-1480Uとか、PC-1490Uとか、機種が違ってました。



このポケコン、ものすごく大活躍。今でも、これほど使いやすい計算機はない、と思ってます。といっても、最近はほとんど使わなくなってしまいました。ちょっとした計算はExcelで・・・堕落したなぁ。

ところで、いつも思うんですが、パソコンの「電卓」ソフト。あれって、どうして、ああなんでしょうか。本物の電卓は、それ自体、使いづらいものです。大きさとか性能とコストなどの制限から、ああなっちゃってるんでしょうから、仕方ないことかもしれません。しかし、電卓よりもパソコンのほうが高性能なのに、どうして、パソコン上の電卓は、本物の電卓の使いづらさまでも再現しちゃったんでしょうか。あれは本当に理解できません。



RS-232Cのレベルコンバータを自作してPC-9801VMとの間でデータ交換したり、ポケコン同士で通信するケーブルを作ったり、メモリを増設したり。



メモリ増設は、中のチップをはがして、新しい大容量のチップを半田付けするんですが、私にはあのピッチの短い端子を半田付けするのは無理!と言って、他の人にやってもらいました。1本ずつ半田付けするのではなく、ドバッ!とつけると、表面張力みたいな現象で、勝手にうまい具合に半田が隙間にしみこんで行ってくれるみたいでした。



ソフトウェア面では、処理速度を稼ぐためにアセンブラを使ってプログラミングしだし、なぞのゲームをいくつか作ってみたり、なんの役にもたたないプログラムを作ってみたり、いろいろ勉強しました。



このポケコンと出会ったおかげで、いろんなスキルを身につけたと思います。



ちなみに、中学のころは、PC-1245を使ってました。





以前、すがやみつるblogで紹介されていた動画。あー、そうそう。うん、そうだった。そう言いたくなります。









2009年1月28日水曜日

Macintosh 25周年 ~ なんだとさ

Macintoshが生まれて、25年たったそうです。





90年代後半には、Appleがつぶれる寸前までいったときもあったそうなので、よく持ちこたえたな、という感じ。



20090127



もっとも、現在売ってる「Mac」と、私が慣れ親しんだ「Macintosh」とは、まったくの別物だったりします。CPUは違うし、OSは違うし、・・・でもやっぱり、何か受け継いでるものはあるな、と思いました ~ 以前、店頭でMac mini買おうかなぁ~と思いながらさわってたときのこと。

上の「フォトレポート」のリンク先では、Macintosh SE/30が「史上最高のMac」に選ばれたと書かれていたんですが、なるほど、私も、SE/30こそが、これぞMacintoshだ、っていう感じがします。

やっぱり、あの形がいいんですよ。NECもあんな形の「PC-9801CV」という機種を出したりもしてましたっけ。



なんてことを言いつつ、私が使ったことがあるのは、Macintosh IIシリーズばっかなんですけどね。

大学に入学して、どっかの研究室におじゃましたとき、Macintoshがありました。1989年かな。あのころは全然知らなかったんですが、色がついてたんで、Macintosh IIだったんでしょう。

パソコンの使い方をぜんぜん知らなかったのに、Macintoshならなんとなく見た目だけで使えてしまう、という衝撃的な出会いだったような。画面にはメッセージが英語で出てくるんで、それがちょっと難しかったかな。

その後、アルバイトで、Macintosh IIfxを使ってました。あのころ、カラーグラフィックを扱うなら、当然マックだろ、みたいな感じでした。

そんな経験もあって、仕事ではなく「おもちゃ」としてパソコンを使うならやっぱりマック、と思ってMacintosh IIciを買いました。ちなみに、仕事ならPC-9801シリーズ・・・でした(笑)




写真のフロッピーディスクは、Macintosh IIciに付属してたSystem 6.0.7J。
あのころ、オペレーティングシステムは、フロッピーディスクでも起動したんだっけ。
てゆーか、CD-ROMは無かったですね。漢字Talk7が出たとき、CD-ROM版が出て、私も「倍速CD-ROMドライブ」(笑)を買いました。



赤いハンコが押されているのは、OSをアップグレードするときにアップルに送付して、その印・・・とかそんなんだったかな?



200901272



なんとなく、またMacが欲しいな、と思う今日このごろなのです。





2009年1月27日火曜日

01月27日のココロ日記(BlogPet)

料理で一番大切なのはオブジェクトをやわらぐことだって、ブログ妖精学校で教えてもらいました。さっそく試してみたいです

*このエントリは、ブログペットのココロが書いてます♪

うっかり

コンビニで雑誌を買うとき、上から2番目のを選んで買ったら、別の雑誌だった・・・。



200901261



でも、よくある話ですか?!



スペリオールだったので、まだましだったかな。「味いちもんめ」の噂を以前聞いたことがあったんですが、今回読んでみて、(以下略)



私、コミックスはけっこう買い集めてあるんですが、ボンさんがやっぱりいいんです。





本来、買うつもりだったほうの雑誌。



200901262



ゲゲゲッ!なんだ、この表紙は・・・





2009年1月26日月曜日

かぜよみ

先週の日曜日。
ひさしぶりに買ってみました。



200901251



こういうの聴きたくなる、そういう気分になるときもあるかな、と思ったのでした・・・



2009年1月25日日曜日

ML115 G5にWindows7 ベータ をインストールしてみようとしたんだけど

重要なことには使っていないので、動かなくなってもあまり困らないML115 G5と、とくに用途はないけど買ってきたハードディスクがあったので、Windows7 ベータ版をインストールしてみることにしました。



ずいぶん前に、ISOイメージはダウンロードしてあったので(32bitと64bit、日本語と英語、の組み合わせで4種類)、とりあえず日本語の32bit版をDVD-Rに焼いて、ML115 G5に入れて、DVDからブート。



スルスルっと処理が進んでいって・・・



200901241



ここで、固まりました。



1時間くらいそのまま待っていると次に進む、とかいうことがあるかも知れませんが、3分まってもそのまんまだったので、強制的に電源オフ。



64bit版だったらどうかな?と思って、もう1枚DVD-Rを焼いて試してみるも、やっぱり同じ画面で、カチンカチンに固まってます。





もしかして、DVDを焼き損ねたのかも(データが正しくダウンロードされていなかった?)、そんなこともあるかもしれないということで、別のパソコンで動作確認。



DVDでブートして・・・ 祈るような気持ちで画面をじっと見ていると・・・



200901242



さっきのML115 G5で固まった画面よりも、先に進みました。



おおっ! 今度は調子がいい。



200901243



・・・と思った瞬間、ここで固まりました。ああぁ~ん?







うーん。じゃあ、3台目のパソコンで試してみよう。



すると今度は・・・



200901244



仏の顔も三度まで。なんかいい感じでインストール処理が始まります。



ただ、残念ながら、このパソコンに「Windows 7 ベータ」をインストールするわけにはいかないのです。





なんとなく、ビデオカードが怪しいんじゃないか、そんな気がしてきました。



今使っているのは、Radeon HD3450なビデオカードです。



そのほかにPCIeなビデオカードで今使えるものはないので、とりあえず、PCIなRadeon 9200SEのビデオカードを挿して試してみると・・・



やっぱり同じところで、固まります。



それじゃぁ、ってことで、もともとML115 G5のオンボードなビデオを使ってみると・・・



おっ!



200901245



やった、成功です。

200901246





ビデオカードを挿してるとダメ・・・なんでしょうか。



とりあえず、オンボード・ビデオを使って、インストールしてみましょう。



インストール先は、新しい1TBのディスクとして、パーティションを切って・・・



200901247



・・・???



2台目のディスクにはインストールできないみたいですね。



はぁ、そうですか。





1台目のハードディスクを抜いて、新しいハードディスク1台だけを接続してやりなおし。



これで、ようやくインストールできました。



長かった。



いやいや、実は、まだこれからだったりする。





きっと固まってしまったのは、インストールのときだけで、一度ハードディスクにインストールしてしまえば、オンボードではない、PCIeなビデオカードでも、動くかもしれない。



そんな期待をしてやってみると・・・



あ~ん、ダメっす。やっぱり固まります。



前回の起動に失敗したとき、なんだか「スタートアップ修復」とか称して、自動的に修正をしてやるよ、と言ってくるのです。



あーなるほど。新しいビデオカードのドライバをインストールしてくれるのかな?



とりあえず、「おまかせ」で行ってみますか。



200901248





えらく時間がかかるなぁ。



200901249



blue screenかよ!





その後、PCIeなビデオカードのかわりにPCIなビデオカードにしたり、BIOSメニューで、ビデオカード関係の項目が1つあったので、設定変更してみたり、試行錯誤を繰り返すものの、どうやっても、外付けビデオカードでは、Windows7ベータは起動してくんない。



まさか、メモリか?



メモリが4GBになってるけど、メモリを減らしたら、動いたりしたり。



いやぁ、まさかね。



そんなことあるわけないよ。



でも、ま、シャレでためしてみますか。



2GBを1枚ぬいて、2GBにしました。



で、電源オン。












20090124a



動いたじゃん・・・

メモリが4GBだと動かないんですか?!



ま、ま、まさか、メモリを6GBにしたら、動いちゃったりする?!



やってみました。



・・・動きませんでした。



安心しました。



うん、安心しました。



安心して、Windows 7 ベータを捨てました。



さようなら。またいつか会う日まで。






今、cvsup (csup)して今日の時点のFreeBSD 7.1-STABLE amd64版(64ビット版)が、メモリ6GBで、がっちり動いています。



Copyright (c) 1992-2009 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
        The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 7.1-STABLE #0: Sat Jan 24 15:35:15 JST 2009
    root@************:/usr/obj/usr/src/sys/GENERIC
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: AMD Athlon(tm) Processor 1640B (2700.02-MHz K8-class CPU)
  Origin = "AuthenticAMD"  Id = 0x70ff2  Stepping = 2
  Features=0x78bfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,MMX,FXSR,SSE,SSE2>
  Features2=0x2001<SSE3,CX16>
  AMD Features=0xea500800<SYSCALL,NX,MMX+,FFXSR,RDTSCP,LM,3DNow!+,3DNow!>
  AMD Features2=0x11d<LAHF,SVM,ExtAPIC,CR8,Prefetch>
usable memory = 6429450240 (6131 MB)
avail memory  = 6184353792 (5897 MB)
ACPI APIC Table: <HP     ProLiant>


(2009/01/25 追記)



昨晩からportupgradeしまくってて、2回、kernel panicしました(苦笑)。



# kgdb /boot/kernel/kernel /var/crash/vmcore.2
GNU gdb 6.1.1 [FreeBSD]
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "amd64-marcel-freebsd"...

Unread portion of the kernel message buffer:


Fatal trap 12: page fault while in kernel mode
cpuid = 0; apic id = 00
fault virtual address = 0x67a40905fd8
fault code      = supervisor read data, page not present
instruction pointer   = 0x8:0xffffffff8078191c
stack pointer         = 0x10:0xffffffff23cb48c0
frame pointer         = 0x10:0xffffff0003a5d0f8
code segment    = base 0x0, limit 0xfffff, type 0x1b
      = DPL 0, pres 1, long 1, def32 0, gran 1
processor eflags      = interrupt enabled, resume, IOPL = 0
current process       = 87638 (sh)
trap number     = 12
panic: page fault
cpuid = 0
Uptime: 4h22m57s
Physical memory: 6131 MB
Dumping 647 MB: 632 616 600 584 568 552 536 520 504 488 472 456 440 424 408 392 376 360 344 328 312 296 280 264 248 232 216 200 184 168 152 136 120 104 88 72 56 40 24 8

#0  doadump () at pcpu.h:195
195   __asm __volatile("movq %%gs:0,%0" : "=r" (td));
(kgdb) where
#0  doadump () at pcpu.h:195
#1  0x0000000000000004 in ?? ()
#2  0xffffffff804b8ae9 in boot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:418
#3  0xffffffff804b8ef2 in panic (fmt=0x104 <Address 0x104 out of bounds>)
    at /usr/src/sys/kern/kern_shutdown.c:574
#4  0xffffffff8078df23 in trap_fatal (frame=0xffffff0003f7a6e0, eva=Variable "eva" is not available.
)
    at /usr/src/sys/amd64/amd64/trap.c:764
#5  0xffffffff8078e2f5 in trap_pfault (frame=0xffffffff23cb4810, usermode=0)
    at /usr/src/sys/amd64/amd64/trap.c:680
#6  0xffffffff8078ec38 in trap (frame=0xffffffff23cb4810)
    at /usr/src/sys/amd64/amd64/trap.c:449
#7  0xffffffff8077467e in calltrap () at /usr/src/sys/amd64/amd64/exception.S:209
#8  0xffffffff8078191c in pmap_remove_entry (pmap=0xffffff0003a5d0f8, m=0x67a40905f88,
    va=34365181952) at /usr/src/sys/amd64/amd64/pmap.c:1829
#9  0xffffffff80786529 in pmap_enter (pmap=0xffffff0003a5d0f8, va=34365181952,
    m=0xffffff01c0905f88, prot=5 '\005', wired=0) at /usr/src/sys/amd64/amd64/pmap.c:2352
#10 0xffffffff806db615 in vm_fault (map=0xffffff0003a5d000, vaddr=34365181952,
    fault_type=4 '\004', fault_flags=Variable "fault_flags" is not available.
) at /usr/src/sys/vm/vm_fault.c:882
#11 0xffffffff8078e18f in trap_pfault (frame=0xffffffff23cb4c80, usermode=1)
    at /usr/src/sys/amd64/amd64/trap.c:657
#12 0xffffffff8078edd8 in trap (frame=0xffffffff23cb4c80)
    at /usr/src/sys/amd64/amd64/trap.c:348
#13 0xffffffff8077467e in calltrap () at /usr/src/sys/amd64/amd64/exception.S:209
#14 0x0000000800531030 in ?? ()
Previous frame inner to this frame (corrupt stack?)





わからん・・・



2009年1月24日土曜日

とりあえず1TB

「とりあえずビール」というわけじゃないですが、先々週、とりあえず、また、1TBのハードディスクを買ってみたり。
去年の11月に買ったものと同じです。とくに不満もなかったので、同じものを選んで見ました。



Western Digital
WD10EADS
容量 1テラバイト
キャッシュ 32メガバイト



20090123



今週はSeagateのハードディスクが大変なことになって話題になってますが(笑いごとではない!)、個人用にも仕事用にも、最近はSeagateのは買ってなかったので、とりあえず今回のファームウェア不具合の騒動は関係なさそうです。



前にも書いたように、私は、



  • ハードディスクは消耗品


  • 壊れる前に新品へ交換


  • 空き容量が足りなくなってきたら、より大容量なドライブを買って、そっちへ移動。とりあえずデータのバックアップもできる


なんて風に考えているので、今の、大容量ハードディスクが安価に入手できる状況は、とってもうれしいです。そのわりには、自宅サーバのハードディスクは、SMARTでエラーが出てるのをそのまんま使ってますけど。ビクビクしながら。



大昔、100MBのSCSIディスクが、

100MBもあって、なんて大容量!何年も使えるじゃん

と思ってたころが懐かしいです。今じゃ、1TBなんて、半年くらい?!
動画を扱えるようになったせいですね。
TBクラスのHDで、HD画質・・・



今回買ったハードディスクでは、Windows7のベータ版を試してみようかな、と考えています。



2009年1月23日金曜日

不幸中の幸い?

不思議なことがあって・・・



20090122



似たような、だけど、微妙に違うものへと入れ替わってしまいました。





2009年1月22日木曜日

DDR2 2GB 2枚セット、またまた買ってきた

先々週、秋葉原ではなく近所(でもないけど)のお店に買い物に行ったとき、ついでに、DDR2 2GBの2枚セット(計4GB)を、またまた買ってしまいました。



20090121



過去記事





初めて、5月に買ったときが7780円、前回、11月に買ったときは5218円、そして今回は3680円。DDR3に交代して、DDR2は、そろそろ底値?
うちには、まだDDR3なパソコンはありませんが。



今回買ってきたメモリは、これまで1GBが2枚ささってたパソコンのと交換し、あまった1GB 2枚は、年末に自分用クリスマス・プレゼントに買った





で使おうと思います。





はじめてFreeBSDを使ったパソコンは、CPUは468DX2 66MHz、RAMは16MB、HDDは1GBだったんだよなぁ・・・。FreeBSDは、バージョン1.1だった。全部で、30万円くらい(以上?)してたと思う。
今は、CPUは3GHzでデュアルコア、RAM 4GB、HDDは1TB、値段は5万もしない。
いい時代になったものだ。



学生のころは、自分もふくめてみんな、研究で作ってたプログラムは、とにかくメモリをたくさん使うので、ってことで、ワークステーションにメモリはできるだけめいっぱい載せてたけど、1GBのって、すげぇー!とか言ってたような。



2009年1月21日水曜日

(FreeBSD) ports/math/Rをportupgrade中に、/usr/local/lib/libblas.so.2: undefined reference to `_gfortran_runtime_error_at'

ports関連のトラブルで、もうひとつ。



portsの、math/Rを、portupgradeでR-2.8.1にアップグレードしてる最中に出たエラーです。



cc -std=gnu99 -export-dynamic -L/usr/local/lib -o R.bin Rmain.o -L../../lib -lR
/usr/local/lib/libblas.so.2: undefined reference to `_gfortran_runtime_error_at'
*** Error code 1



Stop in /WORK/FreeBSD/ports/math/R/work/R-2.8.1/src/main.
*** Error code 1



どこからlibblasが呼ばれるんだ?という感じがしますが、-lRで指定されている、libRがlibblasに依存しているのでした。



でも、なんかよくわかんない・・・3分後、やっと気がつきました。



「-L../../lib -lR」なので、「../../lib/libR.so」がリンクされるんだろうと思ってたら、実は、その手前にある「-L/usr/local/lib」のせいで、「/usr/local/lib/libR.so」が使われてしまうのでした。そっちは、既存のRによってインストールされたもので、ということは旧バージョンなので使っちゃダメです。



% ls -l /usr/local/lib/R/lib/libR.so*
-rwxr-xr-x  1 root  wheel  2368863 12 15 13:34 /usr/local/lib/R/lib/libR.so*
lrwxr-xr-x  1 root  wheel       24 12 15 13:35 /usr/local/lib/libR.so@ -> /usr/local/lib/libR.so.0
-rwxr-xr-x  1 root  wheel  2368863 12 15 13:34 /usr/local/lib/libR.so.0*



う~ん、-Lオプションって、そういう挙動をするものでしたっけ?そうだったような気もします。



こういうのは、とてもわかりにくいので、自分でもミスしそうです。



ccの引数を「../../lib/libR.so」にすればいいのかな?とも思ったのですが、Makefileのどこが該当するのか探すのがめんどくさかったので、「今だけ通して!」ってことで



mv /usr/local/lib/libR.so /usr/local/lib/libR.so-



しちゃいました。可能なら、既存のRをアンインストールしちゃってもいいのかもしれません。





それとは別に、もうひとつ、嫌なものを見てしまいました。



% ldd ../../lib/libR.so
../../lib/libR.so:
        libblas.so.2 => /usr/local/lib/libblas.so.2 (0x483a4000)
        libgfortran.so.3 => /usr/local/lib/compat/pkg/libgfortran.so.3 (0x483f0000)
        libm.so.4 => /lib/libm.so.4 (0x48495000)
        libintl.so.8 => /usr/local/lib/libintl.so.8 (0x484ab000)
        libiconv.so.3 => /usr/local/lib/libiconv.so.3 (0x484b4000)
        libreadline.so.6 => /lib/libreadline.so.6 (0x485aa000)
        libpcre.so.0 => /usr/local/lib/libpcre.so.0 (0x485da000)
        libbz2.so.2 => /usr/lib/libbz2.so.2 (0x48609000)
        libz.so.3 => /lib/libz.so.3 (0x4861a000)
        libgcc_s.so.1 => /usr/local/lib/gcc-4.2.5/libgcc_s.so.1 (0x4862b000)
        libncurses.so.6 => /lib/libncurses.so.6 (0x48635000)
        libc.so.6 => /lib/libc.so.6 (0x48086000)



ちょっとまってよ。どうして
/usr/local/lib/compat/pkg/libgfortran.so.3
と、compatの下の方を見に行っちゃってるのですか? ・・・と。



こっちは?



% ldd /usr/local/lib/libR.so.0
/usr/local/lib/libR.so.0:
        libblas.so.2 => /usr/local/lib/libblas.so.2 (0x483a5000)
        libgfortran.so.2 => /usr/local/lib/gcc-4.2.5/libgfortran.so.2 (0x483f1000)
        libm.so.4 => /lib/libm.so.4 (0x48482000)
        libintl.so.8 => /usr/local/lib/libintl.so.8 (0x48498000)
        libiconv.so.3 => /usr/local/lib/libiconv.so.3 (0x484a1000)
        libreadline.so.6 => /lib/libreadline.so.6 (0x48597000)
        libpcre.so.0 => /usr/local/lib/libpcre.so.0 (0x485c7000)
        libbz2.so.2 => /usr/lib/libbz2.so.2 (0x485f6000)
        libz.so.3 => /lib/libz.so.3 (0x48607000)
        libgcc_s.so.1 => /usr/local/lib/gcc-4.2.5/libgcc_s.so.1 (0x48618000)
        libncurses.so.6 => /lib/libncurses.so.6 (0x48622000)
        libc.so.6 => /lib/libc.so.6 (0x48086000)



わけわからん・・・えーと、こっちはgcc42が使われてたころの名残りですね。



で、新たにgcc43でビルドしたほうは、lib/compat/pkg/libgfortran.so.3を見てて、って、なんで、/usr/local/lib/gcc-4.3.3/の下の方を見てくれないの???



えーと、2つ、同じ名前のライブラリがありますね・・・やばい雰囲気。



% ls -l /usr/local/lib/gcc-4.3.3/libgfortran.so.3 /usr/local/lib/compat/pkg/libgfortran.so.3
-rwxr-xr-x  1 root  wheel  2297336  1  8 10:56 /usr/local/lib/compat/pkg/libgfortran.so.3*
-rwxr-xr-x  1 root  wheel  2297336  1 13 11:13 /usr/local/lib/gcc-4.3.3/libgfortran.so.3*


どっちを先に見るのかな?



% ldconfig -r | head
/var/run/ld-elf.so.hints:
        search directories: /lib:/usr/lib:/usr/lib/compat:/usr/local/lib:/usr/local/lib/compat:/usr/local/lib/compat/pkg:/usr/local/lib/evolution/2.22:/usr/local/lib/gcc-4.2.5:/usr/local/lib/gegl-0.0:/usr/local/lib/graphviz:/usr/local/lib/kde3:/usr/local/lib/mysql:/usr/local/lib/nss:/usr/local/lib/pth:/usr/local/lib/qt4:/usr/local/lib/wine:/usr/local/lib/zsh:/usr/local/libexec/openldap:/usr/local/sge/lib/fbsd-i386:/usr/local/lib/evolution/2.24
        0:-lkvm.3 => /lib/libkvm.so.3
        1:-lm.4 => /lib/libm.so.4
        2:-lmd.3 => /lib/libmd.so.3
        3:-lncurses.6 => /lib/libncurses.so.6
        4:-lncursesw.6 => /lib/libncursesw.so.6
        5:-lsbuf.3 => /lib/libsbuf.so.3
        6:-lutil.5 => /lib/libutil.so.5
        7:-lalias.5 => /lib/libalias.so.5



/usr/local/lib/compat/pkgの方が先ですね。だめじゃん。



どうして、libgfortran.so.3が2つあるのかな。



compat/pkg/の下のは、たぶん消しちゃってもいいんでしょう。



結局、こういう感じになりました。



% ldd /usr/local/lib/libR.so.0
/usr/local/lib/libR.so.0:
        libblas.so.2 => /usr/local/lib/libblas.so.2 (0x483a4000)
        libgfortran.so.3 => /usr/local/lib/gcc-4.3.3/libgfortran.so.3 (0x483f0000)
        libm.so.4 => /lib/libm.so.4 (0x48495000)
        libintl.so.8 => /usr/local/lib/libintl.so.8 (0x484ab000)
        libiconv.so.3 => /usr/local/lib/libiconv.so.3 (0x484b4000)
        libreadline.so.6 => /lib/libreadline.so.6 (0x485aa000)
        libpcre.so.0 => /usr/local/lib/libpcre.so.0 (0x485da000)
        libbz2.so.2 => /usr/lib/libbz2.so.2 (0x48609000)
        libz.so.3 => /lib/libz.so.3 (0x4861a000)
        libgcc_s.so.1 => /usr/local/lib/gcc-4.2.5/libgcc_s.so.1 (0x4862b000)
        libncurses.so.6 => /lib/libncurses.so.6 (0x48635000)
        libc.so.6 => /lib/libc.so.6 (0x48086000)





ldconfigでどのディレクトリが参照されるのかは、以下のあたりを見ると、なるほどね、と気がつくと思います。



(1) /etc/rc.d/ldconfig



(2) /etc/defaults/rc.conf にある
ldconfig_local_dirs="/usr/local/libdata/ldconfig /usr/X11R6/libdata/ldconfig"



(3) そして
% cat /usr/local/libdata/ldconfig/gcc43
/usr/local/lib/gcc-4.3.3




同じ名前のライブラリが複数個あるのは、トラブルの元なので、望ましくない状況です。



たしかそういう状況をチェックできるコマンドがあったはずだ!



う~ん、思い出せない。



libchkは、ちょっと違うな。



3分経過。



そうだ、portsclean -L だ。



なんていう思い出しにくいコマンドだ・・・



portsclean -Lを実行すると、こんな感じで、同名の共有ライブラリを見つけ出して、片方を削除してくれます。



** /usr/local/lib/gcc-4.3.3/libmudflap.so.0 is shadowed by /usr/local/lib/gcc-4.2.5/libmudflap.so.0
        /usr/local/lib/gcc-4.2.5/libmudflap.so.0        <- gcc-4.2.5_20081126
        /usr/local/lib/gcc-4.3.3/libmudflap.so.0        <- gcc-4.3.3_20090108
--> Two packages install the same library in different directories!



** /usr/local/lib/gcc-4.3.3/libmudflapth.so.0 is shadowed by /usr/local/lib/gcc-4.2.5/libmudflapth.so.0
        /usr/local/lib/gcc-4.2.5/libmudflapth.so.0      <- gcc-4.2.5_20081126
        /usr/local/lib/gcc-4.3.3/libmudflapth.so.0      <- gcc-4.3.3_20090108
--> Two packages install the same library in different directories!



** /usr/local/lib/gcc-4.3.3/libffi.so.4 is shadowed by /usr/local/lib/gcc-4.2.5/libffi.so.4
        /usr/local/lib/gcc-4.2.5/libffi.so.4    <- gcc-4.2.5_20081126
        /usr/local/lib/gcc-4.3.3/libffi.so.4    <- gcc-4.3.3_20090108
--> Two packages install the same library in different directories!



「-L」オプションだけだと、いきなりファイルを削除してしまうので、「-n」オプションもつけたほうがいいかもしれません。
もっとも、消されてしまっても、案外、どうでもよかったりします。



それから、今日、FreeBSD6なマシンで思い出したんですが、たしか/etc/defaults/rc.confにある



ldconfig_paths="/usr/lib/compat /usr/local/lib /usr/local/lib/compat/pkg"



みたいなやつに、/usr/X11R6/libが入ってて、かつ、/usr/X11R6が、/usr/localへのシンボリックリンクになってると(歴史的な事情で、普通はそうなってると思う)、/usr/loca/libと、/usr/X11R6/libの両方がldconfigで見に行ってしまい、ところが両者は同一のものなので、同じものが2個ずつ見つかる、というフィーバー状態になってました(笑)。






portsclean -Lで大掃除した結果、1個、残りました・・・



% portsclean -L
** /usr/local/lib/gcc-4.3.3/libobjc.so.2 is shadowed by /usr/local/lib/compat/libobjc.so.2
        /usr/local/lib/compat/libobjc.so.2      <- compat6x-i386-6.4.604000.200810
        /usr/local/lib/gcc-4.3.3/libobjc.so.2   <- gcc-4.3.3_20090108
--> Two packages install the same library in different directories!


見なかったことにしよう。



2009年1月20日火曜日

(FreeBSD) PHPのXMLRPCを使うと、オブジェクトをserializeしたテキスト中の「"」が欠落するようになった

つい最近、急に発生するようになった症状なのですが、



  • PHPのXMLRPCを使っているときに、


  • XMLRPCでオブジェクトを送ったとき、


  • serializeしたテキスト中の「"」が欠落するようになり、


  • unserializeできなくなってしまった


ということで、困ってしまいました。使っているソフトウェアはすべてFreeBSDのportsでインストールしたものです。



  • lang/php5


  • net/pear-XML_RPC


$clnt = new XML_RPC_client();
$clnt->setDebug( TRUE );



みたいにして、デバッグメッセージを眺めてみると・・・



<pre>---GOT---
HTTP/1.1 200 OK
Date: Mon, 19 Jan 2009 00:56:47 GMT
Server: Apache/2.2.11 (FreeBSD) mod_ssl/2.2.11 OpenSSL/0.9.8i DAV/2 PHP/5.2.8 with Suhosin-Patch SVN/1.5.5
X-Powered-By: PHP/5.2.8
Content-Length: 1257
Connection: close
Content-Type: text/xml; charset=UTF-8

<?xml version="1.0" encoding="UTF-8"?>
<methodResponse>
<params>
<param>
<value><string>O:12:&quot;XXXXXXXXXXXX&quot;:17:{s:2:&quot;id&quot;;s:2:&quot;34&quot;;
(途中省略)
</param>
</params>
</methodResponse>
---END---</pre>

<pre>---PARSED---
object(XML_RPC_Value)#6 (2) {
  ["me"]=>
  array(1) {
    ["string"]=>
    string(695) "O:12:XXXXXXXXXXXX:17:{s:2:id;s:2:34;
  }
  ["mytype"]=>
  int(1)
}
---END---</pre>



これを見てると

O:12:&quot;XXXXXXXXXXXX&quot;:17:{s:2:&quot;id&quot;;s:2:&quot;34&quot;;~略~

というのを受け取って、デコードしたら、

O:12:XXXXXXXXXXXX:17:{s:2:id;s:2:34;~略~

になって、「"」が消えてなくなっています。本当は、

O:12:"XXXXXXXXXXXX":17:{s:2:"id";s:2:"34";~略~

となってくれるんじゃないかと思うのです。XMLRPCの仕様を見ても、stringに「"」を入れてはいけない、とは書いてなかったような気がしますが、ちゃんと調べてません。以前は、これで動いていたので・・・





最近、perl-5.8.9にアップデートする、という大きな変化があったのでそれかな、と思ったんですが、perlは関係なさそうだし。
で、いろいろ探していったら見つかりました。



libxml2が犯人でした。

libxml2-2.6.32_2

libxml2-2.7.2_1

になったら、この「"」が欠落するようになりました。



なんとなく
/usr/local/share/pear/XML/RPC.php
の中の、このあたり



        /*
         * be tolerant of junk after methodResponse
         * (e.g. javascript automatically inserted by free hosts)
         * thanks to Luca Mariano <luca.mariano@email.it>
         */
        $data = substr($data, 0, strpos($data, "</methodResponse>") + 17);
        $this->response_payload = $data;



        if (!xml_parse($parser_resource, $data, sizeof($data))) {



ここのxml_parse()の挙動が変化したんじゃないかと思うのですが、確認はしてません。



とりあえず、自分で明示的にserialize()して、さらにbase64_encode()するようにしちゃいました。



2009年1月19日月曜日

はっさく

なんとなく食べたくなったので、はっさく。



20090118



はっさくは、漢字で書くと八朔。八月の朔の日、つまり、八月の新月の日のことなので、旧暦の8月1日。



カゼは気合いでなおしました。30時間くらいかかりました。





2009年1月18日日曜日

かぜかな

朝から頭痛



そのうち、歯がガチガチ、寒気がしてきて



体温はかったら36.5度。あれ?



寒くてしかたないので、布団にはいって寝ておきたら、しっかりと、熱が出てきた。寒気もやわらいだ。



20090117


今も、ひどい頭痛。もうれつにダルイ。





2009年1月17日土曜日

A Night at the Opera

20090116



DSiのブラウザ、もうちょっとよくならないかなぁ。
写真のアップロードができるといいんだけど。



2009年1月16日金曜日

(FreeBSD) gdm-2.24.1になったらXDMCPが使えなくなった。gdmのバグらしい

先日portsのGNOME2がごっそりとアップデートされて、gdmがgdm-2.24.1_4になったのですが、そうしたら、gdmが動かなくなってしまいました。



まず最初に気がついたのは、ローカルホスト上でXサーバを起動しようとして、コケてること。



「--debug」オプションをつけて「gdm --debug」で起動すると、いろいろメッセージが表示されるのですが、ローカルホスト上でXサーバを起動しようとしたけど失敗、それを10回くらい繰り返した後、エラーばっかだから、やめちゃうよ、といって終わってるみたいです。



gdm-binary[53863]: DEBUG(+): GdmDisplay: Unmanaging display
gdm-binary[53863]: DEBUG(+): GdmDisplay: unmanage display
gdm-binary[53863]: DEBUG(+): GdmSlaveProxy: Killing slave
gdm-binary[53863]: DEBUG(+): GdmSlaveProxy: Disposing slave proxy
gdm-binary[53863]: DEBUG(+): GdmSlaveProxy: Killing slave
gdm-binary[53863]: WARNING: GdmDisplay: display lasted 0.999561 seconds
gdm-binary[53863]: DEBUG(+): GdmLocalDisplayFactory: static display status changed: 3
gdm-binary[53863]: DEBUG(+): GdmDisplayStore: Unreffing display: 0x812ba28
gdm-binary[53863]: WARNING: GdmLocalDisplayFactory: maximum number of X display failures reached: check X server log for errors



そのホストはサーバー用に使っているので、もともとXサーバは動かしていませんでした。また、driかなんかの問題で、うまくXサーバが動かなかった、という理由もあります。



そういうことから、gdmがXサーバを起動しないようにするために、/usr/local/etc/gdm/custom.confの[servers]のところに、

0=inactive

と書いてありました。



gdm-2.24.1になると、この0=inactiveという記述は、考慮されなくなっているようです。



gdm-2.24のドキュメントを探しても、どうやったら0=inactiveと同じことを実現できるのか、ぜんぜんわからず、ソースコードを斜め読みまでしたんですが、よくわからず。



gdm-manager.cの、このあたりが関係しそうなんだけど。



void
gdm_manager_start (GdmManager *manager)
{
        g_debug ("GdmManager: GDM starting to manage");
        if (! manager->priv->wait_for_go) {
                gdm_display_factory_start (GDM_DISPLAY_FACTORY (manager->priv->local_factory));
        }



それから、子プロセスで、こんなのを実行しようとしてるんですよね。
/usr/local/libexec/gdm-simple-slave --display-id /org/gnome/DisplayManager/Display1



最初は、grepであたりをつけてソースコードを眺める、ということをやってたんですが、どうもよくわかんないので、portsでビルドするとき、デバッグ機能を有効にするために



# make WITH_DEBUG=yes



して、gdbでgdm-binをトレース実行までしてみたんですけど・・・



この辺を見てみたり



(gdb) where
#0  gdm_local_display_factory_new (store=0x8102e30)
    at gdm-local-display-factory.c:620
#1  0x08057af1 in gdm_manager_constructor (type=135434096,
    n_construct_properties=1, construct_properties=0x8114570)
    at gdm-manager.c:328
#2  0x48226643 in g_object_newv () from /usr/local/lib/libgobject-2.0.so.0
#3  0x482271f1 in g_object_new_valist ()
   from /usr/local/lib/libgobject-2.0.so.0
#4  0x48227360 in g_object_new () from /usr/local/lib/libgobject-2.0.so.0
#5  0x08057e63 in gdm_manager_new () at gdm-manager.c:424
#6  0x0804d8aa in main (argc=239172, argv=0x480a3200) at main.c:605



とりあえず、/usr/local/bin/Xを起動することになっているのはわかったので(これにコマンドライン引数を指定する方法はわかんなかった・・・Xserversとかいうファイルを見ないのかねぇ?)、/usr/local/bin/Xを、Xvfbを起動するラッパースクリプトに置き換えてしまいました(笑)。



Xvfbには、-verboseオプションが無いんですね。



Unrecognized option: -verbose



% cat /usr/local/bin/X
#! /bin/sh



command=$*
echo  $command
command2=`echo $command | sed 's/-verbose//'`
exec /usr/local/bin/Xvfb $command2



セキュリティホールがありそうな気もしないでもないので、あくまでもテスト用。





あとでまともな解決方法を考えることにして、とりあえず、これれOK・・・と思いきや、今度は、XDMCPが使えていないことに気がつきました。



ネット検索してみると、このあたりに情報がでてました。どうも、gdm-2.24でXDMCPが使えないバグがあるみたいです。



http://shirata.ddo.jp/papa/blog/2008/11/fedora10gdmxdmcpmasapatch.html



http://forums.fedoraforum.org/showthread.php?t=203674



http://bugzilla.gnome.org/show_bug.cgi?id=561396



3つめのURLのページには、1つめのページで示されたパッチは正しいようには思えない、という開発者(?)からのコメントがついています。どうやら、revision 6610のgdmで、あれこれ修正されているみたいです。



subversionってほとんど使ったことがないんですが、とりあえず、ソースコードをとりよせてみましょうか。



% svn checkout --revision 6610 http://svn.gnome.org/svn/gdm/trunk gdm
A    gdm/m4
A    gdm/m4/.cvsignore
A    gdm/gui
A    gdm/gui/user-switch-applet
A    gdm/gui/user-switch-applet/gdm-user-menu-item.c
A    gdm/gui/user-switch-applet/gdm-entry-menu-item.c
~~~ おぉ!でてくる、でてくる ~~~
A    gdm/po/oc.po
U   gdm
リビジョン 6610 をチェックアウトしました。



取り出したファイルを確認してみると・・・



% head gdm/NEWS
===============
Version 2.24.0
===============



- Allow the build to succeed without a gdm user (Frederic Peters)
- Use Bourne shell syntax in Xsession.solaris (Brian Cameron)
- Set ownership of .gconf.mandatory (William Jon McCann)



portsでインストールしたgdm-2.24.1よりも、revision 6610のほうが古いじゃん。
う~ん???よくわかんないので、2.24.1を展開して、



% tar zxf /usr/ports/distfiles/gnome2/gdm-2.24.1.tar.bz2



svnでcheckoutしたコードと差分をもとめ



% diff -ur gdm-2.24.1/daemon/ gdm/daemon/ >/tmp/gdm.diff



portsでパッチをあてるところまでやって、



# make patch



svnとの差分をパッチあてして(強引だけど、一応、これでもよさそうな雰囲気であることは確認。daemonディレクトリだけ差分をもとめたのは、docsの中がかなり違ってたので)



# cd (portsの作業ディレクトリ)/x11/gdm/work/gdm-2.24.1/daemon/
# patch -p2 < /tmp/gdm.diff



コンパイルしなおして、再インストール。



# cd /usr/ports/x11/gdm/
# make
# make install FORCE_PKG_REGISTER=yes


さて、これでgdmを実行してみると、ポート番号177が開いてたので、XDMCPが有効になっていることは確認できました。



とりあえずVNC serverを使ってXDMCPが使えているか確認。



% Xvnc :1 -query サーバ



すると、だらだら~とメッセージが表示され・・・



gdm-binary[56430]: WARNING: Unable lookup hostname: Non-recoverable failure in name resolution
gdm-binary[56430]: WARNING: Unable lookup hostname: Non-recoverable failure in name resolution
gdm-binary[56430]: WARNING: Unable lookup hostname: Non-recoverable failure in name resolution
gdm-binary[56430]: WARNING: Unable lookup hostname: Non-recoverable failure in name resolution
Illegal instruction



あらあら、gdmが、おっこちました。



gdbで落っこちるまでの動きを調べてみると・・・



(gdb) where
#0  gdm_address_get_hostname (address=0x810710c, hostnamep=0xbfbfc8d8) at gdm-address.c:220
#1  0x08060526 in gdm_address_debug (address=0x810710c) at gdm-address.c:516
#2  0x0805fbac in gdm_address_get_hostname (address=0x810710c, hostnamep=0xbfbfcd78) at gdm-address.c:220
#3  0x08060526 in gdm_address_debug (address=0x810710c) at gdm-address.c:516
#4  0x0805fbac in gdm_address_get_hostname (address=0x810710c, hostnamep=0xbfbfd218) at gdm-address.c:220
#5  0x08060526 in gdm_address_debug (address=0x810710c) at gdm-address.c:516
#6  0x0805fbac in gdm_address_get_hostname (address=0x810710c, hostnamep=0xbfbfd6b8) at gdm-address.c:220
#7  0x08060526 in gdm_address_debug (address=0x810710c) at gdm-address.c:516
#8  0x0805fbac in gdm_address_get_hostname (address=0x810710c, hostnamep=0xbfbfdb58) at gdm-address.c:220
#9  0x08060526 in gdm_address_debug (address=0x810710c) at gdm-address.c:516
#10 0x0805fbac in gdm_address_get_hostname (address=0x810710c, hostnamep=0xbfbfdff8) at gdm-address.c:220
#11 0x08060526 in gdm_address_debug (address=0x810710c) at gdm-address.c:516
#12 0x0805fbac in gdm_address_get_hostname (address=0x810710c, hostnamep=0xbfbfe498) at gdm-address.c:220
#13 0x08060526 in gdm_address_debug (address=0x810710c) at gdm-address.c:516
#14 0x0805fbac in gdm_address_get_hostname (address=0x810710c, hostnamep=0xbfbfe938) at gdm-address.c:220
#15 0x08060526 in gdm_address_debug (address=0x810710c) at gdm-address.c:516
#16 0x0805e1fa in decode_packet (source=0x8129980, cond=G_IO_IN, factory=0x810e818) at gdm-xdmcp-display-factory.c:2840
#17 0x482bd76d in g_io_channel_unix_get_fd () from /usr/local/lib/libglib-2.0.so.0
#18 0x48289226 in g_main_context_dispatch () from /usr/local/lib/libglib-2.0.so.0
#19 0x4828c5c2 in g_main_context_check () from /usr/local/lib/libglib-2.0.so.0
#20 0x4828c9a7 in g_main_loop_run () from /usr/local/lib/libglib-2.0.so.0
#21 0x0804da50 in main (argc=1, argv=0xbfbfebc8) at main.c:639


gdm_address_debug() と gdm_address_get_hostname() が交互に呼び出されて、無限ループして、きっとスタックがあふれたんでしょう。



ソースコードを眺めてみると



gboolean
gdm_address_get_hostname (GdmAddress *address,
                          char      **hostnamep)
{
        char     host [NI_MAXHOST];
        int      res;
        gboolean ret;

        g_return_val_if_fail (address != NULL || address->ss != NULL, FALSE);

        ret = FALSE;

        host [0] = '\0';
        res = getnameinfo ((const struct sockaddr *)address->ss,
                           sizeof (struct sockaddr_storage),
                           host, sizeof (host),
                           NULL, 0,
                           0);
        if (res == 0) {
                ret = TRUE;
                goto done;
        } else {
                g_warning ("Unable lookup hostname: %s", gai_strerror (res));
                gdm_address_debug (address);


gdm_address_get_hostnameでエラーが出たとき、そのエラーメッセージを出すためにgdm_address_debugを呼び出すのですが・・・



void
gdm_address_debug (GdmAddress *address)
{
        char *hostname;
        char *host;
        char *port;

        g_return_if_fail (address != NULL);

        hostname = NULL;
        host = NULL;
        port = NULL;

        gdm_address_get_hostname (address, &hostname);



呼び出された先のgdm_address_debugで、また、gdm_address_get_hostnameを使ってます。
だめぢゃん・・・



とりあえずこの辺については、なんとか回避するコードを追加。



でも、やっぱり動かない。



gdmにXDMCPのリクエストが届いたとき、



        res = getnameinfo ((const struct sockaddr *)address->ss,
                           sizeof (struct sockaddr_storage),
                           host, sizeof (host),
                           NULL, 0,
                           0);



みたいな感じで、リクエストの出所のアドレスを求めているんですが、なぜか、そのアドレスが正しく取り出せないんです。うちの環境の問題かなぁ?



リクエスト元がわからないので、gdmも、返事を返せず、という状況になっているようでした。



address->ssの先に、IPアドレスが埋め込まれているのはgdbで確認ずみなんですが、sockaddr_inとか、もうすっかり忘れちゃってる。どういうデータが正しいんだったかなぁ。





というわけで、旧バージョンのgdmをpkg_addしちゃいました。せっかく消したgailが、またインストールされちゃいましたが・・・


svnで最新のgdmのコードを取り出して差分を眺めてみたんですが、6610とあまり変わらないんですよねぇ。
どうしたものか。



ちなみに、Xvfbの中では、gdmのログインウインドウが表示されていました。きっと、inetではなくunixドメインだから動いてるんでしょうね。





2009年1月15日木曜日

梅柿ピー

最近のお気に入り



20090114



「梅柿ピー」がうめー



すみません。





一応チェックしておくか、という軽いノリで見た「RIDEBACK」が、おっ?!これは・・・と気になりました。
これは21世紀時代のああっ女神さまっか?! みたいな。
いや、あれってば、まだ終わってないんですか。



■ 過去記事



2009年1月14日水曜日

(FreeBSD) /usr/local/lib/liblapack.so: undefined reference to `_gfortran_pow_r8_i4'

今日、FreeBSDでportsを使ってとあるソフトをビルド中、以下のようなエラーがでました。



/usr/local/lib/liblapack.so: undefined reference to `_gfortran_pow_r8_i4'
/usr/local/lib/liblapack.so: undefined reference to `_gfortran_pow_r4_i4'
collect2: ld returned 1 exit status
*** Error code 1



エラーの意味としては、ライブラリliblapack.soをリンクしたところ、解決できないシンボルがあったよ、ということですね。



名前からして、libgfortranで定義されていそうな雰囲気がプンプンしてますので、nmで調べてみると



% nm /usr/local/lib/gcc-4.3.3/libgfortran.so | grep pow_
0007ba94 T _gfortran_pow_c10_i4
0007c0ec T _gfortran_pow_c10_i8
0007b8c4 T _gfortran_pow_c4_i4
0007be94 T _gfortran_pow_c4_i8
0007b97c T _gfortran_pow_c8_i4
0007bfa4 T _gfortran_pow_c8_i8
0007b750 T _gfortran_pow_i4_i4
0007bbd0 T _gfortran_pow_i4_i8
0007b7bc T _gfortran_pow_i8_i4
0007bc58 T _gfortran_pow_i8_i8
0007be30 T _gfortran_pow_r10_i8
0007bd7c T _gfortran_pow_r4_i8
0007bdd0 T _gfortran_pow_r8_i8



定義されてますね。ということは、libgfortranがリンクされていないのかな?おかしいな?と思い、あれこれ調べはじめて10分経過。う~ん、わかんねぇ。



・・・で、やっと気がつきました。



エラーが出たのは、以下のシンボル。

_gfortran_pow_r8_i4
_gfortran_pow_r4_i4

これらは、上のnmの出力には含まれていません。微妙に違うんです。紛らわしい。見間違いをしてました。



というわけで、今度は、liblapack.soに問題があるんじゃないかな、という気がしてくるわけです。



どのportsでインストールされたのか、確認。



# pkg_which /usr/local/lib/liblapack.so
lapack-3.1.1_1



# pkg_which /usr/local/lib/gcc-4.3.3/libgfortran.so
gcc-4.3.3_20090108



タイムスタンプを確認。



% ls -l /usr/local/lib/gcc-4.3.3/libgfortran.so*
lrwxrwxr-x  1 root  wheel       16  1 13 11:44 /usr/local/lib/gcc-4.3.3/libgfortran.so@ -> libgfortran.so.3
-rwxr-xr-x  1 root  wheel  2280928  1 13 11:44 /usr/local/lib/gcc-4.3.3/libgfortran.so.3*



% ls -l /usr/local/lib/liblapack.so
lrwxr-xr-x  1 root  wheel  14  6 24  2008 /usr/local/lib/liblapack.so@ -> liblapack.so.4



おおおぉぉぉ、libgfortran.soよりも、liblapack.soの方が古い。



というか、libgfortran.soの方が新しい。



つまり、liblapack.soが依存してたlibgfortran.soと、今存在するlibgfortran.soは別ものであるというわけですね。



というわけで、解決方法は、

# portupgrade -fp lapack-3.1.1_1



で、lapackをビルドしなおせば、きっとOKになる。

たしかに、一応は、これで解決できました。

portsのgccが更新されたときは、gfortranを使うportsも再ビルドが必要になる・・・かもしれない

ってことなんですね。
しかし、portsでは、lapackはgccに依存してる、といような情報はどこにも記録されていないので、気がつくのは非常に困難です。





gfortran関係では、これまで何度かトラブルがありました。





gfortranを使うportsは、portsでインストールしたgccへ、依存関係をぶらさげてくれればいいのに。



てゆーか、こういう問題って、symbol versioningとかいう機能で解決されたりしないんでしたっけ? ←よく知らない。



2009年1月13日火曜日

実験してみました

1月10~12日の3連休中は、スカパー!e2が「大解放デー」というのをやってて、無料で番組を見られるんですね(スクランブルがかかっていない)。
あくまでも大解放であって、全開放ではないので、チャンネルとか時間帯とか、見られるものは限られていますけど。



というわけで、いいチャンスなので、昨日買ったものを実験してみました。一応、動きました。
でも、妙にファイルサイズが大きい気がしたので、再生してみてびっくり。
MPEG2-TSの中に、複数のチャンネルが、まとめて入ってたんです。へぇ~!そういう仕組みになってたんですね。

少し調べてみました。110度CS放送では、物理チャンネル番号が、ND-20とかND-22など、「ND-数字」で表されていて、以下の場合は、ND-20に含まれているチャンネルが全部入っているようでした。
以前も参考にさせてもらった以下のページで確認しました。
http://www5e.biglobe.ne.jp/~kazu_f/digital-sat/trapon-nsat110.html



200901121



vlcは、なんだか微妙に文字化けしてます・・・



ところで、このMPEG2-TSから、希望のものだけ抜き出して、MPEG2-PSにしたかったんですが、やり方がどうもわかんない。vlcでMPEG2-PSにしたつもりだけど、なぜか音が出なかったり、vlcでしかまともに再生できなかったり。



結局、MPEG2-PSにはせずに、このツールでdemultiplexingすればいいじゃん、ということになりました。



200901122



そのまんまじゃファイルサイズが大きすぎるので、再エンコードしたかったんです。



ぼちぼちと勉強していきたいと思います。
いろんな情報が入り乱れていて・・・なんだかも~、混乱しています。





それから、もう1つ発見。
昔から、スカパー!e2を大画面テレビで見ると、ものすごく眠たい映像になるなぁと思って
たんですが、フレームサイズが480x480しかないものがあり、あぁ~なるほど納得。



2009年1月12日月曜日

01月12日のココロ日記(BlogPet)

きょうは水平についてかんがえてみました!!

*このエントリは、ブログペットのココロが書いてます♪

2009年1月11日日曜日

需要と供給の問題

さきほど、うちから一番近いドスパラで買えました。



20090111p





(FreBSD, ML115G5) いつもの方法でFreeBSD 7.1-RELEASEにアップデートにしてみたけど… 途中でキー入力できなくなった

先日、FreeBSD 7.1-RELEASEが公開されて、その後、すでにopensslなどのSecurity Advisoryが出ちゃってますが、とりあえず、ML115 G5なFreeBSDマシン(あまり使ってないので、テスト環境という感じ)を、7.1-RELEASEにアップデートしてみました。



FreeBSDを最新バージョンへアップデートする方法としては、お手軽さの順番で並べてみると(独断と偏見の判定基準による)



  1. freebsd-updateコマンドを使う


  2. ISOイメージファイルをCDに焼いて、そのCDでブートしてアップグレード・インストールを行う


  3. cvsup(csup)して、make buildworldなど自分でコンパイルしてアップデートする


といった方法があります。



freebsd-updateコマンドは、個人的になじめないため…あと、ネットワークが混雑して大変なことになっているという情報もあったし…

(FreeBSD) freebsd-updateを初めて使ってみた

となると、CDを作ってsysinstallでやるか、ってなるけど、CDを焼くのもめんどくさい。



ということで、ときどき私がやってる、メチャクチャな方法 ~普通の人にはお勧めできません~、それは、



  • ISOイメージファイルから、/boot以下のファイルを抜いてきて、現在動作中のFreeBSDの/boot(←ハードディスク上にあるもの)と入れ替え、


  • その後、ハードディスクから、新しい/bootでブートして、


  • インストーラ(sysinstall)にてアップグレード・インストールする


というもの。失敗したら、FreeBSDが起動しなくなるおそれもあるので、それでお勧めできない、ということです。



以前、ちょこっと、その手順を書いたこともあったりしました。

FreeBSDのアップデート
CDもフロッピーディスクも作らずに、ネットブートもせずPC1台だけで、手軽?に、FreeBSDを最新版にアップデートする方法。



FreeBSD 7.0-CURRENT-200701にアップグレード・インストールしてみたのですが…

今回その方法を行ってみたところ、あれっ?!キーボードから文字が入力できない、というトラブルがあったので、自分用メモとして、もう一度、書き残しておきます。





アップグレードインストールするまえに



今動いているシステムの/etc以下を、どこか別の場所に(もしあれば別のWindowsパソコンなどへ)、コピーして、アップグレード作業中に見られるようにしておいたほうがいいと思います。



というのは、アップグレードインストール作業中に、/etc/fstabや、/etc/rc.confに書いてある情報が必要になるためです。



具体的に必要になるのは、以下のもの。



  • デバイスファイル名(/dev/ad0s1eなど)と、ファイルシステムのマウントポイント(/usrなど)の対応関係。fstabに書いてある。


  • ネットワークの設定。たとえばIPアドレスなど。rc.conf中で、ifconfig_bge0などで指定している。


これくらいなら、チラシの裏にメモっておくだけでも十分です。



ISOイメージファイルのダウンロード



たとえば、このへんからダウンロード



ftp://ftp.jp.freebsd.org/pub/FreeBSD/releases/i386/ISO-IMAGES/7.1



sysinstallでネットワーク経由でインストールするなら、bootonlyと書いてある、ファイルサイズの小さいものでかまいません。



7.1-RELEASE-i386-bootonly.iso をダウンロードしました。



ftp://ftp.jp.freebsd.org/pub/FreeBSD/releases/i386/ISO-IMAGES/7.1/7.1-RELEASE-i386-bootonly.iso



ネットワーク経由でインストールできない場合は、disc1と書いてあるものを選びます(disc1だけで十分だと思います)。


ISOイメージファイルからファイルを抜き出す



mdconfigとmountを使って、こんな感じ。root権限で行います。



# mdconfig -a -t vnode -f 7.1-RELEASE-i386-bootonly.iso
md0
# mount -o ro -t cd9660 /dev/md0 /mnt
# ls /mnt
boot            boot.catalog    cdrom.inf
#



状況によっては、mdconfigを実行後、「md0」ではなく「md1」とか、別の数字が表示されることもありますが、そのときは、その表示されたものを、mountコマンドの引数で指定します。



そして、/bootを入れ替える。



# mv /boot /boot-
# cd /mnt
# tar cf - boot | tar xvf - -C /



disc1なISOイメージをダウンロードして、ネットワーク経由のアップグレード・インストールをしない場合は、/boot以外に、/7.1-RELEASE以下のファイルも、現在使っているハードディスクにコピーしておきます。



# ls /mnt/7.1-RELEASE/
base            doc             kernels         proflibs
catpages        games           manpages        src
dict            info            ports



たくさんディレクトリがありますが、インストールするものだけコピーすればOK。私だったら、base、doc、kernels、games、manpages、dict、infoなどでしょうか。



sysinstallでインストール作業を行うときに、元ファイルをどこからもってくるか指定するところがあります(CDとかFTPとHTTPとか)。その選択肢の中に、既存のファイルシステムから、という指定ができるので、そのときに、コピーした7.1-RELEASEの内容を指定します。
最近やってないのでいい加減な情報ですが、コピー先のディレクトリ名は、FreeBSDにしておけばよかったと思います。


FreeBSDを再起動して、インストーラで起動する



ごく普通に、rebootして、ハードディスクからブートすれば、新しい/bootでブートしてきます。



インストールCDに記録されている/bootでは、loader.confを見るとわかりますが、mfsroot.gzというRAMディスクのイメージファイルを使ってブートできるような設定がされています。このRAMディスクのイメージファイルの中に、FreeBSDのインストーラが入っているわけです。



ちなみに、mfsroot.gzの中をのぞいてみると、こんな感じです。



# cp /boot/mfsroot.gz /var/tmp/
# gunzip /var/tmp/mfsroot.gz
# mdconfig -a -t vnode -f /var/tmp/mfsroot
md1
# mkdir /mnt2
# mount -o ro /dev/md1 /mnt2
# ls -l /mnt2/
total 4
drwxrwxr-x  2 root  operator   512  1  2 00:17 .snap
lrwxrwxrwx  1 root  wheel        6  1  2 00:17 bin -> /stand
drwxr-xr-x  2 root  wheel      512  1  2 00:17 boot
drwxr-xr-x  2 root  wheel      512  1  2 00:17 dev
drwxr-xr-x  3 root  wheel      512  1  2 00:17 etc
drwxr-xr-x  2 root  wheel      512  1  2 00:17 mnt
lrwxrwxrwx  1 root  wheel        6  1  2 00:17 sbin -> /stand
drwxr-xr-x  4 root  wheel     1024  1  2 00:17 stand
drwxr-xr-x  3 root  wheel      512  1  2 00:17 var


さて、これでFreeBSDをブートすれば、インストーラで起動すると思いきや、普通のマルチユーザーモードなFreeBSDが起動しちゃいます。ただし、カーネルは最新のカーネルになっています(/boot/kernel/以下は、さっき置き換えたので。だからハードウェアによっては、起動途中にコケるかも…)。



なぜかっていうと、ルートファイルシステムとしてマウントされるのが、RAMディスク(mfsroot)ではなくて、もともとハードディスクにあったルートパーティション(/dev/ad0s1aなど)になっちゃうからです。たぶん、親切心から、そうやってくれてるんでしょう(?)



ルートファイルシステムをどこにするかは、boot時に指定できます。いつも私が使っている方法としては、boot時に「-a」オプションを指定するものです(これって、大昔のBSD系Unix、SunOSとかNEWS-OSとかでも使えてたような気がする)。



FreeBSDのブート時のメニューで「6. Escape to loader prompt」を選択すると、「OK」というプロンプトが表示されるので、そこで「boot -a」と入力します。



すると、カーネルが起動して、途中で、「Manual root filesystem specification:」と表示され、そこで、どこをrootパーティションとするかを入力できます。



こんな感じ



200901110



いつもなら、ここで、「ufs:md0a」と入力します。



ところが、今回、ここで、はまりました。HPのML115 G5で、PS2キーボードを接続して操作していたのですが、ここで、なぜかキーボードからキー入力ができなくなりました。



bootローダのところではキー入力できてましたし、マルチユーザーモードでもキー入力できます。ここでだけキー入力できない???



以前どこかのWebサイトで、ML115 G5では、PS2キーボードは、実はUSBから変換されてPS2になっているので、OSからは(ソフトウェア的には)USBキーボードとして認識されている、みたいな情報を見かけたことがあったのですが、それがこれと関係あるのでしょうか?



PS2キーボードなデバイスatkbd0と、USBキーボードなデバイスukbd0の2つが認識されるのですが、もしかすると、実際には存在しない側のatkbd0を使ってしまっているのかも?



# dmesg | grep kbd
kbd1 at kbdmux0
atkbdc0: <Keyboard controller (i8042)> at port 0x60,0x64 on isa0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
kbd0 at atkbd0
atkbd0: [GIANT-LOCKED]
atkbd0: [ITHREAD]
psm0: <PS/2 Mouse> irq 12 on atkbdc0
ukbd0: <ServerEngines SE USB Device, class 0/0, rev 1.10/0.01, addr 2> on uhub0
kbd2 at ukbd0



う~ん、まいった。いつもだったら「USBキーボード関係のトラブルのときは、とりあえずPS2キーボードをつなげばOK」、だったのに、今回は元々PS2キーボードを使っているわけで、どうしょうもないです。



でも、bootローダ(「OK」プロンプトのとき)で、ルートファイルシステムの場所を指定できるよね、絶対大丈夫だよ! と思い、テキトーにアタリをつけてみると・・・



# grep root /boot/defaults/loader.conf
#root_disk_unit="0"             # Force the root disk unit number
#rootdev="disk1s1a"             # Set the root filesystem
#boot_askname=""        # -a: Prompt the user for the name of the root device
#boot_cdrom=""          # -C: Attempt to mount root file system from CD-ROM
#boot_dfltroot=""       # -r: Use the statically configured root file system
#init_script=""         # Initial script to run by init(8) before chrooting.
#init_chroot=""         # Directory for init(8) to chroot into.
#vfs.root.mountfrom=""          # Specify root partition in a way the



「vfs.root.mountfrom」が正解でした。



currdevとかrootdevというのがありますが、これは、BIOSレベルでアクセスできるデバイスを指定するものらしく、今回のようにRAMディスク(md0)は指定できないみたいです。



「OK」プロンプトにて、



set vfs.root.mountfrom="ufs:md0a"



と指定して、



boot



とすれば、うまいこと、mfsroot内のインストーラが起動しました。



200901111



というわけで、あとは、ごく普通に、sysinstallでUpgrade Installすればよし、と。



その後はとくに問題なく、7.1-RELEASEになりました。



そしたら、/boot/loader.confを、元々使っていたものへ置き換えます。





今は、動作確認もかねて、portupgradeしまくってます。





P.S.



ふと思ったんですが、ブートローダでatkbd0をdisableすれば、boot -aしたときキー入力できるようになるのかも???
試していませんが。







2009年1月10日土曜日

(FreeBSD) Mozilla Thunderbird 2で、メール本文中のリンクをクリックしても何も起きないとき

仕事中は、Windowsではなく、FreeBSDを使っているので、ウェブもメールも、みんなFreeBSD上でやってます。
というわけで、メールソフトとしては、もっぱらMozilla Thunderbird 2を使っています。もっとも、IMAPで読んでいるため、どんなメールソフトでも、どこのどんな環境でメールを読んでも、まったくかまわないんですけど。



200910101



昔からなんとなく気になっていたけど、たいして困らないので、無視していたことがあります。それは、

メール本文中に、http://ww.example.co.jp/index.html のようなURLが書かれている場合、Thunderbirdが親切にも、青色で下線つきでリンクにして表示してくれているのに、そのリンクをクリックしても何も起きない

ということ。



200910102



メールに書かれたリンクをやたらめったらクリックするもんじゃねぇ! … というのが現在の常識ですので、まあいいか、とこれまで無視してきました。



どうしてもそのリンク先を見たいときは、右クリックしてURLをコピーしてから、Firefoxでマウスの真ん中ボタンをクリックしてました(UnixのX Window Systemな環境では、昔からMozillaやFirefoxなどのブラウザでは、真ん中ボタンクリックで、クリップボードのURLを開く、という設定ができる)。



ちなみに、Thunderbirdも、Firefoxも、すべてportsでインストールしています。



以前ウインドウマネージャにfvwmを使ってたときから、この「リンクをクリックしてもだんまり現象」は起きていました。きっと、GNOME2やKDEなどの環境にすれば直るんじゃね? と思ってたんですが、どうもそういうわけでもないみたいです。



どこかのメニューに、「通常使うアプリケーションはこれだよ」と指定するところがあって、そこでFirefoxを指定するだけでよい気がしてたんですが、あまりじっくりと調べていないので、よくわかりませんでした。



ブログに書くネタもないし、気まぐれになんとなく気になったので、この問題を調べてみることにしました。



とりあえずgoogleで、「thunderbird hyperlink」というキーワードで検索してみると



http://www.novell.com/coolsolutions/feature/15898.html



なんてのが見つかりました。ほかにも調べてみると、



http://yowcow.nowa.jp/tag/thunderbird



など、似たような解決方法が提案されています。ただ、prefs.js、user.jsを書き換える方法が書かれているので、現行のThunderbird 2.0.0.19では、ちょっと違うかな、と思ったので、念のため、以下に別の方法をメモとして残しておきます。



なお、FreeBSD 7で、portsでインストールしたthunderbird、firefox、gnome2で試したときの話なので、ほかの環境ではあてはまらない場合もあります。ご注意をば。





EditメニューのPreferencesを選び、Advancedタブをクリック。Config Editorボタンをクリックします。



200910103





about:configというウインドウが表示されます。どこでもいいので、右クリックしてショートカットメニューを表示して、Newの中のStringを選びます。



200910104





network.protocol-handler.app.http
と入力します。



200910105





portsでインストールしたfirefox3で表示させたい場合は
/usr/local/bin/firefox3
portsでインストールしたfirefox2で表示させたい場合は
/usr/local/bin/firefox
と入力します。



200910106



「-remote」オプションを使ってfirefoxを実行するラッパースクリプトが必要なんじゃないかと思ったんですが、なんだかこれでもいいみたいです。





こんな感じになります。



200910107





Thunderbirdを再起動しなくても、この設定が有効になっていました。
これでメール中のリンクをクリックすると、Firefox3で、リンク先が表示されるようになりました。



なお、

network.protocol-handler.app.http

のほかに

network.protocol-handler.app.https
network.protocol-handler.app.ftp

というのもあるそうなので、必要に応じて、同じような手順で追加登録すればよいと思います。

ところで、このConfig Editorってのは、追加はできるけど、削除はどうやったらできるんでしょうか?





P.S.



以前からアナウンスされていたように、とうとうgoogle browser syncが使えなくなったので、Firefox2をやめて、Firefox3を使うようになりました。今後どうするかは、まだ考え中。自分としては、履歴(history)だけ、同期できれば文句はないです。





こんなんだっけ?

釣りキチ三平の映画公開の宣伝のため、昔のアニメが再放送が始まりました。
たぶん見た記憶があり、そのせいで、マンガを読むときも、脳内では、三平君の声は野沢さんになってたんですが・・・
アニメを見て・・・
あー、そうそう、こんな感じ・・・ありゃ?こんなんだっけ?
なまりがきついなぁ。
どうやら、私の脳内の三平君は、ドラゴンボールの孫悟空になってたようです。





以前から、実写映画化困難な漫画作品、ということだったそうですが、アニメを見て思いました。



20090109



実写映画はやめて、アニメをリメイクしたほうがいいんじゃね?


矢口先生が描くあの緻密な絵の雰囲気が、あの当時の技術レベルでは、アニメに出せてないですね・・・





2009年1月9日金曜日

2ちゃんねるは教育テレビだった

関東では3チャンネルがNHK教育テレビですが、私が生まれ育ったところでは2チャンネルでした、という、ただそれだけのことです…。ちなみに、地デジでは、リモコンの2番のボタンですね。チャンネル番号では021、022ですけど。



それはさておき、2009年1月10日にNHK教育テレビが放送開始50年になるそうで、「ETV50」という企画がスタートしてますね。連日のように、「なんかもう懐かしい!」という映像が見られる特別番組をやってます。

http://www.nhk.or.jp/etv50/index.html

教育テレビでは、昔は、おもいっきり堅苦しい番組が多かったですが・・・
200901081

90年代以降は、かなりやわらかい番組が増えてきてますよね。大学生のころ、ストレッチマンをはじめて見たときの、あの衝撃は忘れられません。



教育テレビといえば学校放送、というイメージもあります。小学校のころは、道徳の授業で教育テレビを見せられたことはありましたが、それ以外はテレビは使ってませんでした。家で見るときは、理科の番組が好きだったかな。実験とか楽しかった。
大学生になってからのほうが、学校放送をよく見ていたような気がします(笑)



ある日、たまたま見た

たんけん ぼくのまち
http://cgi2.nhk.or.jp/etv50/request/detail/index.cgi?program_id=47

のとある1回が、ホラーっぽく、しかも妙に凝った演出がされていて、あれがもう1度見たいです。「たんけん ぼくのまち」(「~ぼくのまち」かと間違って覚えてた)どうやらリクエストでも大人気らしく、チョーさんが特別番組に出演してるのを見ました(声はよく聞いてましたが)。「ふけたでしょう。チョーさんはもう50歳になっちゃいました。」とか言ってて、ちょっとびっくり。





もう一度みたい懐かしの番組をリクエストできるようになってて、番組のリストがたくさん列挙されていますが、リストにないものでも、リクエストできるそうです。



昔の新聞のテレビ欄で見かけたもので、自分も幼きころにテレビで見たことがある記憶があるもので、コンピューター講座、コンピューター入門、電子計算機講座、・・・みたいな感じのタイトルの番組があったと思うのです。それって、いったいどんな内容だったのか、どこか気になるので見てみたいです。1970年代だと思うのですが・・・。



それとは別の、1981年ころにやってたマイコン番組なら、確実に見た記憶があって、NECのPC-8001が使われてたりしたと思いますが、それは、これだと思います。

200901085



趣味講座(趣味百科)
http://cgi2.nhk.or.jp/etv50/request/detail/index.cgi?program_id=131

当時のマイコン、パソコンは、機種が違うと、操作方法も、使えるプログラムも、何もかもが違ってしまう、というのが当たり前だったので、テレビの番組としては、取り上げづらかったんじゃないかと思います。
どのメーカーのパソコンでもだいたい同じ、という現在の状況とはかなり異なっていました。





これは、藤子F先生の追悼番組みたいです。F先生の写真が、なんだかなぁ・・・

ETV特集「こんなこといいな できたらいいな~藤子・F・不二雄の世界~」
http://cgi2.nhk.or.jp/etv50/request/detail/index.cgi?program_id=175


藤子不二雄ファンの私が、昔、勘違いしてたまたま見た番組・・・



200901086



というのは冗談です。今日もちょっと放映されてましたが、フジコ・ヘミングを世間に広く知らしめたこの番組。私は、初回放映時に、チャンネルをかえてたらたまたま見かけて、じっくりと見入ってしまいました。最初、猫が映ってたので、「猫屋敷」のさびしい主の番組かねぇ?と思ってたら、ぜんぜん違ってました(笑)。まるでドラマみたいな人生に深く感動したことを覚えています。つい最近だと思ってたのに、10年前なんだぁ・・・





この番組を、なんとなく見てみたいです。

技能講座
http://cgi2.nhk.or.jp/etv50/request/detail/index.cgi?program_id=124

200901082



200901083



なんちゅうもんを見せてくれたんや。なんちゅうもんを・・・こんなマニアック番組は見たことはない。



もっとも、昔はテレビを自作するキットが売られていた、と聞きます。マイコン(パソコン)で言えば、MZ-80Kみたいなものかなぁ?

(2008/01/09 追記)
今日の放送で、上の「技能講座」の映像が少しだけ見られました。昔のテレビには、垂直同期の調整つまみ、水平同期の調整つまみがついていて、それをまわして調整するんだよ、というだけのことでした。
それって故障なのか???





教育テレビではないんですが、NHKアーカイブスの再放送が見たいです。





2009年1月8日木曜日

2009年の毘沙門さんは2月1・2・3日

20090107



一応、だるま市で有名なことになっている「毘沙門天大祭」は、旧暦1月7・8・9日に開催されることになっているので、今年2009年の場合は、2月1・2・3日になります。



2月1日が日曜日ですか・・・。



あれ、2月3日は節分。今年は豆まきも同時にやるんでしょうか?!



■ 過去記事







2009年1月7日水曜日

岳南鉄道、60周年だったらしい

お正月に、犬の散歩につきあわされたとき見かけました。



岳南鉄道の電車に、60と書かれたヘッドマークが?



20090106



2008年12月に、60周年記念イベントみたいなことをやってたそうです。全然知らなかった・・・



最後にがくてつにのったのは10年以上前だな、たぶん。





2009年1月6日火曜日

松の内

今日から仕事。でも一応、1月7日までは、「松の内」というんですね。



20090105



FreeBSD 7.1-RELEASEが出たそうですが、もうちょっと早ければ、冬休み中にアップデートすることができたのに・・・



今日そのことを知らずにcvsupしたら、かなり時間がかかりました。タグが打たれるので、ほとんど全部のファイルが更新されるんですよね。





昨日、冬休み最後の犬の散歩途中に気がつきました。



たぶん、「あの写真」の煙突は、これだ!



 



200901052



googleマップの「航空写真」では解像度の低いものしか表示されませんが、goo地図の「衛星・航空」だと、はっきりと写ってました。



http://map.goo.ne.jp/map.php?MAP=E138.43.15.586N35.9.35.663&ZM=10&from=mapb





(追記)
横に伸びるオレンジ色のものは、たぶん、第二東名です。夕日を反射してオレンジ色っぽくなってます。
お正月の新聞をみてたら、吉原ジャンクションってのが、富士じゃなくて清水だったことに気がつく。・・・へぇ~清水にも吉原があるんだ。



2009年1月5日月曜日

01月05日のココロ日記(BlogPet)

今日の夕ごはんは、技術づくしで攻めてみます!

*このエントリは、ブログペットのココロが書いてます♪

逆さ富士

今日4日は曇ってて富士山が見えませんでしたが、これは、2日のもの。



20090104



犬の散歩中は、いろんなものが見られていいですね。犬をつれていないと、いまどき、ただの不審人物になってしまいますので。

この写真を撮った場所のすぐ近く、同じころに、しょうもないことで、逮捕されてしまった人がいたようなので、シャレにならない・・・



水面は、実は、沼川という汚れた川です。「そう言えば あの時このうた」でも、1970年、工場廃水の垂れ流しでひどいことになっている映像が入ってます。