開発

jQuery UI がすばらしい。

jQuery UI の秀逸な点。Theme Roller があること。CSSもSimpleだし、すごくいいんじゃないの、これ。こんな感じなんだけれど、ロゴがういているので、もう少しSimpleなものに作り直そうかな。。。

CouchDBでrake couchdb:create:all, couchdb:drop:all

うーん、書くのが面倒なので、ソースへのりんく。http://www.webjourney.org/svn/trunk/lib/tasks/couchdb.rakeActiveRecord とちがって、マルチデータベース対応です(そうしないとCouchDBの意味がないから)

CouchDBでRuby/RailsのTestUnitを使う

必要なデータは test/fixtures/couchdb/**/*.yml にいれておきます。以下のスクリプトをRAILS_ROOT/lib あたりにおいときます。 class CouchFixture def self.load(basedir = File.join(RAILS_ROOT, "test/fixtures/couchdb/")) Dir.glob("#{basedir}/**/*.y…

CouchDBのデータはYAMLでつっこめるよ、と思ったら空の配列の表記

CouchDB用のUnitTestをかけるようにしておこうと思って、fixtureもどきを作っているんだけれど。 YAMLとJSONはそのまま互換です、と思いきや、YAMLで長さ0の配列ってどうやって表現するんだ、という罠があって試してみた。 >> {:a => 1, :b => 2, :c => 3, :…

そろそろ戻れそう。

http://project.webjourney.org/webjourney/svn/trunk/ の中がきれいさっぱり、初期のRails状態になって放置しかけてたんですが、やっとこ平日夜のEnjoyプログラミングの時間がとれそうです。で、実装すべきモノはいろいろあるんですが、基本的にはアプリケ…

0.6.0 trunk 作成, 0.5.0 は branches に移動

Rails 2.1.0 にあわせるためと、先々 ActiveRecord を除去するために*1、trunk を rails 2.1.0 で作成し直しています。0.6.0では、UI系をより洗練させることを目標にします。そうすることで、使いやすいWebAPIを提供することと、フレームワーク以外のURIを独…

メニューの位置

ロゴのしたにメニュー、というのは少し微妙な気もしたので、メニューは一番上で統一することにした。上の右半分をコンポーネントへのリンクへ、左半分をページのナビゲーションにする。どっかでみたな、と思ったらGoogleの検索結果のページもこういうスタイ…

sanitize configuration 機能追加。

Rails 2.0 になって sanitize メソッドがホワイトリスト方式になったわけですが、これに付加機能としてユーザーのロールごとに使用可能なタグ(および属性)を設定できるようにしました。例えば、administrators に対してHTMLウィジェットでFlashの動画を埋め…

RESTful なコントローラーにOpenID認証をくっつける

OpenID自体は、1.POST(consumer) => 2.Redirect-GET(consumer -> provider) => 3.POST(provider) => 4.Redirect-GET(provider -> consumer) となるので、Consumer側は、全然RESTfulになれない罠。とりあえず実装は完了したけど、どうだろう。1 と 4 のURIと…

OpenID 開発ログ。

すでにローカルユーザーテーブルを持っている場合にどうOpenID対応するか。まず、スキーマ変更。 class AddOpenIdSupportForWjUsers < ActiveRecord::Migration def self.up # add type add_column :wj_users, :type, :string, :limit => 64, :null => false…

demo.webjourney.org 更新

IE7 で表示・編集できるようになりました。(IE6は知りませんTT;) Feed コンポーネントを追加しました。 Passenger で動作可能になりました。 Widget Layout エディターのバグをいくつか修正しました。 とりあえず、しばらく使いながら考えます。

Feed Widget

用意したのは3つ。 登録したフィードのItemを表示するWidget (ついでに購読登録もできる) 登録されたフィードの最新10件を表示するWidget 購読数の多いフィード10件を表示するWidget こんな感じです。そういえばfast_ladder移植とかどうとかいっていました…

FCKeditorと格闘(2)

ATOK発動時にEnterキーの挙動がおかしいの原因は、結局のところ、EnterKeyを処理しているのがやはりkeydownであって、keypress ではなかったことが原因の模様。というわけで、修正する方法も分かったのだけれど、LGPLなので修正済みコードは同梱しません。こ…

FCKeditor と格闘。

前々から気になっていたのだが、Mac で日本語入力をすると、変換候補確定時のEnter Key入力がFCKに伝わって無駄に改行されてします。どういうことかというと、「前々から気になっていたのだが、」を入力するときに [maemaekara]spaceenter [kininatte]spacee…

RichComponentHelper#tab_links

trac が落ちていて忘れそうなのでこちらにメモ。

素朴な疑問。

例えば、MongrelなどでNプロセス立ち上げるとして、Nプロセス間でクラス変数を共有するのはどうしたらいいかな。。。さっと、管理系のページをRESTfulに書き直しているんだけれど、放置していたActionMailer::Base.smtp_settings の同期の問題がもう一回放置…

require_same_role_as(component_page, *filters)

routes.rb をコンポーネント単位で自由に書き換えられるようにしてしまった関係で、http(s)://{domain}[:{port}]/components/{component_name} を含むURIは任意に扱えることができてしまう。つまり(Widgetを作る以外は)普通にRailsのApp開発と変わらない状況…

RESTful login

ログインする = 有効なログイン済み"カレント"ユーザーを作る ログアウトする = 有効なログイン済み"カレント"ユーザーを削除する # config/routes.rb # -- map.resources :users, :controller => "wj_users", :collection => { :current => :any } do |user…

RESTful ユーザー登録, パスワードリカバリ

REST本があまり参考にならなかった罠。email や パスワード のような本人確認が必要なリソースを作成する、という点をどうするか?まず登録。 POST /users GET /users/{:id}/registration_prepared GET /users/{:id}/registration_confirmation?key={tempora…

rake test:units completed.

とりあえず rake test:units は完了したので、rake rails:update をかけてboot.rb やほかのJavaScriptなどもアップデートしました。 次はfunctionalなんだけれど、多くの機能はJavaScriptで実装しているから大変なんだな、これが。

Fixtures as a initial data.

昨日の続きで、Fixtureの問題。どうも、load_fixtures を再定義して、その中で自作でcreate_fixturesをしているのが非常に問題のようで、これを解決するには、fixture.rb を最初から最後まで舐め回す根性が必要そう。 で、ふと思いついたのは、Fixtureって、…

RESTful / map.resources / Atom

せっかくなのでURI関係全見直しをかけると同時に、冗長なコントローラーコードはモデルに持って行く活動。コントローラーのコードをモデルに移すことでテストがしやすくなる、というのもあり。とりあえず、/pages/{action}/{id} ではなく、/pages/{id} でア…

あけまして、Rails 2.0 対応

2008年になりました。カウントダウンTVを見ながらコーディングをしつつ年を越えました。とりあえず昨年の積み残しで、実際のコードで1.2.3ベースのコードを2.0対応させています。とりあえずは、トップページの表示に問題がないレベルまでいってから rake tes…

OpenID対応

http://project.webjourney.org/issues/show/4認証用のユーザーID, パスワード管理に解放されたくてConsumerを書いています。まず、openid用のライブラリを導入。 sudo gem install ruby-openid でRailsで簡単なテスト用Applicationを書く。gem の中にサンプ…

0.3.0 パッケージ

アワード申請の時点で、バージョンを切ろうと思って。寝て起きたらサーバーへのデプロイ作業 + 一通りテストをしてパッケージにしようとおもいました。これ以上はやる気が起きないというか間に合わない。結局のところ、フレームワーク的な部分を作るのと、ウ…

チュートリアル2

http://trac.webjourney.org/trac/wiki/docs/developers_guide/tutorial2.jaとりあえずOpenOfficeで図を書くときれいにかけない、とツールのせいにしてみる。PowerPointとExcelは買おうかなぁ。

IEでログインすらできなかった件

Widget 内にあるformをポストするときにはform_remote_tagを拡張したform_widget_tagというので、Ajax.Updaterを使っています。が。このままだと多重ポストに対応できないので、submit_tag を submit_widget_tag にして、submitが押された瞬間にthis.disable…

capistrano

そろそろ人柱サイトを立ててデバッグ+データ収集開始。ということで、capistrano を入れてデプロイ作業。 と、2.0 になってから初めて使うので、微妙に使い方が違ったりして困る。いきなり --apply-to ができないと思ったら、capify {RAILS_ROOT} というコマ…

fckeditor(obj, method, options={}, configs={})

FCKeditor を標準のWYSIWYGエディタとして採用。TinyMCEでもいいんだけれど、以前Rails用サーバーブラウザを作ったことがあるので、それを再利用したい、という動機。 こんな感じでかけば、Helperになります。 # FCKeditor helper def fckeditor(obj, method…

my_friends ウィジェット

80%完了。ここで、アイコンの問題が発生。要するに写真を登録していないユーザーの画像をどうするか、ってことで、no-image ファイルを作ればいいのですが、それすらセンスがないので、どうしようかなぁ、といったところ。で、結局、http://www.iconlet.com/…