2009年7月16日

Teniteo.jp(テニテオ) ママさんのためのポータルサイト

開発に携わったので紹介。

今月の15日から創刊されたフリーペーパー「テニテオ」のポータルサイト。

完成された雑誌を頂いたので拝読。

フリーペーパーであるにも関わらず120ページものボリューム。

ママさんではないけれど「しつけのコツ」とか「食育のギモン」など普通に読んでしまった。緊急病院リストもママさんにとっては貴重な情報だと思う。

これをフリーでやっているのはすごい。

なぜ「teniteo」なのか聞いてみたら、

「いや特に・・・」

ということだったので深い意味ないらしい。

もうすぐママさんになる人にもお勧め。

サイトの方ももっと気合い入れて作らないとね。

配っているのはアピタとかジャスコとか。設置店リスト

もってない人もオンラインで読むことができる。バックナンバーから。

会員限定のプレゼントとかアンケートのプレゼントとか会員数が少ない今がチャンス。

2009年7月10日

【JavaScript】IE6だと画像が表示されたり、されなかったり

またもやIE6でちょっと嵌ったのでメモ。

IE6 SP2(Windows XP SP2のIE)だとgif画像がなぜか表示されない。タグは生成されているけど、右クリック→画像の表示とやると見える。しかもブラウザによって見えたり見えなかったりするので、読み込みとかキャッシュが関連するのではないかと調べてみた。

ちなみに現象が起きたのはWordpressのcustom-smilies-seを使って顔文字(絵文字)をポップアップで表示するとき。

参考になったのはここのサイト。

要はJavascriptでimgタグのsrcにセットしていると、画像が読み込まれる前に処理が終わってしまった場合、画像が画面に表示されない。

一度ブラウザにキャッシュされている画像は表示される。

なので、画面を表示するときにimageオブジェクトを使って先行読み込みをしてあげれば良い。

簡単なJavaScriptのコードは以下

objImage = new Image();
objImage.src="test.gif";

genlist_post.js.phpに追加したコードは以下

preLoadImage();
function preLoadImage() {
  <?php
    $i = 1;
    foreach ($clcs_smilies as $k => $v) {
        echo 'objImage_' . $i . ' = new Image();';
        echo 'objImage_' . $i . '.src = "' . $imagesdirurl . $v . '";';
        $i++;
    }
    ?>
}

さらに画面が表示するまで時間がかかるようになったので、ベタで表示する方法に変更するかも。

2009年7月9日

【JavaScript】IE6でもmin-width, max-widthを使えるようにする

結局使わなかったけど、今後使う機会がありそうなのでメモ。

IE6で
min-width
max-width
min-height
max-height
を指定するやり方。

一番簡単なのはminmax.jsというJavaScriptを読み込むのが早い。

body要素だけでなく、imgタグなどにも適用してくれるので便利。

欠点は適用されるまで(表示した瞬間は)元のサイズで表示されてしまうこと。

さらにie8だとエラーが起きるので、回避の仕方としてはtry catchを以下のように記述する。

36行目あたり

try {
  em.style.setExpression('width', 'minmax_checkFont()');
  document.body.insertBefore(em, document.body.firstChild);
}
catch(err){}

バージョンアップで対応してるかも。この時点でのバージョンは1.0

2009年7月8日

【Linux】UVC対応カメラをCentOSで認識させる

動画のストリーミングライブ配信の調査でffmpegとffserverでライブ配信したときのメモ。

まずはUSBカメラをCentOSに認識させるところから。UVC(USB Video Device Class)対応カメラなら共通のドライバをインストールすることで対応可能。

Linux kernelのバージョンが2.6.26以上ならUVCドライバが標準でついているので別途インストールは必要ないらしい。最近のUbuntuだったらカーネルのバージョンが新しいので標準でついている。

やってみたのはCentOS5.2でkernel 2.6.18-92.1.22.el5。64bit OS。

ちなみにカーネルのバージョンを確かめるのは
# uname –a

UVCドライバについてはまずここ(英語)を参照。サポートしているデバイスの一覧があるので自分のWebカメラが対応しているか確認。

そこの下の方にリンクがあるけど、ドライバはここのページからダウンロード。ページの上にあるgzのリンクから落とす。

サーバに配置して解凍+インストール

# tar xzvf uvcvideo-14d5abfc0d7e.tar.gz
# cd uvcvideo-14d5abfc0d7e
# make
# make install

コンパイルに必要なgccとかkernel-develは先にインストールが必要

これでログファイルを監視しながらUSBを挿してみる

# tail -f /var/log/messages

挿した瞬間に次のメッセージが表示されればOK。

kernel: usb 1-1: configuration #1 chosen from 1 choice
kernel: Linux video capture interface: v2.00
kernel: uvcvideo: Found UVC 1.00 device <unnamed> (046d:0992)
kernel: input: UVC Camera (046d:0992) as /class/input/input3
kernel: usbcore: registered new driver uvcvideo
kernel: USB Video Class driver (v0.1.0)

ちゃんと/dev/video0ができている。

別の環境(CentOS 5.2 i686)でコンパイルしたときは下のエラーでコンパイルできなかった。

File not found: /lib/modules/2.6.18-128.1.10.el5/build/.config at ./scripts/make_kconfig.pl line 32, <IN> line 4.
make[1]: *** `config-compat.h' に必要なターゲット `.myconfig' を make するルールがありません.  中止.

kernel-develをインストールしてないだけかと思い別途インストールしても直らない。

どうやらkernel-develを参照したいみたいなのでシンボリックリンクを手動で作成。

# mv /lib/modules/2.6.18-128.1.10.el5/build /lib/modules/2.6.18-128.1.10.el5/build.bak
# ln -s /usr/src/kernels/2.6.18-128.1.16.el5-686/ /lib/modules/2.6.18-128.1.10.el5/build

これでmakeとmake installが通った。

実は64bitのCentOSがVMware Server 2.0がインストールされていて、ゲストのCentOSにffmpegをインストールしていたので、2つドライバをインストールする必要があったのです。

ゲストマシンにUSBを認識させるためには「USB Controller」を追加して、上に出てくるUSBマークから選択して有効にする。

image

これで無事、ホストに接続されたUSBカメラをゲストで認識することができた。

2009年7月6日

【HTML】IE6のtextareaがマウスクリックしても無反応

IE6のバグなのか分からないけど、IE6のtextareaをクリックしてもカーソルが移動せず入力可能な状態にならない現象が起きたのでメモ。

ちなみにtab移動だとちゃんとカーソルが移動する。

とりあえず適用されているCSSを調べてみて、怪しそうな

background: none;

を削除したら、無事直った・・・。

まぁ、よくあることですね。

ブログ アーカイブ