2011年1月31日月曜日

オープンソース CRM(Fat Free CRM) 日本語化

ここ1週間ほど体調が良くないため、昨日は出かけずに家でおとなしくしていました。
特に先週末は寒かったし、乾燥していて体調を崩しやすいと思いますので、みなさんも気をつけてください。インフルエンザも今週がピークと言われているようですし・・・

さて、前回は Fat Free CRM が起動するところまで確認しましたが、日本語表示されていませんでした。

config/settings.yml の以下の通り、:locale シンボルの所を"en-US"から"ja"に変更します。



# Locale.
#------------------------------------------------------------------------------
# Default locale is American English.
#
# :locale: "en-US"
:locale: "ja"

サーバを再起動して、再度http://localhost:3000/login にアクセスしてみます。
んー。日本語にならないですね・・・

再度 crm:setupを実行します。
すると、


Your database is about to be reset, so if you choose to proceed all the existing data will be lost.

Continue [yes/no]:

と質問されます。データがすべて消えてしまうようですので、問題なければyを選択して続けます。今回まだデータを登録していませんので、y を入力して続けます。

前回と同様 admin のユーザとパスワード、メールアドレスを入力して完了します。

気をとりなおして、サーバを再起動してみましょう。

ログイン画面も日本語になりました

アプリケーションも無事日本語化されたようです

2011年1月30日日曜日

オープンソース CRM(Fat Free CRM) DB作成

昨日はみなとみらいの遊園地「よこはまコスモワールド」に行ってきました。横を通ったことはなんどもありますが、知人の子どもたちと初めて乗り物にも乗りましたが、料金の高さに驚くばかり。冬の寒さのせいか、お客もすくなかったので、待たずに乗れる点はいいですね。

さて、前回に続きFat Free CRMの導入の続きで、今回はデータベース作成を行います。

環境を再確認しておきます。

だいぶ以前にインストールしたのでバージョンの確認を。
$ ls -l /usr/local/
total 16
drwxrwxrwx@ 14 *** wheel 476 5 15 2010 apache-tomcat-6.0.26
drwxr-xr-x 8 root wheel 272 1 22 00:43 git
drwxr-xr-x 4 root wheel 136 7 31 2010 hw_mobile_userdata
lrwxr-xr-x 1 root wheel 29 8 22 00:23 mysql -> mysql-5.5.1-m2-osx10.6-x86_64
drwxr-xr-x 17 root wheel 578 12 29 2009 mysql-5.5.1-m2-osx10.6-x86_64
lrwxr-xr-x 1 *** wheel 32 5 14 2010 tomcat -> /usr/local/apache-tomcat-6.0.26/

どうやらMySQL バージョン 5.5.1ですね。
ちなみに以下のコマンドで確認できます。
$ mysql -u root

mysql> select version();
+-----------+
| version() |
+-----------+
| 5.5.1-m2  |
+-----------+
1 row in set (0.01 sec)

MySQLを起動させておきます。

インストールした Fat Free CRM のREADME.rdocを見ると、

$ cp config/database.mysql.yml config/database.yml
とありますので、database.ymlファイルをコピーします。
NetBeans上でファイルのコピーペースでもできます。
database.mysql_1.ymlという名前になってしまうので、これをdatabase.ymlに修正します。
ちなみにNetBeans上でファイル名を変更する際、ダイアログが表示されますが拡張子は表示されないようです。ですので、ダイアログにはdatabaseのみ入力すれば良いようですね。

database.ymlを見てみる(一部抜粋)
development:
  adapter: mysql
  encoding: utf8
  database: fat_free_crm_development
  pool: 5
  username: root
  password:
  socket: /tmp/mysql.sock

特に変更するところはないようです。ソケットファイル mysql.sock の場所は環境によって変わるかもしれません。私の場合、とくに変更しなくてもよいようです。
以前、mysql.sock が見つからなくて苦労した経験がありますが、MySQLが起動している間だけ作成されるファイルですので、このファイルを探すときは、MySQLを起動してからにしましょう。

