昨日(2008-09-09)夜、22:00 くらいに気づいたのですが、少なくとも 20:00 まで元気に動いていたサーバが何も言ってこない。というか DNS をやらせていたのでそのままでは外に出れない。
おやおやおや?
もうその日は疲れていて寝る気まんまんだったので放置して1翌10日、モニタとキーボードを繋いでみる。何も出ない。強制リセット。あ、きたきた。普通に動いてるじゃないか。と思ったら login してしばらくすると画面が乱れて無反応。
あっれー。
これはどっかディスクが壊れたかな。強制リセットしても fsck はバックグラウンドで動くようになっているので login はできるのだ。でもこの状態じゃ何が悪いのか全然分からないな。
ということで今日は予備のディスク買って久しぶりにサラからインストールの予定。たぶんデータはバックアップしてあるので救えるはず。今が FreeBSD 6.3R なので次は 7.0R かしら。
夕飯を食べて。ダラダラ。ダラダラ。やる気が出ない。
意を決して作業開始。実はこのサーバ、光学ドライブをつけていなかった。でも年末 lenovo を買った際に光学ドライブが空いたのでまずはこれを外したり繋いだりの作業。
だりぃ。
オレほんと機械いじり好きじゃないんだなー。それが始める前のダラダラに繋がっていたのだ。
開腹。埃がパネェ。2年分だ、無理もない。掃除機掃除機。
……。
あれ? さっきまで立ち上がっていたのに「ぴーーーーーっ」て言うだけで立ち上がらない。
ここで知り合いに泣きつく。「メモリじゃね?」というお達し。
うっそーーん。だって2年間普通に動いてて開けて掃除機掛けただけよ?と思いつつ、言われるがままに完全に抜いて刺し直し。
BIOSキタ。よしよし。では Frenzy で起動。軽くディスクの様子を見る。なんか……。なんともない? バックアップはあるし、予備のディスクもあるので、強制終了してしまったカルマを払うべく普通に起動してそのまま fsck になだれこんでみる。
……。
完了した。
おや? ということはつまり、原因はメモリが緩かったってか。2年も無事に動いていたのに? でもまぁ実際、抜き差ししただけで普通に動くようになってしまった。こういうこともあるんだな。
DNSはルータに振り直せば外に出れたし。 ↩
どうしてもインターフェイスの方に意識がいっちゃうし、日本語がなぁとか思っていたら街角仕様らしいし、おぉ忘れてた、やはり実機試してみたいぜと思っているところなのだけれど、これ、単独で Safari と iTunes が使えるってのはやはり大きいんじゃなかろうか。
以下は iTunes が iTunes Store にしか繋がらない場合はかなり外れちゃう妄想。
iPod って基本的に外部のデバイスで楽曲データを生成してそれを取り込む形になっているので、ケータイばっかいじっていたい人らにはちょっと面倒なわけですよ。まぁ他のプレイヤーもそうだと思うけど、パソコンか、 rip と転送の機能を持ったラジカセみたいな何か、ステレオシステムっつーんですかミニコンポっつーんですか、なんかそんなやつを持ってなきゃいけないし、何より家に帰って作業しなくちゃいけない。ケータイだったら着ウタでどこでも一発なわけですよ。ケータイ大好きっ子には面倒くさくないですかこれ。
そしてもう一つ、ケータイ文化の人たちは基本的に PC でしか利用できない iTunes Store って使ってないですよね。つまり特に日本の若年層にはあんまり iTunes Store って届いてないんじゃないかと。それが iPod 一つで繋がるんだったら結構使われるようになるんじゃないかなぁという辺り。もっとも無線でしか繋がらないから家に無線 LAN ないとダメじゃん、と田舎ものは思うわけですけどね。ホットスポットなんてそんなにないし。まーでも若者の行動範囲のお店なんかがそういうところを敏感にキャッチして iPod Touch 使えますゾーンを整備していったら(TSUTAYA とかはすでに DS 向けにそういうのあるかもしんないし)、商売的になかなか面白いんじゃないのかな。(スタバ縛りなんてないよね?)
そんでもって iTunes と iTunes Store が日本のケータイ文化の人たちの間にも浸透していったら、インディーズとかはその辺にチャンスが生まれないだろうか。CD みたいにプレスして店頭に並べる方式だと在庫と流通の問題が必ずつきまとうけど、データだったらその辺はかなり扱いが楽になる。iTunes Store に入らなくても、PodCast として流通させちゃえばクォリティとか DRM とかはともかく聴いてくれる人は増える。そして、PC を持っていない人にもリーチできる。モニタ小さいからビデオ作家とかには厳しいかもしんないけど、今みんな喜んであんな小さいモニタでワンセグ見てるわけだから、案外成り立つかもしんない。YouTube だって冷静に考えると結構汚いしね。
まぁ課題はたくさんあって、
- iPod Touch 内蔵の iTunes は iTunes Store 以外に接続できるのか?(Safari 積んでるんだしできると思うけど。YouTube と iTunes Store しか繋がらないんじゃ全然面白くないよね。)
- Podcast とか Safari で探してきても DnD で iTunes に突っ込む操作はやりにくいよな
- クレジット以外の決済をもうちょっと簡単にできないものか?(クレジット以外にもカードとかギフトとかあるけど、あれ文字だけじゃ分かりにくいよねぇ。)
あと
- そもそも Apple はその辺どう考えてんのか
がいちばんの問題か。iTunes Store 以外に繋がっても Apple はそんなに嬉しくないよなぁ。
あ。
つーか完全に忘れてたけど、iPod Touch が Safari 積んでるってことはですよ。Safari を単なるマイナーブラウザと片付けられなくなるってことじゃないすか? NetFront, Openwave, Opera と来て Safari もちっこいデバイスのブラウザとして視野に入れなきゃダメになったってことだよね? これって Safari 3 ?
JavaScript で DOM いじりの話。いやーハマった。
- 要素をオブジェクト化する
- そのオブジェクトに対して getElementsByTagName() で含まれる要素のコレクションを取得する
iCab 3.0.2 では 1 と 2 が同じ要素名(例えば div)だった場合、2 で取得したコレクションに 1 で取得したオブジェクト自身が含まれてしまう。日本語だと意味が分からないかもしれないのでコードを用意した。
- div#large とその中に div#small を用意
- div#large のオブジェクトを取得
- そのオブジェクトに対して getElementsByTagName() で(自分としては)その「中に含まれる要素のコレクション」を取得
- div#large の中には div#small しかないので、コレクションの length は 1 になるし、最初の要素の ID は small になるはず。
- ここで iCab 3.0.2 ではコレクションの数が 2 に、最初の要素の ID が large(つまり自分自身)になってしまう。
Firefox 1.5.0.6 と iCab 3.0.2 で確認。
※ 他のブラウザの状況が確認できた方はツッコミにでもいただけると助かります。
しかし iCab って、2 のときに比べてずいぶんまともに動くようになってるんだねぇ。
<html>
<head>
<title>Test of DOM</title>
<script>
function main() {
var log = [];
var first = document.getElementsByTagName( 'div' );
log.push( 'a number of whole divs : ' + first.length );
log.push( 'id of 1st element of divs : ' + first[0].id );
var second = first[0].getElementsByTagName( 'div' );
log.push( '----' );
log.push( 'a number of divs inside divs : ' + second.length );
log.push( 'id of 1st elements of divs : ' + second[0].id );
var console = document.getElementById( 'log' );
console.innerHTML = '<pre>' + log.join( "\n" ) + '</pre>';
}
window.onload = main;
</script>
<style>
body {
background: #fefefe;
color: #202020;
}
div {
border: 1px solid;
margin: 1em;
padding: 0;
}
#large {
height: 5em;
}
#small {
height: 1.4em;
}
#large:before {
content: 'Large';
}
#small:before {
content: 'Small';
}
#log:before {
content: 'Log';
}
</style>
</head>
<body>
<h1>Test of DOM</h1>
<div id="large">
<div id="small">
</div>
</div>
<div id="log">
</div>
</body>
</html>
めもぱっどの『伊藤直也の「アルファギークのブックマーク」』のコメント。
JavaScript2.0は本当に言語として作成中なので新語を造っちゃうとまずいと思います。
まったくその通り。
このうっかり具合がはてなクオリティなんだなと納得させられた。というか JavaScript をいちばん誤解していたのが単にハテナオヤだっただけなんじゃないかと邪推。JavaScript がどれだけ時間を掛けてまともな作りになってきたかとか、全部ぶっ飛ばしちゃってるもの。
あるディレクトリを指定して、そのディレクトリの中にあるファイルをすべて連番のファイル名に rename する処理を Perl で書いた。(なぜなら Mac 上でその作業を行う必要があったから。ツール探すより書いた方が早いと思ったんだもん。あ、MacPerl で実際に動かす場合はディレクトリの区切りは : じゃないとダメだと思う。)
基本的には以下の方法でイケる。
opendir( DIR, $dirname );
while ( $file = readdir( DIR ) ) {
rename( $dirname.'/'.$file, $dirname.'/basename'.$serial );
$serial++;
}
でもこれでやっちゃうと、rename した瞬間にディレクトリエントリの順番が変わる場合に対処できない。
例えば MacOS でこれを動かすと、rename 後の file が最後のエントリに回り、抜けた分は繰り上がってしまう。つまり、すべてのエントリを順に rename しても、rename されないエントリが半分残り、逆に2回 rename されるエントリが半分できる。
したがって正解は
opendir( DIR, $dirname );
@files = readdir( DIR );
foreach $file ( @files ) {
rename( $dirname.'/'.$file, $dirname.'/basename'.$serial );
$serial++;
}
こうやってディレクトリエントリの変更が起きる前に全部配列に納めてしまう方法。
インストールCDをSP適用済みに「SP+メーカー」v0.15 (窓の杜)
まー自分は LAN 内に Service Pack 落としてきてるし、セキュリティアップデート CD も用意してあるけど、一発で入るならそれがいちばんなわけでして。
キーロガー対策ソフト「ノーロガー」v1.01 (窓の杜)
いいかもしんない。
テキストを行単位で編集「麗華」v1.7.0 (窓の杜)
どの程度のことができるのか分からないけど、直感で言うと、テキスト処理の面白さというか可能性を感じることができるかもしれないな、これ使うと。少なくとも Excel でなくても十分にデータの操作(ワープロ的な編集という意味ではない)は可能なのだということが実感できるんじゃないだろうか。
クセロ、パスワード設定機能搭載のPDF文書作成ソフト「クセロPDF」を無償公開 (窓の杜)
PrimoPDF と遜色のない性能が出て日本語のハンドリングに優れていて、ブラウザによる広告ページのうざさが思ったほでないなら乗り換えもアリかな?
個人的には rsync の信頼性がまた上がったっぽいのが嬉しい。早速一部マシンにインストール中。