自宅サーバが音信不通……でした。

昨日(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年も無事に動いていたのに? でもまぁ実際、抜き差ししただけで普通に動くようになってしまった。こういうこともあるんだな。

  1. DNSはルータに振り直せば外に出れたし。 

iPod Touch の面白そうなところ

どうしてもインターフェイスの方に意識がいっちゃうし、日本語がなぁとか思っていたら街角仕様らしいし、おぉ忘れてた、やはり実機試してみたいぜと思っているところなのだけれど、これ、単独で 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 ?

iCab 3.0.2 の getElementsByTagName は自分自身を含むらしい

JavaScript で DOM いじりの話。いやーハマった。

  1. 要素をオブジェクト化する
  2. そのオブジェクトに対して 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>

JavaScript 2.0 はまずいでしょ。

めもぱっどの『伊藤直也の「アルファギークのブックマーク」』のコメント。

JavaScript2.0は本当に言語として作成中なので新語を造っちゃうとまずいと思います。

まったくその通り。

このうっかり具合がはてなクオリティなんだなと納得させられた。というか JavaScript をいちばん誤解していたのが単にハテナオヤだっただけなんじゃないかと邪推。JavaScript がどれだけ時間を掛けてまともな作りになってきたかとか、全部ぶっ飛ばしちゃってるもの。

analog の出す数字

リクエスト成功件数200,304 の数
ページリクエスト成功件数設定した拡張子1をページと解釈し、それのリクエスト成功件数

つーことで、動的なページ生成をしている場合、デフォルトの analog ではいわゆるページビューをカウントできません。

  1. デフォルトでは .html .htm / で終わるもの。設定で追加可能。 

連続したファイル名に rename

あるディレクトリを指定して、そのディレクトリの中にあるファイルをすべて連番のファイル名に rename する処理を Perl で書いた。(なぜなら Mac 上でその作業を行う必要があったから。ツール探すより書いた方が早いと思ったんだもん。あ、MacPerl で実際に動かす場合はディレクトリの区切りは : じゃないとダメだと思う。)

基本的には以下の方法でイケる。

opendir( DIR, $dirname );
while ( $file = readdir( DIR ) ) {
  rename( $dirname.'/'.$file, $dirname.'/basename'.$serial );
  $serial++;
}

連番への rename 処理

でもこれでやっちゃうと、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文書作成ソフト「クセロPDF」を無償公開 (窓の杜)

PrimoPDF と遜色のない性能が出て日本語のハンドリングに優れていて、ブラウザによる広告ページのうざさが思ったほでないなら乗り換えもアリかな?

Basilisk II 上の MacOS で JIS キーボード

漢字TALK 7.5 以降であっても

JIS キーボードインストーラ (apple.com)

要ります。

cygwin 1.5.11-1

個人的には rsync の信頼性がまた上がったっぽいのが嬉しい。早速一部マシンにインストール中。

About

例によって個人のなんちゃらです

Recent Posts

Categories

Tool 日々 Web Biz Net Apple MS ことば News Unix howto Food PHP Movie Edu Community Book Security Text TV Perl Ruby Music Pdoc 生き方 RDoc ViewCVS CVS Rsync Disk Mail FreeBSD Cygwin PDF Photo Zebedee Debian OSX Comic Cron Sysadmin Font Analog iCal Sunbird DNS Linux Wiki Emacs Thunderbird Sitecopy Terminal Drawing tDiary AppleScript Life Money Omni PukiWiki Xen XREA Zsh Screen CASL Firefox Fink zsh haXe Ecmascript PATH_INFO SQLite PEAR Lighttpd FastCGI Subversion au prototype.js jsUnit Apache Trac Template Java Rhino Mochikit Feed Bloglines CSS del.icio.us SBS qwikWeb gettext Ajax JSDoc Rails HTML CHM EPWING NDTP EB IE CLI ck ThinkPad Toy WSH RFC readline rlwrap ImageMagick epeg Frenzy sysprep Ubuntu MeCab DTP ERD DBMS eclipse Eclipse Awk RD Diigo XAMPP RubyGems PHPDoc iCab DOM YAML Camino Geekmonkey w3m Scheme Gauche Lisp JSAN Google VMware DSL SLAX Safari Markdown Textile IRC Jabber Fastladder MacPorts LLSpirit CPAN Mozilla Twitter OpenFL Rswatch ITS NTP GUI Pragger Yapra XML Mobile Git Study JSON VirtualBox Samba Pear Growl Mercurial Rack Capistrano Rake Win RSS Mechanize Sitemaps Android JavaScript Python RTM OOo iPod Yahoo Unicode Github iTunes God SBM friendfeed Friendfeed HokuUn Sinatra TDD Test Project Evernote iPad Geohash Location Map Search Simplenote Image WebKit RSpec Phone CSV WiMAX USB Chrome RubyKaigi RubyKaigi2011 Space CoffeeScript Nokogiri Hpricot Rubygems jQuery Node GTD CI UX Design VCS Kanazawa.rb Kindle Amazon Agile Vagrant Chef Windows Composer Dotenv PaaS Itamae SaaS Docker Swagger Grape WebAPI Microservices OmniAuth HTTP 分析基盤 CDN Terraform IaaS HCL Webpack Vue.js BigQuery Middleman CMS AWS PNG Laravel Selenium OAuth OpenAPI GitHub UML GCP TypeScript SQL Hanami Document SVG AsciiDoc Pandoc DocBook Develop Jekyll macOS Node.js Vite Heroku Transformer AI Data Cloud Wasm