前振りが長くなりましたが、いよいよデータベースの作成です。
NetBeansのプロジェクト上で、右クリック(私の場合、指2本でスライドパットをタップ)し、Rakeタスクの実行を選択します。
Rakeタスクの一覧が表示されるので、db:createを選択して実行します。

コンソールには
(in /Users/toshinobu/NetBeansProjects/fat_free_crm.git)
が表示されます。

Macの場合はNetBeans上からはdb:createが問題なく実行されていました。
WindowsではNetBeans上から実行してもデータベースが作成できないようですので、コマンドラインから実行してください)

続いて、READMI.rdocには

$ rake crm:setup
と記載されていますので、同じようにNetBeans上でそのとおり実行してみます。


(in /Users/toshinobu/NetBeansProjects/fat_free_crm.git)
==  CreateSessions: migrating =================================================
-- create_table(:sessions)
   -> 0.1515s
-- add_index(:sessions, :session_id)
   -> 0.1541s
-- add_index(:sessions, :updated_at)
   -> 0.1345s
==  CreateSessions: migrated (0.4404s) ========================================
  :
  :
To create the admin user you will be prompted to enter username, password,
and email address. You might also specify the username of existing user.

Username [system]:                    # UsernameとPasswordはデフォルトのまま
Password [manager]: stty: stdin isn't a terminal

stty: stdin isn't a terminal
Email: ***@******                     # Emailはとりあえず適当に 

The admin user will be created with the following credentials:

  Username: system
  Password: *******
     Email: ***@******

Continue [yes/no/exit]: y
Admin user has been created.

サーバを起動してhttp://localhost:3000/loginにアクセスしてみます。(NetBeans上で起動すると画面が自動的に表示されます。どこかで設定されているのでしょう)


system/managerでログインしてみます。
次の画面が表示されます。

日本語にするのを忘れていました。
次回は日本語にしてみます。

2011年1月28日金曜日

オープンソース CRM(Fat Free CRM)のインストール

オープンソースのCRMはいくつかあるけど、ここもあえてRuby製にこだわってみます。
なので Fat Free CRM をインストールしてみます。

今回試す環境は次の通り。

環境
  • OS: MacOSX 10.6
  • IDE: NetBeans6.9.1
IDEの準備
  • NetBeans6.9.1にnbgitプラグインを導入する
    http://code.google.com/p/nbgit/downloads/detail?name=nbgit-0.4-netbeans-6.9.nbm
    からダウンロードします。

    ツール>プラグイン>ダウンロード済み からダウンロードした
         nbgit-0.4-netbeans-6.9.nbm   
    を指定します。
    インストールが無事成功すれば、チーム>Git がメニューに追加されているはずです。

インストール画面
インストール済みプラグインを確認
nbgitが追加されています

ダウンロード
  • オープンソースCRM fat free crm のダウンロード
    https://github.com/michaeldv/fat_free_crm.git
    から最新のソースをチェックアウトしたいと思います。
    チーム>Git>Clone Other... を選択します。

    Repository URLに
    git://github.com/michaeldv/fat_free_crm.gitt
    を指定し、次へ


    続けて完了ボタンで、ソースがチェックアウトされます。

    続いて、プロジェクトを作るか質問されます。


    Create Project ボタンを押下します。


    あとは通常のRailsプロジェクト作成時と同じようにすすめるだけ。
以下は今後作成予定。


データベースの作成

2011年1月24日月曜日

2011年1月23日日曜日

Ruote2.1 ワークフローエンジン:クイックスタート

Ruote2.1はおもにRuby 1.9.1でテストされています。多分 Ruby 1.8.7でもうまくいくのではないでしょうか。
・・・と書かれているので、Ruby1.8.7の環境で試しています。ちなみに開発環境はMac。

このクイックスタートは最低限のプロセスが実行されることを狙っています。これは特別?なサンプルです。

Ruote2.1の取得

最近のバージョンのgitがあるなら、つぎのコマンドラインで実行できます。

ちなみに私のgitのバージョンは
$ git --version
git version 1.7.1.1

