タグ

ブックマーク / codezine.jp (19)

  • 正規表現エンジンを作ろう (2)〜NFAとDFAを実装する〜:CodeZine

    はじめに こんにちは。hirataraです。 稿は、正規表現エンジン作成の第2回目です。前回は正規表現の数学的な側面を説明しました。今回は正規表現エンジンの実際の評価器となる、NFAとDFAを実装します。 対象読者 正規表現をもっと知りたい方 情報科学分野に興味がある方 正規表現エンジンを実装する必要がある方 必要な環境 サンプルはPython2.5で開発しましたが、2.4の環境でも動くはずです。 Python2.5 が動作する環境 実装する正規表現の仕様 今回から正規表現エンジンの実装に入りますが、実際に手を動かし始める前に、到達すべきゴールを明確にしておきましょう。まず、連載中に実装する正規表現の仕様を決定します。この連載では数学的な定義である3つの正規表現のみを実装し、正規表現が当にDFAと等価であり、DFAをシミュレートすることで実装できることを確かめます。 文法 これから作る

    正規表現エンジンを作ろう (2)〜NFAとDFAを実装する〜:CodeZine
  • 正規表現エンジンを作ろう (1)

    はじめに こんにちは。hirataraです。 私が初めて正規表現を使ったのは、PerlによるCGIでの文字列処理でした。それから私はPerlを使い続け、今では正規表現なしのコーディングは考えられないほど、正規表現を当たり前の機能として日常的に使っています。昔は標準では正規表現をサポートしていなかったJavaも、今では正規表現をサポートするようになりました。Javaだけではなく、今日ではほとんどの高級言語にとって、正規表現はなくてはならない機能であると言っても過言ではないほどメジャーな機能となっています。 記事では、この正規表現の舞台裏に光を当てます。一見すると作ることが難しそうな正規表現エンジンですが、その根底には数学的な概念があり、その概念さえ知っていれば基礎となる機能の実装はそんなに難しくありません。この連載ではその数学的な概念をPythonを使って表現しながら、実際に動作する正規表

    正規表現エンジンを作ろう (1)
    youz
    youz 2008/11/08
  • CodeZineで「開発者注目のはてなブックマーク」サービスの提供を開始しました:CodeZine

    日よりCodeZineでは、新しいサービス「開発者注目のはてなブックマーク」の提供を開始しました。このサービスでは、「はてなブックマーク」の人気エントリの中から、プログラミングや開発に関連する「タグ」だけを編集部が選定し、集約した上でCodeZineのサイト上に表示します。

  • 50グラムで持ち運ぶ自分のPC環境「wizpy」が大幅値下げ、4GBモデルが9800円に:CodeZine

    ターボリナックスは、USBに差し込むことで自分専用のOSを起動できるハードウェアデバイス「wizpy」(ウィズピー)の価格を大幅に引き下げると発表した。 wizpyの中には専用のOSが組み込まれており、FirefoxやThnderbird、OpenOffice.orgなどのアプリケーションが内蔵されている。内部OSはwizpyをPCにUSB接続することで起動し、メールやファイルなどのデータはwizpy体に保存されるため、利用しているPCに履歴を残すことは一切無い。 PCに接続しないときはマルチメディアプレイヤーとして使うことができ、動画再生や音楽再生、ボイスレコーダー、FMラジオなどの機能を備えている。 発売1周年を記念して3月7日より以下のように価格が変更される。 wizpy 4GB…9,800円(ホワイト、ブラック、チタンシルバー、スマートブルー、シュガーピンク) wizpy

    youz
    youz 2008/10/01
  • Firefoxを全メッセージのハブにする拡張機能「Snowl」のプロトタイプが公開、早速使ってみた :CodeZine

    Mozillaは6日、Firefoxの拡張機能「Snowl」のプロトタイプを公開した。MozillaのWebサイトからダウンロードすることができる。 これはメールやRSSSNS、オンライン会議といった機能をFirefoxに集約するためのアドオン。Firefoxからメッセージの集中管理が可能になるという。 今回リリースされたプロトタイプ「バージョン0.1」ではRSS/Atomフィード、Twitterをサポートしている。インターフェースは、3列構造の「list view」モードと、概要文付きで表示するためメッセージの流し読みが可能な「river of news」モードが用意されている。

  • Amazon、超巨大ストレージサービス「Amazon Elastic Block Store」ついに公開

    Amazonは21日、新たなWebサービスAmazon Elastic Block Store(EBS)」を公開した。 EBSは、Amazonが提供するホスティングサービスAmazon EC2から使用するストレージサービス。高可用、高性能なブロックデバイスのストレージを、EC2のインスタンスから利用できる。既存のストレージサービス「Amazon S3」と異なり、API経由ではなく、実際の外部ストレージのようにアクセスすることができるため、EC2に障害が発生しても書き込まれたデータが失われない。 ファイルシステムをフォーマットし、マウントして利用することはもちろん、直接Rawデバイスとしてアクセスすることも可能。もちろん、EBSボリュームにMySQLなどのデータベースを作成することもできる。また、Amazon S3にスナップショットとしてデータをバックアップすることも可能となっている。 1

    Amazon、超巨大ストレージサービス「Amazon Elastic Block Store」ついに公開
  • :CodeZine(コードジン)

  • 【RubyKaigi'08】詳細レポート : 多様化するRuby(続):CodeZine

    基調講演とM17N 日Ruby会議 2008 初日午後のメインセッションでは、まつもとゆきひろ氏による基調講演に続いて、成瀬ゆい氏とMartin J. Durst氏によるRuby 1.9から取り入れられたM17Nについてのセッション(Ruby M17NRuby M17N)が行われた。

  • 【RubyKaigi'08】詳細レポート : 多様化するRuby:CodeZine

    Ruby会議2008 初日(注1)は、日Rubyの会/東京大学のささだこういち氏による、『現在の、そしてこれからのRubyVM開発』で幕を開けた。 この記事では、日Ruby会議2008から次の5つのセッションを中心に、日Ruby会議2008で示された現在のRuby、将来のRubyについてまとめてみたい。『現在の、そしてこれらからのRubyVM開発』(ささだこういち)『JRuby:Ready for Action』(Charles Nutter)『The Magic of Rubinius』(Evan Phoenix)『Ruby《を》教えてるんじゃない、Ruby《で》教えてるんだってば』(増原英彦)『Rails症候群の研究』(前田修吾)  なお、記事は必ずしもセッションの内容をそのまま書いているわけではない点をお断りしておく。 記事では、セッションの限られた時間では語りつくせな

  • CodeZine:JavaScriptでつくるSchemeインタプリタの基礎の基礎(lisp)

    はじめに 現存するプログラミング言語の中で2番目に古いのがLispです。生まれは古くても、いまだに使われ続け、また、Rubyなどの新しい言語にも影響を与えています。そのLispの派生であり、シンプルさが売りなのがSchemeです。 ここではSchemeの簡単なインタプリタをJavaScriptで作ってみます。対象読者 稿はLispやSchemeは少し触ったことはあるけど、インタプリタは書いたことがないという方を読者対象としています。また、JavaScriptの文法や、簡単なデータ構造についての知識を前提とし、説明は省きます。必要な環境 テキストエディタと、JavaScriptが動くWebブラウザがあれば十分です。他に特に用意するものはありません。概要作成するインタプリタについて インタプリタのコードはJavaScriptで書き、HTMLのフォームを使って、Schemeのプログラムの入力お

  • Perlの作者ラリー・ウォールが5度目の来日講演決定~8月開催のLL Future:CodeZine

    7月19日に開催されたオープンソースカンファレンス2008 Kansaiのライトニングトークで、LLイベントの協賛団体でもある日UNIXユーザ会(jus)の法林浩之氏が明らかにした。ラリー・ウォール氏の来日講演は、1998年のPerl Conference Japan(東京新宿で開催)、2000年のPerl/Ruby Conference、2006年と2008年のYAPC::Asia Tokyoに次いで5度目。 LL Futureは、8月30日に中野区の総合文化センター「なかのZERO」で終日開催されるライトウェイトプログラミング言語の祭典。JUSなどによるLLカンファレンスとしては、2003年の「LL Saturday」から数えて今回で6回目となり、はじめて1000人規模の大会場で開催される。プログラミング言語の「未来への期待感」をテーマとした今回のLLカンファレンスで、長期にわたっ

  • BoostでC++0xのライブラリ「TR1」を先取りしよう (1):CodeZine

    はじめに C++の新しい規格「C++0x」では、言語とライブラリの両面から便利な機能が追加されます。「TR1」(Technical Report 1)はC++0xのライブラリ部で、標準C++に新たに追加されるライブラリの多くはBoostの中から選ばれたものです。2008年春にリリースが予定されているVisual Studio 2008にも追加パッケージとして供給されるとの情報を得ています。 TR1に収録されたクラス/関数の中からいくつかをピックアップし、その概要と使い方を予習しておきましょう。前準備 - Boostのインストール Boostのインストールは開発環境がVisual Studio 2005であれば、いとも簡単です。Boost consulting - Free Downloadsにあるインストーラをダウンロード/実行するだけで、必要なヘッダ、ライブラリおよびドキュメントがインス

  • 高速な算術圧縮を実現する「Range Coder」

    はじめに 記事では、全体のサイズが最小となる算術圧縮を高速に実現するRange Coder(以下RC)を紹介します。 算術圧縮は、各文字の出現確率が分かっている場合にそのデータを最小長で表現可能な符号法です。各文字に固定の符号を割り当てるHuffman法とは違い、符号化を状態更新とみなし、すべての文字を符号し終わった後の状態を保存することで符号化を実現します。これにより1文字単位の符号長を1bitより細かく調整することが可能となります。 算術符号は圧縮率が高い反面、ビット単位の演算処理が大量に発生するため、符号化、復号化ともにHuffman符号に比べ遅いという問題点があります。今回紹介するRCは、算術符号の処理をバイト単位で行うことで高速な処理を可能にします。 また、算術圧縮については概要から説明します。 対象読者 C++の利用者を対象としています。データ圧縮の基礎を知っていることが望ま

    高速な算術圧縮を実現する「Range Coder」
  • WiXではじめるWindows Installer作成入門 第1回:CodeZine

    はじめに 連載は、MS初のオープンソースとしても知られる、Windows Install XML(WiX) toolsetを利用してインストーラを作成する方法を、チュートリアル形式で解説します。WiXの説明を交え、実践でも役立つ内容を数回に分けてお送りいたします。対象読者 インストーラを必要とするすべての開発者。必要な環境 WiXの動作には.NET Framework 1.1または2.0のランタイムが必要となります。連載ではUnmanaged C++のDLL(通常のWin32形式のDLL)の作成も行ないますので、Visual C++ 2005 Express EditionまたはVisual Studio 2005 Standard Edition以上がインストールされている環境を想定しています。もちろん、Visual Studio .NET 2003でも利用できます。なお、すべてのエ

  • Perlコミュニティ活動で宮川達彦氏が日本人で初めて「白駱駝賞」受賞:CodeZine

    オープンソースのプログラミング言語であるPerlは、多くのボランティアの努力によって支えられている。白駱駝賞(The White Camel Awards)は、そうしたコミュニティ活動における貢献者を称えるため、1999年のPerlカンファレンスではじまった。現在ではPerlファウンデーションが毎年OSCONで発表する形となっており、昨年はティム・オライリー(Tim O'Reilly)氏も受賞している。 今年の白駱駝賞は、7月21日から25日まで開催されているOSCON 2008の2日目夜のイベント「Tuesday Evening Extravaganza(火曜の夜は大騒ぎ)」で発表された。受賞者は、宮川氏のほか、オーストラリアのPerlコミュニティからヤシンタ・リチャードソン(Jacinta Richardson)氏と、イスラエルでYAPC::Israelなどを主催するガボール・ザボ(

  • プログラミング異種カクトウギセッション ライトウェイト言語の祭典「LL Future」開催される

    11時間に及んだ熱い発表 日UNIXユーザ会(JUS)と各ライトウェイト言語ユーザー会の協力によって開催されるLLイベントは、2003年の「LL Saturday」に始まり今年で6回目となる。毎年趣向を凝らせた過剰なプログラムで知られ、夏に開催される“熱い”イベントとして多くの支持を集めてきた。はじめて千人規模となった今年も、Perl作者のラリー・ウォール氏による基調講演のほか、5つのパネルディスカッションに、LL系イベントではおなじみのライトニングトークと、午前10時から夜9時近くまで約11時間にもわたってが熱い発表が繰り広げられた。 Perl6はバベルの塔? 今年のテーマは、タイトルがあらわす通り「未来」。最初のパネルディスカッションでは「LLで未来を発明する」と題し、ポール・グレアム氏の有名な講演「百年の言語(The Hundred-Year Language)」を下敷きに、この日

    プログラミング異種カクトウギセッション ライトウェイト言語の祭典「LL Future」開催される
  • CodeZine:CometとAjaxを利用したチャットサーバの実装()

    はじめに 『簡単なHTTPサーバの自作』第5回目の今回は、クライアントとの通信に、ブラウザ自身によるリクエスト/レスポンスに加えてAjaxとCometを利用した簡単なチャットアプリケーションを実装します。 Webアプリケーションでチャットを実装する場合に考えなければならないのは、他の発言者のメッセージをどうやってブラウザへ反映させるかです。自分が発言する場合は、サーバへ対してメッセージが送信されます。従って応答データに現時点の発言を返せば済みます。しかし、この方法だけでは他の参加者の発言を発言時に読むことはできません。 この問題を解決する手段は複数あります。 次の図は最も原始的ですが、確実な『F5連打法』を図示したものです。 F5連打法では、ユーザーは最新の発言がありそうだと感じた時に[F5]を叩きます。するとブラウザが最新の情報をサーバへ取りに行くため、もし発言が更新されていればその情報

    youz
    youz 2008/10/01
  • 【RubyKaigi'08】「Rubyを仕事に2008」まつもとゆきひろ×最首英裕対談:CodeZine

    今のエンタープライズRubyは、10年前のJavaのようだ JavaRubyをメインの開発言語としている最首氏が、開発の現場におけるJavaRubyを比較すれば、まつもと氏もそれをうけて「Javaの良いところは受け継いで、悪いところは同じ轍を踏まない」ようにしたいと語った。エンタープライズ分野でも完全に使われつつあるRubyが、10年は先行して実績のあるJavaからなにを学ぶことができるのだろうか。 1996年ごろのインターネットブームの最中にJavaが登場してきたとき、最首氏自身は「これで開発すれば早いのではないか」と可能性を感じたが、周囲には批判的なひとが多かったという。しかし、批判している人が多いということは「やっている人」も少ないはずだと判断し、JDK 1.1のころにイーシー・ワンを立ち上げた。すぐにブレイクして、4年で会社をJASDAQ上場を果たし、以降もJavaを専門に開発

  • 「東京Ruby会議01」 8月21日開催決定:CodeZine

    「東京Ruby会議01」が8月21日に開催されることが決定した。 この「東京Ruby会議01」は6月に行われた「RubyKaigi 2008」のリジェクト会議基調講演で角谷 信太郎氏が提案した「Regional RubyKaigi(地域Ruby会議)」の第1弾。年々大きくなるRuby会議だけに集中させるのではなく、地域ごとのユーザーコミュニティ主体で「地域Ruby会議」を開催してみようという趣旨のもと、実施される。 現在、決定しているのは場所と日程のみ。詳細は今後調整していく予定だが、Ruby会議公式ブログでは、「発表あるいは参加したいと考えている方は、まずは8/21の夜の予定を空けておいてください」と呼びかけている。なお、Ustream.tvを使ったネット中継が予定されている。

  • 1