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

JPerl Advent Calendar 2010 casual track に記事を書きました

今年もあとわずかですね。年末恒例の JPerl Advent Calendar、casual track に記事を書きました。 MySQL と SQLite に対応した DBIx なモジュールを PostgreSQL に対応させる Tips いくつか まあ誰得な内容なんですが、自分のやってきた作業をまとめて記録し…

OSX で共有メモリのサイズ変更

OSX で PostgreSQL を起動する際に、共有メモリの最大サイズを変更する必要がある場合は以下の方法で。 # sysctl -w kern.sysv.shmmax=1073741824 # sysctl -w kern.sysv.shmall=1073741824ここでは 1GB に設定。

mod_pagespeed をちょっとだけ試してみた

Google の Page Speed の Apache module 版 mod_pagespeed をインストールして、ちょっとだけ動きを見てみた。インストールは Ubuntu に deb パッケージで。 $ wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-beta_current_amd64.deb # sudo…

Digest 認証と Reverse proxy の話

昨晩 twitter で、「バックエンドのほうで Digest 認証されているところに mod_proxy で Reverse proxy できない」という話があったのでちょっと試してみた。 あれ?mod_proxyとかだとdigest認証出来ないのか?リバースプロキシにアクセスした時点で認証させ…

YAPC::Asia2010で「nginx & Perl」の発表をしてきました

YAPC::Asia2010 で、「nginx & Perl」という題名で20分の発表をさせていただきました。 発表資料はこちらにあげてあります 内容はざっくり nginx とおもしろげなモジュールの紹介、組み込み Perl の使いかたと注意事項、Plack Server に Reverse Proxy する…

YAPC::Asia2010 iPhone アプリの顛末とか

後夜祭が終わって帰宅途中、不意に 今更 #yapcasia のiPhoneアプリ顛末について飛び込みLTすればよかったなぁと思いついた。後の祭り。2010-10-16 23:09:56 via TwitBirdと思ったのですがこれはまさしく後の祭り。なのでせめて顛末を書いておきます。YAPC::A…

インフラエンジニア勉強会 #qpstudy 03 で Perl の話をしてきました

キユーピー3分インフラクッキング-初心者にも優しいインフラ勉強会- #qpstudy にて「Perl とうまく付き合う」というお題で発表させていただきました。 最初は「インフラエンジニアのための……」という仮題だったのですが、資料を作ってみたらそんなかんじでも…

nginxで特定ホスト以外からのアクセスをメンテナンス画面にする方法

