Nasuta<http://www.nasuta.jp/>

2008年11月13日

スナップ 2008/11/13

(Railsで)Google OpenIDを使ってみる

認証だけでなく、メールアドレスを取得するところまで解説してあります。
posted by ふんじ at 11:46| Comment(0) | TrackBack(0) | 開発記録 | このブログの読者になる | 更新情報をチェックする

2008年11月12日

スナップ 2008/11/12

Cucumberがアツい

cucumberって知らなかったのですが、受け入れテストに利用できるテストツールのようです。(よくわかっていない) 

サイトより。

Cucumber is a tool that can execute feature documentation written in plain text. Cucumber targets non technical business analysts, interaction designers, domain experts, testers (for the plain text part) and programmers (for the steps, which are written in Ruby).

Cucumberはプレインテキストで書かれた特徴を記述したドキュメントを実行するツールです。技術職ではないアナリスト、ドメインエキスパート、テスター、プログラマーを対象にしています。

だそうです。(^^;

Rails2系ででPOSTメソッドを使ったときに出るInvalidAuthenticityToken Error

を回避する方法です。

Railsにjpmobileを使ってモバイル環境を構築するときのメモやノウハウのまとめ
posted by ふんじ at 21:18| Comment(0) | TrackBack(0) | 開発記録 | このブログの読者になる | 更新情報をチェックする

2008年11月10日

クリップ 2008/11/10

http://d.hatena.ne.jp/yuum3/20081109/1226212005
簡単にAjaxなUIが作れそうな気がします。

アスキーアートのダイアグラムを画像に変換「ditaa」

アイデアが面白い。簡単な仕様を書くのに使えそう

スタンドアロンマシンにRails環境の構築

ネットからgemなんかをつかってインストールできない環境(高度なセキュリティガードが施されている本番サーバなど)でローカルにソースを媒体で持ち込んでrails環境を構築する際の手順。

posted by ふんじ at 12:47| Comment(0) | TrackBack(0) | 開発記録 | このブログの読者になる | 更新情報をチェックする

2008年11月08日

クリップ 2008/11/08

Rails-2.2のActiveSupport::Memoizableがイイ!

メソッドの実行結果をキャッシュして高速を行う機能みたい。
posted by ふんじ at 12:58| Comment(0) | TrackBack(0) | 開発記録 | このブログの読者になる | 更新情報をチェックする

クリップ 2008/11/08

Django風データベース管理プラグイン「Rails DataBrowser」
他にもDBを管理するI/FとしてはNiftyが公開したActiveRecordBrowserがありますね。


Rails 2.1で複数DBに接続

 2.1になってからmagic_multi_connectionが使えなくなり、Jrubyをつかって簡単に同様の機能を実現。

posted by ふんじ at 07:09| Comment(0) | TrackBack(0) | 開発記録 | このブログの読者になる | 更新情報をチェックする

2008年11月07日

ログローテーション

http://d.hatena.ne.jp/GARAPON/20081107/1226036816 ここでローテーションの方法についてのエントリがリンクされていたのですが、railsだけで解決しようとするといろいろ問題がありそう。そうなると
Railsアプリケーションのログをsyslogに記録する方法
というエントリーで紹介されているように syslogに吐くのが良さそうです。

本番運用するにはログローテーションは大事です。外注しているソフトハウスがあったとして、サーバの運用を任せているソフトハウスがあったとして、ログローテーションの設定もろくにやってないようなところと付き合うのはやめたほうがいいですね。
posted by ふんじ at 18:03| Comment(0) | TrackBack(0) | 開発記録 | このブログの読者になる | 更新情報をチェックする

2008年11月06日

クリップ 2008/11/06

RailsとiPhoneを仲良くする「TankEngine」

TankEngineプラグインをインストールすると、format.iphoneと記述しておくと、iPhoneからアクセスしてきた時に専用のテンプレートで表示することができるらしい。
posted by ふんじ at 13:12| Comment(0) | TrackBack(0) | 開発記録 | このブログの読者になる | 更新情報をチェックする

2008年11月03日

クリップ 2008/11/03

ruby-gettext 1.90.0 にメモリリーク

1.92で直ったらしい

script/console で ActiveRecordを操作

記事の中程にその記述があります
posted by ふんじ at 08:31| Comment(0) | TrackBack(0) | 開発記録 | このブログの読者になる | 更新情報をチェックする

2008年10月31日

マイコミジャーナル:Rails 2.2 誤解多いスレッドセーフ、公開前に理解

http://journal.mycom.co.jp/news/2008/10/30/028/

によると、Jrubyを使えばネイティブスレッドになるのでプロセスは一つで良いとあります。

さらにRailsをJRubyで実行させると、スレッドがネイティブスレッドとして処理されるためプロセスが1つだけでよくなる。Rails 2.2はRuby 1.9とJRuby 1.9に対応する予定だ。どこまで実用的に使えるかはRubyと比べるとデータ不足だが、JRuby on Railsでさらに性能の引き上げを調査してみるのも悪くない選択肢だ。


ただ、大規模なRailsのサービスではmongrelのプロセスを監視して落ちたら再起動するような仕組みを用意しています。

1プロセスだと落ちたら再起動されるまでに他のプロセスが存在しないためサービスが止まってしまいます。もし1プロセスで十分さばけそうでも冗長化のために複数プロセス立ち上げておいた方が良い気がしますがどうでしょうね。

それともmongrelじゃなくてGlass Fish を使えば安定するとか?

Glass Fishは使ったこと無いのですが、いままでtomcatをコンテナにしたwebサービスは多数構築してきました。クラスタリングを導入するまではいかないサービスでは、tomcatだとめったに落ちないといってもたまに落ちたときにサービスが止まってしまうんですよね。

mongrelはtomcatより不安定だったとしてもそれを前提に落ちても再起動するしくみを用意したりするので、逆にサービスは止まらなかったりします。

jrubyをつかってmongrelを複数動かしてプロセスが死んだら再起動するってのが実現できれば大規模サービスに使えそうな気がします。

posted by ふんじ at 01:05| Comment(0) | TrackBack(0) | 開発記録 | このブログの読者になる | 更新情報をチェックする

2008年10月30日

blog clip at 2008/10/30

これからRailsに関するblogのエントリをクリップしていこうかと思います。

generate/migration:add_column_to_table と remove_column_from_table

AttachmentFuプラグインの日本語対応化

Rails 2.2RCがリリースされました

rails 2.1.1 から render => :file の仕様が変わっています

Railsアプリケーション開発の基盤に「BaseApp」

Jpmobile で user_agent を設定してテストするには

P.S.
いちいちリンクを張るのがめんどくさい。専用のブックマークアプリ+ブックマークレットをつくるかなあ。。
posted by ふんじ at 21:40| Comment(0) | TrackBack(0) | 開発記録 | このブログの読者になる | 更新情報をチェックする

2008年09月08日

スレッドプールきたー

http://blogs.sun.com/cinnabar/entry/rails_2_2_and_connection

ざっくりと引用。
C・ナッターのスレッドセーフRailsに関するブログ記事が大きな話題になっていますが、まもなくそのスレッドセーフであるRails2.2が登場します。

この2.2からスレッドセーフになることにより、以前取り上げた通り、従来まではActiveRecordではデータベース接続が1つで使い回していたものが、コネクションプーリングを行うことができるようになるようです。

2.2からはdatabase.ymlにpoolパラメータが追加され、以下のような設定でプール数を設定可能になります。


ActiveRecordでコネクションプーリングが実現されると確実にRoRの適応範囲は広がりますね。

たとえば、私がコネクションプーリングがなくて断念したのものにクローラーがあります。

マルチスレッドに対応していないことも忘れて、WEBサイトをクロールしてDBに格納するプログラムをARで書いたのですが動かなくてがっくりしたことがあります。

ほかにもDB Storeのセッション管理で良く出るconnectionリセットの不具合もこれで治るのではないかと期待しています。

すくなくともDB Storeの不具合が解消されればお客さんのシステムにも安心して提案できるようになります。
posted by ふんじ at 15:54| Comment(0) | TrackBack(0) | 開発記録 | このブログの読者になる | 更新情報をチェックする

2008年08月20日

memcachedのコネクションが閉じない

rails 2.0.2 のセッション管理をmemcachedにしたところ、サービスをしばらく稼働させておくとmemcachedとのコネクションが大量に残ったままrailsサービスがフリーズします。

んー、なんでだろう。。ググったけど同じような症状は見つからない。。

memcachedの問題とは思えないのでrailsに原因があると思うのですが何から調べれば良いものやら。。困った。
posted by ふんじ at 18:51| Comment(0) | TrackBack(0) | 開発記録 | このブログの読者になる | 更新情報をチェックする

2008年07月24日

gem install mysql が mac osx で通らない。。

(追記)
http://ore.saizensen.net/archives/category/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88/ruby

これを参考にソースを修正したらmake installは通ったが gem listをやっても一覧に出てこない。うーむ。
(追記終わり)

http://d.hatena.ne.jp/kurusaki/20080716/p1

こちらにかかれたあったとおり、やってもtigerで通らない。(ちなみに本番環境のcent os5ではとおった)


sudo env ARCHFLAGS="-arch i386" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
Password:
Updating metadata for 204 gems from http://gems.rubyforge.org/
............................................................................................................................................................................................................
complete
Building native extensions. This could take a while...
ERROR: Error installing mysql:
ERROR: Failed to build gem native extension.

/usr/local/bin/ruby extconf.rb install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
checking for mysql_ssl_set()... yes
checking for mysql.h... yes
creating Makefile

make
gcc -I. -I. -I/usr/local/lib/ruby/1.8/i686-darwin8.11.1 -I. -DHAVE_MYSQL_SSL_SET -DHAVE_MYSQL_H -I/usr/local/mysql/include -Os -arch i386 -fno-common -fno-common -g -O2 -pipe -fno-common -c mysql.c
mysql.c: In function ‘Init_mysql’:
mysql.c:2015: error: ‘ulong’ undeclared (first use in this function)
mysql.c:2015: error: (Each undeclared identifier is reported only once
mysql.c:2015: error: for each function it appears in.)
mysql.c:2015: error: parse error before numeric constant
mysql.c:2018: error: parse error before numeric constant
make: *** [mysql.o] Error 1


Gem files will remain installed in /usr/local/lib/ruby/gems/1.8/gems/mysql-2.7 for inspection.
Results logged to /usr/local/lib/ruby/gems/1.8/gems/mysql-2.7/gem_make.out
posted by ふんじ at 11:27| Comment(0) | TrackBack(0) | 開発記録 | このブログの読者になる | 更新情報をチェックする

2008年06月03日

クララにmod_railsをインストール。。。出来なかった。

先に書いたようにmongrelがやたらと落ちるのでmod_railsを試そうとおもい、mod_rails + インストールでググるてインストールnトライしたんですが、yumが入ってなくて必要なパッケージを追加できなかったりと。いろいろ試したんですが成功しませんでした。


時間があったら再トライしてみます。
posted by ふんじ at 13:41| Comment(0) | TrackBack(0) | 開発記録 | このブログの読者になる | 更新情報をチェックする

2008年06月01日

クララオンラインのVPSでRails が落ちまくりな件

mongrelですが、ここ最近ずっと半日に一回プロセスが死んでます。

アクセスほとんどないはずなんですが。以前も酷かったのがしばらくはましになったと思ったら、ここのところは本当に頻繁に落ちます。

ここのところずっと早朝にプロセス監視のアラートメールで起こされて寝不足です。amazon ec2がもっと安ければ移行するんですけどね。。

ほかに良いものはないだろうか。。真剣に探さねば。

http://www.clara.co.jp/
posted by ふんじ at 23:19| Comment(0) | TrackBack(0) | 開発記録 | このブログの読者になる | 更新情報をチェックする

2008年04月15日

Mac OSX(tiger)でGoogle App Engine SDKを動かす

ruby とはぜんぜん関係ありませんが、Google App Engineが面白そうなのでSDKをいれて試してみました。
(残念ながらアカウントは待ち、まだもらえてません)

1. Pythonのインストール


TigerのPythonはバージョンが古いのでver 2.5を別途インストールします。

http://www.python.org/download/
ここからdmg形式でダウンロードできます。

http://www.python.org/ftp/python/2.5.2/python-2.5.2-macosx.dmg

古いバージョンのpythonが呼ばれないように環境変数のPATHの順番に気をつけてください。/usr/local/binが /usr/bin より前にあれば大丈夫です。


2. sdk のインストール


http://code.google.com/appengine/downloads.html

ここからSDKをダウンロードします。こちらもdmg形式なので簡単にインストールできます。(pythonが古いとインストーラが警告を出して終了してしまいます)

3. サンプルの実行

http://code.google.com/appengine/docs/gettingstarted/

Getting Startedに従ってサンプルを実行したら、あっけなく動作しました。

googleアカウントによる認証のテストもストレージのテストも簡単にSDKで出来てしまいます。アカウントの入力ページはgoogleのサイトではなくローカルにある入力フォームが自動的に呼ばれます。

実際に動かしたファイルを参考までにアップしておきます。
これー>google_app_engin_sample.tar.gz

参考:
google app developerによるデモ
posted by ふんじ at 15:09| Comment(0) | TrackBack(0) | 開発記録 | このブログの読者になる | 更新情報をチェックする

2008年04月01日

ruby でHTMLを解析してアンカーテキストとリンクURLを抽出

参考にしたURL:
http://tam.qmix.org/wiki/Hpricot.html
http://labs.airs.co.jp/2007/7/11/site_explorer_api_hpricot_seo

簡単にできました。

require 'rubygems'
require 'hpricot'
require 'open-uri'
require 'kconv'

doc = Hpricot(open(ARGV[0]))

(doc/'a').each { |e|
s = e.inner_html.toutf8.gsub(/<.*?>/,'')
next if s == nil || s == ''
print "["
print s
print "]\n"
print e.attributes['href']
print "\n"
}


e.inner_html がアンカーテキストになりますが、UTF-8に変換し、タグをHTMLのタグを消去しています。


$ ruby crawler.rb http://nasuta.seesaa.net/ | head -10
[Nasuta開発ブログ]
http://nasuta.seesaa.net/
[Nasua]
http://www.nasuta.jp/
[http://www.nasuta.jp/]
http://www.nasuta.jp/
[ruby でRSSの解析 その2 はてぶのデータエクスポートデータの解析]
http://nasuta.seesaa.net/article/91728241.html
[http://hatena.g.hatena.ne.jp/bbs/3/13]
http://hatena.g.hatena.ne.jp/bbs/3/13


つぎは階層を追っかけてクローラーっぽい動きを実現させてみますかね。
posted by ふんじ at 18:55| Comment(0) | TrackBack(0) | 開発記録 | このブログの読者になる | 更新情報をチェックする

2007年06月23日

acts_as_paranoid

MLより。これは使えそう。備忘録と。

論理削除に関しては、acts_as_paranoidっていうプラグインがあります。

http://ar-paranoid.rubyforge.org/
# IEだと見られないかもしれない
posted by ふんじ at 08:01| Comment(0) | TrackBack(0) | 開発記録 | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は90日以上新しい記事の投稿がないブログに表示されております。