サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
買ってよかったもの
www.rmake-labo.com
2007-02-10 13:00 : N+1 問題を回避する Kodougu では、SQL の Select における N+1 問題を回避することが重要になってきます。 N+1 問題とは、Tree 状の情報を DB から読み出す際、全レコードの取得に一つ+各レコード分だけ SQL を発行してしまう問題です。出来の良い O/R マッパーを使っているとよく引っかかります。 Kodougu のようなモデリングツールだと、この問題には非常によく出くわします。例えば、図上の要素を全て取得してから、要素に関係する関連の一覧を取得するなどを行うような場合です。Rails の ActiveRecord は気軽に DB にアクセスできてしまいますから。以下のコードでは、要素から出て行く関係線の一覧を取得しています。以下のようなコードを書いてしまうと、図を一枚描くたびに要素数分の SQL が発行されてしまいま
Railsでクラス数が増えてくるとフォルダ分けしたくなることがあります。その場合、Javaのパッケージと同じように、モデルをフォルダ分けして、モジュール下に宣言してやることになります。以下のような感じです。 class ModuleName::ModelName ところが、belongs_toとかhas_manyとかの関連を解決する際に、以下のようなエラーが出て手がつけられなくなることがあります。悪名高きActiveSupportの「XXX is not missing constant YYY」ですね。 ArgumentError in Hogehoge/Fugafuga#nanika ModuleName is not missing constant ModelName <<中略>> c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.1.
2007-03-04 04:30 : KeepAlive をはずしたら速くなった もう朝が近いな・・・。 Kodougu を mod_proxy_balancer でロードバランスしたのですが、Ajax のレスポンスが 10 秒以上待たないと返ってこないという問題に遭遇してしまいました。具体的には、ブラウザ(FireFox)上でモデル要素を動かすと、Ajax リクエストを送信するのですが、これのレスポンスが 10 秒以上たたないと返ってこないという現象です。Apache の httpd.conf をいじって KeepAlive を外したら速くなったのですが、どうも腑に落ちません。 昔、IE では KeepAlive 関係でバグがあってレスポンスが返ってこないというのはあったようですが、今回は FireFox なのでちょっとそれはなさそうな予感がしています。 以下のバ
1981年生まれが集う1981sの忘年会(渋谷)に行ってきました。面白い人たちがたくさん集まっていて、盛り上がっているうちについついオールしてしまいました。100人位いたみたいで、何というかカオス。まぁ、何にしてもいろいろと刺激をもらいました。 yusukebeさんをはじめとして幹事の皆様お疲れさまでした。
2007-06-25 01:16 : Rails におけるファイルのアップロードについて Rails を使ったアプリに限った話ではありませんが、ファイルをアップロードする機能を Web アプリにつけたときに、ファイルを DB に入れるか、Web サーバにファイルを保存するかについてです。 私は Web サーバに保存すべきと考えていました。Web サーバとアプリケーションサーバ(Rails のサーバ)を分けている場合、静的ファイルはWeb サーバが処理して、動的コンテンツはアプリケーションサーバが処理してというようなことをする場合があります。DB に入れると、アプリケーションサーバを経由しなくてはならないので、こうした構成が取れなくなります。ただ、Web サーバを複数台にする場合、ファイルアップロード時に全ての Web サーバにファイルをコピーする手間がかかるというデメリットがあ
2008-01-21 17:28 : Kodougu を Rails 1.2 から Rails 2.0 に挙げた際のログを残しておく Kodougu の Rails を最新のバージョンに上げたので、その際のログを残しておきます。Rails にそれほど激しい変更がなかったらしいということと、Kodougu 自身がそれほど Rails を使い込んでいないという理由から、かなり行き当たりばったりで対処してみました。 ※ それでも、一度 1.2.6 にしてから 2.0.x へ上げるという作業をしています。1.2.6 では、2.0 に向けて Depreciated な API に関する警告を出してくれるので、1.2.6 上で機能を動かしながら 2.0 対応を進めるということができます。 以下、アップグレードで参考にしたサイトです。 http://d.hatena.ne.jp/
2008-01-12 18:39 : RSpec をインストールしてみた Kodougu のテストを RSpec で書いてみようと思ったので、RSpec をインストールしてみました。 どうしたわけか、Rubyist Magazine - スはスペックのス 【第 1 回】 RSpec の概要と、RSpec on Rails (モデル編)のやり方では, RSpec on Rails がインストールできなかったので、以下を参考にインストールしてみました。 RSpec-1.1.1: Installation http://rspec.info/documentation/rails/install.html ruby script/plugin install http://rspec.rubyforge.org/svn/tags/CURRENT/rspec ruby
2008-01-15 12:09 : 「Ruby on Rails によるシステム開発をモデリングで効率的に行う」連載記事を書いた 最近、八角研究所で技術記事を書いているのですが、そこで、Ruby on Rails の開発を潤滑に進めるために、モデリングを含めた開発プロセスを架空の事例に適用して紹介した連載記事を執筆しました。 この連載を書いた理由を簡潔に述べると、そろそろ Rails も平凡なエンジニアにとって使いやすくなるようにいろいろな道具立てをそろえていかないといけないと考えたからです。 最近、「Rails や Ruby 界隈の VB 化(別に Java 化でも Struts 化でも良いですが。)」というような話が語られています。入門時に敷居の高さを感じさせる Ruby ですが、Rails によってその敷居が低くなり、さまざまな人が Ruby/Rails に参入で
2008-01-12 01:17 : ひがさんは大変な Ruby/Rails の心配をしていきました そろろろRailsについて本音を書いてみるかについてです。ひがさんはよほど Ruby/Rails の心配をしてくださっているようなので、Rails ユーザの一人として非常にありがたく思うのと同時に、ひがさんの心配のいくつかは取り除くべきかなと感じました。 ■ ひがさんの心配:Ruby/Rails ユーザはテストに無関心 Railsで、最も良いところは、テストの雛形も自動的に作ってくれて、テストの敷居を下げてくれてるところだと思う。なのに、それについて触れる人があまりにも少ないような気がする。一応、私は、1年半以上、はてなのキーワード検索で毎日Railsについては調べているので、はてなでRailsについて書いている人の記事はたいてい見ています。 確かにそのような状況が事実
ピアノをこよなく愛するエセRubyistが適当に書き綴りますこのサイトについて このサイトについて 自己紹介 あかさたのサービス rmake.jp Kodougu コピトレ カテゴリ プログラミング ピアノ 歴史 雑談 未踏 新着エントリ 2013/04/02 RMagickで、TempfileからMagick::Imageを読み込んだり書き込んだりする処理 2013/02/25 Rubyでmethod_addedとinheritedを使ってjavaのfinal的なことをやってみた 2013/02/23 amazon-ecsを使ってRuby上でAmazon Product Advertising APIを操作してみた 2013/02/12 bundlerを使ってgemを作ってみた(ついでにrspecでテストを書いた) 2013/01/31 aws-sdk-rubyを使ってAmaz
2007-12-26 11:39 : さっそく、ruby_parser を試してみた Ruby言語パーサのruby_parser 1.0.0が初リリースによると、Ruby による Ruby パーサが公開されたようです。安定すれば相当便利に使えるでしょうから、勉強がてらさっそく触ってみることにしました。 ■ ruby_parser とは? Ruby で記述された Ruby パーサ。Ruby の構文を受け取って S 式を返します。Lisp 使いにとってはなじみのある形式です。 ホームページ http://parsetree.rubyforge.org/ RubyForge のプロジェクトサマリ https://rubyforge.org/projects/parsetree/ ■ テスト環境 OS : Windows Vista CPU: Code2Du
2007-12-18 14:04 : dojo 1.0 が出たから Cometd のインストール方法の整理と使い方へのポインタを書いた cometd を使ってみたという記事で、dojo 0.4.2 + cometd のセットアップ方法を記述しました。dojo 1.0 が出て、多少状況が変化したようなので、Kodougu で行った作業をもとに cometd のセットアップ方法を整理して掲載します。 ■ インストール方法 ○ 環境 Windows XP SP2 Windows Vista(我ながらチャレンジャーだと思っています。) ○ Python 関係のセットアップ 1. Python 2.4.4(インストーラあり、EasyInstall もインストールすべし) Python Japan User's Group ※ EasyInstall のインストール方
2007-11-19 01:14 : 平凡なエンジニアとしては、ドッグフードを食べる理由は心意気以外のものを求めたい ソフトウェア開発における「ドッグフードを食べる」とは、ソフトウェアの開発者もしくはその会社が、自分たちが開発したソフトウェアを実際に業務などで使用することです。要は自らを実験台にするわけです。有名なのはマイクロソフトのドッグフードです。どこよりも早く MS 製品を使い始めるわけですから、命がけ(?)ですね。(^^; それゆえあれだけ複雑な製品をそれなりの品質で提供できているともいえます。 ソフトウェアをドッグフードしなければいけない理由より ソフトウェアのドッグフードというのは、開発を継続できる最大の武器だよね。自分がアプリを開発していけるのは、自分で日常的に使ってるから、というのが大きい。バグだってどんどん見つかるし、改善すべき点も見えてくる。自分は使わずに
2007-11-10 13:56 : dojo.gfx(dojo 0.4.3) が IE で遅い件について改善にトライした ここしばらく、Kodougu の IE における高速化を行っていました。これまで、Kodougu の IE 対応は機能カバー率こそ 100% であるものの、速度は Firefox の 1/10 以下という非常に舐めた状態でした。機能カバー率は 50% 程度であるものの Opera 対応の方が実用性が高いかもしれません。 私が IE というものを分かっていないせいだろうと思っていたのですが、どうも調べれば調べるほど、dojo 0.4.3 の dojo.gfx が怪しいということになってきました。(dojo 1.0 が出た時点でやたら古いものを使うなって話ですが。)そこで、 dojo のどこが遅いのか調査してみることにしました。 ■ Kodougu のパ
2007-11-01 14:29 : 平凡なエンジニアが未踏ソフトウェア創造事業をやったらどうなるのか書いてみた 最近、八角研究所で技術記事を書いているのですが、私が参加した 2006 年度下期未踏ソフトウェア事業(2006 年 11 月 ~ 2007 年 8 月末まで)の体験談を書いてみました。 未踏の体験談を書こうと思った動機について書きます。 私がお世話になった PM は東工大の千葉先生だったのですが、同じ PM 配下でも他の方は凄腕のエンジニアであり、能力的にも住む世界が異なるという感じでした。そういうエンジニアは目立つので、私は未踏のエンジニアというともの凄い凄腕ばかりを思い浮かべてしまうのですが、未踏ソフトウェア創造事業そのものは、適切な提案ができれば平凡なエンジニアにも門戸が開かれています。 というか、普通のエンジニアこそ挑戦すべき制度です。とはいえ、
2007-10-22 23:15 : Rails 勉強会に行ってきた 日曜は Rails 勉強会に行ってきました。今回で三回目です。この勉強会は、5 ~ 6 個のセッションを前後半(それぞれ一時間半)に分けて行います。オープンスペース方式で、どのセッションに参加してもいいし、途中でセッションを移動しても構いません。 今回は新しい試みとして、懇親会を昼にやってから、勉強会を開始するという方法をとりました。これがなかなか具合がよく、すんなりと勉強会に入っていけた気がします。 ■ 参加したセッション 土曜日に酒を飲みすぎたので、前後半ともにぐだぐだセッション(雑談セッション)に参加しました。二日酔いというか、ほとんど酔ったまま参加したので、他の方に迷惑をかけていないといいのですが。。。 この日の収穫は、まとめるとかなりありました。 まず、分散のソースコード管理
2007-10-16 03:24 : Rails 開発者こそモデリングするべきだって思った Rails 開発者こそモデリングすべきだよなぁって唐突に思いました。Rails は DB スキーマさえ作成すれば、そのあとはレールに乗って高速に開発ができるのですが、当たり前の話 Rails は DB スキーマの設計方法は教えてくれません。ましてや、どんなソフトウェアを作ればいいのか教えてくれるわけでもありません。 Rails は「何を作るか決めてからがすごいフレームワーク」なのです。分析工程は開発者自身が自分のやり方で実施しないといけないのです。 何を作るのかを導き出すのはモデリングが得意です。とはいえ、一般的な UML 本に載っているような開発プロセスはどうにも Rails アプリを記述するには重すぎる気がします。(少なくとも私はそう考えています。)往々にして、図解言語というも
2007-01-08 10:00 : 【連載】 Ruby on Rails を使ってブログを開発する Ruby on Rails では、Scaffold を生成して、ブログの記事やコメントの追加削除をできるようにするところまでは、Rails に慣れていない人でも数時間で到達します。しかし、それ以上の機能を持ったブログを開発しようとすると、ブログに関する知識がないとスムーズには進みません。 この連載では、Rails(Ruby)を使ってブログの実装を行っている人向けに、ブログに関する周辺知識を交えながら、実装に有用な情報を掲載していきます。 ■ 対象読者 ・ Ruby の文法の知識は初級 ~ 中級 ・ Ruby on Rails の Scaffold を生成したことがある ・ ブログの実装はしたことがない、あるいはそれほど詳しくはない ・ 今、Rails を使ってブロ
2007-08-14 04:48 : 複雑な GUI を持つアプリケーションの設計について(Web アプリ編) 以下のようなエントリを見つけました。非常に良い問題意識です。そう、GUI プログラミングは泣けるほど面倒くさいのです。 subtech - Pink Blossom Diary - AS3/Flex2 を使い始めて約半年より まずイベントドリブンなプログラミングに慣れてないのが一つで。Flex のイベントや自前イベントやをただ単に投げまくってると、とりあえずは動くけど後からメンテし辛いスパゲッティコードができあがる。このスパゲッティコードは goto 文が乱立するコードよりも酷く、goto だったら割と行き先は把握できるけど、イベントを投げまくってるだけだと、どこでどのオブジェクトがこのイベントを受け取るかが解らない。解りづらい。いちいちソースコード grep です
2007-08-09 15:47 : そんなこと言っちゃったら Web 系なんてねぇ・・・ 私は、マークアップエンジニアという言葉は知りませんでしたし、ぶっちゃけ CSS で盛り上がる世界が存在しているということも理解できませんでしたが、以下のエントリの言わんとしていることは賛成です。 ただ、一つ違和感がありました。 IT戦記 - マークアップエンジニアはどこへ向かうべきか(を考えてたらカッとなって LL の資料公開)より (X)HTML + CSS しか出来ない人はそれなりに危機感を感じたほうがいいと思った今日の昼ご飯でした。 JavaScript をごりごり書いている私が言うのもなんですけど、そんなこと言っちゃったら、Web 系エンジニア全体が微妙な気が・・・。CSS がバッドノウハウの塊で、極めるほどの本質的な奥行きがないなら、JavaScript もある意味同
2007-07-26 13:15 : JavaScript で波○拳を繰り出すことはできるか?(「お知らせ:「コナミコマンド」を実装しました」を読んで) 「お知らせ:「コナミコマンド」を実装しました」によると、コナ○コマンドはできるらしいです。コードを見てもらうとわかりますが、if 文で普通に分岐しています。これはこれでお手軽な実装ですが、こういうものを見ると一般化してみたくなります。 上記サイトより抜粋: var konmaiFlag = 0; function konmaiCommand(konmaiKey){ if (konmaiKey == 38 & konmaiFlag == 0){//上 konmaiFlag = 1; }else if (konmaiKey == 38 & konmaiFlag == 1){//上 konmaiFlag = 2; }e
2007-07-03 16:25 : Ruby なんて遅くて使えないよねって言ってみる 「Ruby なんて遅くて使えない」という意見が出ます。(昔、Java も似たようなことを言われましたっけ。)これに対して、Ruby 好きな人からは、「大抵の Web アプリではボトルネックは IO になるからアプリの言語は遅くても構わない」「CPU 時間よりも開発者の時間の方が重要」というような反論が展開されます。 Rails 厨にならないためにも、ここは Ruby に批判的な目を持って、この問題を考えてみたいと思います。 ■ 前提 Ruby を採用するとなると Rails 絡みで Web アプリでしょうから、Web アプリについて考えてみます。(でも、DLR とか話に出てくるわけですから、クライアントで使う場合もそろそろ検証した方がいいと思いますけどね。) ■ Ruby は遅
2007-07-20 21:17 : まとめ:「Ruby なんて遅くて使えないよねって言ってみる」 私が書いたにしては妙に反応のあった「Ruby なんて遅くて使えないよねって言ってみる」についてです。 釣りっぽいタイトルと整理されていない内容のおかげで誤読が出るとまずいので、念のため補足します。このエントリの趣旨は、Ruby は遅いけど、Web アプリにおいてはその遅さがシステムのトータルなパフォーマンスに与える影響はそれほど大きくは無いので、Ruby を使っても問題はないということです。ついでに言えば、私は「プロトタイプは Rails、本番はパフォーマンス/スケーラビリティを考慮して Java」とか「Rails を採用すると運用フェーズでコストが増大する」という意見も鵜呑みにはできないと考えています。本当に Ruby/Rails がボトルネックになっているのかと聞いてみたいと
2007-06-13 12:01 : 日本 Ruby 会議 2007 の Dave Thomas 日本 Ruby 会議 2007 の Dave Thomas のスピーチが載っていました。すばらしい内容。こんなことをしゃべれる人間になりたいものです。こんなことなら行けばよかったな~。。。 さて、変なところに反応してみます。 日本 Ruby 会議 2007 の Dave Thomas のスピーチのログより でも、あるプログラマに着目すれば、そのプログラマが時間あたりに書けるコードの行数は、プログラミング言語によらず決まっている、たとえば一日に50,000行なのだそうだ。 先生! 私は一日に 500 行も書けません!! (Kodougu なんて 5000 行くらいで出来ています。) えー、なんと言うかあれです。プログラマの生産性は少なくとも 100 倍は格差がある・
2007-05-08 22:53 : cometd を使ってみた Kodougu で comet を実装する必要があるのですが、自分で実装するのもしんどいので、cometd を使ってみることにしました。 ■ 注意 本記事は、cometd の trunk のヘッド(2007/5/7 時点)を参照しながら書いています。あなたが読んでいる時点で、本記事の情報が古くなっている可能性があります。 ■ 環境 Windows XP SP2 ■ 準備(必要なソフトウェアのインストール) 1. Python 2.4.4(インストーラあり、EasyInstall もインストールすべし) Python Japan User's Group ※ EasyInstall のインストール方法は少し下のほうに記述してあります。 2. Twisted Python 2.4.0(
2007-03-16 14:52 : Ruby の module のテスト 私は Ruby の module のテストは以下のように行っています。 [code: def test_hoge @dummy_object = Object.new @dummy_object.extend(HogeModule) assert ...hogehoge... end] 他にも以下のような方法も考えられます。クラスを生成してからモジュールを拡張する方法です。 [code: def test_hoge @new_class = Class.new @dummy_object = @new_class.allocate @dummy_object.extend(HogeModule) assert ...hogehoge... end] コードとしては以下がわかり
2007-04-13 18:09 : JsUnit(2.2alpha11)を使ってみる 最近、JavaScript のテストを行う方法を探していました。xUnit 系の JsUnit や MochiKit に付属してくるテストフレームワークが有名どころのようです。とりあえずテスト用のメソッド名になじみのある JsUnit を使ってみることにします。 ■ 目的 alert デバッグから開放される! ■ この記事に書かれていること ・ JsUnit の基本的な情報 ・ 複数のテストファイルを同時に実行する方法 ・ testRunner.html で毎回テストファイル名を指定しないでテストを実行する方法 ■ JsUnit の概要 まず、testRunner.html というテストランナーが存在します。html ファイルの script タグ内にテストコードを書い
次のページ
このページを最初にブックマークしてみませんか?
『平凡なエンジニアの独り言』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く