2007年12月アーカイブ

Firefox3の<a ping>

ping
If present, this attribute should be a space-separated list of URIs that wish to be notified when the user follows the hyperlink. Firefox sends a POST request to each HTTP URI in the list. The ping attribute's functionality can be disabled by setting the browser.send_pings preference to false.
HTML:Element:a - MDC

リンク(a要素)をクリックすると、表側ではリンクのhref属性で指定されているURIに飛ぶ。これはいつも通り。で、そのリンクにping属性が指定されていると何が起きるのか。

まあ、説明に書いてある通り、ping属性に空白区切りで並べたURIすべてにPOSTでリクエストが飛ぶ、だけですね。(少なくとも今のところは)何か特別なパラメータ(body)が送信されるような実装はされていない様子。

これはなんでしょうかね。簡単にDoSできると言う話?

リンク先URIをオリジナルのままにして、別サーバでトラッキング用のリクエストを受け取る事が出来ると言う話?

pingを警告するGMとかが登場すると言う話?

なにかの拡張では、すでにpingを無効にする設定が追加されたとか。

よく分かりません。

TracとMercurial

Mercurialを触ろうと思い、Tracへの対応を調べてみれば、出来るんですね。
TracMercurial - The Trac Project - Trac

ひとまず、Trac0.11をtracdで動かして、MercurialのレポジトリをTracのブラウザから見る事が出来ました。環境は、MacBook(Leopard)のOSX用Python2.5とMercurial0.9.5(ソースからsetup.pyでインストール)です。

bdiffというモジュールのimportに失敗して四苦八苦しましたが、site-packages/mercurialをPYTHONPATHに追加したら問題なくなりました。Pythonのパス解決でカレンとディレクトリがうんたら?

とりあえず、準備だけ。

Locationヘッダに相対パスが指定されているとき、パスとかクエリストリングの扱いが変。

Locationヘッダに相対パスが指定されている場合、以下のような処理が問題になっています。

まず、リダイレクト先URLを作るときに、URIのパス部分しか更新しません。つまり、リダイレクト元のURIにクエリストリングなどが含まれていると、リダイレクト先URIを絶対URIにするときに、リダイレクト元のクエリストリングが使われます。

そして、URIのパスを更新する処理で、Locationヘッダに指定された文字列をそのまま使っています。これは、つまり、"hoge_path?hoge_query#hoge_fragment"だった場合にこれをそのままURIのパスとして使う様になると言う事です。

まとめると、以下のような挙動になります。

http://example.com/?ichi-ban
  Location: redirect?ni-ban
http://example.com/redirect?ni-ban?ichi-ban

と言う訳で、上記の様にリダイレクト先URLがおかしなものになってしまいます。

これ、世間的には既知ですよね?それとも、HTTP_Requestはあまり使われていないのでしょうか?みんな、socketとかcurlとかを使うのですか?


あれ?クエリストリングって、リダイレクトで引き継いだりしませんよね?


HTTP_Requestを修正して差分を記載していましたが、いろいろとバグだらけの修正をしてしまっていたので、消しました。

gdatacopierの例外

尚、手元の環境で試すとログインは出来るのだがその後の一覧取得時にエラーが発生してしまった(日本語下の問題だろうか)。試される方はぜひエラー部分を修正し、本家にフィードバックして欲しい。
MOONGIFT: » Googleドキュメントとローカルをつなぐ「GDataCopier」:オープンソースを毎日紹介

atom.CreateClassFromXMLStringの中のxml_string.encode(XML_STRING_ENCODING)で例外が起きている模様。手元の環境では、sys.defaultencodingがasciiでした。

というわけで、site-packages/sitecustomize.pyにエンコーディングを書いて対応しました。無事、一覧取得に成功。

ごめんなさい、自分には修正は無理です。

アルミiMac+Tiger+Python2.5.1(OSX用)で確認。

