前から思っていたけれど、簡単なアプリケーションを作ったり、 とりあえずアイディアを動く形にするためには、MySQLを使うよりも Sqliteの方が向いていると思います。

そんな人には、今回のRailsのアップデートは嬉しいかもしれません。

Softies on Rails: Rails 2.0.2

So I believe that for anyone reading this blog, Rails 2.0.2 is a must-have upgrade. Just watch out for the new default to SQLite3 instead of MySQL for new applications.

というわけで、Rails-2.0.2では、デフォルトで使用されるDBがMySQLから Sqlite3に変更されたようです。初めて使う人にとっての敷居が下がるのは良いことですね。

See Also

更新履歴

  • 2007/12/19 See Alsoを追加
posted by Png genki on Tue 18 Dec 2007 at 04:10

Rails勉強会@東京#25 に参加してきました。

photo01

今回は、勉強会終了後に 東京と関東Rubyの忘年会2007 とmergeされるという事で、普段よりも参加者が多めでした。 賑やかで良かったです。

流れとしては、

  • 3回ほど前から続いているランチ懇親会
  • 前半セッション(DBの話)
  • 笹田さんによるキーノートスピーチ(Ruby 1.9の話)

という感じでした。

ランチ懇親会

shachi さんやYuumiさんとe-mobileの スピードテストをしつつ、 The Rails WayAdvanced Rails Recipes がRails 2.0対応していて良さそう、というような話をしていました。

それからSimple DB面白そう、という話もしたような気がします。 まだリリースされてないのですけど、出たら使ってみたい。

DBの話

西さんを捕まえて、第七正規形とか、Rails 3.0に必要なのはなん だろうというような話をしていました。

User.find :all, :conditions => {:deleted => nil} みたいなのは簡単に記述出来るけど、:deleted => not nil な条件を指定したいような状況では、 :conditions => 'deleted IS NOT NULL' とやらないといけない ので面倒だな、という話から、nilの補集合を表すような 記号の話になり、集合の切り分け方の話、最終的に第七正規形の話 への展開。

他、話した内容のメモ。

  • プラグインをGem化する簡単な方法が欲しい
  • perform_filter的なものが必要
  • detached_after_filterが欲しい
  • backgroundrbでやっているような仕組みを、 フレームワーク側で用意しても良いのではないか
  • ActiveScaffold GJ!
  • ActiveSearchが欲しい
    • テキスト全文検索のためのアダプタ群が欲しい

笹田さんによるRuby1.9の話

前回に引き続いて、キーノート的なセッション。 なかなかいい感じですね。笹田さん、次回もぜひ。 面白そうだったポイントとしては、

  • ネイティブスレッド
  • RubyGemsとRakeが標準添付
  • {foo: 'bar'}でHash
    • User.find :all, limit: 10, order: 'created_at DESC' とかできる
  • proc{|a,b,&block| } ブロック引数でブロックが取れる
  • Hashが全て順序つきHashに

この辺ですね。期待。

posted by Png genki on Mon 17 Dec 2007 at 09:07

今年のクリスマスにリリースが予定されている Ruby-1.9.1 ですが、 Rails側でも対応の動きがあるようですね。

[PATCH] Ruby 1.9 compatibility

Aiming for compatibility with Ruby 1.9. The initial patch is incomplete, though nearly all tests pass.

The only substantial breakage is that 1.9 adds a to_time method that converts Time, Date, and DateTime to Time in the local timezone. We have similar methods in Active Support which convert to time in the UTC timezone. The patch overrides the Ruby 1.9 methods in favor of our own.

期待。

posted by Png genki on Sun 16 Dec 2007 at 03:23

Rails勉強会@東京#02-25

Genki Takiuchi

Recent Situation:

  • Founded a small company.
    • And it has already survived 2 months, Yay!
  • Shipped ShootingStar 3.2.5
  • Jogging and swimming.
  • Finally I bought e-mobile (D02HW)
  • And also being with Rails 2.0.1

Favorite Things:

  • C/C++ Template, JavaScript, Ruby.
  • Thinking algorithm, Rendering (CG) and 3D.
  • Vim7, Zsh, GNU screen, rails.vim, ZenTest.

Thank you!

posted by Png genki on Sun 16 Dec 2007 at 02:41

いろんな環境でよく使うので、指に覚えさせています。

   1  javascript:void(window.resizeTo(1024,768))

それはさておき、アドレスバーからJavaScriptを実行する 時に、画面遷移しないように使ったりする、このvoid が気になったので、ちょっと調べてみました。

voidはメソッドではなく演算子

一見メソッドを呼び出しているように見えますが、typeof 等と一緒で演算子です。

Core JavaScript 1.5 Guide:Operators:Special Operators#void

void 演算子は値を返さずに評価する式を指定します。expression は評価する JavaScript の式です。式の周りの括弧はあってもなくてもかまいませんが、使用したほうが見た目はいいです。

したがって、

   1  void window.resizeTo(1024, 768)

と書いても良いわけですね。

posted by Png genki on Fri 14 Dec 2007 at 10:11

