昔からあったような気がするのですが、 つい最近までその存在に気がついてませんでした。

   1  % sudo gem update merb

これで、merb関連のgemを一括で最新バージョンにアップデートする事が出来ます。

posted by Png genki on Fri 19 Dec 2008 at 13:06

しばらくMerb-1.0.3を使ってたのですが、Merb-1.0.6.1にアップデートした所、以下のようなエラーが出たので原因を調査していました。

   1  MERB_ROOT/slices/merb-auth-slice-activation/lib/merb-auth-
   2  slice-activation.rb:5:in `load_dependency': wrong number of arguments (1 for 2) 
   3  (ArgumentError)

どうやらload_dependencyの第二引数が省略出来なくなったらしい。

merb-core-1.0.3/lib/merb-core/core_ext/kernel.rb

   1    def load_dependency(name, *ver, &blk)    dep = name.is_a?(Gem::Dependency) ? name : track_dependency(name, *ver, &blk
   2  )
   3      gem(dep)
   4    rescue Gem::LoadError => e
   5      Merb.fatal! "The gem #{name}, #{ver.inspect} was not found", e
   6    ensure
   7      begin
   8        require dep.require_as
   9      rescue LoadError => e
  10        Merb.fatal! "The file #{dep.require_as} was not found", e
  11      end
  12  
  13      if block = dep.require_block
  14        block.call
  15      end
  16      Merb.logger.verbose!("loading gem '#{dep.name}' ...")
  17      return dep # ensure needs explicit return
  18    end

これに対して、

merb-core-1.0.6.1/lib/merb-core/core_ext/kernel.rb

   1    def load_dependency(name, clr, *ver, &blk)
   2      begin
   3        dep = name.is_a?(Gem::Dependency) ? name : track_dependency(name, clr, *ve
   4  r, &blk)
   5        return unless dep.require_as
   6        Gem.activate(dep)
   7      rescue Gem::LoadError => e
   8        e.set_backtrace dep.original_caller
   9        Merb.fatal! "The gem #{name}, #{ver.inspect} was not found", e
  10      end
  11  
  12      begin
  13        require dep.require_as
  14      rescue LoadError => e
  15        e.set_backtrace dep.original_caller
  16        Merb.fatal! "The file #{dep.require_as} was not found", e
  17      end
  18  
  19      if block = dep.require_block
  20        block.call
  21      end
  22  
  23      Merb.logger.verbose!("loading gem '#{dep.name}' ...")
  24      return dep # ensure needs explicit return
  25    end

第二引数のclrが省略出来なくなった模様。 private APIはメジャーバージョンアップじゃなくても仕様変わるのか。

#merbで聞いてみた所、1.0.4から以下のように明示的に指定するようになったらしい。

   1  load_dependency 'merb-slices', :immediate => true

詳しくは http://wiki.merbivore.com/releases/1.x/known_issues 参照のこと。

教えてくれたcarpeliamありがとう!

See Also

posted by Png genki on Fri 19 Dec 2008 at 04:08

GitX は、MacOSXで使えるGit用のGUIツールです。

ss1

基本的にはCUIで操作してるのですが、 これを使うとブランチのマージの様子などが視覚的に追えて便利。

アバター画像はメールアドレスから gravatar経由で持ってきてるんですね。 賢い。

See Also

posted by Png genki on Fri 19 Dec 2008 at 02:29

カウボーイ忘年会の二次会で色々お話ししてくださった、 神谷 さんから教えてもらったのですが、MEMS(Micro Electro Mechanical Systems)という技術がなかなか凄い事になっているようです。

ものすごく小さいバネが形成されています。

歯車。

See Also

posted by Png genki on Thu 18 Dec 2008 at 13:59

MySQLでInnoDBを使っているとdata_dirの下にibdata1というファイルが出来て、このファイルサイズがだんだん大きくなっていきます。 大分肥大化してきていたので、テーブル毎に分割する設定を行いました。

/etc/mysql/my.cnf

   1    (snip)
   2  [mysqld]
   3  innodb_file_per_table
   4    (snip)

あとはDBへのアクセスを止めて、mysqlを再起動します。 再起動したら、

   1  ALTER TABLE articles TYPE=InnoDB;

を実行すると、data_dirの下のデータベース名のディレクトリの下に、 いままであったarticles.frmの他にarticles.ibdのようなファイルができています。

See Also

posted by Png genki on Thu 18 Dec 2008 at 11:27

syoyoさんが主催しているOoOで、 第五回 レンダラ忘年会 '08 が12/20(土)に開催されます。

(OoO =オフラインレンダラ野郎のためのオフラインレンダラについて議論するオフライン会)

集合時間に間に合わない方には、当日 B1F の入り口に連絡先が書かれた張り紙をしておきます。

参加費: 0 円

懇親会(任意参加): 有料

今回はレンダラ忘年会 08 です. 今年のレンダラ界隈の話題をまったりと振り返ります.

レンダラに興味がある方は振るってご参加ください。

posted by Png genki on Thu 18 Dec 2008 at 02:22

アップデートの申請中だったPokéDiaのversion 1.1の販売が開始されました。

今回のアップデートで更新される内容は、 以前お伝えした通り、 以下の通りです。

  • メール送信ができなくなっていた問題を修正しました。
  • 特定の操作を行った時に、メモが消える事があるバグを直しました。
  • チェックボックスの切り替え時に不正な禁則処理が行われる問題を修正しました。
  • 2本指フリックで次に予定がある日に移動するようになりました。
  • 3本指フリックで翌週に移動するようになりました。
  • 起動時に今日のページを表示するように設定可能になりました。
  • 今日の未チェックのメモの数をバッジとして表示出来るようにしました。
  • 対応言語が増えました(従来の英語,日本語,フランス語,スペイン語,ドイツ語に加えて、Danish、Dutch, Finnish, Italian, Norwegian, Polish, Portuguese, Russian, Swedish, Turkish, Ukrainian)
  • 起動時にLoadingメッセージを表示するようにしました。

PokéDiaをすでにご購入頂いている皆様には、長らくお待ちいただきましてありがとうございます。 今後とも機能改善を続けていきますので、よろしくお願いいたします。

posted by Png genki on Wed 17 Dec 2008 at 21:17

gemコマンドを使っていると、古いバージョンのgemがだんだんたまっていきます。

年の瀬も近い事ですし、最新バージョン以外のgemをきれいにする方法を紹介します。

   1  % sudo gem clean

これでOK.

posted by Png genki on Tue 16 Dec 2008 at 15:38

一緒にPokéDiaを開発している美谷さん主催の、 iPhoneアプリ勉強会(非技術系です)が12/22に開催されます。

12/22の夜iPhoneアプリ勉強会を開催します。

僕もちょっとパネリストとして出てきます。

posted by Png genki on Tue 16 Dec 2008 at 13:15

コントロールされた乱数

自然な乱数よりも、自然と認識される乱数についてもうちょっと模索すべきかなとか思った今日この頃。

準乱数(低食い違い量列とも呼ぶ)を使うと期待通りのものが得られると思います。

See Also

posted by Png genki on Tue 16 Dec 2008 at 11:55