勢い余って、MacPortsで入れたアレコレを消してしまいました。

消してしまった後で、手元にもPHP5があった方が良い事に気がついたので、入れ直し。

さて、会社のiMacはTigerな訳ですが、どうやらtiffのビルドが出来ない様です。情報を探していると、"--with-apple-opengl-framework"を追加しているのが問題との事。"post-configure { reinplace "s,-L/usr/X11/lib,," ${worksrcpath}/tools/Makefile } "を追加する様になったから、問題がなくなったと言う話ですが、手元の環境では駄目でした。

仕方がないので、2行とも削ってみたところ、無事tiffもphp5もインストールが完了しました。

というところで気がついたのですが、darwin_8でインストールしたら問題がなかったのでしょうか?問題の記述はmacosxの部分だったので、、、

ひとまず、これで問題ない気がするので、よしです。

Flashのmeta-policyって?

いまいち、よくわかりません。
Adobe - Developer Center : Security changes in Flash Player 9

とある、ポリシーファイルが有効であるか、サーバ側で少々細かく制御できる様になったという話でしょうか?英語がさっぱりなので、優しい人の解説待ちでしょうか。

all
全部のポリシーファイルを許可するのだろうか
by-content-type
HTTPレスポンスヘッダのContent-Typeがtext/x-cross-domain-policyのものだけ許可するのだろうか
by-ftp-filename
FTPの場合にcrossdomain.xmlという名前だけ許可するのだろうか
master-only
いわゆる、ドキュメントルート直下のcrossdomain.xmlのみ許可するのだろうか
none
全てのポリシーファイルの利用を許可しないのだろうか
none-this-response
これはHTTPレスポンスヘッダで指示するもの?X-Permitted-Cross-Domain-Policiesにセットすれば良い?これがあるレスポンスだけについて、許可しないのだろうか

ひとまず、メタポリシーの意味がよく分からなかったので、設定とそれで出来る事に絞ってみてみました。

さて、設定の効果は何となく分かったので、どこでどうやって指示するのかですが、メタポリシーはcrossdomain.xmlとHTTPレスポンスヘッダで指示できるようです。
crossdomain.xmlで指示する場合は、ドキュメントルートのマスターポリシーファイルに記述するという事でしょうか。
HTTPレスポンスで指示する場合、none-this-response以外は常に設定が返る様にしておくべきなんでしょうか。

ひとまず、これでなんとなく雰囲気がつかめたような気になってみます。そこで、一番重要な、『メタポリシーが用意された意味』についてですが、やはり先述のドキュメントを理解しないと駄目な気がします。メタポリシーを使って、やりたい事をやる程度なら出来ると思いますが、それではあまりにアレです。

よくわからないながら、ある条件下での脆弱性(に近いもの?)が存在する為、その対策として提供される様になったのだと思っています。なので、現状の危険度を知る為にも、『何が危険なのか』を理解したいのですが、さっぱりなわけです。

共有レンタルサーバで、複数人の契約者が同じドメインを使っている場合を考えているのでしょうか。そう考えると、これまでは「安易にcrossdomain.xmlを設置できない(クライアントから好きなURLのポリシーファイルを読めた気がする)」状況だったのを、メタポリシーを使ったサーバ管理者による制御を可能にして改善しようという事に思えます。

ギブ。どなたか、優しく詳しい解説をお願いします。というか、会社の英語の中の人、よろしくです。

歩いて持ち帰ったので、カラダがポッカポカ。

カラダが寒くなるまで、おあずけ。


ちょっとつけた感じでは、かなり期待できそう。即戦力!

恐れていた事態が・・・

ついにエアコンのリモコンがぶっ壊れ。

本体にスイッチなどは見当たらない。

明日、暖房器具を見繕って購入しなければ。

さっさと寝るしかないなぁ。

LeopardとQuickSilver

Leopardでも、特に問題ないですよね?

