タグ

ブックマーク / atmarkit.itmedia.co.jp (7)

  • ブロックアルゴリズムとB-Treeアルゴリズム

    ext2とext3は、「ブロックアルゴリズム」を採用している。ブロックアルゴリズムとは、例えばディスクを4Kbytesなどの単位(ブロック)に分けて管理する方法である。ext2にジャーナリング機能を追加したものがext3である。ext2、ext3以外のファイルシステムで用いられているB-Treeとそのバリエーションは、バランス木(Balanced Tree)をベースとしたアルゴリズムである。 拡張機能としては、今回紹介する「動的iノード」と「エクステント」方式が挙げられる。「エクステント」は、ブロックアドレスの代わりに「論理セット」と呼ばれる「開始アドレス」「サイズ」「オフセット」を渡すことでアドレッシングを効率化する方式である。「動的iノード」はiノードを動的に付与する方法で、これまで存在していたiノード数の制約を解決するものとして期待されている。ReiserFSやJFS、XFSはこれら

    ブロックアルゴリズムとB-Treeアルゴリズム
  • 進化し続けるReiserFS

    Linux用ジャーナリングファイルシステムとしては古参ともいえるReiserFS。そのアルゴリズムや新バージョン「Reiser4」の機能について解説する。(編集局) ReiserFS概要 RiserFSは、Hans Reiser氏率いる開発チームにより1996年から開発が開始されたファイルシステムで、カーネル2.4.1から標準カーネルに取り込まれた。カーネル2.5からは機能強化されたバージョン4(Reiser4)が取り込まれている。 B*-Treeアルゴリズム NAMESYS(http://www.namesys.com/)の紹介の序文に、「ReiserFSは従来のデータベースで実装されてきたB-Treeアルゴリズムをファイルシステムに実装する試み」と書かれているように、ReiserFSは開発当初よりB-Treeアルゴリズムを効率よく実装することを目指していた。 Reiser氏を中心とする

    進化し続けるReiserFS
  • プログラミングは人生だ――まつもとゆきひろ ― @IT

    私がプログラミングを始めたのは中学校3年生のときでした。父が買ってきたシャープのポケットコンピュータ(PC-1210)でBASICを使うようになったのです。わずか400ステップしか入力できない小さなコンピュータでしたが、それでも自分の命令したとおりに動作するポケコンを見ていると、自分にはなんでもできるようなそんな「万能感」を感じさせてくれました。 それから四半世紀以上たちましたが、私がプログラミングから感じる「わくわく」は少しも減ることはありません。むしろ、どんどん増えているように感じます。長いプログラム経験を踏まえて、いま、感じるのは、 プログラミングは人生だ ということです。プログラムには人生のあらゆる側面が詰め込まれています。文字どおり、人生そのものといってもいい過ぎではないでしょう。……うーん、やっぱり、いい過ぎかな。 プログラミングはスポーツだ 皆さんの多くは若いときにスポーツに

    tettsyun
    tettsyun 2010/09/14
  • Python 3が後方互換性を捨ててでも求めたもの

    Python 3が後方互換性を捨ててでも求めたもの:よりPythonicなPythonを目指して(前編)(2/2 ページ) 8ビット文字列からユニコード文字列へ Python 3.0での大きな変更点の1つに、文字列型の変更があります。文字列型がユニコードベースに変更されたのです。 Python 2までは、組み込みのデータ型「文字列型(str型)」は単なる8ビットのデータ列でした。文字列型はASCII文字列を扱うには都合が良いのですが、日語のように多くの文字集合を持つマルチバイト文字を扱うには不便がありました。 例えば、8ビット文字列では複数バイトで構成される文字列の境界を判別する処理などを自前で行わなければなりません。Pythonはもともと欧米で開発された言語で、日語や中国語のような言語を扱うことは考えられていなかったのです。 Python 1.6および2.0からは、ユニコード文字列型

    Python 3が後方互換性を捨ててでも求めたもの
    tettsyun
    tettsyun 2010/07/15
    日本語処理, エンコーディング
  • C++開発者の皆さん。テスト、ちゃんとしていますか? − @IT

    第1回 C++開発者の皆さん。テスト、ちゃんとしていますか?:連載 C++開発者のための単体テスト入門(1/4 ページ) 連載目次 「ビッグバン・テスト」をご存じですか? アプリケーション全体を構築する数千行、数万行に及ぶコードをコンパイルし、いきなり全体を走らせてその動作を確認するテスト手法です。われわれプログラマーが絶対に過ちを犯さないならともかくも、そうではない現実を考えると、このようなビッグバン・テストは極めてつたないテスト法です(そもそも過ちを犯さないなら、テストの必要はないのですけど)。 テストとは、ひと言でいってしまえば「思ったとおりに動くかを検証すること」でしょうね。プログラムは思ったとおりには動きません。作ったとおりに動きます。従って、「思ったとおりに動くか」の検証とは「思ったとおりに作られているか」の検証にほかなりません。 ビッグバン・テストでも「思ったとおりに動くか」

    C++開発者の皆さん。テスト、ちゃんとしていますか? − @IT
  • 楽天版MapReduce・HadoopはRubyを活用 - @IT

    2008/12/01 楽天は11月29日、東京・品川の社で開催した技術系イベント「楽天テクノロジーカンファレンス2008」において、近い将来に同社のEコマースサービス「楽天市場」を支える計画があるRubyベースの大規模分散処理技術「ROMA」(ローマ)と「fairy」(フェアリー)について、その概要を明らかにした。 レコメンデーションの処理自体はシンプル 楽天市場では現在、2600万点の商品を取り扱い、4200万人の会員に対してサービスを提供している。この規模の会員数・商品点数でレコメンデーション(商品の推薦)を行うのは容易ではない。 ※記事初出時に楽天市場の会員数を4800万人としてありましたが、これは楽天グループのサービス利用者全体の数字でした。楽天市場の会員数は正しくは4200万人とのことです。お詫びして訂正いたします。 レコメンデーションの仕組みとして同社は、一般的でシンプルなア

    tettsyun
    tettsyun 2009/09/15
    MapReduce Hadoop fairy
  • @IT:オープンソース検索エンジン「Nutch」の実力

    Java FAQ(What's New)」の安藤幸央氏が、CoolなプログラミングのためのノウハウやTIPS、筆者の経験などを「Rundown」(駆け足の要点説明)でお届けします。(編集局) 検索エンジンの台頭 現在、インターネットを利用するユーザーにとっても、インターネットで仕事やプログラム開発を行っているユーザーにとっても検索エンジンはとても重要なものです。SEO(Search Engine Optimization)という業種も確立し、新規インターネットビジネスサイトを立ち上げる際や、既存サイトのアクセス数を増加させたい場合、SEOが重要な意味を持つようになってきています。つまりWebデザインだけでなく、Webサイト(ページ)がどのように検索エンジンとかかわってくるのか、SEO分析や、SEOに関するノウハウが重要視されます。 確かに便利な検索エンジンの台頭は歓迎されることです。一方

    @IT:オープンソース検索エンジン「Nutch」の実力
    tettsyun
    tettsyun 2009/07/16
    Search engine Nutch crawler
  • 1