タグ

ブックマーク / www.publickey1.jp (15)

  • Twitterが、Ruby on RailsからJavaVMへ移行する理由

    オライリーが主催するイベント「Open Source Convention 2011」が7月25日から米国ポートランドで開催されました。 その中で、TwitterがなぜRuby on RailsベースのシステムをJavaVMベースへ移行しようとしているのかを解説したセッション「Twitter: From Ruby on Rails to the JVM」が行われ、ビデオが公開されています。 13分程度の短いセッションのポイントをまとめて紹介します。 世界最大のRuby on RailsによるWebサイトをJavaVMへ移行 Twitterのアプリケーションサービスグループ、Raffi Krikorian氏 Twitterは世界中からのツイートをリアルタイムで扱っている。リアルタイム処理が、ツイッターにおけるもっとも難しい処理だ。 Twitterは、おそらく世界最大のRuby on Rail

    Twitterが、Ruby on RailsからJavaVMへ移行する理由
  • PaaS基盤「Cloud Foundry」のアーキテクチャは、どうなっている?

    先週、Cloud Foundryのソースコードを読もうという「第1回 CloudFoundry輪読会」が開催され、参加してきました。 Cloud FoundryはVMwareからリリースされたオープンソースのPaaS基板ソフトウェア(および同名のVMwareによるクラウドサービス)で、IaaSに依存せず、VMwareのvSphereやAmazonクラウドなど複数のクラウドに対応するのが特徴です。また、JavaPythonなど複数の言語、MySQLやPostgreSQLなど複数のデータベースをサポートしており、囲い込みをしない「Open PaaS」を指向しています。 同種のPaaS基盤はRed HatからOpenShiftが登場してきており、IaaS非依存、複数言語対応、複数データベース対応のオープンなPaaSという新しいトレンドを作りつつあります。 この新しいPaaS基盤がどのような仕組

    PaaS基盤「Cloud Foundry」のアーキテクチャは、どうなっている?
  • 「絶対落ちないシステムを作れ」という要件に、開発者たちはどう対応したのか。東証arrowheadの当事者が語る

    「絶対落ちないシステムを作れ」という要件に、開発者たちはどう対応したのか。東証arrowheadの当事者が語る 「素人的に言えば、絶対落ちないシステムを作れ、というのがユーザーから見た要求条件」と発言したのは、東京証券取引所の株式売買システム「arrowhead」開発のプロジェクトマネージャ 宇治浩明氏。 東京証券取引所は2005年にシステム障害を起こし、取引が一時全面停止するという事態を引き起こしました。そのため2010年に稼働を開始した新システム「arrowhead」の開発では、高性能と高可用性という高い品質を実現することが絶対の目標となっていました。 東京証券取引所と、arrowheadの開発に当たった富士通。両社はどのように開発プロジェクトを通して高いソフトウェア品質を実現したのでしょうか? 9月9日、早稲田大学 西早稲田キャンパスで行われた日科学技術連盟主催「ソフトウェア品質シ

    「絶対落ちないシステムを作れ」という要件に、開発者たちはどう対応したのか。東証arrowheadの当事者が語る
  • グーグルが行っているビルドとテストの種類。続々、グーグルはあれほど多くのソフトウェアのテストをどのように行っているのか? - Publickey

    グーグルが行っているビルドとテストの種類。続々、グーグルはあれほど多くのソフトウェアのテストをどのように行っているのか? グーグルでTest Engineering Directorを務めるJames A Whittaker氏が、ブログ「Google Testing Blog」に書いているグーグル社内のソフトウェア品質に関するノウハウ。最近の記事「How Google Tests Software - Part Four」「How Google Tests Software - Part Five」では、ビルドの種類とテストの種類について紹介しています。 One of the key ways Google achieves good results with fewer testers than many companies is that we rarely attempt to sh

    グーグルが行っているビルドとテストの種類。続々、グーグルはあれほど多くのソフトウェアのテストをどのように行っているのか? - Publickey
  • グーグルはあれほど多くのソフトウェアのテストをどのように行っているのか?

    グーグルは検索エンジンだけではなく、メールソフトのGmail、オフィス系ソフトのGoogle Apps、WebブラウザのChromeやOSのAndroidなど、さまざまな種類と規模のソフトウェアを開発しています。 それらはどのようにテストされ品質管理されているのでしょうか? グーグルのブログGoogle Testing Blogに、Test Engineering DirectorのJames A Whittaker氏による「How Google Tests Software」がポストされ、その概要を伝えています。 3つのチームからなるEngineering Productivity Whittaker氏はまず、グーグルにはテストの専門部隊はいないのだ、という組織構造の説明から始めます。 There isn't an actual testing organization at Googl

    グーグルはあれほど多くのソフトウェアのテストをどのように行っているのか?
  • JavaVM対応のWebフレームワークを比較する

    SpringやStrutsやGoogle Web Toolkitなど、たくさんあるJava VM対応のWebフレームワーク。どれがどのような特徴を持ち、何を選べばいいのでしょう? 11月15日から行われたJava開発者が集うイベント「Devoxx 2010」。このイベントで行われたMatt Raible氏によるセッション「Comparing JVM Web Frameworks」(JVM Webフレームワークの比較)のプレゼンテーションが、同氏のブログにポストされたエントリ「My Comparing JVM Web Frameworks Presentation from Devoxx 2010」で公開されています。 その内容は、開発者の方々に非常に参考になるのではないかと思うので、全56枚のプレゼンテーションの中からポイントとなる部分を紹介します。 評価優秀とされたのはSpring、GW

    JavaVM対応のWebフレームワークを比較する
  • Google App EngineがSQLデータベースをサポートへ。エンタープライズ向けサービスを拡充

    Google App EngineがSQLデータベースをサポートへ。エンタープライズ向けサービスを拡充 グーグルは5月19日(現地時間)に米サンフランシスコで開催されたイベント「Google I/O」の基調講演で、エンタープライズ向けにフォーカスした「Google App Engine for Business」を発表しました。その内容を紹介しましょう(基調講演の内容は、記事「[速報]Google I/Oで発表された4つのポイント:VP8オープンソース化/Chrome Web Store/VMwareとの協業/Google App Engine for Business」をご覧ください)。 基調講演で最後の発表者として壇上に立ったのは、グーグルのKevin Gibbs氏。App Engineがエンタープライズに受け入れられるようにするためには、いくつかのバリアを乗り越えなければならないと語

    Google App EngineがSQLデータベースをサポートへ。エンタープライズ向けサービスを拡充
  • Google App Engineに最適化したJavaフレームワーク「Slim3」登場。作者のひがやすをさんにインタビュー

    Google App Engineに最適化したJavaフレームワーク「Slim3」登場。作者のひがやすをさんにインタビュー Slim3は、Google App Engineで複数行のトランザクション操作を可能にし、標準で用意されているAPIよりも高速な動作を実現するなどの特徴があります。Slim3を開発したのは、オープンソースのJavaフレームワークとして知られるSeasarなどを開発してきたひがやすを氏です。 正式リリースにあたり、Slim3の特徴、開発に苦労した点、今後の展開などについて、ひが氏自身に説明してもらうべくインタビューをしました(インタビューはメールで質問し、返答いただくという方法で行いました)。 Slim3の設計哲学は、“Less is more”を実現すること ―― Slim3とは何でしょうか? Javaにそれほど詳しくないというプログラマにも説明するとしたらどう説明す

    Google App Engineに最適化したJavaフレームワーク「Slim3」登場。作者のひがやすをさんにインタビュー
  • Scala言語を学ぶやさしいツール「Kojo」が無償公開

    オブジェクト指向言語と関数型言語の特徴を備えたプログラミング言語「Scala」は、JavaVM上で高速に動作する生産性の高い言語として最近注目されている言語です。 Scalaは静的型付け言語としての高速性を実現しつつ、非常に柔軟なプログラミングが可能で、オブジェクト指向言語としてコードが記述できると同時に関数型言語の機能も発揮できるとされており、これらが高い生産性につながるといわれています。 また、関数型言語は並列処理を記述するのに適したプログラミング言語としても注目されています。 そのScalaを、子ども向けにやさしくプログラミングを学ぶための言語として採用したオープンソースの統合学習環境「Kojo」が、無償公開されています。 タートルグラフィック機能を搭載 Kojoは、いわゆるタートルグラフィックス機能を標準で備えたScala言語のサブセットで、タートルに命令を与えると画面上にグラフィ

    Scala言語を学ぶやさしいツール「Kojo」が無償公開
  • NoSQL登場の背景、CAP定理、データモデルの分類

    その例としてBeck氏自身が過去に取り組んできた生命保険会社のアプリケーションを例に挙げます。そのアプリケーションでは毎日のようにスキーマが変化するため、SQLORM(Object-Relational Mapping)では対応できず、オブジェクトデータベースのGemstoneを利用することで対応できたと述べています。 こうしたSQLだけでは満たせないさまざまな要件、上記の図にあるようにスキーマの可塑性、スケーラブルなデータ読み込み、書き込み、処理の柔軟性などを満たすために、リレーショナルデータベース以外のNoSQLな製品が開発された。これがNoSQLの登場の背景にあるとBeck氏は解説します。一方で、こうしたさまざまなNoSQLを、NoSQLという言葉で表すのは適当ではないという憂慮も示しています。 Here is where the futility of defining NoSQ

    NoSQL登場の背景、CAP定理、データモデルの分類
  • テスト駆動開発の効果はどのくらいある?

    ソフトウェアの開発を行うときに、まずテストケースを先に作ってから機能を作り込む「テスト駆動開発」(Test-Driven Development:TDD)。これにより、ソフトウェアの開発工数や品質にはどの程度の変化があるのでしょうか。 TDD(テスト駆動開発)の適用評価を紹介した研究論文 - エリクソンはじめ3社:森崎修司の「どうやってはかるの?」:ITmedia オルタナティブ・ブログ この疑問について調査した論文を、奈良先端科学技術大学院大学 助教の森崎修司氏が3月10日のブログ「国立大学法人奈良先端科学技術大学院大学 助教」のエントリ「TDD(テスト駆動開発)の適用評価を紹介した研究論文 - エリクソンはじめ3社」で紹介しています。 開発時間はやや増えたがコードの品質は上がった 論文全文は有料なので読めないものの、森崎氏のブログによると次の知見が得られたとのことです。まず、ソフトウェ

    テスト駆動開発の効果はどのくらいある?
  • コンピュータサイエンス史上最大の課題「並列処理による性能向上」~情報処理学会創立50周年記念全国大会の招待講演

    「いま、並列処理の壁というコンピュータサイエンス史上最大の課題に直面しています。しかしこれはチャンスでもあります。新しい時代を切り開いていきましょう」。IBM名誉フェローのFran Allen氏は、昨日3月10日に行われた日の情報処理学会創立50周年記念全国大会の招待講演の演壇からこんなメッセージを聴衆に投げかけました。 Fran Allen氏は、コンパイラやプログラミング言語が専門で、女性で初めてチューリング賞を受賞した人。今回の招待講演のためにわざわざ来日したと紹介されました。 講演のタイトルは「The Challenge of the Multicores」。ここからは、Allen氏の講演の内容を紹介しましょう。 (この講演は英語で行われたものです。内容にはできるだけ正確を期したつもりですが、理解不足のところや聞き取れなかったところもありました。もし誤解や不正確なところがありました

    コンピュータサイエンス史上最大の課題「並列処理による性能向上」~情報処理学会創立50周年記念全国大会の招待講演
  • 「有能な人がコードを書くべき」「意志決定はできるだけ先延ばし」「契約を変えるのは難しい」アジャイルの専門家の答え - Publickey

    での開発プロジェクトのほとんどではウォーターフォール型の開発手法が採用されており、アジャイルソフトウェア開発手法の採用はまだ数%程度といわれています。12月8日に都内で開催されたイベント「Agile Conference tokyo 2009」では、米国でアジャイルソフトウェア開発のコンサルタントなどを行っているThoughtWorksのマネージングディレクター、Xiao Guo氏が会場からの質問に答えるトークセッションが行われました。 このセッションでは、多くのエンジニアが現場でアジャイル開発ソフトウェア手法の導入や運用で悩んでいること、疑問に思うことを率直にGuo氏に投げかけています。セッションでやり取りされた質問と回答の一部を紹介しましょう。 意志決定を先延ばしすること 質問 日SIerに務めています。日では、設計書をエクセルを使って画面や処理などの書類を作成しています。海

    「有能な人がコードを書くべき」「意志決定はできるだけ先延ばし」「契約を変えるのは難しい」アジャイルの専門家の答え - Publickey
  • データベースは目的別に使い分けるべし

    元マイクロソフトのSQL Server開発チームの一員であり、その後マイクロソフトのデータセンターのアーキテクトとして活躍。昨年アマゾンに移籍して、現在はAmazon Web Servicesの上級エンジニアであるJames Hamilton氏が、自身のブログの「One Size Does Not Fit All」というエントリで、リレーショナルデータベースだけにとどまらない幅広いデータベースの種類を4つに分類して紹介しています。 4つの種類とは「機能優先」「スケーラビリティ優先」「シンプル」「目的別」です。 Hamilton氏は、アマゾンがAmazonクラウドでMySQLのサービスを開始したところ、以前から提供していたキーバリュー型データストアの「SimpleDB」は終了するのではないかと心配する声があったことを挙げ、 I can understand why some might co

    データベースは目的別に使い分けるべし
  • 速報:グーグルが新言語「Noop」を公開。JavaVMで動作

    グーグルが新プログラミング言語「Noop」を公開しました。Noopは新旧のプログラミング言語からいいとこ取りをした、JavaVMで動作するプログラミング言語と説明されています。 Noopは、サン・マイクロシステムズで開催中の「JVM Language Summit」で、グーグルの2人のエンジニア、Alex Eagle氏とJérémie Lenfant-Engelmann氏によって発表されました。 すでにJVM Language Summitでの発表資料がPDFとして公開されており、その資料には、Noopのミッションが次のように説明されています。 Noop's mission Help teams develop software that is easier to understand and maintain. Noopのミッション 分かりやすくメンテナンスしやすいソフトウェアのチーム開

    速報:グーグルが新言語「Noop」を公開。JavaVMで動作
  • 1