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

Ruby/MySQL 3.0.1 alpha

Ruby/MySQL 3.0.1 を作りました。相変わらずアルファ版です。インストールは次のように。 # sudo gem install tmtm-ruby-mysql --source http://gems.github.com3.0.0 からの変更点 Mysql#query で勝手にプリペアドステートメントを使うのをやめました。いろ…

NKF の --cp932 オプションがおかしい

いや --cp932 の本来の動きを知らないので、おかしいというより自分の期待通りではないというべきかもしれません。文字コードの変換の際、JIS 規格じゃなくて Windows がやっているような変換をして欲しいときに、--cp932 をつけとけば良きにはからってくれ…

table_cache, max_connections, open_files_limit の関係

昔はマニュアルに書いてあったような気がしたけど、最近のマニュアルには見当たらないのでメモ。mysqld が同時に使用可能なファイル数は open_files_limit というパラメータで指定します。ただし、mysqld は最低でも table_cache*2+max_connections+10 --- (…

NFS で排他制御

NFS 上のファイルに対する flock() は働かない。man 2 flock にも次のように書かれている。 flock() does not lock files over NFS. Use fcntl(2) instead: that does work over NFS, given a sufficiently recent version of Linux and a server which supp…

Developers Summit 2009 セッション資料リンク集

Developers Summit 2009 のセッション資料が公開されたと聞いて見てみました。 http://www.slideshare.net/event/developers-summit-2009 ん〜、資料がただ置いてあるだけで何が何だかわかりません…。 ということで、セッション番号順のリンクを作ってみまし…

Ruby/MySQL 3.0.0 alpha

github に Ruby/MySQL 3.0.0 を置きました。git にも gem にも慣れてないので試行錯誤でしたが、なんとか置けたようです。github は gemspec を置いておけば自動的に gem を作ってくれるはずなのですが、罠に嵌まってもがいてました。 GitHub では *.gemspec…

ファイルの日付をExifの日付に合わせる

$ ruby -rtime -rexif -e 'ARGV.each{|f| t=Time.parse(Exif.new(f)[0x9003].gsub(/\D/,"")); File.utime(t,t,f)}' *.JPGUbuntu の nautilus がアホで、写真ファイルの日付がコピー時刻になってしまったため。

[http://www.seshop.com/event/dev/2009/timetable/Default.asp?mode=detail&eid=124&sid=788&tr=10_Development+Style(Test)#788:title=パネルディスカッション:テストを行うこと、テストを続けること]

最初に撮影禁止と言われたので写真撮ってません。 途中でPCのバッテリが切れたのでメモも取れず… orz飄々と受け答えしている関さんが素敵でした。 顔と名前から id がすらすらと出てくる角谷さんスゲー。以下メモ。嘘書いてるかもしれません。副題: Develope…

[http://www.seshop.com/event/dev/2009/timetable/Default.asp?mode=detail&eid=124&sid=773&tr=03_Development+Style(Special)#773:title=ひよこクラブ ver.Engineer]

4人がそれぞれ自己流の勉強方法を紹介するというセッションでした。 全員が「アウトプット重要」と言ってました。以下メモ。嘘書いてるかもしれません。 庄司さん OUTPUT OUTPUT すると INPUT が大きくなる ブログなどに書く 教えてくれる ググれる 外部記憶…

[http://www.seshop.com/event/dev/2009/timetable/Default.asp?mode=detail&eid=124&sid=767&tr=10_Development+Style(Test)#767:title=「レガシーコード」とはいったい!? 〜あなたも書いてるかもしれないレガシーコード〜]

以下メモ。嘘書いてるかもしれません。副題:クラウドもSaaSもiPhoneもレガシーやろ!レガシーコードとはいったい!? あなたも書いているレガシーコードQ. レガシーコードとは? A. COBOLで書かれたコード → × A. Win NT 4.0 のコード → × A. あの先輩から引…

[http://www.seshop.com/event/dev/2009/timetable/Default.asp?mode=detail&eid=124&sid=757&tr=10_Development+Style(Test)#757:title=アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜]

撮影禁止を知らずに写真撮ってたらおこられました。ごめんなさい。 このセッションだけ特別かと思ったのですけど、あとでパンフ見てみたらデブサミ全体として撮影禁止だったようです。 この手のイベントで一律撮影禁止なのはいまいちだと思います。以下メモ…

[http://www.seshop.com/event/dev/2009/timetable/Default.asp?mode=detail&eid=124&sid=743&tr=01%5F%8AJ%94%AD%83v%83%8D%83Z%83X#743:title=「使う」と「作る」がつながるシステム開発]

以下、適当にメモったものです。嘘書いてるかもしれないので注意。 はじめに 平鍋さん 作る人と使う人は別の大陸にすんでいて間に川がある。 つなぐ方法 フェリー = 仕様書 橋をかける = 会話をする 倉貫さん ビジネス習慣 契約 使う人と作る人が違う 作りた…

MySQL 5.1 InnoDB が遅い

Rubyist Magazine 25号が出ました。Ruby 1.9.1 についての有用な記事が盛りだくさんです。「Ruby 1.9 で Web アプリを想定したベンチマークをとってみた」は「言語の速度がそのままアプリケーションの速度になるわけではない」ということについて、実際にベ…

MySQL/Ruby 2.8.1

Ruby 1.9.1 がリリースされました。が、MySQL/Ruby は 1.9 に対応してませんでした。気づいてませんでした… orz。とりあえず、Ruby 1.9.1 でもコンパイルと簡単なテストを通るようにしてみたものを、MySQL/Ruby 2.8.1 としてリリースしました。ダウンロード…

メソッドの型指定

Ruby のメソッドの引数や戻り値には型指定がないけど、それを指定できるような仕組みをつくってみました。 module Strict def strict(name, &block) @returns = Object @arguments = [] block.call m = instance_method(name) ret_type, arg_type = @returns…

OptConfig その2

前回の続き。 デフォルト値 :default でオプションを指定しない時のデフォルト値を指定できます。 o = OptConfig.new o.option "port", :format=>1..65535, :default=>25 o.parse ["--port=123"] o["port"] # => 123 o.parse [] o["port"] # => 25 アンダー…

OptConfig

OptConfig は高機能なオプションパーサです。UNIX のコマンドライン引数で与えられたオプションをパースしたり、設定ファイルからパラメータを取得できます。使用例: o = OptConfig.new o.option "p", "port", :format=>1..65535, :default=>12345, :descrip…

StringValidator

StringValidator は文字列の正当性を評価するライブラリです。次のように使用します。 StringValidator.validate 規則, 文字列 規則は色んな形式で記述できます。たとえば、str が整数値であることを期待する場合は、 StringValidator.validate Integer, str…

はてダ

はてなダイアリーをちゃんと使ってみようかと。とりあえず技術ネタはこっちに書いてみることに。