Apacheで特定ホスト以外からのアクセスをメンテナンス画面にする方法 - 元RX-7乗りの適当な日々 の nginx 版。nginx.conf でこんな感じですかね。 http { server { listen 80; root /tmp; error_page 503 /503.html; location / { if ($remote_addr ~ ^127\.…

インフラ勉強会 qpstudy#2 で法定停電を乗り切るLTしてきた

キユーピー3分インフラクッキング 第2回で、法定停電を乗り切る方法について LT をやりました。内容は要するに、発電機でサーバを動かしたよ!という話です。枠がビアバッシュのほうだったので、わりとこんなネタでもいいかなと… スライドはここにあげました…

node.js で reverse proxy を書く

ちょっと書いてみたくなったので書いた。実用性とか気にしちゃいけない。 $ node reverse_proxy.js d.hatena.ne.jp reverse proxy to d.hatena.ne.jp http://localhost:8000これで localhost:8000 → d.hatena.ne.jp の reverse proxy になります。やってるこ…

node.jsでTwitter ChiarpUserStreamを閲覧するWebアプリを作った

先日 Perl + AnyEvent で作った TwitterのChirpUserStreamsをダラ流しするWebApp を、node.js で作ってみました。 node.js というのは、「JavaScript V8 Engineでイベント駆動I/Oなネットワークサーバを書くためのフレームワーク(実行環境)」ということでい…

OAuth::LiteでOAuth対応のHTTP::Requestを作る方法 (Perlでtwitter bot書いてる人向け)

最近人気エントリーに便乗したネタが多くてすみません。実用! PerlでコマンドラインからTwitter投稿(OAuth対応) では、Net::Twitter を使って OAuth で投稿する方法が紹介されていますね。ところで、単純な twitter bot 作るのに Net::Twitter 使います?…

たった*行のコードでHTML取得&解析をしたい場合はWeb::Scraperが便利

なんか無茶振りされたので。 簡単!たった13行のコードでHTML取得&解析をするPerlスクリプト を Web::Scraper というモジュールを使って書き直すと、こんな感じになります。 use strict; use Web::Scraper; use LWP::UserAgent; use Encode; my $scraper …

Server::Starter 配下で動くサーバを Perl 以外で書く

Server::Starter の SYNOPSIS には、自分で Server::Starter 配下で実行するサーバを作る場合の例があります。 # in my_httpd use Server::Starter qw(server_ports); my $listen_sock = IO::Socket::INET->new( Proto => 'tcp', ); $listen_sock->fdopen((v…

キユーピー3分インフラクッキング #qpstudy で Plack などについて話してきました

キユーピー3分インフラクッキング -初心者にも優しいインフラ勉強会-の記念すべき第1回で、「Perl & Web Servers」というお題で発表させていただきました。 「初心者に優しい」というテーマだったので、199x 〜 200x 年の Perl と Web Server の関係について…

新しいPerlに今まで使ってたモジュールをまとめてインストールする

Perl-5.12.1 がリリースされたということで早速インストールされたかたも多いと思いますが、新しい Perl にモジュールを全部入れ直すのは面倒ですよね。ExtUtils::Installed を使うと楽ができます。 今まで使ってる perl でインストールされているモジュール…

Twitter の ChirpUserStreams をダラ流しするWebAppを作った[かなり暫定版]

Twitterの新しいStreaming API「ChirpUserStreams」がすごすぎる件 が大変注目されているということで、UserStream を使って自分の Time Line をだだ流す Web Application を作ってみました。まず最初に留意事項ですが、follow などの event が発生した時点…

カジュアルPerl #02 で Lightning Talk してきました

カジュアルPerl #02 - 春のPerlフレッシュマンアワー で、LT をやらせていただきました。 今回は Editor と CPAN 特集ということなので「Edit with Emacs と Perl の話」というネタです。スライドは こちら に置いてあります。 動画は Ustream の録画で (自…

nginx embedded perl で Accept-Language を見て振り分ける

lighttpd だけで多言語サイトを作る方法 を、nginx で。 config でもできるみたいですが(hirose31のgist)、embedded perl でもやってみた。 internal_redirect で handler が2回呼ばれることになるので、多少効率は悪そうですが、柔軟な設定を行うための emb…

DRBDで片方のDISKが飛んだ状態からの復帰

CentOS-5.2 + DRBD-8.2.6 で運用していた DRBD の、片方の DISK が故障したのでそこから復旧したメモ。故障時。その時 Primary だったほうの DISK が I/O error。DRBD が障害を検知して Secondary に切り替わり。 kernel: sd 5:0:0:0: SCSI error: return co…

DBD::Pg で非同期クエリ投げっぱなし

# チラシの裏です重いクエリをエミュレートするために Pl/PgSQL で sleep() を用意。(busy loop するので CPU 使います) http://www.issociate.de/board/post/130019/sleep_function.html create or replace function sleep (integer) returns time as ' dec…

nginx の組み込み Perl で独自の認証をかける

独自の認証機能付き HTTP ダウンローダを提供するために、nginx の組み込み Perl を使ってみました。 公式のドキュメントはこちら。EmbeddedPerlModule - Nginx Community自前の handler でリクエストをみて処理を行い、許可するなら DECLINED を返して後続…

Google Chrome のテキストエリアを外部エディタで編集する Edit with Emacs

おことわり: Windows での事情は分かりません。以下は Mac と Linux のみで確認しています。Firefox では昔は mozex、最近は It's All Text を使ってテキストエリアを emacs で編集していたのですが、Google Chrome では extension が見つからないので渋々普…

標準出力や標準エラー出力を捕まえてテストする Test::Output / Capture::Tiny

Perl で、あるコードが標準エラー出力に吐き出した内容をテストしたい場面がありました。自分でまず思いついたのは STDERR を dup して保存しておいて、ファイルにリダイレクトして、元に戻して、というやりかた。これはこれで動くのですが面倒。こういう場…