タグ

ブックマーク / thinkit.co.jp (9)

  • 大量データのバッチ処理を高速化するHadoop

    Hadoopというソフトウエアが、いま注目を集めています。米Googleが発表した論文のアイディアをオープンソース・モデルで実装したソフトウエアです。膨大な量のデータを処理する必要に迫られた企業や研究組織が、続々とHadoopを実際に活用しはじめています。 私たちの研究グループでは、Wikipediaなどの巨大なテキスト・データを解析するために、2007年頃からHadoopを利用しはじめましたが、日国内でも2009年あたりからHadoopを使った事例を多く見聞きするようになりました。国内で初めてのHadoop関連イベントが2009年11月に東京で開催され、オライリー・ジャパンから2010年1月にHadoopの邦訳が出版されるなど、Hadoopが多くの開発者の注目を浴びています。 しかしながら、「Hadoopは何となくすごそうなんだけど、複雑だし、どんなソフトなのかいまいち分からないんだ

  • [Think IT] 第4回:JavaEEでRailsを動かす! (1/4)

    「第3回:RubyからJavaクラスを呼び出してみよう!」では、JRubyを用いてRubyスクリプトからJavaのクラスを呼び出しました。今回はJavaEEアプリケーションサーバ上でRuby on Rails(以下、RoR)を動作させ、Ruby/RoRの生産性とJavaの性能・安定性の両立を狙います。 JavaEEアプリケーションサーバ上でRoRを動作させるためにJRuby関連ソフトウェアである「GoldSpike」と「ActiveRecord-JDBC」を用います。図1はこれらのライブラリを利用した場合の簡単な模式図です(JRubyやActiveRecord-JDBCをWARファイルに含めずに動作させることもできます)。

  • The Social Side of Services/サービスの社会的な側面

  • [ThinkIT] 第4回:JavaScriptライブラリの作成 (1/2)

    これまで、既存のJavaScriptライブラリの構造やその手法を解析してきました。ここでは、実際にオリジナルのWebサービスJavaScriptライブラリを構築してみます。Webサービスと言っても高度な機能ではなく、リスト5に示すPerlで単に四則演算を行って結果を返すだけのCGIです。 リスト5:calc.cgiサンプルCGI(Webサービス側) #!/usr/bin/perl -T use strict; use CGI; use JSON; # クエリ変数qを取り出す my $cgi = new CGI(); my $q = $cgi->param('q'); # 計算処理を行う my $out = {}; if ( $q =~ /^([\d\-\+\*\/\.\(\)\s]+)$/s ) { my $e = $1; local $@; $out->{result} = eval(

  • [ThinkIT] 第4回:DIコンテナとの比較 (1/4)

    今回は、ここ数年非常に注目されている技術であるDI(Dependency Injection)コンテナをテーマに取り上げます。 DIコンテナはアプリケーションのオブジェクトを疎結合にし、柔軟性を与えるものです。その結果得られる代表的なメリットとして表1のようなものがあげられます。いずれも品質向上に寄与する重要な効果です。 モックオブジェクトによるテスタビリティ向上 単体テストにモックオブジェクトを導入でき、テスタビリティを向上させられる。 トランザクション指定の簡易化 トランザクションを簡易に指定できるようになり、障害時処理の高品質化が実現される。 しかし、そもそもRailsにはDIコンテナという考え方が取り入れられていません。そこで表1にあげたDIのメリットに関するRailsでの対応・非対応の状況を比較するという形で進めていきます。 なお、DIコンテナから得られるメリットはDIコンテナ上

  • [ThinkIT] 第7回:DOMの拡張(後編) (1/2)

    前回は$関数や$$関数について解説しました。$$関数や$関数を用いてHTML要素(以下、単に要素)を取得すると、新しいメソッドが追加されコードがシンプルになります。前回述べたように、$関数や$$関数は要素を取得した後のことまでしっかりと考えてくれるのです。

  • [ThinkIT] 第5回:複数人での開発におけるテストの勘所 (1/3)

    これまで解説してきたように、ウノウでは各々の開発者の開発環境で慎重に組み上げられたソースコードをSubversionで管理された統一の開発環境にそれぞれコミットし、リリースに向けて足並みを揃えながらシステムテストを実施します。 ウノウではテスト専門の担当者が在籍しており、開発者とは違った視点から成果物のチェックを行う体制を整えています。今回はその実践事例を紹介しながら、複数人での開発におけるテストの勘所について解説していきます。 テスト工程はプロダクトの品質を確保するために欠かせないフローの1つです。組み上げられたばかりのソースコードは、まだ完成度が客観的に保証されていない状態であり、開発者のスキルに対する信頼によってのみ「完成した」と推測されるものでしかありません。極端にいえば、いざ蓋を開けてみたら動かなかったということもあり得るのです。 自社プロダクトの開発がほとんどであれば、問題が発

  • [ThinkIT] 第3回:テキストマイニング技術の全貌 (1/3)

    第3回の今回は、これまでとは話の内容を転換して、テキストマイニングの技術的な内容について言及していきたい。テキストマイニングを支える技術には、「自然言語処理技術」と「データマイニング技術」がある。 実は自然文のテキストデータは、そのままの状態では分析することができない。そのため、「自然言語処理技術」の形態素解析や構文解析といった処理を行い、単語の出現の有無などを表現するために定量的なデータに変換する。 「データマイニング技術」としては、同時に出現する単語間の関連性を見る「アソシエーション分析」、テキスト間の類似性からグループ化するのに利用される「クラスター分析」などがある。 では実際に、野村総合研究所(NRI)が自社開発したテキストマイニングツール「TRUE TELLER」における処理を参考にして、具体的なテキストデータ処理の流れを見ていこう。 まず、図1のチャートを見ていただきたい。ここ

  • [ThinkIT] Part2:トライ!SQLite(1) (1/2)

    SQLiteは、簡易ながらSQL仕様をほぼサポートするデータベースソフトウェアです。PHPとこのSQLiteを組み合わせて、データベースWebアプリケーションを構築できます。 SQLiteは組み込み専用のDBMSで、PHP5からバンドルされています。SQLite単体はhttp://www.sqlite.org/から入手できます。SQLiteはパブリックドメインとして提供されており、無償であるだけでなく、ソースコードの改変や第三者への再配布も自由に行うことができます。 SQLiteの動作を一言で表せば、ファイル操作をSQL言語で行うようなものです。MySQLやPostgreSQLなどのデータベースサーバーと違って、サーバープロセスを起動する必要がありません。このため、気軽に利用できます。構成は1つのデータベースにつき1つのファイルから成り、ユーザーという概念はなく、アクセス制御などはOSのユ

    nbqx69
    nbqx69 2006/02/06
    仕事用
  • 1