2010-01-01から1年間の記事一覧

Plack::Middleware::Session で Session Fixation 対策

Session Fixation XSS や事前に取得したセッションを利用者に送り込んで権限を昇格させる類の攻撃で、セッションIDをクエリに含ませたり、シーケンシャルなセッションIDを用いるような愚かなことをしなければ基本的に問題はないものの、 Session Fixation へ…

MySQLとPerlでUTF-8を扱う

とある環境で latin1 - latin1 の憎き動作をしていたので今後のために最小限のコードと設定をメモしておく my.cnf これ重要 [mysqld] character_set_server = utf8mysql クライアントで status と SHOW VARIABLES LIKE 'char%'; を発行し、 mysqld_safe で指…

AnyEvent::Twitter 0.52

AnyEvent::Twitter - A thin wrapper for Twitter API using OAuth - metacpan.org を出しました。0.51 から 0.52 の変更点をまとめます new() AnyEvent::Twitter::Stream と同等の OAuth 引数を使えるようになりましたつまり、access_token と access_token…

最新 CPAN モジュールをつぶやく Twitter BOT を書いた

Twitter CPAN New Modules (@cpan_new) | Twitter ドキュメントへのリンクは FrePAN を使わせてもらってます 雑感 http://friendfeed.com/cpan からリアルタイムでデータを取ってくる。 使ったモジュールはこれだけで、全体で60行弱。機能のわりに短くかけた…

「AnyEvent超速分散ダウンローダー」 vs 「wget + fastest server」

404 Blog Not Found:perl - AnyEventで超速分散ダウンローダー をみて v0.02 を実行してみた 結論 分割されたファイルの連結に時間がかかる wget + 一番速いミラーを選ぶのがベスト 定期的に実行して普段使うミラーのベンチを取るのに役立つ(?) 結果 AE分散 …

HTML::Entities::Recursive というモジュールを書いた

http://frepan.64p.org/~punytan/HTML-Entities-Recursive-0.01/ HTML::Entities::Recursive Encode / decode strings of complex data structure with HTML entities recursively SYNOPSIS use HTML::Entities::Recursive; my $recursive = HTML::Entities:…

Google Reader で 選択中の記事をバックグラウンドで開く on Firefox

このぐりもんを使うとできる http://sunnywu.net/2007/08/02/google-reader-tweak-open-links-in-background

Net::Amazon の謎

最近ちょっとした興味から、 http://tvtwi.com/ というのを書いて、番組内容連動広告っぽいのをアイディアとして実装してみたときのメモ。Twitter ユーザにはゴールデンタイムとアニメが人気あるみたい。 Amazon のキーワード検索を非同期で使いたいと思い立…

Plack::Builder についてちょっと調べてみた

