サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
アメリカ大統領選
labs.airs.co.jp
加藤です。 MySQLの4.1以降ではテーブルの作成時やALTER TABLEでカラムを変更する際に、下のようにカラムコメントを付けることが出来ます。 CREATE TABLE `users` ( `id` int(11) NOT NULL auto_increment, `name` varchar(50) NOT NULL COMMENT '氏名: 日本語可。50文字以内。', `email` varchar(100) COMMENT 'メールアドレス: 半角英数文字のみ。100文字以内。', PRIMARY KEY (`id`) ) また、付けたコメントは下のようなSQLで取得することが出来ます。 mysql> SHOW FULL COLUMNS FROM users; このMySQLのカラムコメントをRailsのマイグレーションで簡単に設定できるようにすれば、ドキュメント生成なんか
こんにちは。石上です。 Windows Vista上で最新のRailsをJRubyで動かしたいと思います。少し前まで、JRubyなんて…と思っていましたが、jrubystackを利用したら思いのほか上手く動いたので、報告したいと思います。Java屋の人で、Windows環境でRails開発始めたいと思っている人は注目かもしれません。 jrubystackは、Jruby on Railsの開発環境に必要なソフトウェア一式を一度に整えることが出来るソフトウェアです。GlassFish、Java、JDBC、MySQL、Ruby on Rails、Subversion、Tomcatなどから構成されます。そのため、何もインストールされていない状態でも、Railsの開発環境を得ることが出来ます。 まず最初に行うのは、jrubystackのインストールです。公式サイトから、Windows版のバイナリをダ
加藤です。しばらくぶりの更新です。 ここ最近はRailsとGWTの組み合わせを色々と検証しています。 GWTといえばJava言語でJavaScriptアプリケーションを書くためのツールという認識が一般的だと思いますが、実際に触ってみると、これは軽くて速いJavaScriptコードを生成するための道具なんだなということが判ります。また全世界で展開するGoogleが開発しているしているだけあって、国際化の仕組みが標準で組み込まれているのも日本人にとってうれしいところです。 Railsとの連携についての詳しい内容はいずれここで紹介したいと思いますが、Flexなどと比べるとGWTはあまりにもスルーされてる感があるので、差し当たりこれまでにハマった経験をもとにいくつかポイントを晒したいと思います。 その1: データ交換はJSONでおこなう まぁ、そりゃそうだろといわれればそうなんですが、データ交換
お久しぶりです。インターンの石上です。前回取り上げたRadiant が0.6.6として正式リリース されました。そのため今日はRadiantの最新バージョンがどのように変わったのかを簡単に説明します。 大きな変更点は以下のとおりです。些細なことですが、0.6.6が0.6.5が出た直後にリリースされたバグ修正版です。そのため、以下で紹介する機能追加は正確に言えば0.6.5から行われたものです。 Rails 2.0.2の採用(0.6.4はRails 1.2.5) RSpec 1.1.4の採用。本体のテストだけでなく、Extensionのテストでも利用できます。 本体機能の変更点は以下の通りです。 ページの編集画面からpublish dateを変更できるようになりました。 r:find タグが相対パスでも利用できるようになりました。例えばページに「<r:find url="./">個別記事表示中
Rails 2.1で導入されるタイムゾーンサポートを開発中のアプリケーションでどうしても使いたくなったので、Edge Railsにあげてみました。意外とひっかかるところが多かったので、以下ググって潰した作業メモです。 まず、Edge RailsをGithubのリポジトリからvender以下にチェックアウト。 % cd <RAILS_ROOT>/vendor % git clone git://github.com/rails/rails.git テストを実行して壊れたところを確認。 % rake spec ...EE..E.E........F.........FF..... ... 何かいっぱい出たので順番に潰していきます。 まず、コントローラーのテストで、”You called render with invalid options:...”のようなエラーが出ていたので調べたところ、R
Yahoo! Site Explorer APIとHpricotで作るSEOツール (バックリンク編) CMSといえばSEOということで、CMS & SEO屋に転業しつつあるエアーズの加藤です。 そんな事情で日々SEO情報に目を通していると、先日こんな記事がありました。 Web担当者Forum このページはなぜ検索結果で上位にあるのか? を調べる方法 元記事が英語なのでしょうがないのですが、この記事の中で出てくる「 バックリンクのアンカーテキストを確認するためのツール 」が日本語サイトだとまったく役に立ちません。そこで、欲しければつくるということで、US Yahooの Site Explorer API と Hpricot をつかって自前で調べるスクリプトを書いてみました。 みんなが同じようなことやりだして世の中に余計な負荷が増えるのも難なので、以下抜粋です。 まずスクレイピングに必要な
加藤です。 Radiant CMS日本語化の状況報告です。ほとんど社内だけで盛り上がっていて世の中的にはまったく興味を持たれていない感がただよっていますが、よろしければお付き合いください。 Radiant CMS本家でも国際化対応がはじまりました 管理画面の国際化対応を実装する開発が jargon というブランチ名で始まりました。言語別のYAMLファイルを用意してログイン時に使用言語を選択できるようにするようです。早速、ウチの石上君がja.ymlを送っています。詳しくはメーリングリストのアーカイブでご確認ください。 Radiant Mailing list: Internationalization Support ただ、後述しますがGetTextを使ったエクステンション方式の方が優れている点があるので、当面はこちらの開発もすすめていきたいと考えています。 Radiant CMS Japa
37signalsのWriteboardとGoogle Ajax Feed APIでブログにワンショットのWikiを設置する 加藤です。 ブログや通常のウェブサイトの中で1ページだけWikiが欲しくなる場面があります。例えば何かのリストをつくっていて、訪問してきた人に項目を追加してもらいたい時とか。 そんな時に気軽に使えるサービスとして、37signals の Writeboardがオススメなのですが、いちいちWriteboardのサイトに行かないと内容が見れないのはちょっと不便です。そこで、Google AJAX Feed API を使ってブログページに埋め込むようにしてみました。以下、その手順です。 まず、Writeboardのトップページで必要事項を入力してWikiページを作成します。必要事項は上から順に、ページのタイトル、パスワード、メールアドレスです。パスワードはあとで他の
Rails製プロジェクト管理ツールならredMineよりもretrospectivaの方が良くなくないですか? 加藤です。 まったく人気のないRadiant CMSネタ につづけて、みんな大好きプロジェクト管理ツールネタです。 はてブを見ていたら Ruby on Railsで作られたプロジェクト管理ツールredMineを使ってみよう! という技評の記事があって、「オ、これ知らね」と思い redMineの本家サイト を覗いてみたのですが、インターフェイスから「ほのかに」どころか「全面的に」醸し出されるMS臭に違和感を感じ、 ガントチャート を見た時点で完全に萎えました。 個人的には、 redMineよりもRails製tracクローン retrospectiva の方がイケてるような気がします。tracとの主な違いは ブログ機能がついているというところだけ というのもイカしてますし、なによりネ
こんにちは。AIRSでインターンをしている増田です。 社内でBasecampを使うことになりました。BasecampのAPIをさわる前に、ドキュメント を翻訳してみました。ところどころ訳がひどいのですが公開します。 What are people doing with the API? Mac OS Xのダッシュボードウィジェット、チケットのトラッキングシステム、バグ通知システム、Basecampのモバイルバージョン、Basecampやその他のタブレットPCバージョンが作られている。いくつかのサンプル を見てみよう。 Introduction BasecampのAPIはHTTP上のvanilla XMLとして実装されている。YAMLフォーマットがお好みならそれでリクエストを送ることもできるが、レスポンスはXMLである。リクエストのコンテントタイプヘッダにはapplication/xml(Y
Ajax on Rails <<(javascript) visual_effect(name, id = nil, options = {}) toggle(*ids) sortable(id, options = {}) show(*ids) select(pattern) replace_html(id, *options_for_render) replace(id, *options_for_render) remove(*ids) redirect_to(location) literal(code) insert_html(position, id, *options_for_render) position: top, bottom, before, after hide(*ids) drop_receiving(id, options = {}) draggable(i
加藤です。 先月購入したオライリーのAjax on Railsがあまりにも使えるので、小脇に抱えてこれでもかというぐらい使い倒しています。でも本だけだとやっぱり足りない部分があり、本とリファレンスとコードの三角読み状態もきつくなってきたので、簡単なチートシートをつくってみました。 せっかくなので公開しますが、自分用にサクッとつくったので間違いがあるかもしれません。見つけたらぜひ教えてください。 <iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=airs-22&o=9&p=8&l=as1&asins=4873113326&fc1=000000&IS2=1<1=_blank&lc1=0000FF&bc1=000000&bg1=FFFFFF&f=ifr" marginwidth="0" frameborder="0" marginheight="0
加藤です。 Railsで、ブログのようにサイドバーへリンクメニューやカレンダーなどの小さなパーツ(ウィジェット)を表示する時は、大抵パーシャルやコンポーネントを使います。そういう際に、ひとつのレイアウトでフレキシブルに表示させるためのお手軽なTipsです。 まず、ApplictionHelperにパーシャルかコンポーネントかを判断してレンダリングを振り分けるヘルパメソッドを追加します。renderメソッドにブロックが渡せなくなりますが、どうせRJSの時ぐらいしか使わないので気にしません。 def render_widget(widget) if widget.key?(:controller) || widget.key?(:action) render_component widget else render widget end end コントローラ側ではウィジェット用のハッシュオブジ
加藤です。 ひとつのプロジェクト内で複数のRailsアプリケーションを開発するケースが良くあります。例えば、サービス公開用のアプリケーションと管理用のアプリケーションを別けて開発するような場合です。今回は、そのような場合に最低限やっておくと良いお約束です。この下のような構成を例に紹介します。 タスクをRakefileにまとめる 開発中はテストを実行したり、サーバーを起動したりと色々なタスクを実行することになります。しかし、複数のアプリケーションを同時に開発する場合、それぞれのディレクトリを行ったり来たりしながら実行するのは面倒です。頻繁に実行するタスクは一ヶ所でまとめておこなえるよう myproject/Rakefile に書いておくと良いでしょう。 私の場合、まず初めにタスクを実行するためのユーティリティクラスをRakefile内に用意します。中身はディレクトリを移動してシェルコマンドを
TracのWikiにはマクロ機能があるのですが、標準のマクロだけでは他のWikiソフトに較べると見劣りします。とくにインデックスがページ一覧しかないのは致命的なので、メニュー系のマクロを追加してみました。 TocMacro TocMacro は設置したページ内の見出しを階層化して目次を生成してくれるマクロです。縦に長ーく延びてしまったページに設置すると、下のほうにあるアンカーにもすぐにアクセスできて便利になります。 プラグイン形式になっているので、前回のWeb Admin Plugin と同じようにインストールできます。 $ svn co http://trac-hacks.org/svn/tocmacro $ cd tocmacro/0.10/ $ python setup.py bdist_egg $ sudo cp dist/TracTocMacro-1.0-py2.3.egg /u
加藤です。 社内で新しいプロジェクトを立ち上げたので、久しぶりにTracのセットアップをおこないました。いつも間隔があいてしまうので手順は何回やっても憶えませんが、僕がいつも使うお約束の設定がふたつほどあるので、今回はそれを紹介したいと思います。 その1: TracNavでショートカットメニューをつくる Tracのカスタムクエリは非常に多機能ですばらしいのですが、見たい項目は決まっていますし、いちいちView Ticketsに行って確認するのは面倒です。そこで、 TracのWikiを使いやすくする というエントリーで紹介した TracNav を使ってトップページにショートカット用のメニューを設置します。 僕の場合、Tracのプロジェクトを作成して必要なプラグインをインストールしたら、まずトップページのWikiの内容を全部消して下のような感じに書き換えます。 = プロジェクト名 = [[Tr
加藤です。 lighty + FastCGIよりも、Apache + Mongrel の方がセットアップがラクだなぁと思う今日この頃、Capistrano の設定を忘れてしまいそうなのでメモ。 config/deploy.rbではMongrel Cluster用のレシピを読み込んで、オプション変数にmongrel_cluster.ymlの場所をセットします。 require 'mongrel_cluster/recipes' # This defines a deployment "recipe" that you can feed to capistrano ... # ============================================================================= # OPTIONAL VARIABLES # =========
del.icio.usの中の人がアプリケーションの開発や運用に関することを述べている資料を和訳されているページがあって、非常に勉強になるなぁと前から関心していたんだけど、当社にとってはすごく重要な部分もあれば、そのまま当てはまらない部分もあるので、一部紹介しながら自分なりに再検討してみました。(要閲覧 > 社内) 参考:Joshua Schachter(del.icio.us)による大規模アプリケーション構築の注意点 早期の最適化を避ける。SQLでスケーリングするのではなく、データを複数マシンに分散させる方法を考慮すべき。SQLプロファイリング重要。Nagiosがお勧め。 Nagios じゃSQLプロファイリングは無理だろ。とツッコミいれたくなりましたが、原文 には”Nagios or similar for monitoring.”とありました。TagClickでは稼働監視にNagios
Update: Radiant CMSのバージョン0.6.2への対応版から、Radiant CMSのExtension形式にパッケージを変更していますので、以下の情報はもうすぐ古くなります(2007-06-29)。 加藤です。 Ruby on Railsで作られたCMSツールの Radiant CMS をGettextで国際化するプロジェクトを立ち上げました。 Radiant Gettext (エアーズラボ) Radiant Gettext (RubyForge) ドキュメントが全然できていないのとインストール手順を改善したいので、それまでパッケージとしてはリリースしませんが、アプリケーションの日本語化がほぼ完了したソースを以下の手順で利用できます。まだ検証段階なので試験的にお試しください。なお、Radiant CMSは0.6.1、Ruby-Gettextは1.9.0のバージョン限定です。
はじめまして、エアーズラボ所長の加藤です。今回は、このラボブログで使用しているブログツールの Mephisto を紹介したいと思います。 タイトルにも書きましたが、MephistoはRuby on Railsで作られたブログツールです。同じくRuby on Railsで作られたブログツールに Typo があります。Typoが WordPress のようなパワフルなブログツールであるのに対して、Mephistoは必要最低限の機能だけを兼ね備えたシンプルさが特徴です。 ブログツールやCMSとして、特別なカスタマイズ無しでパワフルに使いたいのであればMovableTypeやWordPress、Typoなどがあっていると思いますが、もっとシンプルなブログツールが欲しい場合や、Railsの知識を活かしてカスタマイズをおこないたい場合にはMephistoを検討するのも良い選択肢です。 まだ、バージョン
インターンの増田です。 ActiveRecordのデータを使ってベイジアンフィルタを使う必要があったので、この部分をプラグインActs as classified として抜き出してみました。 インストール 依存しているライブラリをインストールします。 gem install classifier stemmer プラグインをインストールします。 ./script/plugin install svn://rubyforge.org/var/svn/actasclassified/trunk/acts_as_classified また、日本語のデータを学習に用いる場合はMeCab とそのRubyバインディングをインストールします。 日本語は(DB, MeCabともに)UTF-8を対象にしています。 使い方 分類したいモデルでacts_as_classifiedとします。 class Arti
インターンの増田です。 Webページを使ってテストしたいことがありますが、毎回GETしているとやっかいな問題が出てきます。 ページの内容が変わってしまってテストが失敗する テストに時間がかかる サーバがダウンしているかもしれない そこで、テストをほとんど変更せずに、1回目のGETリクエストの結果をファイルにキャッシュしてしまうRubyのライブラリを作ってみました。 対応しているのはopen-uriによるopenメソッドです。 require 'local-uri' String.local_uri_data_dir = '/home/masuda/test/data' open('http://www.yahoo.co.jp', 'User-Agent' => 'xxx') # open-uriで取得 open('http://www.yahoo.co.jp', 'User-Agent'
このページを最初にブックマークしてみませんか?
『AIRS Labs: エアーズラボではWeb関連の技術情報を公開しています』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く