複数人で開発している場合に、新しく作成したファイルを svn addし忘れて、Commitもれを発生させてしまうと、 テストが走らなかったり、開発を止めてしまったりと、 様々な悪影響が発生してしまいます。

今回は、Commitもれを防ぐために僕が使ってる方法を紹介します。

やってることは単純で、以下のalias設定を.zshrcに登録しています。

   1  alias svn_new='svn stat | grep "^\?" | sed "s/\? *tmp.*//" | sed "s/\? *log.*//" | grep .'

svn statの結果から、log/とtmp/ディレクトリの中身を除外してるだけですね。 あとは、svn_newコマンドを実行すれば、svn add し忘れてるファイルが無いかどうか簡単に確認できます。

しかし、実際にはconfig/database.ymltagsファイルなど、 svn addする必要が無いファイルがだんだん増えてくるので、 そのような場合には適切にsvn:ignoreプロパティを設定していきます。

僕は、手間を省くために、以下のようなzsh関数を作って使っています。

~/.zshrc

   1  svn_ignore () {
   2    svn pset svn:ignore -F <(echo $1 && svn pget svn:ignore | sed '/^$/d') $2
   3  }

使い方はこんな感じです。

   1  % svn_ignore something_new_file ./

svn:ignoreに設定されたファイルは、svn_newに出てこなくなります。

更新履歴

  • 2007/12/14 CometのやりすぎでComitになっていたのでCommitに訂正。
posted by Png genki on Thu 13 Dec 2007 at 11:41

chcpコマンド。
subversionのコンソールクライアントをインストールしたのですが、svn helpなどが文字化け。emacsのshellで入力すると正しく表示されるので、どうやらコードページが正しくない模様。

chcp 65001でUTF-8に変換できます。これで文字化けしなくなりました。

  • 65001 UTF-8
  • 932 Shift-jis

via
http://d.hatena.ne.jp/tasukuchan/20070511/1178876977
http://d.hatena.ne.jp/s0u/20070307/1173282301

posted by Png satoko on Thu 13 Dec 2007 at 11:41

あすなろブログとのダブルポスト

ひょんなことから知ったTwitterのtrack機能。これ便利です。 ruby、railsについてのtwittを世界中から聞けます。

  • SettingsのPhone&IMでメッセンジャーのユーザーIDを登録
  • メッセンジャー(私はGTalk)にtwitter@twitter.comを追加する。
  • track rails
  • track ruby
  • おしまい

ちなみにuntrackもあります。statsで自分のfollowingやtrackingしている言葉がわかります。
下記も参照下さい。

http://d.hatena.ne.jp/HolyGrail/20071124/1195920980
http://blog.twitter.com/2007/09/tracking-twitter.html

PS
GTalkでのtwitter、followしている人の発言を全部投げてくれないんですよね。 たぶんtrackもそう。
何かお勧めのIMあったら推薦して欲しいです。
(IMからstatsで返される値がWebと一致してないのが原因?いい方法ないですかね…)

posted by Png satoko on Thu 13 Dec 2007 at 06:34

Markdown記法に加えて、作表機能も備えた、BlueStole というRubyライブラリを紹介します。

BlueStole - BlueCloth Wrapper

Ruby の Markdown ライブラリ、 BlueCloth に幾つかの機能を付け足した私家拡張版です。

BlueCloth のMarkdown記法を拡張したものになっていて、こんな感じに RTtool を使った作表を行うことが出来ます。

Rendering Algorithm
WhatWhoWhen
Ray TracingWhitted1980
Path TracingKajiya1986
Photon MappingJensen1995
Metropolis Light TransportVeach1997

ソースはこんな感じです。

   1  |caption=Rendering Algorithm
   2  |
   3  |What                      , Who    , When
   4  |
   5  |Ray Tracing               , Whitted, 1980
   6  |Path Tracing              , Kajiya , 1986
   7  |Photon Mapping            , Jensen , 1995
   8  |Metropolis Light Transport, Veach  , 1997

Markdown記法のポリシーにあっていて良い感じ。 Railsから使う場合は、bluestole.rbファイルをlib以下に 配置します。

ちなみに、このブログで使っているものは、 BlueStole互換の自家製ライブラリです。

posted by Png genki on Thu 13 Dec 2007 at 01:48

Rails Plugin Watcherとしては、 とても興味深い内容の記事がPostされていました。

10 Ruby On Rails Plugins You Should Be Using

One of Ruby on Rails strengths is how easy it is to extend with Ruby Gems and plugins, becuase you don’t have to code everything yourself you can save a lot of time. One problem facing Rails codes is knowing what plugins are out there and how to use them. The following is a list of 12 plugins that should make your coding life much easier and save you a fair bit of time.

タイトルでは10と言ってるけど、実際には11個紹介されてるようです。 本文には12って書いてるからもっと増えるのかも?

簡単に使えて時間節約効果が高いもの、 という観点でチョイスしてるみたいですね。 acts_as_taggable_on_steroids はぜひ使うべきですね。 Tag系のプラグインの中では最高峰だと思います。

それ以外は、結構趣味の問題かなという気もしますね。

posted by Png genki on Thu 13 Dec 2007 at 01:04