2009年1月22日木曜日

移転のおしらせ

移転というかこっちをやめて別のブログ立ち上げました。
http://blog.s-satoshi.net

2008年11月16日日曜日

Macでニコニコ動画のH.264(mp4)動画から音声を抽出する方法

珍しくそこそこ独自性の高い記事かも。
まぁ半分くらい知り合いのアドバイスによるものだが…

そうそう、macでnicocacheを動かすには、jarファイルをログイン項目に入れるなり、使う時にjarファイルをダブルクリックするなりすれば良い。そもそもこれが前提。

nicocache(含nl)にはflvおよびmp4から音声を抽出する機能があるんだが、Macでやるとこいつの設定が結構面倒だったので、簡単にまとめてみる。たぶん多くのLinuxでも似た方法でやれるから参考にはなるはず。

まず、MP4Boxが必要なのでこいつを以下のアドレスから落として来る
MP4Box - statically linked (Mac OS X / Intel) - CVS 18.08.2008(http://www.tkn.tu-berlin.de/research/evalvid/)
で、こいつが実行ファイルなので、これを実行しようとすると、何故かlibpngが所定の位置に無いってエラーを吐く。
なんで音声用のソフトにlibpngが居るんだろうという疑問は残るが、入れれば動くので頑張って入れよう。

libpngなどを入れるにはMacPortsというアプリケーションが簡単で便利だ。
以下のサイトを参考に、ソフトウェア一覧の更新まで行うと良い。
ちなみに環境変数は、~/.profile にテキストファイルを作ってコピペすれば動く。
vimコマンドが便利。
http://d.hatena.ne.jp/hakobe932/20061208/1165646618
そしたら、
$ sudo port install libpng
とコマンドを打って、パスワード聞かれるので自分のパスワード入れると、libpngが手に入る。
しかし、これではまだ動かない。MP4Boxが要求するパスと実際に存在するパスが違うからだ。
と言う事で、シンボリックリンクを貼る
$ sudo ln -s /opt/local/lib/libpng.3.dylib /usr/local/lib/libpng.3.dylib
これでMP4Boxが動くんだけど、nicocacheで使う為にはパスの通った所に移動してあげなきゃいけないので、こんな感じにすると良い
$ sudo mv MP4Box /usr/bin/

これでMP4Boxは動く様になったので、あとは最後のひと仕上げ
nicocache.jarのあるフォルダにテキストファイルでもなんでもいいので「MP4B0x.exe」という名前のファイルを作る。

これでmp4からm4aが抽出されましたとさ。めでたしめでたし。


ちなみにswfは対応してないので、wineとかCrossOverとかでHugFlash動かすのが妥当なんじゃないかなぁ。(やった事無いので知らんけど)

参考ページ
http://pc11.2ch.net/test/read.cgi/software/1200931289/(主に576番)

2008年11月14日金曜日

Macメインの環境でオンラインストレージサービスのDropBoxを便利に使う

久々の更新ですね。

http://arakawa.yamanaka.ics.keio.ac.jp/archives/244
の内容ほとんどそのまんまなんですが…

(注:以下で言うDropBoxはWebストレージの方で、Macのパブリックの中のファイル共有用ディレクトリではありませんw)

僕は普段作業をするとき、いわゆる「書類」は全部Mac標準の「書類」フォルダに入れています。
そんな環境と大学のPCを併用する生活を続けていた僕が前々から思っていたのが、このフォルダを同期していつでも何処でも見れたら良いな、って事。

そんな中最近DropBoxを使ってみようと思った訳なんですが、ちょっと困る事がありました。
それは、上記「書類」フォルダは1GB程度しか使ってないのでまるごとDropBoxに突っ込んでしまいたいんだけどどうすれば良いものか…
というそこのあなた!

spotlightで「ターミナル」
ln -s ~/Documents ~/DropBox/hogehoge
これでシンボリックリンクが作られて、ほっとけば同期完了〜

2008年9月25日木曜日

Mac OSXのAdiumが1.3.2b1になった

MSNメッセをOSXで使う事に関する記事を先日書きましたが、
バージョンアップが激しく将来に期待出来ると言う事でAdiumを使っています。

そしたらなんと今回のアップデートで「不在メッセージ」に対応してくれました!

MSNメッセ(今はWindowsLiveか)の知り合いが割と多いので、アップデートして初回ログイン時はヤバかったです。
「ポコペン」「ポコペン」「ポコペン」「ポコペン」「ポコペン」
みたいな。

とにかく、これでようやくWinXp上のWindows Live Messangerと遜色なく使えるかなと思います。
状態メッセージがまだ貧弱だけど、他人のは見れるからそれほど困る事も無いかと

2008年9月24日水曜日

CakePHPの高深度アソシエーションの欠点

CakePHP(1.1)でSNS的なシステムを運用していて気づいた事。
1.2で改善されてるのか?ちょっと調べてないから解らないが…


メッセージ一覧のページの表示が前々から遅くて、何が起きてるのかと思いつつ放置していたんだが
少し余裕が出て来たのでデバッグモード(=2)でクエリを見てみたら、何か件数x3くらいのクエリが実行されていた訳だ


ここで問題。

PHP標準のSQL発行ではアソシエーションの階層はハッシュの階層に反映されない。LEFT JOINを何度しようと、結局はSELECTで指定したカラム名による一次ハッシュになるはず。
でもCakeでアソシエーションを組むと、階層が反映されるわけだ。
どうやっているんでしょうね?

正解は、「カラムごとにクエリを何度も発行している」(!!)
だから今回の様に、何かのリストのような物を表示する時にCakeのfindAll(Byなんたらを含む)をするとめちゃくちゃ重いってわけだ

結局Model::query()にカスタムしたSQL文を突っ込んでやったら爆速になりましたとさ。



まとめ

CakePHPのfind系メソッドは複雑なアソシエーションを組んだデータのリストには向いてないので、自分でSQL文を書こう!

2008年9月20日土曜日

GmailでRFC違反アドレスにもメールを送る方法

先日、GmailからRFC違反のメールアドレスにメールを送る事が出来なくなりました。

しかしながらココはケータイメール大流行りのニッポンだし、まさか「俺からメール送れないからお前メルアド変えろ」なんて言えないでしょ?
ただでさえRFC違反アドレスにする人はそう言う事に興味が無いから違反アドレスにしている訳で、もちろんこれでルール守らない糞キャリアざまぁwだとは思うんだけど実用上不便ということで…

独自調査による、GmailからRFC違反アドレスにメールを送る方法です。


・SMTPもしくはIMAPでメールを送る


…これだけなのでしたー^^;

2008年9月12日金曜日

CakePHP1.1のscaffolgでアンダーバー(_)区切りDB(モデル)を使う時にバグる

タイトルの通りです。
そして記事としてはサイトの紹介に留まります。
http://d.hatena.ne.jp/cos31/20080220/1203490118
Notice: Trying to get property of non-object /hogehoge/cake/libs/controller.php L66

バグの内容としては、テーブルは通常通りに描画されているっぽいんだがなぜか表示されない。
動作の雰囲気は、モデル情報を適切に取得できずにカラムが生成出来ていないといった所。

スクリーンショット撮っておけばよかったなぁ

まぁ私用メモみたいなもんですが、困ってる人の参考になれば幸いです