〜2009年8月中旬〜
mencoderの表示をログに残して別の端末からtailで見ようとしても、
LFじゃなくてCRで延々表示してるのでなかなか最後が出てこない。
そこで-cオプションが役に立つ。tail -c 80ぐらいで。
最近はmencoderをbatchで動かしてるのでこんな工夫が必要になったり。
ノーカット版。来場者数は4万を越えていた。
全然討論になってないんだけど面白かった。
ぽぽ山の意味不明さは相変らずではあるが、
ノーカットを拒否するテレビ局のほうも終わってるな。
F11での昨日の更新でEmacs 23になっちゃって日記書きづらいよ。
どうしたもんかな。まずはSKKをなんとかしないと。
夏休みなのでのんびりと録っといたBOSSと救命(地震のやつ)の再放送をまとめて観た。
やっぱ救命は2が一番面白いな。
なぜかデフォルトがイタリックになってしまいうっとうしい。
結局skkは特に問題なくて日記モードがうまいこと動かせなくなったというか、
中途半端というか。どうしたもんかいな。
もはやEmacsは日記でしか使ってないので、vimにしちゃうかな。
よくわからないので、~/.emacs*を全部移動して真っ新な状態で立ち上げてみたら、
メニューが出てきて驚いた。メニューバーとかツールバーは使わないので、ずーっと
(menu-bar-mode nil)
(tool-bar-mode nil)
としていたからなあ。なかなか新鮮ではある。
OptionsのSet Default Font...で適当にVLゴシックを選んでSave Optionsしたら雛型ができた。
これを元に以前の~/.emacsと統合したら、まあだいたい満足できる感じになった。
フォントはTrueTypeじゃなくてビットマップで十分なんだけどなあ。
これも慣れると逆にビットマップじゃいやだとか思うんだろうか。
UTF-8も問題ないな。これもEmacs 23からだったっけ?
って内部コードがUTF-8になったんか。問題ないわけだよ。
それはそれとして日記も以前と同じように書けるようになった。
なんかどっちもうまくいかないので調べてみる。
watch_fullscreenなる文字列はすでにないのでオリジナルが動かないのはこれが原因だな。
で08-13のほうは出たり出なかったりとなんだかよくわからない。
と思ったらハッシュの部分が不定なので順番が変わってしまうのが原因のようだ。
s/.*", "video_id"
のように"video_id"の前の"まで含めてしまっているため
"vq": null, "video_id":
nullが来たときにマッチしなくなってしまう。これは"t"のほうにも言える。
sedの部分は"を除いた形にしたほうが柔軟だな。
sed -n 's/.*, "video_id": "\([^"]*\)", ".*, "t": "\([^"]*\)", ".*/video_id=\1\&t=\2/p'
ここで作られるURLの最後にfmt=18だの35だの22だのを指定して、
その画質の動画が存在すれば高画質の動画が見られる。
存在の有無はなんかぐりもんがあった気がするので後で調べよう。
F11からyumでmingw32のクロス環境が使えるので試した。
yum install mingw32-{gcc,w32api}でrubyをmakeできる最低限の環境ができる。
依存関係でその他mingw32-{binutils,cpp,filesystem,runtime},
python-magic, rpmlint
がインストールされる。後ろの2つは関係ないようだが、
mingw32-filesystemがrpmlintを必要とし、rpmlintがpyhon-magicを必要とする。
あと、ライブラリ関係も充実してるのでクロスの環境としては最適なのかもしれない。
mingw32-SDL.noarch 1.2.13-6.fc11 fedora mingw32-atk.noarch 1.25.2-8.fc11 fedora mingw32-atk-static.noarch 1.25.2-8.fc11 fedora mingw32-binutils.i586 2.19.1-4.fc11 fedora mingw32-boost.noarch 1.37.0-4.fc11 updates mingw32-boost-static.noarch 1.37.0-4.fc11 updates mingw32-bzip2.noarch 1.0.5-7.fc11 fedora mingw32-cairo.noarch 1.8.6-1.fc11 fedora mingw32-cairomm.noarch 1.8.0-1.fc11 fedora mingw32-cpp.i586 4.4.0-0.7.fc11 fedora mingw32-crossreport.noarch 6-2.fc11 fedora mingw32-dlfcn.noarch 0-0.5.r11.fc11 fedora mingw32-enchant.noarch 1.5.0-2.fc11 updates mingw32-enchant-static.noarch 1.5.0-2.fc11 updates mingw32-expat.noarch 2.0.1-4.fc11 fedora mingw32-filesystem.noarch 50-3.fc11.1 updates mingw32-fontconfig.noarch 2.6.0-9.fc11 fedora mingw32-freetype.noarch 2.3.8-3.fc11 fedora mingw32-gcc.i586 4.4.0-0.7.fc11 fedora mingw32-gcc-c++.i586 4.4.0-0.7.fc11 fedora mingw32-gcc-gfortran.i586 4.4.0-0.7.fc11 fedora mingw32-gcc-objc.i586 4.4.0-0.7.fc11 fedora mingw32-gcc-objc++.i586 4.4.0-0.7.fc11 fedora mingw32-gdbm.noarch 1.8.0-4.fc11 fedora mingw32-gettext.noarch 0.17-10.fc11 fedora mingw32-glib2.noarch 2.20.1-1.fc11 updates mingw32-glib2-static.noarch 2.20.1-1.fc11 updates mingw32-glibmm24.noarch 2.20.0-3.fc11 updates mingw32-gnutls.noarch 2.6.4-1.fc11 fedora mingw32-gtk-vnc.noarch 0.3.8-5.fc11 fedora mingw32-gtk2.noarch 2.16.1-2.fc11 updates mingw32-gtk2-static.noarch 2.16.1-2.fc11 updates mingw32-gtkmm24.noarch 2.16.0-1.fc11 updates mingw32-hunspell.noarch 1.2.8-6.fc11 updates mingw32-hunspell-static.noarch 1.2.8-6.fc11 updates mingw32-iconv.noarch 1.12-9.fc11 fedora mingw32-jasper.noarch 1.900.1-8.fc11 fedora mingw32-libgcrypt.noarch 1.4.4-3.fc11 fedora mingw32-libglade2.noarch 2.6.4-2.fc11 updates mingw32-libglade2-static.noarch 2.6.4-2.fc11 updates mingw32-libglademm24.noarch 2.6.7-6.fc11 updates mingw32-libgnurx.noarch 2.5.1-3.fc11 updates mingw32-libgnurx-static.noarch 2.5.1-3.fc11 updates mingw32-libgpg-error.noarch 1.6-11.fc11 fedora mingw32-libidn.noarch 1.14-2.fc11 updates mingw32-libidn-static.noarch 1.14-2.fc11 updates mingw32-libjpeg.noarch 6b-10.fc11 fedora mingw32-libltdl.noarch 1.5.26-13.fc11 fedora mingw32-liboil.noarch 0.3.16-1.fc11 fedora mingw32-libp11.noarch 0.2.4-1.fc11 updates mingw32-libpng.noarch 1.2.37-1.fc11 updates mingw32-libsigc++20.noarch 2.2.2-6.fc11 fedora mingw32-libsoup.noarch 2.26.1-2.fc11 updates mingw32-libsoup-static.noarch 2.26.1-2.fc11 updates mingw32-libsq3.noarch 20071018-7.fc11 updates mingw32-libsqlite3x.noarch 20071018-7.fc11 updates mingw32-libssh2.noarch 1.1-2.fc11 updates mingw32-libssh2-static.noarch 1.1-2.fc11 updates mingw32-libtiff.noarch 3.8.2-17.fc11 updates mingw32-libxml++.noarch 2.26.0-1.fc11 updates mingw32-libxml2.noarch 2.7.3-2.fc11 updates mingw32-libxml2-static.noarch 2.7.3-2.fc11 updates mingw32-libxslt.noarch 1.1.24-7.fc11 updates mingw32-libxslt-static.noarch 1.1.24-7.fc11 updates mingw32-minizip.noarch 1.2.3-16.fc11 updates mingw32-nsis.i586 2.45-1.fc11 updates mingw32-nsiswrapper.noarch 3-4.fc11.2 updates mingw32-opensc.noarch 0.11.8-1.fc11 updates mingw32-openssl.noarch 0.9.8j-6.fc11 updates mingw32-openssl-static.noarch 0.9.8j-6.fc11 updates mingw32-pango.noarch 1.23.0-1.fc11 fedora mingw32-pango-static.noarch 1.23.0-1.fc11 fedora mingw32-pangomm.noarch 2.24.0-1.fc11 fedora mingw32-pdcurses.noarch 3.4-5.fc11 fedora mingw32-physfs.noarch 1.0.1-12.fc11 fedora mingw32-pixman.noarch 0.13.2-4.fc11 fedora mingw32-plotmm.noarch 0.1.2-2.fc11 updates mingw32-pthreads.noarch 2.8.0-8.fc11 updates mingw32-qt.noarch 4.5.2-1.fc11 updates mingw32-qt-qmake.i586 4.5.2-1.fc11 updates mingw32-qwt.noarch 5.1.1-6.fc11 fedora mingw32-readline.noarch 5.2-6.fc11 fedora mingw32-runtime.noarch 3.15.2-3.fc11 fedora mingw32-sqlite.noarch 3.6.6.2-3.fc11 fedora mingw32-tcl.noarch 8.5.7-5.fc11.1 updates mingw32-termcap.noarch 1.3.1-7.fc11 fedora mingw32-w32api.noarch 3.13-3.fc11 fedora mingw32-wpcap.noarch 4.1.beta5-2.fc11 fedora mingw32-wpcap-docs.noarch 4.1.beta5-2.fc11 fedora mingw32-wpcap-examples.noarch 4.1.beta5-2.fc11 fedora mingw32-zfstream.noarch 20041202-5.fc11 updates mingw32-zlib.noarch 1.2.3-16.fc11 updates mingw32-zlib-static.noarch 1.2.3-16.fc11 updates
とりあえずwineとかbinfmt_miscとかは使わない環境での話。
.exeは直接実行はできない。
最近のautoconfはintとかのサイズが取れなくなってるようで、
外から指定する必要がある。
ac_cv_sizeof_short=2 \ ac_cv_sizeof_int=4 \ ac_cv_sizeof_long=4 \ ac_cv_sizeof_long_long=8 \ ac_cv_sizeof_size_t=4 \ ac_cv_sizeof_ssize_t=4 \ ac_cv_sizeof_voidp=4 \ ac_cv_sizeof_float=4 \ ac_cv_sizeof_double=8 \ ac_cv_sizeof_time_t=4 \ ac_cv_sizeof_int8_t=1 \ ac_cv_sizeof_uint8_t=1 \ ac_cv_sizeof_int16_t=2 \ ac_cv_sizeof_uint16_t=2 \ ac_cv_sizeof_int32_t=4 \ ac_cv_sizeof_uint32_t=4 \ ac_cv_sizeof_int64_t=8 \ ac_cv_sizeof_uint64_t=8 \ ac_cv_sizeof_intptr_t=4 \ ac_cv_sizeof_uintptr_t=4 \ ac_cv_sizeof_ptrdiff_t=4 \ ../ruby/trunk/configure \ CFLAGS='-Os -mms-bitfields' \ --disable-option-checking \ --host=i686-pc-mingw32 \ --target=i386-mingw32 \ --build=i386-linux \ --with-baseruby=ruby \ --enable-wide-getaddrinfo \ -C \ --prefix=
型のsizeだらけなので、これはconfigure.inにクロスのときはという条件で
入れちゃったほうがよさげ。
クロスコンパイラはi686-pc-mingw32-というprefixがつくので--hostでそれを指定。
trunkはビルド前にもろもろrubyでファイルを作るので
ホスト側で動くrubyを指定する必要がある。このrubyは1.8。
trunk指定ではなぜかエラーになった。あとで調べる。
configureの在処は適当に指定して、あ、それと重要なのは-mms-bitfieldsで、
これをつけないと構造体の空きをパッキングしてくれないとかなんとかで、
バイナリ互換の問題が出るという話。
このくらいでmakeは可能。
mingw32-{readline,zlib}をインストールすれば、これらの拡張ライブラリも使える。
ただopensslはmingw32-openssl-staticを試してみたが、残念ながら
ossl_engine.o:ossl_engine.c:(.text+0xc1c): undefined reference to `ENGINE_load_cswift' ossl_engine.o:ossl_engine.c:(.text+0xc41): undefined reference to `ENGINE_load_chil' ossl_engine.o:ossl_engine.c:(.text+0xc66): undefined reference to `ENGINE_load_atalla' ossl_engine.o:ossl_engine.c:(.text+0xc8b): undefined reference to `ENGINE_load_nuron' ossl_engine.o:ossl_engine.c:(.text+0xcb3): undefined reference to `ENGINE_load_ubsec' ossl_engine.o:ossl_engine.c:(.text+0xcdb): undefined reference to `ENGINE_load_aep' ossl_engine.o:ossl_engine.c:(.text+0xd03): undefined reference to `ENGINE_load_sureware' ossl_engine.o:ossl_engine.c:(.text+0xd2b): undefined reference to `ENGINE_load_4758cca'
とifdefが足りないようだ。
いろいろ試した結果、ターゲットがtrunkならBASERUBYもMINIRUBYも、
trunkのrubyじゃないとだめという結論に。
そのあたりは週末にでもまとめて久し振りにこみる。
fake.rbやらrbconfig.rbのバージョンチェックのとこで、
どうすべきか考えないとだめとなかださんからの指摘。
RUBY VERSIONのMAJOR/MINOR/TEENYは、APIのバージョンという位置づけ
なので、RUBY_VERSIONと食い違いが出てしまう。
ちょっと悩ましい。