odeの開発メモ日記

プログラマーやってます。今までの道のり ポケコンbasic→C(DirectX5 ネットやろうぜ)→Perl(ちょろっと)→Java→C#→Ruby→Android(Java)

ruby

rubyでmemcachedのキーの一覧を表示する。また特定データを削除する等。

なんで作ろうと思ったか C#のmemcachedセッションライブラリがバグってて無期限データ入れやがったー。 そのまま放置して130万件にもなりやがった。 くそー 消したい。flush_allすると全データ消えて既存ユーザーが強制timeout扱いなるからそれは避けたい。 …

ハッシュの値をアクセサで呼べるようにする

アクセサにしたい理由 viewで[]でアクセスするのはかっこわるい。ARと同様にアクセサがいい! 外部APIを叩いてJSONで返ってきたものをViewで使う場合など 実現方法 HashをStructに変換します 変換コード def self.hash_to_struct(hash) vals = *hash.values.…

composite_primary_keysのバグ修正で思ったこと。

見たくもないレガシーDBにアクセスする用事があるんですよこれが。(あー触りたくない) railsでは使うことのない複合プライマリキーが使われてたので これに対応するためにプラグインのcomposite_primary_keysを使いました。 ただちょいとバグがありで、rai…

classをカスタマイズするために再定義じゃなくてaliasしないとだめな場合がある話

当たり前といえば当たり前なaliasの挙動の話です。 わかってたはずなのに、とある状況だと気づかなかったのでメモります。 今回はまった部分は以下の部分の修正 ・railsでdb保存した場合に自動でcreated_at列に現在の時間が入る機能。 これををレガシーDBの…

set_primary_keyではまった。というかRailsレシピのあほー。set系メソッドでやっちゃった話

昔のアプリのDBにActiveRecordで繋げる必要がでたので プライマリキーの名前を変更するset_primary_keyというメソッドを使いました。 そしたら動かない。。idはない列ですとでる。 なんでだろ。。 Railsレシピの通りに書いてたのに。 (間違い版) set_prima…

複数プロセスからのファイル書き込み(追記の場合)における注意点

実行条件 100プロセス同時に5000行の書き込みを行う。 テストコード 100.times do pid = fork do open(File.join(File.dirname(File.expand_path(__FILE__)),"aaaaaaaaa.log"), 'a') do |f| f.sync = true # syncしないと文字列が途中でおかしくなる…

rubyでデコメのパース

前書き 受信したデコメをパースしたいと思います。 パーサーにはTMailを使用します。 Railsは使用しません。 空メの受け取り部分については書いてません。空メの内容を受け取った後の処理になります。 別にデコメに限らずただのテキストメールのパース、携帯…