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

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

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

    高速な算術圧縮を実現する「Range Coder」
  • Javaの限界を超えて実用化を目指す 新開発言語「Scala」のメリットとは~前編

    Scalaとは Scalaは、2003年にJavac(コンパイラ)やJavaのGenericsの設計/開発貢献者であるMartin Odersky氏(スイス・ローザンヌ工科大学教授)によって、開発が開始された比較的新しいプログラミング言語です。Javaは実用言語として幅広いシステムで使用されてきましたが、下位互換性を保つという要請の中、言語としての機能強化がなかなか進まないといった限界も見えてきています。そのような現状もあることから、ScalaJavaの後継として実用的な言語を目指して開発されています。 Scala最大の特徴は、Javaの良さを最大限継承しつつ、スクリプト言語や関数型言語の良いところも吸収し、先進的な機能/文法を取り入れている点です。また、今後のハードウェアのマルチコア化を見据え、簡易に並列処理プログラミングを行うことができるライブラリが付属しています。 Scalaのメリ

    Javaの限界を超えて実用化を目指す 新開発言語「Scala」のメリットとは~前編
  • 新たな関数型言語「F#」

    はじめに F#とは、マイクロソフトリサーチが開発しているOcaml(Objective Caml)互換の関数型プログラミング言語(以降、関数型言語)です。他の.NET Framework対応言語と同じくVisual Studio(以降、VS)に統合される予定で、現在マイクロソフトから提供されているVS2010のベータ版にも搭載されています。 マルチコアプロセッサが主流になり、従来の科学やその他の学術研究分野に限らず、金融業、製造業など幅広い分野においてHPC(High Performance Computing)が普及してきました。それに伴い、並列処理や分散プログラミングを得意とし、高演算処理能力を発揮する関数型言語への期待は急速に高まりつつあります。関数型言語はその長所にもかかわらず、他言語との相互運用性の乏しさもあって長い間ごく限られた一部のデベロッパーにしか学習されていませんでした。

    新たな関数型言語「F#」
  • 3行のコードからPDFを生成できる、総合PDFアプリケーション開発コンポーネント「BCL easyPDF SDK 6.0」販売開始:CodeZine

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    3行のコードからPDFを生成できる、総合PDFアプリケーション開発コンポーネント「BCL easyPDF SDK 6.0」販売開始:CodeZine
    tomerun
    tomerun 2008/12/13
  • 正規表現エンジンを作ろう (1)

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

    正規表現エンジンを作ろう (1)
  • あなたはC++ の発明者? それとも創造者?〜Bjarne Stroustrup氏との対話〜:CodeZine

    はじめに 「Bjarne Stroustrup氏との対話」連載を担当することになりました、豊田孝と申します。よろしくお願いいたします。 対話の相手であるBjarne Stroustrup氏は、プログラミング言語「C++」を設計し、最初に実装した人です。それだけでなく、同氏はC++を国際標準プログラミング言語の地位に付かせました。大変なエネルギーの持ち主です。 筆者はこの数年、「同氏の生き方から何かを学べるのではないか」と考えてきました。その考えは日毎に熱を帯び、「学べるはずだ!」、そしてついには、「わが国の開発者に、同氏の考え方と生き方ぜひお伝えしたい!」へと変化し今回の連載を始めるに至りました。 稿でのStroustrup氏との対話はメール交換を通して行われます。基的には、筆者が質問文を用意し、Stroustrup氏がその質問に対して高所からコメントを寄せることになります。C++言語

  • XML形式も高速に扱える「DB2 9」で実現する、新しいサービスの形とは?:CodeZine

    IBMが開催する「渋谷テクニカルナイト」は、同社が取り組む最新技術の動向を週替わりで紹介する技術者向けのセミナー。新製品や製品化前の技術、そして今後の技術トレンドを解説するとあって、社外のデベロッパーの参加も多いと言います。今回は、「XML DBがもたらす新しいイノベーション」と題した講演を行った同社のエバンジェリスト 中林紀彦氏に、XMLデータを扱えるデータベース『DB2 9』の魅力などについてお話をうかがいました。 --現在のお仕事とこれまでのキャリアについてお聞かせください。 中林氏: 所属はソフトウエア事業で、エバンジェリストとして製品のテクノロジーを広めるのが一番の仕事です。XMLデータベースと、今年製品化を計画しているマッシュアップ関連の製品を担当しています。弊社の製品の良さを皆さまに知っていただくことと共に、技術者育成に注力しています。 このため、技術者に情報を提供したり

    tomerun
    tomerun 2008/05/28
  • 私がScalaを選んだ理由:CodeZine

    はじめに 最近自分の中でScalaという言語が熱い。RubyPython等のスクリプト言語や、JavaやC#等現在のエンタープライズ領域を支える言語、HaskellやErlangといった関数型言語もある。そんなにいっぱいいい言語がある中で、なぜ今Scalaなんだろう? そんな理由を解説してみたいと思います。Rubyの生産性 ここ数年LLブームで、とりわけ日でのRuby人気は目覚ましいものがあります。実は筆者もRubyはとてもお気に入りです。最初に触り始めた頃は、「Rubyはいいよ」という話だったので勉強がてら小さなサンプルを作って遊んでいたのですが、その頃は「楽しいな」「気持ちいい言語だな」という程度であまり熱心にやっていませんでした。なぜなら私は「仕事で使える」ということを非常に重視するタイプだからです。 その認識が一変したのがRubyによるWebアプリケーション開発のプラットフォー

  • Javaジェネリックを使ったコンパイル時の動的処理:CodeZine

    はじめに 稿では、ジェネリックを利用してコンパイル時の動的処理およびクライアント関連の型安全性(type-safety)を実現する方法について解説します。一般的に、サブクラス化を行う際の最も重要な側面は、クラス固有の機能を実現するために、いかにして同じメソッドパラメータを使ってオーバーライドを実現するかということです。場合によっては、クラス固有のパラメータが必要になることもあるかもしれません。さらに、オーバーライドメソッドが、こうしたクラス固有パラメータのスーパークラスであるパラメータを使用する場合も考えられます。このようなメソッドの例としては、パブリックAPIを通じて公開され、具象実装クラス内でオーバーライドされるメソッドが挙げられます。シナリオ 稿で取り上げるのは非常によくあるシナリオで、多くの人が過去に直面したことがあり、同じような方法で解決してきたのではないかと思います。ここで

    tomerun
    tomerun 2008/05/10
  • Hadoop、hBaseで構築する大規模分散データ処理システム:CodeZine

    はじめに この連載では、大規模分散計算フレームワーク「Hadoop」と、その上につくられた大規模分散データベース「hBase」の仕組みと簡単なサンプルアプリケーションを紹介します。HadoopとhBaseは、Googleの基盤ソフトウェアのオープンソースクローンです。機能やコンセプトについては、Googleが発表している学術論文に依っています。 これらの学術論文によると、Googleでは大規模分散ファイルシステム「Google File System」、大規模分散計算フレームワーク「MapReduce」、大規模分散データベース「BigTable」、分散ロックサービス「Chubby」という4つのインフラソフトウェアが使われています。 図1にGoogleの基盤技術間の依存関係、そしてそれに対応するOSSの対応関係を示しました。まずは対応するGoogleの基盤技術それぞれの機能や特徴をざっくりと

  • 「Google Collections Library」でJavaのコレクションを補完する:CodeZine

    はじめに 何年も前のことですが、私が初めてJavaに興味を覚えた理由の1つは、Javaプラットフォームに標準でコレクションライブラリが組み込まれていたからでした。当時、C++の世界ではまだSTL(Standard Template Library)が定着しておらず、開発者たちは適当なコレクションライブラリを購入して利用するか(Rogue Waveが流行っていました)、自分の手でライブラリを書くしかありませんでした。正確な数は忘れましたが、私自身も、さまざまな目的でさまざまな種類のプリミティブやオブジェクトの連結リストを実装しました。さらに、もっと複雑なコレクションや平衡2分探索木、ハッシュテーブルなども自分で実装しました。そのようにしてソフトウェア工学の原理を絶えず意識することは決して無駄なことでありませんでしたが、生産性を考えるとそうとばかりも言えませんでした。 しかし、Javaによって

  • CSVファイルフォーマットの解説:CodeZine

    はじめに CSVファイルは最も普及したデータ交換用フォーマットですが、さまざまな方言があります。 稿ではCSVファイルフォーマットの仕様とデータ交換時のポイントを説明します。 対象読者 CSVファイルを扱うDB管理者、開発者。 CSVとは? CSVとはComma-Separated Valuesの略で、カンマ区切りで並べた値という意味です。 CSVファイルの例として、一般的なアドレス帳データを示します。 "姓","名","生年月日","郵便番号","住所","電話番号" "山田","太郎","2001/1/1","100-0002","東京都千代田区皇居外苑","03-1234-5678" "山田","次郎","2001/1/2","251-0036","神奈川県藤沢市江の島1丁目","03-9999-9999" カンマで区切られたデータの横一列を"行"(英:Row)

  • 突然ですがクイズです!-その1:CodeZine

    はじめに 職務上、さまざまなプログラミング言語を扱うことがあるのですが、言語によって文法や挙動の違いに戸惑ったり、うっかりミスをしたりすることがあります。でも、1つの言語だと当たり前に思ってしまうことも、複数の言語を並べることで、逆によく見えてくることもあります。この記事では、Delphi、C++Java、C#、PHPRubyの6言語を取り上げ、同じような動作を記述していながら、結果が異なるケースを紹介し、言語ごとの挙動の違いを考察します。

  • 「Webページの表示速度を向上させる最新研究結果」 米Yahoo!がプレゼン資料公開:CodeZine

    Yahoo!は、開発者向けWebサイト「Yahoo! Developer Network」内のブログで、Webページのパフォーマンスを向上させる最新研究結果について解説したプレゼン資料を公開した。 これは先週開催されたPHP Quebec Conferenceのセッションにおいて、同社のStoyan Stefanov氏が使用した資料を公開したもの。Yahoo!が研究を続けている「より速くWebページを表示させるテクニック」として、既存の14種類に加え、新しく20種類のルールが明かされている。 改善対象はサーバ、コンテンツ、クッキー、JavaScriptCSS、画像、モバイルとなっており、同社が提供するFirefox拡張機能YSlowなどを利用して検証する。YSlowで「A判定」が出ていないようであればこれらの改善に取り組むよう推奨しており、A判定が出ている場合でも新しい20のルールを

    tomerun
    tomerun 2008/03/19
  • 第10回弁護士 宇都宮健児さん-その1-サラ金被害者は俺が救う!落ちこぼれ弁護士の逆襲 :CodeZine

    ひたすら社会の闇と戦う弁護士がいる。宇都宮健児59歳。28年間、小さな身体を盾にして、サラ金による苛烈な取り立てから弱者を守ってきた。常につきまとう危険、甚大な労力、もらえる確証のない微々たる報酬。にも関わらず、なぜそこまで体を張れるのか。その姿は漢の中の漢に見えるがしかし、宇都宮氏はいう。私は落ちこぼれ弁護士ですからと──。そのやさしそうな瞳の奥に光る鋼の意思に迫った。 弁護士になって30年以上経ちますが、最初から弁護士を目指していたわけじゃないんですね。弁護士という仕事は大学に入ってから初めてその存在を知ったくらいですから(笑)。元をたどれば、幼少時代から親の背中を見て育ったことが大きいんじゃないかと思います。 私の父親は復員軍人、しかも傷痍軍人だったんです。若いときに兵隊に行って、10年くらい戦争に従事したんですが、途中で爆撃機の操縦士になってね。それで終戦直前にアメリカの戦闘機に

    tomerun
    tomerun 2007/12/17
    サラ金と戦う弁護士。これは熱い。
  • 1