タグ

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

  • WEBrickを使ってみよう!

    WEBrickの構造 残念ながらWEBrickはあまりドキュメントがそろっていませんが、RubyリファレンスマニュアルのWebrickのページ(http://www.ruby-lang.org/ja/man/html/webrick.html)で代表的なクラスのメソッドが解説されています。 先ほどのhttpserver1.rbでは、HTTPServerクラスしか使っていないように見えますが、その中でいくつかのクラスが呼び出されています。 httpserver1.rbで呼び出される流れは図3のようになっています。 HTTPServerクラスの処理 実はWEBrickはHTTP以外のプロトコルのサーバーも作れるように、GenericServerというクラスを基底にしてHTTPServerクラスを作っています。GenericServerクラスが、TCP/IPの受付などを行い、その上でHTTPSe

  • クロスドキュメントメッセージングやWebSocketを使ってみる

    *)オリジンとは、プロトコル、ドメイン、ポート番号の組み合わせの事です。 サンプル一式は、会員限定特典としてダウンロードできます。記事末尾をご確認ください。 従来のHTTPによる通信では以下のような問題や制約があります。 メッセージの送信時に毎回接続を確立して送信後に切断する必要があり、オーバーヘッドが大きい。 接続を開始する権利はクライアント側にしかなく、サーバー側は要求に対する応答の形のみでしかデータ送信出来ない。 各メッセージ送信において状態を維持する事ができない。 クロスドメイン(クロスオリジン)での通信はできない これらの制限が、効率的なリアルタイム性のあるリモートアプリケーションの作成や、他サイトの提供するサービスの組み合わせでWebサイトを構築する場合に、他の技術も使用しなければならず、実装が複雑になってしまう原因となっていました。 しかし、HTML5の上記の新機能により、サ

  • Web SQL DatabaseとIndexed Database API

    HTML5では、API群が整備され、データベース関係のAPIも充実します。これによって、これまでよりも柔軟なWebアプリケーションを作れるようになるでしょう。今回は、それらのAPIの中から、「Web SQL Database」と「Indexed Database API」の2つを取り上げます。 Web SQL Databaseの概要 第4回では、Web Storageを紹介しました。Web Storageは、シンプルなデータベースAPIで、Cookieの代わりとして使うなどの使い道があります。ただし、単純なキー・バリュー型のデータベースなので、検索などの複雑な処理には向いていません。Webアプリケーションの中で格的なデータベース処理を行うには、Web Storageでは機能的に不十分です。 そこで、「Web SQL Database」と呼ぶデータベースAPIが提案されています。Web S

  • [Think IT] 【モバイル向けサイト制作】iPhone向けWebサイトをつくろう

    CTO ProjectVine、もじら組などオープンソース系コミュニティーでの活動後、大手SIerにてJavaによるアプリケーションフレームワークの構築を手がける。ベンチャーインキュベータを経て、現在は株式会社モディファイにてJavascriptCSSと格闘する毎日。 http://www.modiphi.com/

  • Hadoopがスケール・アウトする仕組み

    前回の記事では、Hadoopが膨大なデータをバッチ処理するための「インフラ」としての性質を備えていること、情報爆発時代の新たなインフラとして普及しつつあることを説明しました。その中で、情報爆発時代に必要とされるインフラは、「スケール・アウトが可能であること」という条件を備えていなければならないことを示しました。サーバーの台数を増やすことで容易にシステムの処理性能が増やせることは、Hadoopの重要な特徴です。今回は、Hadoopがどのようにしてスケール・アウトを可能にしているかを、「分散ファイル・システム」と「MapReduceフレームワーク」の2つの観点から解説します。 スケール・アウトとは? コンピュータ・システムを新たに構築するときは、必ず「運用」のことを考えておく必要があります。システム・トラブルが発生した場合の対応策を決めたり、将来の仕様変更に備えてプログラムに拡張性を持たせたり

  • Active Recordのその先へ ~RailsでMongoDBを使う~

    MongoDBのインストールは、MongoDBのWebサイトから配布パッケージ・ファイルをダウンロードし、任意のディレクトリに展開します。ログを出力するフォルダと、DBを格納するディレクトリを作成し、画面1のようにmongodコマンドを使って起動します。 画面1: MongoDBの起動 # mongod --logpath ログ・ファイルまでのパス --dbpath DB格納ディレクトリまでのパス MongoDB starting : pid=21599 port=27017 dbpath=/usr/local/mongodb-1.6.3/db 64-bit db version v1.6.3, pdfile version 4.5 git version: 278bd2ac2f2efbee556f32c13c1b6803224d1c01 sys info: Linux ofc-n1.10

  • [ThinkIT] 第4回:Railsでテストをしてみよう (1/4)

    近年のシステム開発では図1に示すように自動化されたテストを取り込み、継続的インテグレーションを実現した開発スタイルが提唱されています。 テストの自動化を導入することで、ソフトウェア開発で最も恐れるべき事象の1つであるデグレードを回避することができるため、積極的にコードを整理(リファクタリング)することができるようにもなります。 またテストの自動化は、先進的なアジャイル開発ではもちろんのこと、従来のウォーターフォール型開発プロセスにも有効的な適用が可能であるため、近年急速に一般化しつつあります。そしてRuby on Rails(以下、Rails)にはテストの自動化を実践するためのサポートが含まれています。

  • 課題管理対決!Redmine vs. Trac

    Redmineの機能と特徴 Redmineは、Ruby on Rails上で動作する、Webインタフェースの課題追跡(Issue Tracking)ツールです。原稿執筆時点(2008年9月現在)での最新のバージョンは0.7.3です。 Redmineが搭載している機能は、「マイルストン設定(ロードマップ)」「カレンダー/ガントチャートの表示(概要)」「作業時間の登録/集計(チケット、概要)」「作業履歴の閲覧(活動)」「課題の登録/追跡管理(チケット、新しいチケット)」「伝言板(ニュース)」「文書の登録/閲覧(文書、Wiki)」「ディスカッション(フォーラム)」「ファイルの共有(ファイル)」「ソース管理との連携(リポジトリ)」「ワークフロー定義」「メール通知」「RSS配信」「ユーザの管理/ロール・権限の設定」です。なお、かっこの中はRedmine画面上で対応する主なメニュー項目名です。 筆者の

  • [ThinkIT] 第6回:BTS(Bug Tracking System)の利用 (1/3)

    システム開発を進めるにあたり、バグやタスクなどを管理して、現在発生しているバグの数や担当者といったステータスを把握する必要があります。また、ある程度以上の規模のWebアプリケーションを開発する場合、数人のチームで開発を進めるケースが多く、開発を円滑に進めていくためにスタッフ間での情報共有が重要になってきます。 「Bug Tracking System(以下、BTS)」は、これらの問題を解決するためにプロジェクトのバグを管理し、修正状況を追跡できるよう可視化を行うシステムです。現在、BTSとして様々なソフトウェアが公開されており、ソフトウェアを開発する上での必須アイテムになりつつあります。 BTSの多くはWebブラウザ経由でアクセス可能なソフトウェアで、その中から今回はウノウで採用している「Trac」について説明します。 Tracは、BTSとWiki、Subversionリポジトリビューワー

  • [ThinkIT] 第1回:PDOの概要 (1/3)

    PHPの経験がある人ならばデータベースを扱うのにPHPを使用したことがあると思います。多くの場合、データベースはデータの収集と解析を目的とした柔軟性のある情報ストレージとして使用され、開発者のコミュニティで一般的によく使用されています。多くの一般的なツールでは、1つの問題に対して多くのアプローチがとられますが、データベースシステムでは標準機能の違いはほとんどありません。 情報を扱う理想的な方法として、いくつものデータベースシステムが競合しています。数百万人の開発者が使用しているPHP言語では、1人の開発者も取り残されないようにこれらのデータベースエンジンの大部分をサポートしています。 PHPでのデータベースのインタフェース開発は、理想的なデータベースとの通信方法を考え抜いた初期設計の通りには完成しないことがほとんどです。というのも、開発者が馴染みのないデータベースにPHPを接続させなければ

  • [Think IT] 第1回:付箋紙アプリケーションを作ろう! (1/3)

    Webの技術を使ってデスクトップアプリケーションを作ることができる開発環境である、「Adobe AIR(旧名 Adobe Apollo)」のパブリックベータ版が6月11日にリリースされました。 ここ数年、Webアプリケーションの進化がめざましく、表計算やワープロといった今までテスクトップ専用のものだと思われていたアプリケーションまで、Webブラウザ上で扱うことができるようになってきました。 Adobe AIRは、Webアプリケーションで使われている、HTMLCSS、Ajax、Flashといったテクノロジを使つつ、Webブラウザに依存しない、スタンドアローンなアプリケーションを開発・実行できる新しい環境です。 連載では、Adobe AIRとRuby on Rails(以下、RoR)を使って、Webブラウザだけではない、新しいタイプのWebアプリケーションを作る方法を紹介していきます。 A

  • 1