QuickSilverでリマインダーをセットするやつ(QuicksilverをReminderとして使う - soundscape out)をLeopardでもやろうと思ったわけですが、C-RETがうまく動いてくれない気がします。会社のiMac(Tiger)では出来たので、自宅の環境(MacBookPro; Leopard)でおかしな事になっている気がします。

そもそも、アプリケーションランチャにしか使えていないので、actionとかさっぱりです。それで、良い機会なので、キーバインドを調べてみたんですが、この記号はどうやって読み解けば良いのでしょうか?OSXの標準記法 なんですかね?@とか~とか。plistとかの話でしょうか。

マニュアルにある通りに、"/Applications/Quicksilver.app/Contents/Frameworks/QSInterface.framework/Versions/A/Resources/DefaultBindings.qskeys"を見ているわけですが、本当にさっぱりです。$がShiftっぽい事は分かりました。^はきっとCtrlでしょう。@はCmdだと踏んでいます。~はOptですかね。結果の動作がよくわからないので、何とも言えませんが。

ひとまず、quicksilver:tutorials [docs]を一通り経験した方が良い気がしてきました。ついでに、ダウンロードできる様になったら、入れ替えた方がいいのかも。

QuickSilverを使いこなせない自分は、小学生以下。


話は変わるけど、All-in-One Sidebarはmacで使っちゃいけないのでしょうか。ツールバーのカスタマイズから無事復帰できる様になったけど(何もしないでキャンセルしただけ)、今度は仕切りが表示されなかったり(Sidebar on Right併用)、ダウンロードペインが開かれた後にCmd-Bとかでブックマークペイン出そうと思うとダウンロードペインのままだったり。うだうだやってるとブックマークペインを開ける様になるけど、きっかけが分からない。
まあ、この辺りは自己責任で解決すべきところなのかな。


最新のQuicksilverをサイトからダウンロードして置き換えたら、問題なく動く様になりました。自動アップデートが出来なくなってましたが、Leopardが原因でしょうかね。プラグインも古いままだと入らないようでしたし(ダウンロードで失敗していたっぽい)。

あと、FirefoxのAll-in-One Sidebarはアップデートしたようで、仕切りとショートカットキーが今のところ元に戻っています。安心。

微妙にわくわく

地元の高校が挙げられてた。
スポニチ Sponichi Annex 高校野球

選抜だし、まだ候補だし、そもそも出身校じゃないし。けど、微妙にわくわくする。

しかし、そうか。いよいよ、女子校と統合か。もう1年前に甲子園だったら、応援が華やかだったんだろうね。

21世紀枠の発表が少し楽しみ。

google-tagsの導入障壁?

いらついて仕方が無い。
google-gtags - Google Code

ふと、google-tagsを使ってみようと思ったわけですが、これは玄人専用でしょうか。

"make install"ないし、タグを作るPythonスクリプトのshebangが固定だし、タグファイル(?)を生成スクリプトと同じディレクトリに吐こうとするし。"-h"を見た限りでは、吐き出し先を指定できる様に見えない。

out_file = open(language + "_files", "w")

とりあえず、gentags.pyを/usr/local/binにコピーして実行したところ、上記のコードでエラー(パーミッションエラー)。"language"という変数名から考えると、ディレクトリパスを追加できるような雰囲気でない。

あれですか、タグを作るたびに、google-tagsのアーカイブを展開して、そこにタグファイルを作れ、という事ですか。

眠いので、今日はタグ生成の動きを観察したところで終了です。


きっと、仕事(作業)中に使っていたものを、そこそこ体裁整えて公開したくらいのステータスで停まってるんだろうなぁ。まあ、使う人がそれぞれ手を加えるのが正しいのでしょうね。

(0.?とかで出せばいいのに)

ダウンロード元を勘違いしているのでしょうか?sourceforgeに0.2か何かが置いてあった気がしないでもないです。


