さくらVPS移行メモ

メモリが 512MB から 2GB に。ヤッター。OS は Debian 6 amd64 をさくっと入れておく。 他にもやっておいた方がよさそうなものがあったら教えて下さい。 ssh root@ip とりあえず foo で sudo 出来るように。 # apt-get update # apt-get upgrade # dpkg-reco…

疎結合と MVC と JSON API とオーバーヘッドと非同期とレスポンスタイムに関する適当な考察

最近考えていることを話す機会があったので文章にしてまとめてみる。 疎結合 昨今の複雑化するウェブアプリケーションを効率的に開発するにあたって、疎結合な設計にすることは開発/保守効率を上げるためには必須の条件となることは経験上嫌というほど皆が…

LWP::UserAgent と LWP::Protocol::PSGI でテストを書くと楽できる話

Plack::Test + HTTP::Request::Common 世の中には Plack::Test + HTTP::Request::Common という方法もあるが、この場合ブラウザを模したようなテストを書くと意外にも破綻しやすい。とりわけセッション周りの挙動が必須になると大変な手間になる。 LWP::User…

node.js + jQuery で Web scraping

jsdomとjQueryつかって富豪的にホクホクできるらしい。セレクタさえ丹念に集めれば Readability/Instapaper のようにコンテンツのテキストだけ抽出するようなこともさほど難しくないか。 var jsdom = require("jsdom"), fs = require("fs"); var jquery = fs…

LESS/JavaScript/CSS/HTMLでインデントを2スペースに設定する vimrc

普段の設定 set tabstop=4 set expandtab set shiftwidth=4こんな設定でインデントをスペース4つとして書いると、LESS/JavaScript/CSS/HTML の場合は嫌でもインデントが深くなり、縦分割して作業すると悲惨なことになってしまう問題が起きる。 function を定…

Ustream 放送の開始を通知してくれる Chrome 拡張を書いてた

Ustream の配信は通知系が無いのでいつ始まっているのか把握困難。そこで開始を通知してくれる拡張を作ってた。ここ一年くらい動いてます。 Chrome拡張はちょろちょろ〜っと書けていいですね スクリーンショット ピロっと音が鳴って、こんなnotificationが出…

App::ExtractUsed というものを書いている話

CPAN形式で開発していると避けて通れないのが依存モジュールの炙り出しと Makefile.PL へ requires を書き出す作業。これは意外と面倒なのでもっと怠惰に楽をしたいところ。たとえモジュールが要求するperlのバージョンを決めていたとしても「どれがコアモジ…

カジュアルに cat コマンドでネコを走らせる

cat コマンドでネコを走らせる - hogehoge @teramako面白い&&最近Nyancatが走るのを見つけたこともあって、全然違う猫だけどカジュアルに走る猫を書いてみた。 usage $ alias cat='perl <(curl -s https://raw.github.com/gist/1445161/c183b0f555cbe88a6530…

Google Readerのスター済みアイテムを自動でreblogしたい

全国1億2000万人の意識の高いrebloggerの皆さんこんにちは。 私は最近、tumblrでreblogする簡単なお仕事をしています。このお仕事、実に楽しい訳でありますが、しかしこの作業はいかんせん単調で、作業内容はと言うと、Google Readerに流れてくる *.tumblr.c…

use parent と Try::Tiny とか

use parent を使って継承した時に try-catch あたりを継承先に突っ込んだりできないものかと考え倦ねいたけど中途半端なところでギブアップした。Magoから呼ぶとcaller()のEXPRをインクリメントしないと動かない。このあたりは要ハック。プラグマも適用でき…

Cairo なら libcairo2-dev

cairo (Cairo - Perl interface to the cairo 2d vector graphics library - metacpan.org) がたまに入ってなくてアレなのでメモ。Debian/Ubuntu なら libcairo2-dev を入れておけば良い。

Post Your Blog Post About #yapcasia 2011 集計結果