git clone git://github.com/jmettraux/ruote.git

Cloning into route...
fatal: The remote end hung up unexpectedly

んー。エラーが出てしまったようです。
Mac環境なので、Mac版のgitをhttp://code.google.com/p/git-osx-installer/
からダウンロードしてみます。
環境がMacなので git-1.7.3.5-x86_64-leopard.dmg をダウンロードし実行します。
インストーラーが起動します。

まだターミナル上でgitのバージョンを確認しても変わらず1.7.1.1が表示されるので、Pathの設定が必要か・・・
とりあえずREADMEファイルを読んでみる。

/usr/local/gitディレクトリが作成されるとのこと。確認するとたしかにあります。
この更にbinディレクトリのgitコマンドでバージョンを確認すると

$ ./git --version
git version 1.7.3.5

やはりこちらに最新バージョンがインストールされました。

$ /usr/local/git/bin/git clone git://github.com/jmettraux/ruote.git
Cloning into ruote...
remote: Counting objects: 18891, done.
remote: Compressing objects: 100% (5471/5471), done.
remote: Total 18891 (delta 13903), reused 18101 (delta 13311)
Receiving objects: 100% (18891/18891), 3.65 MiB | 882 KiB/s, done.
Resolving deltas: 100% (13903/13903), done.

最新バージョンのgitで実行したら、上手くダウンロードできたようです。

ruoteディレクトリがカレントディレクトリに作成されました。

では更に手順通りに

cd ruote
git checkout ruote2.1

$ /usr/local/git/bin/git checkout ruote2.1
Already on 'ruote2.1'

すでにあると言われてしまった。
では先に進めます。

$ rake build
(in /Users/***/NetBeansProjects/ruote)
gem build ruote.gemspec
warning: Insecure world writable dir /usr/local in PATH, mode 040777
Successfully built RubyGem
Name: ruote
Version: 2.1.12
File: ruote-2.1.12.gem
mkdir pkg
mv ruote-2.1.12.gem pkg/

うまくいった模様。さらに・・・
$ gem install pkg/ruote-2.1.12.gem を実行。
WARNING: Installing to ~/.gem since /Library/Ruby/Gems/1.8 and
/usr/bin aren't both writable.
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems/installer.rb:149: warning: Insecure world writable dir /usr/local in PATH, mode 040777
WARNING: You don't have /Users/***/.gem/ruby/1.8/bin in your PATH,
gem executables will not run.
Successfully installed rufus-json-0.2.5
Successfully installed rufus-cloche-0.1.20
Successfully installed rufus-dollar-1.0.4
Successfully installed rufus-mnemo-1.2.0
Successfully installed tzinfo-0.3.24
Successfully installed rufus-scheduler-2.0.8
Successfully installed sexp_processor-3.0.5
Successfully installed ruby_parser-2.0.5
Successfully installed rufus-treechecker-1.0.4
Successfully installed ruote-2.1.12
10 gems installed
Installing ri documentation for rufus-json-0.2.5...
Installing ri documentation for rufus-cloche-0.1.20...

sudoを使わなかったから警告か・・・

$ sudo gem install pkg/ruote-2.1.12.gem
Password:
Successfully installed ruote-2.1.12
1 gem installed
Installing ri documentation for ruote-2.1.12...
Installing RDoc documentation for ruote-2.1.12...

やり直しました。


# if you're using C (MRI) Ruby :
gem install yajl-ruby

# if you're using JRuby :
gem install json-jruby

# on windows :
gem install json_pure

