Scaffoldで生成したアプリケーションは出発点にすぎず、自立した完成品のアプリケーションではありません。このため、開発者がプロジェクトに適した形になるように手を加える必要があります。しかし、毎回似たような修正を行うのであれば、生成した時点でその修正が反映されている方が、より生産性も向上します。そこで本稿では、Scaffoldをカスタマイズする方法を紹介します。
2007-07-03 16:25 : Ruby なんて遅くて使えないよねって言ってみる 「Ruby なんて遅くて使えない」という意見が出ます。(昔、Java も似たようなことを言われましたっけ。)これに対して、Ruby 好きな人からは、「大抵の Web アプリではボトルネックは IO になるからアプリの言語は遅くても構わない」「CPU 時間よりも開発者の時間の方が重要」というような反論が展開されます。 Rails 厨にならないためにも、ここは Ruby に批判的な目を持って、この問題を考えてみたいと思います。 ■ 前提 Ruby を採用するとなると Rails 絡みで Web アプリでしょうから、Web アプリについて考えてみます。(でも、DLR とか話に出てくるわけですから、クライアントで使う場合もそろそろ検証した方がいいと思いますけどね。) ■ Ruby は遅
W-ZERO3にPerl開発環境をインストール(覚え書き) Perlの勉強のため、W-ZERO3にPerlCEをインストールしてみました。以下はそのときの覚え書きです。 知らない人は読んでもなにがなんだかさっぱりとは思いますが、備忘録なのでご容赦を。 Perl for WinCEから、perl-wince-arm-pocket-wce300.zipと、celib-3.11-dll-src.tar.gzをダウンロード。 PerlIDEをこのページからダウンロード。ファイル名はperlide-wince-arm-pocket-wce300.tar.gz。 celibを解凍し、wince-arm-pocket-wce300-releaseフォルダのcelib.dllを、W-ZERO3の\windowsフォルダにコピー。 PerlCEを解凍し、libフォルダのConfig.pm内のパスを書き換える
9割ぐらいはハッシュ何がハッシュなのかjavascriptで存在するほとんどのオブジェクトの実体はハッシュだよ。 var arr = [0,1,2,3]; とかをみると配列(人によってはリスト)に見えると思う。でも実際は違うんだ。 これは var has = {0:0,1:1,2:2,3:3}; と基本的には等価なんだ。ただちょっと束縛されているメソッド(インターフェイス)が違うだけ。 ためしに arr[4] = 4; arr['x'] = 'string'; arr[-1] = -1; としてみよう。 Firebugで確認してみると[0, 1, 2, undefined, 4]というような値がかえってくるよ。 でもarr[-1]やarr['x']の値は保存されてないのかな?そんなことはないちゃんとアクセスできるんだ。 それどころかarr.xで'string'がかえってくるんだ。 別の例を
perl-5.8.8-22.fc8 にて解消 2007-07-25 15:20 EST rnorwood 氏が改訂版をアナウンスしました This should be fixed in the latest perl in F8/rawhide: perl-5.8.8-22.fc8 or later だそうです。 過去の要約 ¤http://blog.yappo.jp/yappo/archives/000515.html で挙がっていた、Fedora の Perl で overload されたオブジェクトの生成が遅い件ですが、事態はもっと深刻でした。 overload されたオブジェクトの生成の際に、 毎回スカラメモリのフルスキャン が 発生する模様です。このベンチマークのように n個の overload されたオブジェクトを メモリに格納する場合、 O(n^2) の挙動に陥ります。 ¤修
試しにnsIHttpChannelなんかを触っていて、レスポンスをASCII以外の文字列として取得するためにいちいちnsIConverterInputStreamで変換しなくちゃならなくて面倒だなーとか思っていたのですが、、XMLHttpRequestでクロスドメイン関係なしにアクセスできるのを今知ったので、これからはXMLHttpRequestを使おうと思います。 ちなみに、nsIHttpChannelを使っていたときは、下記のような感じ。 var url = 'http://www.yahoo.co.jp'; var ioService = Components.classes["@mozilla.org/network/io-service;1"] .getService(Components.interfaces.nsIIOService); var channel = ioSer
運営の大半を民間企業が担当する、日本初の「民営刑務所」が山口県美祢市でオープンした。居室の窓には鉄格子の代わりに強化ガラスを採用したり、受刑者の居場所を探知するためのICタグを利用するなど、新しい試みに注目が集まっている。新型刑務所なだけあって、作業内容も斬新だ。ベンチャー企業が受刑者に、ソフトウェアの開発をさせるというのだ。 「セコム」などがつくる会社が建設から運営までを担う 日本で初めて「民間資金を活用した社会資本整備(PFI)方式」を取り入れた刑務所「美祢社会復帰促進センター」が2007年4月1日、開所した。警備会社「セコム」などの企業グループがつくる特別目的会社「社会復帰サポート美祢」が建設から運営までを担う、いわば「民営刑務所」だ。刑務所の新設は1983年の北海道・月形刑務所以来24年ぶりで、初犯の男女各500人、計1,000人を収容する。 この刑務所、運営形式以外にも、さまざま
恥ずかしながらいままでLWP::UserAgentでリクエストを送るときにどう書くのかがいまいち分からず、ずっと毎回検索していました.... 今回検索して LWP::UserAgentでBasic認証サイトにアクセスする方法|blog|たたみラボ を読んで、そのあと HTTP::Request::Common - Construct common HTTP::Request objects - search.cpan.org と見比べて、ようやくいままでの謎が解けました。 use HTTP::Request::Common するとGETやPOST などの名前で HTTP::Request のインスタンスを返す関数がエクスポートされるので、 $ua->request(GET 'http://labs.gmo.jp/blog/ku/'); と書いたりできるようになるのだと知りました.....
動的言語やrails系に走る理由 つい最近、弊社の役員クラスがこんなことを私に聞いてきた。それを思い出した。 僕は基本的に素人でJavaなんて全然分からないんだけど、とりあえずEclipseを入れてみてプログラムを動かしてみた。ここまではいいんだけど、DBに接続したりサーバーに接続したりすると、とたんにあーだこーだとめんどくなってしまって、挫折してしまった。Flexとかもやってみたけど、サーバーとつなぐ所で挫折した。 で、最近Ruby on Railsが簡単に出来るって言うのでやってみたんだ。そしたら、本当に1日かそこらでWebアプリケーションが出来てしまった。フルスタックとはこういうことかと。あんまりJavaと違うんで驚いた。Javaは基本的に生産性が高いとは言えないし、オブジェクト指向に長けている設計が出来ていないと変更に弱くトラブルになりやすいし、そもそもそんなJavaのスペシャリス
楽天株式会社(本社:東京都港区、代表取締役会長兼社長:三木谷 浩史、以下楽天)は、2007年6月1日付でまつもとゆきひろ氏が当社楽天技術研究所フェローに就任することをお知らせいたします。 まつもと氏は、プログラミング言語の技術動向やオープンソースソフトウェアの開発・活用に関する豊富な知識と経験を有しており、オブジェクト指向プログラミング言語「Ruby」(※1)の開発者として知られ、株式会社ネットワーク応用通信研究所のフェローも務めています。 まつもと氏が開発したプログラミング言語「Ruby」および、RubyをベースとしたWebアプリケーションフレームワーク「Ruby on Rails」(※2)は、サービス開発における高い生産性と、Webアプリケーションに対する親和性を持つことで知られています。楽天も「Ruby」によるサービスを構築するRubyプロジェクトチームを立ち上げ、開発手法の標準化や
2007年6月7日 はてなブックマークのコメントをうけて、「常にJSONP、JSON、JavaScriptに機密事項を含めないように」という主張を改め、「クロスドメインアクセスの対策をとっていない状態ではJSONP、JSON、JavaScriptに機密事項を含めないように」という主張に関して記述しました。 こんにちは、SEの進地です。 今回から週単位でWebアプリケーションのセキュリティに関するエントリーを書いていこうと思います。 僕自身、日々勉強して精進というところですので、もし何らかの誤りがあれば是非ご指摘ください。 つっこみ大歓迎です。 今回取り上げるのはWeb 2.0なアプリケーションでセキュリティ面で気をつけるべきことの一つ、機密情報にJSONPでアクセスするなです。 JSON(JavaScript Object Notation)はJavaScript(ECMAScript)の
不動産情報サイト「HOME'S」などを運営するネクストは2007年夏をメドに,PHP用の汎用フレームワーク「Maple」を使って,Webサイトの中核システムの一つを全面的に改修する。フレームワークを導入することでソースコードのスパゲティ状態を解消し,今後,機能を拡張する際の開発効率や品質を高める考え。 同社は2001年ごろからPHPを社内標準の開発言語として,HOME'Sなどのシステムを構築してきた。機能の拡張を繰り返すうちスパゲティ化が進み,現在はある機能を改修すると別の機能が正常に動作しなくなるという事態が頻発しているという。そこで特に問題が大きい,不動産会社向けの物件情報登録システム「HOME'S Manager」に,汎用フレームワークを導入することにした。 フレームワークには,オープンソースのMapleを採用した。「他のPHPフレームワークと比較して,構造が単純で理解しやすい」(H
2007年05月21日04:00 カテゴリLightweight Languages そろそろPHPに関して一言いっとくか こんな記事まで出ていることだし。 [ThinkIT] 第1回:今だからこその「PHPのすすめ」 (1/3) プログラムをたしなまない方にご注意: こちらのPHPとはちょっと違います:-p finalventの日記 - そろそろPHPに関してもう一言いっとくか 各論 使うは天国、インストールは地獄 PHPが一旦インストールされたら、それを使うのは確かに簡単だ。普通にHTMLを書く感覚で <p>以下の環境変数が設定されています:</p> <pre> <?php while(list($k, $v) = each($_SERVER)){ echo "$k=$v\n"; } ?> </pre> とか書けばいい。しかし、PHPでいろいろやるためには、実際にはさまざまなライブラリ
IE、 Firefox、 Safari ともに ECMAScript の仕様を満たしていません。IE6 は ECMAScript の仕様に対して上位互換だと言えるでしょうから、実質的に問題を抱えているのは Firefox のみ、ということになるのでしょうか。JSON を使う際には、注意が必要、と。 Firefox に関して言えば、 (Control Character があるとエラーになるのではなく読み落とすという性質からして) 仕様ではなくバグだと考えるのが妥当なのかなと思いました。 参考: テストコード 10:28 追記: NUL 文字について表に含めるのを忘れていたので追加しました 10:48 追記: Safari を追加 2009/02/17 追記: Firefox のバグは 2008 年 8 月に修正されたようです (ChangeLog の3.147)
5/11の日記XSS対策:JavaScriptなどのエスケープ - ockeghem(徳丸浩)の日記に対する金床さんのコメントに触発されて、JavaScriptのエスケープについて検討してみよう。ただし、現実のアプリケーション開発においては、私はJavaScriptの動的生成を推奨していないが、これはエスケープ処理をどのように考えるかと言うレッスンのつもりで検討することにする。 金床さんのコメントで紹介されたリンクには、以下のようなガイドライン案が提案されている。 JavaScriptの文字列でのエスケープ手順としては、以下が今のところ正解っぽい感じです。 1. 「\」を「\\」に置換する 2. 「"」を「\"」に置換する 3. 「'」を「\'」に置換する 4. 「/」を「\/」に置換する 5. 「<」を「\x3c」に置換する 6. 「>」を「\x3e」に置換する 7. 「0x0D(CR)
こんにちは。親知らずを抜いて離乳食三昧のyukiです。GWの暴飲暴食から脱し、ダイエットするには好都合ですね。すいません。負け惜しみです。 さて、今回は「PHPのちょっとしたコツ」の続きネタで、PHP最適化Tipsまとめサイトの紹介です。 これらは既に有名なサイトで紹介されていたり、常識の範囲かもしれませんが、ひとつでも有用に感じていただければ幸いです。 そして英語が極端に苦手なため、意訳突っ込み等あれば宜しくお願い致します。 PHPの最適化 12 PHP Optimization tips (元ネタはこちらでしょうか? http://www.ilia.ws/files/zend_performance.pdf) staticが使えるなら、staticを使う。速度は4倍になる。 __get, __set, __autoload は避ける。 require_once() はコストがかか
Webサイトの更新情報を配信するためのRSSという技術は広く利用されるようになり、さまざまなWebサイトやBlogなどでRSSが提供されています。しかし、沢山のRSSを購読していくと、いろいろな不満が見つかるのではないでしょうか? 例えば、 特定の記事についてだけ、更新を教えてほしい Blog本文だけでなく、コメントも配信してほしい どうしてこのWebサイトはRSSを配信してくれないの? などの不満があるのではないかと思います。こういった不満を解決するためのツールやサービスとしてはPlaggerやYahoo! Pipesなどが有名ですが、ここではもう1つのツール「Pragger」を紹介したいと思います。 PraggerはPlaggerにインスパイアされて開発されたRubyベースのツールで、公式Webサイトはこちらになります。Plaggerと同様「プラグイン」を組み合せることで、R
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く