Plack::Builder は Middleware をラップしてくれたり、 Plack::App::URLMap を使ったマッピングを担ってくれる。通常は次のように使う use Plack::Builder; use Plack::Session::Store::File; my $app = sub { ... }; my $app2 = sub { ... }; builder { ena…

Plack::Builder についてちょっと調べてみた(2)

前回の記事にいただいたコメントとどうも話がかみ合わないなぁと思っていたら勘違いしてました。すみませんすみません。#perl-casual で聞いてみたところ、 「mount は複数の PSGI アプリケーションを mount できるが、dispatcher の代替として使うことは意…

YAPC::Asia 2010 スライドまとめ

見つかったスライドまとめ(敬称略) 観測範囲狭すぎ & twitterで流れて思ったほどみつからないのでヘルプミーRSS フィードだけでもなんでもいいのでまとめて reblog する仕組みがあってもよさげ。 Youtube yapcasia - YouTube タイムテーブル YAPC::Asia 20…

Mojolicious の wiki を書いた

というのは嘘で、訳しただけです。Writing websocket chat using Mojolicious Lite · mojolicious/mojo Wiki · GitHub他の方の手も入って*1よいものができたと思います。id:naoya さんに快諾していただき、 Mojolicious::Lite で WebSocket を使ったチャット…

if-elsif-else の書き方

最近、個人的にいいなと思う if-elsif-else の書き方を見つけたのでメモしておく。nginx のソースと同じスタイルです。と言ってもパッとしないので例を見ていくと、 PBP / Programming Perl では if ((my $color = <STDIN>) =~ /red/i) { $value = 0xff0000; } elsi</stdin>…

reverse proxy として動かした nginx で HTTP_X_FORWARDED_FOR を $env に突っ込む設定

server { listen 80; server_name example.com; access_log /var/log/nginx/example.com.access.log main; location / { access_log off; proxy_pass http://localhost:8080; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_…

stfuawsc

via http://blonde.ddo.jp/object/glob.pl/2010/10/06/00/25/22 / see also: はてなブックマーク - ごめん。やっぱりText::Xslate遅い。 / Lightning Butterdogコード一行もなかったんで無視するのが一番なんだろうけども、「実用的な複雑さでどの程度の速度…

Ubuntu で DesktopNotification

via AnyEvent::Twitter::StreamでDesktop Notify - すぎゃーんメモおぉ。こんなことできるのね。Ubuntuの場合は apt で libgtk2-notify-perlをインストールすれば Log::Dispatch::DesktopNotification のバックエンドとして Log::Dispatch::Gtk2::Notify が…

mysql memo

初めてのPHP & MySQL 第2版 を読んだ自分用メモ。PHP の部分はスルー。途中から抜けが多いけど本にはしっかり書いてあるよ! connect mysql -h host -u user -p mysql command command paramter:意味 quit none:コマンドラインユーティリティを終了 use data…

構造化テキストのエスケープ

twitter関連。 こんな風に処理すればいいのかな 中心となる部分は Kazuho@Cybozu Labs: (Twitter の XSS 脆弱性に関連して) 構造化テキストの正しいエスケープ手法について から拝借 入ってきたテキストが中途半端にエスケープされている*1ため、入ってくる…

git で fatal: cannot copy というエラーが出た

git

こんなエラー $ git init fatal: cannot copy /usr/share/git-core/templates/info/exclude to /tmp/foo/.git/info/excludeこのエラー出た人は他にいるのかなぁ。 原因 /usr/share/git-core/templates 以下のファイルから読み取り権限がなくなってた おそら…

vim で perl -c を通らない変更は保存しないようにする方法 + 小ネタ

Emacs 使ってる人に dis られた挙句、涙目で散々調べまわって苦労したのでメモ。 まずは次のものをインストール cpanm Vi::QuickFix perl_synwrite.vim - checks Perl syntax before allowing file write : vim online .vim/ftplugin/perl_synwrite.vim この…

cpanm Test::TCP しておく

Test::TCP 1.03 が出てるので上げておくといいと思います。Test::TCP 1.02 をテストで使うモジュールをインストールすると、 ~/.cpanm/build.log に cannot open port: 10033 at /home/puny/perl5/perlbrew/perls/perl-5.12.1/lib/site_perl/5.12.1/Test/TCP…

perlbrew の環境で daemontools を使うためのメモ

既出かもしれないけれどもメモ。 perlbrew で構築した環境で /usr/bin/perl と ~/perl5 のバージョンが違う場合 run スクリプトで環境変数を export してあげないと perlbrew の利点を活かしきれない。ちなみに bash を中心に扱っているので、自分の環境に合…

epoll を使ったエコーサーバ的な何かを書いてみた

イベント駆動で書くと クラウド破産を回避できたり、自宅サーバを守れるというメリットがあるらしいので、どうせなら epoll を使ってみようということで。epoll を使った echo サーバ - odz buffer と mixi engineer blog と man が参考に。 某所経由で id:k…

twitter のおすすめユーザーを Firefox + Adblock Plus の環境で非表示にする

Adblock Plus -> 設定 -> 追加 で要素非表示フィルタに twitter.com###recommended_usersを追加して有効にすればよい

テンプレートエンジン Text::Xslate について

速いと噂の Xslate ですが、実際どう使うのかという点ではまだまだ明文化されたものが少ないと思ったので http://xslate.org/intro.html を書いておきました。 記事では、イテレーションをはじめ、知っておくと便利な dump フィルタ、 mark_raw() がテーマに…

twitterに未読を一元管理できる機能が欲しいなー

とずっと思っていたのでtwitterもどきを作ってみました。ほとんどの機能を本家のwebに丸投げしたので実装は楽でした!!! GitHub - punytan/fake_twitter: lightweight web based twitter client with unread management system screenshots 全体 replyの表…

sqlite は想像していたよりパフォーマンスが良かった件

なんだかよくわからない先入観で遅いだろうと決め付けていたが、 http://www.sqlite.org/cvstrac/wiki?p=SpeedComparisonによると、transactionでまとめて実行するとずいぶん早い。 Test 1: 1000 INSERTs CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(1…

AnyEvent + OAuth で Twitter API を叩く

最近ようやく CPAN Author になりました。ふとAnyEvent::Twitter::StreamをOAuthに対応させたいなぁ、と思ったので(ついでにChirpUserStreamsにも) - taiyoh独言が目にとまったので、モジュールの紹介もかねて書いておきます。AnyEvent::Twitter の _make_…

bookmarklets

開いているページをはてブする javascript:window.open("http://b.hatena.ne.jp/bookmarklet?url="+encodeURIComponent(window.location),document.title);window.opener.history.back(); 開いているページを twitter に流す javascript:window.open("http:/…

Readability というブックマークレットが便利すぎる件

たぶんご存知の方もいらっしゃるとは思いますが、http://lab.arc90.com/experiments/readability/というブックマークレットが思ったより便利なので紹介します。 英語のページを見ていると 文字が小さすぎて大変見にくいことが多々ある。これはBBCのページ。 …