2009年11月6日金曜日

たとえ話:Webシステムにおけるソフトとハードの関係

ソフトの不足をハードで補える、と考えている人がたまにいるけど、正直難しいと思う。
たとえるなら、ソフトは運転手で、ハードは車のような関係じゃないだろうか。
運転が下手な人(しょぼいソフト)に高性能の車(高価なハード)を与えても、加速とかハンドリングとかは車の性能で良くなるものの、"運転下手"はそのままなわけで、根本的な解決にはならない。事故に合う確率とかも、そんなに変わらないと思われます。
ところが逆の場合、たとえばF1ドライバーは高性能車はもちろん、大衆車に乗ってもその車の持つ良さを引き出し、最高のパフォーマンスを引き出すことができる。
特に今は高性能ハードが低価格で手に入る時代になっているので、投資すべきはハードよりソフトなんじゃないだろうか。
というようなことを、ふと思いました。

2009年10月27日火曜日

2009年10月20日火曜日

HTMLエンティティ

Amazon.co.jpのトップページのHTMLソースを見ていたところ、titleタグの表示がおかしいことに気がつきました。
こんな風になってます。
<title>Amazon.co.jp&#xFF1A; &#x901A;&#x8CA9; - &#x30D5;&#x30A1;&#x30C3;&#x30B7;&#x30E7;&#x30F3;&#x3001;&#x5BB6;&#x96FB;&#x304B;&#x3089;&#x98DF;&#x54C1;&#x307E;&#x3067;</title>
実際にブラウザで見ると普通の文字列です。
Amazon.co.jp: 通販 - ファッション、家電から食品まで
なにかエスケープをしているようですが、初めて見る形式です。
気になって少し調べてみたところ、HTMLエンティティというものだということがわかりました。
&gt;とか&lt;などHTML特殊文字と同じ形式なので、それの拡張版みたいなものなのでしょうか?
とりあえずphpでは、htmlentities関数で変換。html_entity_decode関数で元に戻すことができることがわかりました。
一般的には、メールアドレス収集のボット対策などに文字列のHTMLエンティティ化が使われているそうですが、amazonがtitleタグをHTMLエンティティ化している理由がわかりません。ボット対策ってわけでもないでしょうし。。
文字化け対策にもなったりするんでしょうか?

2009年10月14日水曜日

ルーターをLinksysからAtermに変えた

かれこれ7年くらい使っていたLinksysのルーターを、NECのAtermに変えました。
Linksysはすごく気に入ってたけど、もう営業を終了してしまっていて新機種も出ないようなので、無線LANアクセスポイントとして使っていたAtermのルーター機能をONにしました。
Atermでも特に問題ないんですが、Linksysに比べて劣る点が大きく2つあります。
1つはルーターのリモート管理機能がないこと。めったに使うことはないんですが、Linksysのときはこの機能が何度か役に立つことがありました。
もう1つは、LAN内からはドメイン名で自宅サーバーにアクセスできないこと。Linksysはこれができたんですが、Atermは、というかほとんどのルーターではできないようです。
hostsに書いて対応する解決策が一般的のようですが、自分はメインがノートPCなので、その方法だとちょっと不便。
ほかにプロキシサーバーを通したり、自分でDNSサーバーたてたりするやり方もあるようですが、ちょっと面倒なので、あきらめてIPで直接アクセスすることにしました。
使い慣れた環境を失うというのはなにかと不便ですね。

2009年10月12日月曜日

LinuxでUSBメモリをフォーマットする

たま~にやるLinuxでのUSBメモリのフォーマット。
よくやり方を忘れてしまうのでメモ。

mkfs.vfat /dev/sda1

あとこれもあわせて使う、現在認識されているデバイスの一覧表示。

fdisk -l

参考
Linuxトラブル対策大全 USBメモリーをパソコンに挿入しても,ドライブとして表示されない

2009年10月5日月曜日

phpで波ダッシュ対策

波ダッシュというのは、たまにみかける全角チルダのできそこないみたいなやつです。
一目見て「こいつ、文字化けしそうだな・・・」と思える風貌をしており、実際文字化けします。
今回調べてみて知りましたが、「波ダッシュ・全角チルダ問題」という、有名な問題なんだとか。
http://ja.wikipedia.org/wiki/%E6%B3%A2%E3%83%80%E3%83%83%E3%82%B7%E3%83%A5
phpでの対応はこちらが参考になりました。
http://d.hatena.ne.jp/tamamo-ch/20090730

2009年9月9日水曜日

cseはOracle Instant Client環境では使えないっぽい

Oracle Instant Client(以下OCI)という便利なものがあることを知り、試しに自分のPCに入れてみました。
http://www.oracle.com/technology/global/jp/tech/oci/instantclient/instantclient.html
OCIはその名の通り、Oracleの簡易クライアントソフトです。Oracle Universal Installerなしで、というかzipを展開するだけで利用できます(環境変数等の設定は別途必要です)
sqlplusでリモートへ接続するのは成功したんですが、普段仕事で使っているcseはダメで、「ociw32.dllが見つかりません」というエラーが出てしまいます。ググってみてもこれといった情報はなし。パスもちゃんと通したんですけど、動きません。
環境はWindowsXP、OCIのバージョンは10.2、cseのバージョンは1.59です。
2~3時間ほど格闘しましたが、どうにもならないのであきらめました。ちょっと残念。