YAPCから一週間が経ちましたが皆様いかがお過ごしでしょうか。ブログを書くまでがYAPCということで "Post Your Blog Post About #yapcasia 2011" を立ち上げたところ、なんと157もの記事が集まりました。これも偏にポストしてくれた方のおかげです。(主に@l…

設定ファイルフォーマット考察 + Config::PP とか

tr;dr ネイティブで書くのが一番良いと思う こんなの書いてみた p5-Config-PP/PP.pm at master · punytan/p5-Config-PP · GitHub (ドヤッ!) __END__ 設定ファイルフォーマット考察 YAMLがオワコンだと書いたらYAML便利派からツッコミ食らったので変遷過程…

YAPC::Asia 2011 に行ってきた

YAPC楽しい 今年は芝生で餃子食べられた! トークが素晴らしいのはもちろんのこと、YAPCくらい大きなイベントになると普段会えない遠方の人たちと会えたり、面識のない人でも話ができるのでとてもいいイベントですね!(面識がないと言ってもTwitterのscreen…

YAPC::Asia 2011 用タイムテーブル(モバイル用)作った

去年の反省(?)から、タイムテーブルはよく確認しておいたほうが良さそうだったので作っておいた。http://linknode.net/yapcasia-timetable-2011/項目を(タップ|クリック)で詳細が見られるようになっております。

マンガとキャッシュとスワイプとManga Swipe

404 Blog Not Found:perl+javascript - なんちゃってマンガロイドをみてなかなか面白いなぁと思ったけれど、やっぱりAjaxだとキャッシュ(ページの先読み)が効かないのでページをめくるときにラグがあってなんだかイマイチ操作性悪いなぁと思ったのでスワイ…

Test::Continuous(autoprove)をサーバにインストールするには

Test::Continuous(autoprove)とは ファイルを監視して、変更があった場合に自動でテストを走らせる autoprove というコマンドラインツールを含む便利なモジュール インストール cpanm の --interactive オプションを使って Log::Dispatch::DesktopNotificati…

SSHFSが便利なのでメモっておく

随分前から使っているSSHFSがなかなか便利。 SSHFSとは SSHFSはリモート(サーバ)のディレクトリをマウントしてひとつのボリュームとして扱えるようにするファイルシステムのことで、サーバ側ではsshdさえ設定してあればクライアントのセットアップだけで使…

git push + さくらのレンタルサーバーで github pages ライクにデプロイする方法

static なサイトを作るにあたっては、「コミット + scp などでファイルを一気に転送」を繰り返すことがよくある方法だと思う。 github pages のように、 git push のみでできると楽なのでこの環境を構築してみた。さくらレンタルサーバー以外でも使える方法…

SQL文をテストする

書いたSQLのシンタックスチェックを自動化する スキーマを書くときにはSQLを書くわけですが、作る過程では変更後のシンタックスが正しいか確認するのが意外と手間だったりします。 カンマ付け忘れや typo は自動でチェックしたいですね。そんな時は Test::my…

App::cpanmigrate

前回エントリーに window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widge…

perl のリリースサイクルと perlbrew の共存

perl のリリースサイクルが短くなったこの頃、みなさまいかがお過ごしでしょうか。 リリースサイクル短期化による影響 perlbrew を使ってリリース毎にバージョンを切り替えたりしていると、意外と面倒に感じるのがインストール済みのモジュール類を別バージ…

Access-Control-Allow-Origin を追加するmiddlewareを書いてた

一ヶ月くらい前に GitHub - punytan/Plack-Middleware-AccessControlAllowOrigin: Add Access-Control-Allow-Origin header を書きました 使い方 至って簡単ですね。ただ、AccessControlAllowOriginって名前が長すぎる builder { enable 'Plack::Middleware:…

パッチを書こう

動いてしかるべき物が別のOSだと動かなかったりしたときにはちゃんと調べてパッチを書こう。パッチを書こうパッチを書こうパッチを書こうパッチを書こうパッチを書こうパッチを書こうパッチを書こうパッチを書こうパッチを書こうパッチを書こう 参考文献 htt…

Ubuntu 11.04 (Natty) で perl がインストール出来ない場合の理由と対策

追記 perlbrew 最新版では修正済みです。 patchperl にパッチ投げておきました。 perlbrewも最新のpatchperl を使うようになったので、失敗する場合はもう一度perlbrew の最新版を再インストールしてください(perlbrew のバージョン番号は変わってないので…

dotcloud雑感

みんながhello worldばかりやっているのでちょっとしたアプリつくってみようということで作ったもの。 Docker Cloud - Build, Ship and Run any App, AnywherePlack::Middleware::* なnamespaceを列挙して、モジュール名クリックでPODを読み込んでくれる超便…

Tatsumaki + AnyEvent::Twitter::Stream を一枚のスクリプトで完結させる方法

これができると嬉しいこと サーバとクライアントがひとつのプロセスにまとまってクローラー的なプロセスが必要なくなり、監視せずに済むので地味に嬉しい 概要 言われてみれば何だ、という程度ではあるけれども、app.psgiで Twiggy::Server を使い、コネクシ…

コンフィ作ってみた

http://mt.endeworks.jp/d-6/2011/04/post-173.html や デイリーポータルZ:そうだ、肉を脂で煮ればいいんだ を見ていたら食べたくなったので作ってみた。コンフィとは食材を油に浸してつくるフランスの保存食らしい。今回はオリーブオイルと鳥のモモ肉を使…

git submodule を使わないで vim プラグインを管理する

dot-files を git で管理してるとついつい vim プラグインも submodule 使って管理してしまいたくなるんですが、 submodule を使わないほうが楽なんじゃないかなと思って dot-files の整理と一緒にこんなシェルスクリプトを書いてみた。整理した dot-files …

daemontools メモ

daemontools はめったに設定しないので毎回忘れる!とくにmultilogとか編集中にはダウンさせておくとか。一連の流れをまとめたメモ。 インストール $ sudo apt-get install daemontools-run $ cd $ mkdir daemontools foo ディレクトリをつくり、スティッキ…