SSHだけでリモートサーバからローカルMacにGrowl通知したい!

Growlしたい!というときは次のようにやってます。 概要 リモートでgrowl専用のログファイルを準備する。 ローカルからリモートにsshで接続し、tail -fでログファイルの監視する。 リモート側では、そのログファイルに対してGrowlさせたい内容をリダイレクト…

pjax こそが pushState + Ajax の本命

pjaxの前にpushStateとは AjaxとjQueryの説明は不要として、pushStateとはなんぞや。pushStateを使ってブラウザの履歴に対する操作をし、HTMLの一部のみを書き換える動作でもブラウザの戻る/進む機能を実現できる方法のひとつ。Ajaxなページを再現し、かつU…

Perl CPANモジュールガイド

CPAN本の出版おめでとうございます&献本頂きありがとうございます。私がリリースしたもの*1も収録されています。 紹介と感想 CPANモジュールを32のジャンル(ユーティリティ/データ/クラス/日付/アルゴリズム等々)に分け、目的のモジュールと使い方を…

TEPCO 電気需要 JSON API 作った

http://linknode.net/tepco.html Access-Control-Allow-Origin: * をヘッダーに含めているので、Same Origin Policyを気にせず、サイトをまたがってリクエストを飛ばしてJSONを取ってくることができます。 使用例 次のようなもので簡単に表を出力することが…

search.cpan.org で syntax highlighting

最近 search.cpan.org で POD 中のコードに syntax highlight できるようになりました。 使い方 ページ最下部右側にこのようなcolor schemeを選ぶオプションがあるので、リストの中から自分好みのものを選ぶと良いでしょう。 おすすめは "cpan" らしいです。…

How to growl IRC messages over ssh

My environment I'm using weechat on remote server's screen. The big problem is I can't perceive chatting on IRC without "polling" terminal by myself. Because I have no way to get alert over screen and ssh.I was thinking to solve this probl…

100 fav されたので MacBook Air 11インチ を買ったら spell がなくてxt/podspell.t がコケた

Mac に戻ってくるのはもう6~7年ぶりなのか、当時は Intel Mac なんて無くて PowerPC でした。全体的な UI は昔からさほど変わった感じはしないですね。さっそく環境を整えていたら github から持ってきたモジュールのテストがコケる。 こんな感じのテストを…

Google Reader で 'v' キーを押したときにバックグラウンドで InstaReader を使ってページを開く Greasemonkey を書いた

JavaScriptむずかしー インストールはこちら https://gist.github.com/raw/825918/5a9f84f2745a062450ec766d213be4fc095b6804/google_reader_with_instareader.user.js

GmailでOCNのSMTPを指定すると Remote server does not support TLS code(500) とエラーが出る件

ヘルプフォーラムから2chまで探してようやく解決したので2011年1月14日現在のメモ 2010年9月1日以前にOCN会員登録証が届いたお客さま smtp.vcの後にメールアドレスの@の右側 OCN設定サポート | NTT Com お客さまサポート の表記通りに従っても、smtp.vc*.ocn…

Imager で Twitter アイコンを低品質 jpeg で返す

Twitter のアイコンには主に gif / jpeg / png が使われており、 png を表示できないガラケーがある。 Cache::Memcached::Fast でキャッシュしつつ、 Imager では一時ファイルを作らず。思っていたよりも楽にかけた use LWP::UserAgent; use Imager; use Cac…

practical というプラグマ書いた

GitHub - punytan/practical: practical pragma use practical; は use strict; use warnings; use utf8; use feature qw(switch say state); と同じ。 ほとんどの人はこの4行は書いているはず(?) 類似のプラグマ common::sense strict 'refs' はオフ warnin…

Tatsumaki ライクな micro WAF "Lanky" を作ってみた

Twiggy を使う場合は Tatsumaki があって簡単に書けるけれども Starman / Starlet 使うときにも似たようにかけたらいいなぁ、ということで似たように書けるものを作ってみました。 モデルは実装してないので(どの ORM を使うかは TIMTOWTDI でどれ採用すべ…

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ため、入ってくる…