Emacsで使える、Pythonコードを読みやすくしてくれるツールは、きっと他に良い物があるはず。トいうわけで、google-tagsは諦めます。そもそも、サーバで共有したいと思う相手がいません。

ノートPCスタンド欲しい

ノートPCを縦に置く為のスタンドが必要かも。

何も考えずに、会社に古いPowerBookを持ち込んでサーバとして利用し始めました。

今は、机の下の旧作業マシンと並べて、縦置き(タテカケ)していますが、これはちょいと都合が悪い。何が都合が悪いって、「そのまま持ち帰ってもだれも気づかない」のがまずい。

自分自身のためにも、机の上に省スペースで置くようにしないとね。

そんなこんなで、マシン3台を使う様になりました。

祝・初終電

仕事が遅くなったので、南北・東西・西武と終電のハシゴ。

自分には一生縁がないと思ってたんだけどなぁ。あっても、始発とか。

あちらがたてばこちらがたたず。

Tigerではgtk2が入りながらlibsdlがはいらず、Leopardではlibsdlが入りながらgtk2が入らず。そもそも、libsdlは関係あるものなのだろうか。WindowsではGNOMEなんてまったく関係なかったわけだし。

gtk2に関しては、CUPSを使わない様にコンパイルすればよいというような情報を見つけました。が、もう、色々ごちゃごちゃしてきたので、すっぱり諦めた方が健全な気がしています。

敗北感(?)でいっぱいですが、Windows(Parallels)で手軽に試せたので、正直盛り下がり気味です。

とりあえず、一段落したので、家で眠っていたPowerBookG4を会社に持ち込んでおもちゃにしてみます。

Hotwire(妥協)

Windosに入れてみた。

んー、Finder上でシェルコマンドが打てる感じですかね。

もう、Hotwireよりも「OSXに入れる(動かす)」事が目的になってきているので、微妙な満足感。

現時点では、無理してまで入れるようなものでもないのかなぁ。

会社のiMac(Tiger)で再挑戦。

XFree86を入れようとしてたので、OSX(Tiger)のインストールディスクからX11SDKとX11を入れました。

そうして、MacPortsからpy25-gtkをインストールしたところ、無事gtk2も入ってくれました。

という訳で、"python2.5 ui/hotwire &"してみましたが、"NotImplementedError: No Filesystem implemented for Darwin!"と出て終了。

GNOME関係のパッケージを入れないと駄目なんでしょうか?gnome-vfsとかふぁいるしすてむっぽいですね。

が、依存パッケージの中にlibsdlがある様で、これのコンパイルでこけます。

おなかが減ったので、また挫折。


んー、そろそろ心が折れそう。

OSXでHotwire(ひとまず挫折)

面白そうだったので、OSXで触ろうとするも、よくわかりません。

MacPortsでpy-gtk2(py25-gtkかな?)を入れようとしたわけですが、gtk2でこけます。CUPSがどうこうというエラーな気がしますが、いまいちよくわからず。

もう少し粘る予定ですが、駄目ならLinuxマシンを用意するなりの別手段を考えます。

py-gtk2とかにこだわらず、とりあえずこれを読み替えてやったらいいのだろうか?
HotwireDevelopment - hotwire-shell - Google Code


んー、gtkは前もよくわからない事になった気がする。

こんなエラー。なんかたりないの?gtk2は普通に入るって噂なんだけどなぁ。

