Macportsでx264のインストールにこける

Error: Target org.macports.build returned: shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_multimedia_x264/work/x264-snapshot-20090810-2245" && /usr/bin/make -j1 default " returned error 1
Command output: sh: line 0: cd: /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_multimedia_x264/work/x264-snapshot-20090810-2245: No such file or directory

Error: The following dependencies failed to build: x264
Error: Status 1 encountered during processing.
Before reporting a bug, first run the command again with the -d flag to get complete output.

上記のエラーが出た場合は,Xcodeのバージョンを解決.

CentOSで,外部から接続が接続できなくなった件

CentOS自宅サーバー構築( http://centossrv.com/ )」の手順に沿って,随分前にセットアップしたサーバーが,急に外部から接続できなくなった.

原因は,iptables
指定された国のIPアドレスからのアクセスを破棄するように設定していたが,そのリストの取得に失敗していた.

http://centossrv.com/iptables.shtml

このページに記載されている,IPLISTGET(){の中で,以下を修正すれば治る.
before:
wget -q http://nami.jp/ipv4bycc/cidr.txt
after:
wget -q http://nami.jp/ipv4bycc/cidr.txt.gz
gunzip cidr.txt.gz

SPDYについて: 適当なメモ

Googleの提案するアプリケーション層プロトコル
・HTTPのオーバーライド

[ 目的 ]
・Web上の通信の最適化
 ・Webコンテンツの読み込みを高速化(レイテンシの短縮)
[ 目標 ]
・読み込み時間50%削減
・低い導入コスト
 ・TCPを利用するため,既存ネットワークを変更する必要がない
・Webサイト管理者に対して負担をかけない
 ・SPDYは,Webサーバとブラウザの実装だけなので,CGIなどには影響を与えない
オープンソースで開発

[ 技術的目標 ]
TCPの1セッションで,複数のHTTPリクエストを同時に受け付ける
・HTTPの利用帯域を削減
・実装の容易なプロトコルを提案
SSLを利用
・サーバからクライアントへのプッシュ機能

・1つのTCPコネクション上で複数の同時SSL接続
・HTTPのGETやPOSTに代わるデータ転送方法
・双方向通信

[ 特徴 ]
・多重化ストリーム(Multiplexed streams)
 ・無制限の同時ストリーム
・リクエスト・プライオリタイゼーション(優先順位付け)(Request prioritization)
 ・混線時に対応
・HTTPヘッダ圧縮(HTTP header compression)
・サーバプッシュ
 ・クライアントからのリクエストを利用せずに,サーバからクライアントへデータを配信
 ・X-Associated-Content header
・サーバヒント
 ・クライアントがロードするであろうデータをサーバからクライアントに提案
 ・但し,サーバからクライアントへのデータ送信は,クライアントからの要求を待機
 ・X-Subresources header

・セッションレイヤーをSSL上に追加
・単一のTCP接続で複数の相互データストリームを並列処理
・GETとPOST意外に,新たなデータエンコード及び送信フォーマットを提案

[ HTTPとの差違 ]
・SPDYは,HTTPのアプリケーションレイヤとTCPトランスポートにまたがる感じ
・http://がspdy://になるわけではない

[ HTTPの欠点 ]
・1コネクション x 1リクエス
 ・HTTP pipeliningを使えば大丈夫だが,それでもFIFOしか扱えない
 ・殆どのブラウザのドメイン毎の同時接続数が,2から6へと変更された(2008年)
・サーバ側でクライアントの状況を確認する手段がない
・リクエストやレスポンスヘッダーが圧縮されていない
・ヘッダーが冗長すぎる
 ・1回のセッションにも関わらず,同一のヘッダーを複数回要求する可能性がある
 ・User-Agent,Hostなどは,リクエスト毎に変更されることはない
・圧縮データは,HTTPのエンコードを利用しないといけない

[ 関連研究 ]
トランスポート層やセッション層で,HTTPを高速化する研究
・Stream Control Transmission Protocol (SCTP)
・HTTP over SCTP
・Structured Stream Transport (SST)
・MUX and SMUX

[ 現状 ]
・SPDYに対応したChrome,Webサーバのプロトタイプを開発
・上記のChromeのプロトタイプ公開
 ・Chromehttp://src.chromium.org/viewvc/chrome/trunk/src/net/flip/
・一般の家庭用回線を用いた実験では,人気の上位25サイトからのダウンロードが最大55%高速化
 ・SSLを利用しないTCPでは,27-60%短縮
 ・SSLを利用したTCPでは,39-55%短縮
 ・headerの圧縮による成果
  ・headerは,最大88%削減
  ・response headerは,最大85%
  ・headerの圧縮だけで,375Kbpsの環境でupload時間が45 - 1142ms短縮

・研究所内のテストでは,ページロード時間を64%短縮
・SPDYは,Web高速化プロジェクト(http://code.google.com/speed/)の一環

[ 今後 ]
・SPDYに対応したWebサーバやテストツールを近日公開
・コミュニティに公開してフィードバックを取得
・研究所ではなく,一般の状況(回線)で実験が必要
・"an early-stage research project"で,これからさらなる性能査定や評価が必要.

MacでOpengazerをコンパイル

opengazerの性能はともかく,Macportsでライブラリをインストールした環境でコンパイルするには,
Makefileを下記に置き換えれば大丈夫.

# required libraries: vxl, opencv, boost, gtkmm

VERSION = opengazer-0.1.2
CPPFLAGS = -Wall -g -O3
#LINKER = -L$(VXLDIR)/lib -L/usr/local/lib -lm -ldl -lvnl -lmvl -lvnl_algo -lvgl -lgthread-2.0 -lnetlib
LINKER = -lm -ldl -lvnl -lnetlib -lmvl -lvnl_algo -lvgl -lgthread-2.0
#LD_LIBRARY_PATH=$(VXLDIR)

# change the following line if your vxl library is installed elsewhere
#INCLUDES = $(foreach prefix,/usr/local/include $(VXLDIR)/include $(VXLDIR)/include/vxl, \
# $(foreach suffix,/core /vcl /contrib/oxl,-I$(prefix)$(suffix)))
INCLUDES = -I{/usr/local/include,/opt/local/include,/opt/local/lib}{,/core,/vcl,/contrib/oxl}

# -I/usr/include/ffmpeg
# -lcv0.9.7 -lhighgui0.9.7
# -lvgui

sources = opengazer.cpp Calibrator.cpp GazeTrackerGtk.cpp HeadTracker.cpp LeastSquares.cpp EyeExtractor.cpp GazeTracker.cpp MainGazeTracker.cpp OutputMethods.cpp PointTracker.cpp FaceDetector.cpp GazeArea.cpp TrackingSystem.cpp GtkStore.cpp Containers.cpp GraphicalPointer.cpp Point.cpp utils.cpp BlinkDetector.cpp FeatureDetector.cpp Alert.cpp

objects = $(patsubst %.cpp,%.o,$(sources))

%.o.depends: %.cpp
# g++ -MM $< > $@
g++ `pkg-config cairomm-1.0 opencv gtkmm-2.4 --cflags` $(INCLUDES) -MM $< > $@

%.o: %.cpp
g++ -c $(CPPFLAGS) -o $@ `pkg-config cairomm-1.0 opencv gtkmm-2.4 --cflags` $(INCLUDES) $<

opengazer: $(objects)
# g++ $(CPPFLAGS) -o $@ `pkg-config cairomm-1.0 opencv gtkmm-2.4 --libs` $(LINKER) $^
g++ $(CPPFLAGS) $(LINKER) $^ -o $@ `pkg-config cairomm-1.0 opencv gtkmm-2.4 --libs`

include $(patsubst %.cpp,%.o.depends,$(sources))

TAGS: always
etags *.cpp *.h

ship: always
mkdir $(VERSION) || rm -fr $(VERSION)/*
cp LICENSE README Makefile calpoints.txt haarcascade_frontalface_alt.xml $$(for file in $$(cat $(addsuffix .depends,$(objects))) ; do test -f $$file && echo $$file ; done | sort -u) $(VERSION)/
tar czf $(VERSION).tar.gz $(VERSION)
cp $(VERSION).tar.gz README /home/ftp/pub/www/opengazer/

.PHONY: always ship

GData objective-c client libraryでyoutube検索

objective-c client libraryのドキュメント少なすぎ..
とりあえず,youtubeの検索はここを参考にすればいい.

http://everburning.com/news/mytube-searching-for-fun-and-profit/
http://everburning.com/news/mytube-now-with-moving-images/

Firefoxの「選択した部分のソースを表示」は,実はソースと異なる

ちょっとしたトリビア的なネタです.
Firefoxで,ドラッグして選択した部分のソースを表示する場合,実際のソースと異なります.
具体的には,<br />が<br>と表示されます..
もしかしたら他にもあるんじゃないでしょうか.

htmlの一部を正規表現でぶち抜こうとした時に,これでやられました..
「選択した部分のソースを表示」のソースと実際のソースって,普通に考えたら同じであるべきでしょ...