CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。
はじめに 『Javaによる簡易HTTPサーバーの作成』第4回目の今回は、クライアントとの通信に、これまで利用してきたSocketではなく、NIOで提供されるSocketChannelを利用します。 Socketでは、実際の入出力にはStreamを利用します。この時、例えばInputStream#readを呼び出すと、データが読み込み可能になるか例外になるまではreadメソッドから制御が戻りません。そのため、同時に複数のクライアントからの要求を処理するためには、クライアントごとにスレッドを利用する必要がありました。 これに対して、SocketChannelを非ブロックモードで利用すると、まだデータが到達していない、あるいはシステムの送信用バッファがフルになっているなどの理由でデータを転送できない時には、制御が呼び出し側に戻されます(これをJ2SEのAPIドキュメントでは「非ブロック接続」と呼
今回は、「Amazon EC2」のインスタンスを停止してもデータが失われないストレージオプションである「Amazon Elastic Block Store(EBS)」の使い方や活用方法を紹介し、「Amazon EC2」を取り巻くデータバックアップ方法を紹介していきます。 はじめに 前回は、「Amazon EC2」をより実践的に扱うためのオプションや、GUIで簡単に操作できるツールの利用手順を紹介しました。 今回は、「Amazon EC2」のインスタンスを停止してもデータが失われないストレージオプションである「Amazon Elastic Block Store(EBS)」の使い方や活用方法を紹介し、「Amazon EC2」を取り巻くデータバックアップ方法を紹介していきます。 前提条件 今回も前回同様「Amazon EC2 Command-Line Tools」を利用した方法を紹介していき
はじめに 本記事では、全体のサイズが最小となる算術圧縮を高速に実現するRange Coder(以下RC)を紹介します。 算術圧縮は、各文字の出現確率が分かっている場合にそのデータを最小長で表現可能な符号法です。各文字に固定の符号を割り当てるHuffman法とは違い、符号化を状態更新とみなし、すべての文字を符号し終わった後の状態を保存することで符号化を実現します。これにより1文字単位の符号長を1bitより細かく調整することが可能となります。 算術符号は圧縮率が高い反面、ビット単位の演算処理が大量に発生するため、符号化、復号化ともにHuffman符号に比べ遅いという問題点があります。今回紹介するRCは、算術符号の処理をバイト単位で行うことで高速な処理を可能にします。 また、算術圧縮については概要から説明します。 対象読者 C++の利用者を対象としています。データ圧縮の基礎を知っていることが望ま
対象読者 C++の利用者を対象としています。データ圧縮の基礎を知っていることが望ましいです。 必要な環境 C++、32bit環境を想定しています。Windows XP上のVisual Studio C++ 2005、gcc 3.2.2で動作確認済みです。 Huffman Codeの概要 初めに、Huffman Code(以下、HC)について簡単に説明します。データ中に出現する各文字の出現確率が既に分かっている、もしくは予測できる場合に、多く出現する文字に対し短い符号を割り当て、あまり出現しない文字に対し長い符号を割り当てることで、データ全体の符号長を短くすることができます。このように各文字の符号の長さが違う符号(可変長符号)は、元のデータに間違いなく復元できる条件は必要ですが、HCはさらに次の条件を満たした符号を決定します。 瞬時復元可能である データ全体の符号長が最小である 「瞬時復元可
はじめに こんにちは。hirataraです。 私が初めて正規表現を使ったのは、PerlによるCGIでの文字列処理でした。それから私はPerlを使い続け、今では正規表現なしのコーディングは考えられないほど、正規表現を当たり前の機能として日常的に使っています。昔は標準では正規表現をサポートしていなかったJavaも、今では正規表現をサポートするようになりました。Javaだけではなく、今日ではほとんどの高級言語にとって、正規表現はなくてはならない機能であると言っても過言ではないほどメジャーな機能となっています。 本記事では、この正規表現の舞台裏に光を当てます。一見すると作ることが難しそうな正規表現エンジンですが、その根底には数学的な概念があり、その概念さえ知っていれば基礎となる機能の実装はそんなに難しくありません。この連載ではその数学的な概念をPythonを使って表現しながら、実際に動作する正規表
はじめに この連載ではUNIX系OSなどで使われるスレッド「pthread」についてサンプルを交えて説明していきます。pthreadはPOSIXが仕様化したスレッドモデルです。サンプルはCと一部C++、調査環境はFedora 8(2.6.23.1-49.fc8)、32bit、glibc-4.1-2、gcc-4.1.2-33およびFedora Core 6(2.6.18-1.2798.fc6)、32bit、glibc-2.5-3、gcc-4.1.1-30を使用しています。 これまでの記事 第1回:pthreadについて(概要・生成) 第2回:pthreadについて(同期) 第3回:pthreadについて(条件変数・モデル) 第4回:pthreadについて(スレッド固有データ) 第5回:pthreadについて(スタックサイズ) 第6回:pthreadについて(スケジューリング) 第7回:pth
はじめに α(アルファ)符号・γ(ガンマ)符号・δ(デルタ)符号は、自然数を表現するための不定長ビット列です。筆者は、δ符号については、雑誌『Interface』の2002年10月号で知りました。以下、δ符号について詳細を解説します。 対象読者 データ圧縮、特に独自方式での高密度データ格納に興味がある方を対象としています。この記事を読むためには、C++の基本的な文法および演算子についての知識が必要です。クラスやテンプレート、STLなどは使用していません。 必要な環境 本稿の対象環境は、Microsoft Visual C++ 6.0以降のMicrosoft社製C++コンパイラです。一部にインラインアセンブラ、およびPentium命令を使用しています。他のC++環境への移植はさほど困難ではありません。しかし、C環境に移植する場合は、関数の多重定義に留意してください。 δ符号について 通常、デ
はじめに 大規模なデータを扱うアプリケーションでは、速度とともに作業領域量も大きな問題となります。作業領域がメインメモリに収まらない場合、スワッピングが発生し、大幅な速度低下につながります。そのため近年、データ構造は高速なだけでなく、作業領域量が小さいことも求められています。今回紹介するのは2003年に提案されたデータ構造、wavelet tree(以下「WT」と表記)です。WTは圧縮索引やSuccinct Data Structureなど、データをコンパクトに表現する際に重要なデータ構造です。WTは文字列T[0...n-1]が与えられた時、次の2つの操作を定数時間でサポートします。 rank(p, c)――T[0...p]中のcの出現回数を返す select(i, c)――(i+1)番目のcの位置を返す WTの作業領域量は、文字列をそのまま保存した時の約2倍程度です。 対象読者 C++の
Amazonは21日、新たなWebサービス「Amazon Elastic Block Store(EBS)」を公開した。 EBSは、Amazonが提供するホスティングサービスAmazon EC2から使用するストレージサービス。高可用、高性能なブロックデバイスのストレージを、EC2のインスタンスから利用できる。既存のストレージサービス「Amazon S3」と異なり、API経由ではなく、実際の外部ストレージのようにアクセスすることができるため、EC2に障害が発生しても書き込まれたデータが失われない。 ファイルシステムをフォーマットし、マウントして利用することはもちろん、直接Rawデバイスとしてアクセスすることも可能。もちろん、EBSボリュームにMySQLなどのデータベースを作成することもできる。また、Amazon S3にスナップショットとしてデータをバックアップすることも可能となっている。 1
6月10日に行われたGoogle Developer Day 2008 JapanのセッションビデオがYouTubeで公開されている。基調講演を含めた全17本の公開ビデオは以下のとおりとなっている。 基調講演―グーグル株式会社 シニア プロダクト マネージャー 及川 卓也氏ほか 参考:【Google Developer Day 2008】次世代Webのキーワードは「3つのC」 Breakout Session その1 Google Gears to Gears―河内 隆仁氏、市川 宙氏 参考:【Google Developer Day 2008】Gearsはオフラインだけじゃない! Google App Engine―Pete Koomen氏 参考:【Google Developer Day 2008】Google App Engineをおさらいしよう Google Dat
はじめに OpenIDは、ユーザー認証および識別サービス分野に大きな変革をもたらすサービスであり、フレームワークであり、プロトコルでもあります。2004年にBrad FitzpatrickによってスタートしたOpenIDですが、今ではAOL、Google、IBM、Microsoft、VeriSign、Yahoo!などの巨大インターネット組織からサポートされるほどのフレームワークに成長しています。OpenIDは、Webサイトのための信頼性に優れたオープンな分散ユーザー認証を実現する仕組みであり、Web開発者は認証コードを書く手間から解放されます。 本稿ではOpenIDの概要と、Webサイト開発にとってのOpenIDの利点について説明します。また、OpenIDをRuby on Rails 2.0フレームワークに組み込む方法について例を挙げて説明します。必要な環境Rubyバージョン1.8.4以上
はじめに この連載では、大規模分散計算フレームワーク「Hadoop」と、その上につくられた大規模分散データベース「hBase」の仕組みと簡単なサンプルアプリケーションを紹介します。HadoopとhBaseは、Googleの基盤ソフトウェアのオープンソースクローンです。機能やコンセプトについては、Googleが発表している学術論文に依っています。 これらの学術論文によると、Googleでは大規模分散ファイルシステム「Google File System」、大規模分散計算フレームワーク「MapReduce」、大規模分散データベース「BigTable」、分散ロックサービス「Chubby」という4つのインフラソフトウェアが使われています。 図1にGoogleの基盤技術間の依存関係、そしてそれに対応するOSSの対応関係を示しました。まずは対応するGoogleの基盤技術それぞれの機能や特徴をざっくりと
Perlカンファレンス「YAPC::Asia 2008」(ヤップシーアジア)が本日より東京工業大学大岡山キャンパスにて開催されている。基調セッションではPerl作者のラリー・ウォール氏が登壇し、Perlの次期バージョンであるPerl 6の文法や拡張について解説した。 第2言語としてのPerl 午前中最後のセッションには、小飼弾氏が登壇。初心者に向けたテーマとして「第2言語としてPerlを学ぶメリット」を紹介した。 メインに使っているプログラミング言語が、Perlであれ、違うものであれ「新たに第2の言語を学ぶことはメリットがある」と小飼氏。プログラミング言語はそれぞれ重要視している機能や分野が異なるが、1つのプログラミング言語だけを学んでいると、そのプログラミング言語の特徴を理解しにくくなってしまう。違う言語と比べてみることで、メインで使っているプログラミング言語の優れている点やそうでな
はじめに この連載ではUNIX系OSなどで使われるスレッド「pthread」についてサンプルを交えて説明していきます。pthreadはPOSIXが仕様化したスレッドモデルです。サンプルはCと一部C++、調査環境はFedora 8(2.6.23.1-49.fc8)、32bit、glibc-4.1-2、gcc-4.1.2-33およびFedora Core 6(2.6.18-1.2798.fc6)、32bit、glibc-2.5-3、gcc-4.1.1-30を使用しています。これまでの記事第1回:pthreadについて(概要・生成)第2回:pthreadについて(同期)第3回:pthreadについて(条件変数・モデル)第4回:pthreadについて(スレッド固有データ)第5回:pthreadについて(スタックサイズ)第6回:pthreadについて(スケジューリング)第7回:pthreadについて
cout << typeid(tr1::bind(&Sandwich::make, _1, _2, _3)).name(); class boost::_bi::bind_t<class std::basic_string<char, struct std::char_traits<char>,class std::allocator<char> >, class boost::_mfi::cmf2<class std::basic_string<char, struct std::char_traits<char>,class std::allocator<char> >, class Sandwich,class std::basic_string<char, struct std::char_traits<char>,class std::allocator<char>
はじめに Windows VistaのJIS2004対応により、WindowsのUnicode環境で使用できる日本語漢字の数が増えました。従来、12238字(Windows XP)だったのが13145字(Windows Vista)になり、907字追加されることになりました。これによって、JIS第3水準、JIS第4水準の漢字がすべてサポートされることになったのです(Windows XPまでは一部サポート)。 またWindows XPでも、パッチさえ当てれば、Windows Vistaと同じように追加907字を加えた13145字の漢字が使用できるようになりました。 ところが、この追加された907字の中には「サロゲートペア」という特殊な文字が304字あり、これらは今までのUnicodeの文字とは扱いが少し違います。この点について解説していきたいと思います。 対象読者 Unicode
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く