Making all in cups
if /bin/sh ../../../libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I../../.. -I../../.. -I../../../gtk -I../../../gtk -I../../../gdk -I../../../gdk  -DGTK_PRINT_BACKEND_ENABLE_UNSUPPORTED -D_REENTRANT -DXTHREADS -I/opt/local/include/glib-2.0 -I/opt/local/lib/glib-2.0/include -I/opt/local/include -I/opt/local/include/pango-1.0 -I/opt/local/include/cairo -I/opt/local/include/freetype2 -I/opt/local/include/libpng12 -I/usr/X11/include -I/opt/local/include/atk-1.0      -DG_DISABLE_CAST_CHECKS  -I/opt/local/include -no-cpp-precomp -DX_LOCALE  -I/usr/X11/include  -I/usr/X11R6/include -MT gtkprintbackendcups.lo -MD -MP -MF ".deps/gtkprintbackendcups.Tpo" \
          -c -o gtkprintbackendcups.lo `test -f 'gtkprintbackendcups.c' || echo './'`gtkprintbackendcups.c; \
        then mv -f ".deps/gtkprintbackendcups.Tpo" ".deps/gtkprintbackendcups.Plo"; \
        else rm -f ".deps/gtkprintbackendcups.Tpo"; exit 1; \
        fi
mkdir .libs
 gcc -DHAVE_CONFIG_H -I. -I. -I../../.. -I../../.. -I../../../gtk -I../../../gtk -I../../../gdk -I../../../gdk -DGTK_PRINT_BACKEND_ENABLE_UNSUPPORTED -D_REENTRANT -DXTHREADS -I/opt/local/include/glib-2.0 -I/opt/local/lib/glib-2.0/include -I/opt/local/include -I/opt/local/include/pango-1.0 -I/opt/local/include/cairo -I/opt/local/include/freetype2 -I/opt/local/include/libpng12 -I/usr/X11/include -I/opt/local/include/atk-1.0 -DG_DISABLE_CAST_CHECKS -I/opt/local/include -no-cpp-precomp -DX_LOCALE -I/usr/X11/include -I/usr/X11R6/include -MT gtkprintbackendcups.lo -MD -MP -MF .deps/gtkprintbackendcups.Tpo -c gtkprintbackendcups.c  -fno-common -DPIC -o .libs/gtkprintbackendcups.o
gtkprintbackendcups.c: In function 'cups_dispatch_watch_check':
gtkprintbackendcups.c:533: error: dereferencing pointer to incomplete type
make[4]: *** [gtkprintbackendcups.lo] Error 1
make[3]: *** [all-recursive] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

失態:接客編?

不意打ちに弱い内弁慶です。

どういうわけか、会社で突然「Pythonな人がPythonなチミに挨拶したいそうな」なんて声をかけられました。

軽いパニック。近頃Pythonなんて触ってないし。あたふたしながら、いざ出陣。

落ち着いて思い返してみれば、なんとも失礼な対応をしてしまった気がします。名刺を頂きながら、自分はお渡ししていませんよね。いい歳して、社会人のご挨拶が分かっておりません。反省しています。

もう、あれです。窓際でしきりに囲まれてひたすらコード書いてるだけの毎日が理想です。対人とか無理です。なんか、もう、顔真っ赤。頭真っ白。無駄にハイ。何か聞かれても、まともに説明できません。

とにかく、これを反省としてなんとか次に活かせたらと思います。反省を活かせないでばかりですが、なんとかしないとです。


これ読んで、「・・・な」から抜け出すヒントつかもう。。。
エンジニアの技術力のある・ないってどうやったら見分けられますか? 私はネット関連企業に勤めており、 最近営業職から企画職になったため、社内にいることが多くなりまし.. - 人力検索はてな

転職に興味ないけど、ほめ殺しとかしてくれるかな。。。
キャリアカウンセリング -ITエンジニア求人サイト スキルサーフィン

いや、しかられた方がスッキリするのかな。。。
Amazon.co.jp: こんな上司に叱られたい。—部下に信頼される50の具体例: 本: 中谷 彰宏

これ・・・は、微妙だなぁ。。。いや、ふざけてるわけじゃないですよ?Googleさんに「しかられたい」って聞いたら、教えてくれたんです。元気でッゴホッ。

さて、荒行でもしないとだろうか。

プロフィール

このアーカイブについて

このページには、2007年12月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2007年11月です。

次のアーカイブは2008年1月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。