2012-03-01から1ヶ月間の記事一覧

phpでTAP

php

phpでTAPやらperlのTest::Moreを移植しよう、というのは調べてみると、色々な人がやっているのだけど、subtestあたりに対応しているのはないっぽかったり個人的にあまり気にいったやつがなかったので書いた $t = new TestTAP(); $t->ok(1==0, "failed test")…

「いいね!」的なもののschema

facebookの「いいね!」やはてなstarみたいなものを自分でつくるとすると、どういうschemaにするかなーということで、ちょっと考えてみた。(mysql 5.1以上) create table user ( id int unsigned not null auto_increment, primary key id(id) ) ENGINE=InnoD…

statsのcmd_setは、incrなども含むのか?

twitterで@nekoyaさんがつぶやいていて、memcachedは他のミドルウェアとかよりはソースコードはだいぶ簡潔だろうし、このぐらいならコード調べるのはわりとできそうだな、と思ったのでせっかくなので追ってみた。結論としては、incrの更新の場合には、stats…

退職します

月日の流れは早いもので、「モバイルファクトリー入りたい」の記事を書いて会社へ遊びにいってから、5年と約半年が過ぎました。昨日が最終出社日でした。会社では、様々なサイトの開発、運用、フレームワークの開発、deploy/監視のフローやツールの整備、様…

post-recieveを遅延実行

git

gitのリポジトリへpushしたら、jenkinsへ通知とかは、メインリポイトリ側で、post-recieveフックの設定をすることでできるのだけど、通知先が大量に増えたりすると、git pushが重くなってしまいストレスフル、ということで、遅延実行させる仕組みをつかって…

マスターデータの書きかえ

メンテナンスなどで、マスターデータを書きかえるときは、 use strict; use warnings; use DBIx::Handler; my $db = DBIx::Handler->new("dbi:mysql:test;", "root", "", { RaiseError => 1}); $db->dbh->do(q{ CREATE TABLE IF NOT EXISTS hoge ( id int un…

enum列へのalter table

巨大なtableへのalter tableが必要になったのだけど、enumへのalterって確か最適化してくれたんじゃなかったっけな、ということで、一応確認のため検証してみる次のschemaを用意します。 CREATE TABLE `enum_test` ( `id` int(11) NOT NULL AUTO_INCREMENT, …

複数サーバーでtail -fする

各サーバーへ入ってなんか状態を監視というのをやりたいことがあります。各サーバーのログファイルをtail -fとか。それだけだと、単にforkして何かコマンド実行させればよいだけ、だったりしますが、単にそうしてしまうと、標準出力などがメインのプロセスに…