「えっ、そんなはてなとそっくりみたいなことしている会社があるんですか」。Webアプリケーションの開発言語はPerl、Webアプリケーションフレームワークは自社で作り、Webアプリケーションを開発して、CentOSで動作させる――。そんな、はてなの開発とよく似た開発をしている会社が、リクルートメディアコミュニケーションズ(以下RMC)さんです。はてなチーフエンジニアの大西が、自社フレームワーク開発の経緯や、その実際を、RMCの現役エンジニアさんたちに聞きました。ライターの青宮しおりがまとめます。 (※この記事は、リクルートメディアコミュニケーションズ提供によるPR記事です) ――今日はお時間ありがとうございます。はてなでチーフエンジニアをしている大西です。2001年、はてなの創業の年からはてなで働き始めて、はてなの開発を取りまとめてきました。今日は、3人のかたとお話しできるのですね。簡単に自
CSS フレームワークを再認識 CSS フレームワークって、名前だけは知っていましたが、どういうものなのか全く知りませんでした。次の記事を読むまでは。 404 Not Found - ゆーすけべー日記 確かに、これは便利そうですね! さっそく、CSS フレームワークを導入してみます。 BlueTrip を導入 CSS フレームワークはいろいろありますが、今回は先の記事で紹介されていた BlueTrip を導入してみます。 次のページからアーカイブをダウンロードし、解凍して css ファイルと画像を static フォルダに配置。 BlueTrip CSS Framework | A beautiful and full-featured CSS framework HTML の head 部に、下記を追加。 <link rel="stylesheet" href="css/screen.c
新しいことを勉強して、久々に心底感動しました。 Facebookである方が「もうすぐCodeIgniterカンファレンスが開催される」といったつぶやきをしているのを拝見し、この時初めてその存在を知りました。。 PHPのフレームワークで、習得が早く、動作速度が爆速だということだったので、ちょっと触ってみるかとダウンロードしてドキュメントを読みながら Hello World!を作ってみる。すると・・・ こ・・これはすごい・・ なにがすごいって、これまで私は「CakePHP」を超愛用していました。CakePHPは、もちろんそのほとんどがすごくいいのですが、若干だけ不満があったのです。しかし、codeIgniterではCakePHPの好きなところはそのままに、不満が全部吹っ飛んでいたのです。 では、その全貌をご覧入れましょう。 モデル・ビューが不要 CakePHPもcodeIgniterも、MV
■ [scala] foursquareが半年かけてScala+Liftに移行した話 foursquareがLiftに切り替えたという話を聞いてびっくりしましたが、どうやら本当だった模様。 スライド:foursquare.com & scala/lift 以下、内容抜粋 もとはPHP+Apache+MySQLだったが、エンジニアが書いたものじゃなく、これからの拡張のためには書き直すべきだった 静的型・コンパイル言語が好き。Wicketを試したけど、Object型使いすぎなのと関数がfirst-classでないのがちょっと Javaの頃からなるべく関数的に書くようにしてたんで、Scalaは自然 コールバック書くだけでAjaxになるのはいいね! まあせっかくスタートアップなんだし、変わった・面白いものを使ってみたかったってのはある リライトについて (書き換え中は?)PHPとセッションの共有と
ExpressはJavaScript製のオープンソース・ソフトウェア。node.jsはGoogle製のJavaScriptエンジンv8を使って作られたネットワークサーバで、Webサーバや何らかのメッセージを受け取るサービスを作るのに使えるサーバサイドJavaScriptを実現するフレームワークだ。 サンプルアプリケーション node.jsを使ってもWebサーバは作れるが、それはあくまでも作れるというレベルだ。もっと使いやすさを考えるならばWebアプリケーションフレームワークが欲しい。そしてそれをSintra風にまとめたのがExpressだ。 Expressはnode.jsを使いつつ、容易にサーバサイドJavaScriptを使ったWebアプリケーションを開発できるようにしたフレームワークだ。HTTPメソッドとしてはGET/POST/PUT/DELETEが使えるようになっている。テンプレートエ
Web Application を構築するための部品が十分にそろいつつある今日この頃ですから、今となっては Web Application Framework をつかうのではなく、ライブラリの glue 部分を Code Generator で吐いてしまうのも選択肢にはいるのではないでしょうか。 というわけで、サラっとかいてみた。400行程度のジェネレータだけで、本質的なコードはない。実はこういうので十分なのではないだろうか。 (なんとなく Path::AttrRouter をつかって Catalyst 風にしてある) 一般的な Web Application の構成要素はすべてふくんでいるが、出力されるコードはおどろくほどみじかいし、実際これで十分だとおもう。 use strict; use warnings; use utf8; use Getopt::Long; use Pod::U
こないだ言ってたばりったーは実はもう完成してたんだけど、なんかサンプルアプリのつもりが作ってるうちに段々ガチなフレームワークと化してきて、大したアプリじゃないのに中身は意外と複雑でしかもバグだらけ、みたいなことになってしまった。 うーんこれ公開してもいいけど参考になんねーよな、つか飽きたなーとか思って別の遊びを始めたら意外とそっちが楽しくなってきちゃって、こんなものが出来た。 faultier's Asagao at master - GitHub 何これ Plackを使ってSinatraっぽい感じでWebアプリを書ける雰囲気のフレームワークみたいな(弱々しく)。一応README.jaを読むとどんなものかは何となく伝わるんじゃないかしら。ドキュメントとサンプルアプリくらいは作ってみようとは思いますが、何ができるか試してみる際にはソース読んでくだしあ。(追記)簡単なサンプルコードとドキュメン
Sinatraはよくできたウェブアプリ開発用フレームワークだと思う。前にも書いたが、URLから呼び出されるメソッドを決定するところがよくできているし、依存するライブラリもRackだけなので使いやすい。beforeフィルタの存在やstatus, content_typeといったメソッドなど、細かいところまで開発がやりやすいように作られているように感じる。 しかし、SinatraはRubyで書かれているので、他の言語では使えない。趣味で書いているならRubyを使えばいい話なのだが、仕事だとそうもいかないこともあるだろう。 そこで、Sinatraに似た感じで使えそうなフレームワークを探してみた。 ※コメント欄などで教えていただいたものをいくつか追加しました。感謝! sinatra-on-perl perl用 http://code.google.com/p/sinatra/ 名前の通り、かなりS
サキとは彼女の自宅近く、湘南台駅前のスーパーマーケットで待ち合わせをした。彼女は自転車で後から追いつくと言い、僕は大きなコインパーキングへ車を停めた。煙草を一本吸ってからスーパーマーケットへ向かうと、ひっきりなしに主婦的な女性かおばあちゃんが入り口を出たり入ったりしていた。時刻は午後5時になる。時計から目を上げると、待たせちゃったわねと大して悪びれてない様子でサキが手ぶらでやってきた。 お礼に料理を作るとはいえ、サキの家には食材が十分足りていないらしく、こうしてスーパーマーケットに寄ることになった。サキは野菜コーナーから精肉コーナーまで、まるで優秀なカーナビに導かれるように無駄なく点検していった。欲しい食材があると、2秒間程度それらを凝視し、一度手に取ったじゃがいもやら豚肉やらを迷うことなく僕が持っているカゴに放り込んだ。最後にアルコール飲料が冷やされている棚の前へ行くと、私が飲むからとチ
Java仮想マシン上で動くオブジェクト指向+関数型言語として、Scala(スカラ)が最近注目を集めています。Scalaで構築されたWebアプリケーションフレームワークはいくつかありますが、 本連載ではその中で比較的歴史のある(といっても2年程度ですが) フレームワークである、Lift(リフト)を紹介したいと思います。 はじめに Java仮想マシン(以下JVM)上で動くオブジェクト指向+関数型言語として、Scala(スカラ)が最近注目を集めています。 Scalaで構築されたWebアプリケーションフレームワークはいくつかありますが、 本稿ではその中で比較的歴史のある(といっても2年程度ですが) フレームワークである、Lift(リフト)を紹介したいと思います。 対象読者 Javaは知っているが、Scalaも学んでみたいと思っている方 ScalaでのWebアプリケーション開発に興味がある方 必要な
Twitterが分散フレームワーク「Gizzard」公開! Scalaで書かれたShardingを実現するミドルウェア Twitterは独自に開発した分散フレームワークの「Gizzard」をオープンソースとして公開しました。GizzardはScalaで書かれたJavaVM上で動作するミドルウェアで、PHPやRubyといったWebアプリケーションからの要求を自動的にデータベースに分散することで、大規模で可用性の高い分散データベースを容易に実現するためのものです。 Gizzard:フォルトトレラントな分散データベースを実現 The Twitter Engineering Blog: Introducing Gizzard, a framework for creating distributed datastores Twitterのブログにポストされた「Introducing Gizzard
WtというC++用のWebツールキットで遊んでみます。詳しくはWtのページを参照して頂きたいのですが、WtというのはGPLで配布されているC++でWebアプリを作るためのライブラリとアプリケーションサーバで構成されています。Webアプリのための・・・というと、JSFやSpring、Strutsなどを思い浮かべますが、これらPage-basedなFrameworkとは異なり、WtはWidget-centricなライブラリであるとWtのページでは説明されています。 これからいじりますので、まだ理解が間違っているかも知れませんが、様々な技術や手法が入りまじって複雑化してきつつあるWebアプリ開発に対して、既存のアプリケーションを開発してきた開発者が従来の手法を駆使して取り組むことを可能とするツールキット、といった感じではないでしょうか。 (ちょっと説明がヘタですが、徐々にわかりやすく説明していき
はじめに 今やWebのフレームワークと言えば、そのほとんどが「RoRタイプ」です。RoR(Ruby on Rails)がWebの開発に与えた影響は非常に大きく、その後生まれたフレームワークの多くがその影響を受けています。 しかし、Javaの世界に関しては、RoRはなぜか素通りしてしまいました。既にStrutsというデファクトスタンダードがあったために新しいMVCフレームワークが割り込む余地があまりなかったのか、あるいはLL(ライトウェイト)言語でないとRoRなスタイルは作りにくかったのか。ともあれ、その後、長い間、Javaでは「いわゆるRoRタイプ」と言えるフレームワークは登場しませんでした。 その流れを変えたのは、Groovyです。Groovyの登場により、JavaでもLL言語のような小回りの聞くコーディングが可能となりました。そのおかげで、ようやくJavaの世界にも遅まきながら新しい世
Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at
JavaOneでGoogleの新しいWebフレームワークが発表されたみたいですね。 その名もSitebricks。GWTベースのようです。 まずは見てみてください。JavaOne資料から抜粋。 POJOコード。 class MyPage { @Property String meaning = “17”; } テンプレートはこちら。 <body> The meaning of life is: ${meaning} </body> PageとURLをマッピングして、そのプロパティがJSPのELでマッピングといったところ。 とまあここまではまあ普通。 ところが、例えば以下のようなtypoをすると、コンパイルエラーになります。 どうやらコンパイル時にチェックするみたいですね。 型の不一致とかもチェックするみたい。 class MyPage { //typoしてるよ! @Property Str
転載元 http://funk.exblog.jp/m2005-02-01#2082044 vendor/activerecord/README Active Recordは、ビジネスオブジェクトとデータベーステーブルとを接続し、ロジックとデータをひとまとまりとして表現する永続的なドメインモデル(振る舞いとデータをカプセル化した、ドメインのオブジェクトモデル)を生成する。これは、Martin Fowlerによって記述された同名のO/Rマッピング(ORM)パターンの実装である: 「データベースのテーブルやビューの列をラップし、データベースアクセスをカプセル化し、ドメインロジックを追加するオブジェクト」 アソシエーション(関連付け)とインヘリタンス(継承)の欠如という大きな問題を取り除いたことが、Active Recordsのオリジナルパターンへの大きな貢献である。Active Recordは
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く