2010-01-01から1年間の記事一覧
MySQL Casual Talks #1 の発表資料を UP しました。MySQL 初めてのチューニングView more presentations from Craft works.資料の中でも言及しました、hirose さんが作成された mymemcheck という素晴らしいツールを !includedir に対応して Readonly.pm 依…
EC2 だと ELB の内側では、nginx のアクセスログに ELB の IP アドレスが記載されてしまうので、HttpRealIpModule を使って Apache の mod_rpaf、lighttpd の mod_extforward と同じような挙動を設定します。configure オプションに --with-http_realip_modu…
普段、wanrning を見つけるたびにせっせと defined 挟んだりして対応しているのですが、View の中で呼ばれてる箇所など、うっかり気付かないで数日過ぎてしまうと、あとで該当箇所を追うのが若干手間になってしまったりします。そこで、 use warnings FATAL …
あまり日本語情報も無いようなので、メモ書き程度に紹介しておきます。新型 Macbook Air 11'' に Ubuntu 10.10 サーバー版 64bit をインストールしました。Boot Camp は使っていません。大まかな流れは、 OSX で rEFIt の導入とパーティション割り当ての調整…
昨日書いたエントリ、Test::mysqld を別ウィンドウで立ち上げたら開発時の prove が快適過ぎる件ですが、prove とか make test がコケたりしたときに、実際に DB の中身がどうなってるか見れた方がデバッグが捗りますよね。加えて、どうせなら使い慣れた mys…
[追記] reverse() を使う方法の方が速くて簡潔でお勧めです! id:tomi-ru++あまり必要になるケースは無いと思いますが Tips です。 use strict; use warnings; use Test::More; my %a = ( foo => 1, bar => 2, baz => 3, ); my %b; @b{ values %a } = keys %…
id:xaicron 氏が紹介なされていました make test で Test::mysqld を永続化させる方法 を早速導入していたのですが、make test は速くなって便利なのですが、prove で 1 つずつテストをするときは、相変わらず mysqld を毎回、起動・終了するので時間がかか…
Ubuntu の apt で入る MySQL のバージョン Ubuntu 9.04 mysql-server 5.1.30 Ubuntu 10.04.1 LTS mysql-server 5.1.41 InnoDB Plugin 1.0.5 (RC) と、いうことで InnoDB Plugin を使いたかったら Ubuntu 9.04 では MySQL 公式サイトからパッケージを持ってく…
id:tokuhirom 氏の use mysql syntax を読んで、これは良いと思い、早速自分の環境に適用しました。件の設定をどこに書くかですが、:help new-filetype (日本語訳)にどこに書くべきか何通りか紹介されています。自分は、C. ファイル形式が名前だけで検出で…
WWW::Curl は速いですがドキュメントが少ないのが玉に瑕です。perldoc に setopt() や getinfo() で指定できるオプション一覧が載っていないです。実は PHP のマニュアルに良い感じで載っています。setopt() に指定できるオプション一覧 getinfo() に指定で…
Chrome 拡張もあるのですが、短縮 URL 取得のためだけに拡張増やすのもメモリが勿体無いのでブックマークレットを作りました。動作確認 Chrome 7.0 です。ブックマークレットからは document.execcommand('Copy') でクリップボードを操作出来ない(Chrome 拡…
今年も Perl の国際的カンファレンス YAPC::Asia に行ってきました。 YAPC に行くと 毎年感じることですが、YAPC に行って色々なトークセッションを回ると、他(社|者)の実際の運用や開発の現場レベルでのノウハウを聴くことができるので、この二日間で自分ひ…
今年の YAPC::Asia もタイムテーブルはパンフレットをあてにしていたのですが、載っていなかったので慌てて用意しました。公式サイトに iCal が用意されているので、これを Google Calendar にインポートします。左下の「他のカレンダー」の「追加▼」のプル…
Ubuntu 10.04 LTS の MySQL は 5.1.41 なので、InnoDB Plugin をソースからインストールしなくてもそのまま使えますが、セットアップしていて少しつまづいたのでメモです。/etc/mysql/my.cnf に ignore-builtin-innodb plugin-load=innodb=ha_innodb_plugin.…
Amazon EC2 のロードバランサーのオプションの Elastic Load Balancing は便利なのですが、これを経由すると内側の lighttpd のアクセスログにはアクセス元 IP アドレスは 10.204.xx.xx などと、全てロードバランサーの IP アドレスになってしまいます。これ…
Google が先日 JavaScript のコーディングスタイルガイド Google JavaScript Style Guide (邦訳) を発表しましたが、今度はその文法に沿ってチェックをしてくれる Lint ツール Closure Linter を公開したようです。(via. 「Google JavaScript Style Guide」…
JavaScript でデータを扱っていると、JSON でシリアライズなどしたくなりますが、Safari 4.04 や FireFox 3.6.8 では、JSON.stringify() や、JSON.parse() が使えますが、iOS 3.1.2 の Mobile Safari には実装されてません。そこで、ネイティブで JSON が実…
先日、WWW::Curl をラッピングした HTTP クライアントなモジュールを書いたのですが、テスト用に HTTP サーバーを用意しないといけないと思いつつ、他の HTTP クライアントがどのようにテストをしているか調べてみたところ、WWW::Curl は、 my $url = $ENV{C…
インスタンス:m1.small 対象 OS:Ubuntu 9.04apt で入る MySQL は 5.1.31 とちょっと古いので、MySQL 公式で配布しているバイナリを利用しました。備忘録です。 前準備 ユーザー作成 UID/GID などは Ubuntu 9.04 の MySQL パッケージのトリガースクリプトが…
現在、Server::Starter + Starman で運用している環境があるのですが、週に1回ほど古いワーカーが終了しないで残り続けるという現象が起こっています。FCGI 起動の名残りで、毎時間 HUP を投げていたのですが、普段は問題なく starman プロセスが再起動して…
8月3日にサイバーエージェント・インベストメント主催でクリエイター支援のイベントの一つとして、エンジニア向けの無料カンファレンスがあるそうです。 http://www.cai.co.jp/startups2010/技術系の講演は、 えとらぼバタラ氏 ウノウ山田氏 モバツイの藤川…
EC2 は便利なのですが、プライベート IP アドレスが変更されない保証が無いので、/etc/hosts に他のインスタンスのアドレスを書いておいても、ある日変わっている可能性があります。そこで、ec2-api-tools の ec2-describe-instances でサーバーインスタンス…
DateTime が重くて遅いのは周知ですが、一応どれくらい差が出るかベンチマーク。「2010-07-01 15:10:53」みたいなフォーマットのタイムスタンプ文字列を生成したい場合です。DateTime はオブジェクトをキャッシュして使い回しても相当遅いです。POSIX はコア…
アニメ GIF だと、背景色に合わせて透過画像を作らないといけないので、canvas でアニメーションしてみました。ソースはこちら http://gist.github.com/380581loading = new LoadingIcon('rgb') したのちに、 loading.start() すると setInterval() でアニメ…
意外と知られていないのですが、vim には、まったくの初心者が、基礎的な一通りのコマンドを数日で完全に覚えることができるチュートリアルプログラムが付属しています。そのプログラムは、vimtutor といい、Ubuntu の場合、vim-runtime パッケージに含まれ…
mysql コマンドでは、psql や bash のように、Ctrl+W で単語だけ消そうと思っても行が全部消えてしまったり、Ctrl+R でコマンドヒストリ検索できなかったりと、PostgreSQL の psql コマンドに比べると大分不便でイライラするので、操作性を向上させます。mys…
HTML::Entities を使う方法と、正規表現を段階的に使う方法と、変換テーブルを用意して正規表現で置換する方法と、どれが一番速いか気になったので計測してみました。& から順番に変換していく方法が一番速かったです。ベンチマークスクリプトは以下です。 R…