私の環境はCRuby(Matz' Ruby Implementation)なので

$ sudo gem install yajl-rubyBuilding native extensions. This could take a while...
Successfully installed yajl-ruby-0.7.9
1 gem installed
Installing ri documentation for yajl-ruby-0.7.9...
Installing RDoc documentation for yajl-ruby-0.7.9...

一応ここまでは順調。

最初の実行(First run)

ruote_quickstart.rbが用意されているので、これを実行します。

$ ruby examples/ruote_quickstart.rb
I received a message from Alice

これで確認完了なのか?

2011年1月22日土曜日

Ruote2.1 ワークフローエンジン:ドキュメントを見てみる

オープンソースのワークフローエンジンruoteの日本語化を、自らの覚書のために、始めてめみようと思います。
(本記事は何ら保証する文書ではありませんので、本家を十分確認ください。)

RuoteはRubyで書かれたワークフローエンジンです。
Ruoteはステートマシンライブラリではありません。

これ(Ruote)はビジネスプロセスの仕事の組織網?を表現できます。稟議などの承認経路のようなものでしょうか。またはビジネスルール、業務手順といいたほうが良いか。

Ruoteエンジンは一度に複数のプロセスを実行できるでしょう。
プロセスはRubyDSLやXMLやJSONで書かれたプロセス定義で具体的に示されます。

ユーザ、ユーザのグループ、サービス、レガシーシステムが関係する(でいいのかな)

ライセンスはMIT open source lisence。
日本語読みでは「るおて」で良い模様。

以前はopenwferuと呼ばれていたそうです。

To be continued

2011年1月11日火曜日

Rhodes:Rubyとスマートフォン(Android、iPhone)アプリ 一石二鳥?(その2)

まだ日本語の情報も少ないのでrhomobile社のTutorialを試すことにしました。
どうもフリーアカウントのユーザ登録が必要なようなので、早速登録。

やっぱりModelを作ってDBにデータを登録してからログインができるようになりそうだ。
当たり前といえば当たり前。

モデルの作成
> rhogen model product brand,name,price,quantity,sku
を実行します。
Ruby on Railsのジェネレータにあたるコマンドですね。データベースにproductsテーブルを作成するためのマイグレーションファイルができるはず。と思ったら、erbファイル(テンプレート、MVCのVIEW)と、ControllerとModelのrbファイルが生成されましたね。それからなんだかtest用のファイルも。


興味深いのはModelクラス product.rb が通常RailsならActiveRecord クラスを継承するのに、何も継承していない・・・。
product.rb
-----------------
# The model has already been created by the framework, and extends Rhom::RhomObject
# You can add more methods here
class Product
include Rhom::PropertyBag

# Uncomment the following line to enable sync with Product.
# enable :sync

#add model specifc code here
end

その代わりなのか Rhom::PropertyBag をMix-inしている。
これも後で調べてみよう。

さて、app/index.erbの23行目を
<a href="Product"><span class="title">Products</span><span class="disclosure_indicator"/></a>
に修正して再度
>rake run:android
を実行。

Newボタンを押すと、登録画面が表示されます。


ここまでは順調だが、まだまだ先は長い・・・

Rhodes:Rubyとスマートフォン(Android、iPhone)アプリ 一石二鳥?(その1)

Rubyの学習を始めたが、iPhoneのアプリケーション作成もしてみたい・・・
それにはObjective-Cを知る必要があるしなぁ。と思っていたところなんとRhodesという仕組みがあることを知りました。
Rhomobile’s free and open source mobile application framework Rhodes とあり、Rhomobile社のモバイルアプリケーションフレームワークです。

http://journal.mycom.co.jp/articles/2010/07/22/rhodes/index.html の記事を参考にインストールからAndroidのエミュレータ(iPhoneでないのは、今回Windows7 64bit上で試していたためです)が起動するところまでは確認。でもログインIDとパスワードがわからず、今回はここまで。



先日紹介したThinkPad X40(SSD換装済み)上でも試してみたのですが、起動にめちゃめちゃ時間がかかった。
今回はIntel Core i5 760 2.8GHz マシンなので早くなると思いましたが、ビルドにはやはり数分。
ソースの変更がなければビルドしないようで、2回目のエミュレータ起動はかなり早かった。
Rhodesを試す(通常のAndroid SDKでの開発も同じだと思いますが)には相当のマシンが必要ですね。
ちなみにX40ではエミュレータ上でボタンを押しても10秒くらい(極端か?)反応がありませんでした。