タグ

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

  • 「Jaql」を使ってMapReduceをより簡単に

    Jaql(a query language desired for JSON:JSON用に位置づけられたクエリ言語)は、JSON型式のデータを処理するためのクエリ言語で、Apache HadoopのMapReduceを処理するための実装が存在します。日語では「じゃっくる」と発音します。ジャッカルに似ているため、一部のサイトにはジャッカルの写真が掲載されていました。 もともとはIBMのアルマデン研究所で研究・開発され、オープンソースへ提案されました。原稿執筆時点では、Apache Incubatorプロジェクトになっており、Google Codeのサイトで開発が進められています。 IBMアルマデン研究所のサイト Apache Hadoop用実装のダウンロードサイト 記事執筆時点では、つい先頃リリースされた、Jaql 0.5.1をベースに解説しています。 1. JSONの基礎 JSON(

    「Jaql」を使ってMapReduceをより簡単に
  • 400万行のコードを15分で見える化! プログラム解析ツール『Understand』で開発効率アップ

    システムの多機能化により、プログラムの内容が複雑化している。テクマトリックスの『Understand』は、プログラムの構造を可視化することで、ソースコードの解析時間を大幅に削減できる開発支援ツール。今回は同社の福永一寛氏に、Understandの機能や特徴について聞いた。 システムの多機能化により、プログラムの内容は複雑化している。既存コードの改修や多人数での開発における情報共有のためには、プログラム構造の理解が必須だが、ドキュメントと実装内容とが乖離している場合も多く、解析自体に工数がかかることもある。テクマトリックスの『Understand』は、プログラムの構造を可視化することで効率的なソフトウェア開発をサポートするソフトウェア開発環境。「組込みシステム開発技術展(ESEC)」にて、同社の福永一寛氏にその特徴を聞いた。 ソースコードの解析作業時間を大幅に削減する『Understand』

    400万行のコードを15分で見える化! プログラム解析ツール『Understand』で開発効率アップ
  • Javaの限界を超えて実用化を目指す 新開発言語「Scala」のメリットとは~後編

    はじめに 前回に引き続き、Javaの後継候補として注目されているプログラム開発言語「Scala」について説明していきます。今回は、ScalaJavaの代替として使える点(「ベターJava」として使える点)に注目します。 シリーズ前編として、前回はScalaのメリットや、基礎的な文法について説明しました。シリーズ後編となる今回は、プログラムのコンパイルや、データベース接続について扱っていきます。 これまでの連載 Javaの限界を超えて実用化を目指す 新開発言語「Scala」のメリットとは~前編 コンパイルとデータベース接続 ここからはプログラムのコンパイルとデータベース接続を扱います。なお、以降すべてのプログラムを実行するためにはエディタの文字コードを、UTF-8に設定する必要があります(UTF-8以外の文字コードでは、日語などの取り扱いに失敗します)。 Scalaでのソースコードの記述

    Javaの限界を超えて実用化を目指す 新開発言語「Scala」のメリットとは~後編
    inak0shi
    inak0shi 2009/11/25
  • Djangoチュートリアル(前編)

    はじめに 近年、Webアプリケーション開発で用いるプログラミング言語として、Lightweight Language(以降LL)と呼ばれるスクリプト言語が人気を博しています。稿では、そのスクリプト言語の中からPythonとWebアプリケーションフレームワークのDjango(ジャンゴと読む)を紹介します。 Pythonの大きな特徴として、「言語仕様が小さくシンプルであり、簡潔で読みやすいアプリケーションを作れる」という点が挙げられます。DjangoPythonの簡潔さをうまく活かし、シンプルかつ格的な開発ができるWebアプリケーションフレームワークです。稿ではこのDjangoによるアプリケーション開発の基をチュートリアル形式で説明します。 対象読者 PythonによるWebアプリケーション開発に興味がある方 日頃、PerlRubyPHPJava、C#などPython以外のプロ

    Djangoチュートリアル(前編)
  • Active Directoryの仕組み

    Active Directoryにより、企業内システムのID管理のプラットフォームが提供されます。Active Directoryをインストールしたサーバーそれぞれの機能を解説することで、このActive Directoryの仕組みの全体像を紹介します。 ドメインコントローラ Active Directoryをインストールしたサーバーは、ドメインコントローラ(DC)と呼ばれます。このドメインコントローラがActive Directoryのサービスを提供するサーバーとなります。 ドメインコントローラには、NTDSと呼ばれるデータベースファイル(ntds.dit)が作成されます。このNTDSに、Active Directoryのデータが格納されます。ドメインコントローラは、このデータベースを利用して、ユーザーアカウントの検索や認証、グループポリシーやセキュリティポリシーの適用などを行います。

    Active Directoryの仕組み
  • ヒープソートのアルゴリズム

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

    ヒープソートのアルゴリズム
    inak0shi
    inak0shi 2009/05/26
    ヒープソートの必要十分な解説+C#実装
  • cut、head、tail、sort・・・定番のフィルタコマンドを使いこなす! ~業務でラクするためのUNIXテクニック~

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

    cut、head、tail、sort・・・定番のフィルタコマンドを使いこなす! ~業務でラクするためのUNIXテクニック~
    inak0shi
    inak0shi 2009/05/26
    cut, paste, seqなど便利な使い方
  • GNU tar 1.22リリース gzipより圧縮効率が大きく向上した「xz」をサポート

    GNUプロジェクトは3月5日、GNU tar 1.22をリリースした。このバージョンでは、新たに「xz圧縮」をサポートする“--xz”オプションが追加された。この見慣れない圧縮形式は、.lzmaを置き換えるものとして、LZMA UtilsをリリースしてきたTukaaniプロジェクトが公開したフォーマット。拡張子は.xzだ。 GNUプロジェクトは3月5日、GNU tar 1.22をリリースした。tarは、複数のファイルを1つにまとめるUNIX標準のファイルアーカイブ。GNU tarバージョン1.22では、新たに「xz圧縮」をサポートする“--xz”オプションが追加された(“-J”にショートカットがアサインされている)。 この見慣れない「xz」という圧縮形式は、これまでLZMA UtilsをリリースしてきたTukaaniプロジェクトが1月29日に正式公開したフォーマットで、拡張子は.xz。既存

    GNU tar 1.22リリース gzipより圧縮効率が大きく向上した「xz」をサポート
  • 流行りのクラウドサービスを操ってみよう!Amazon EC2/S3環境構築のすべて一覧

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

    流行りのクラウドサービスを操ってみよう!Amazon EC2/S3環境構築のすべて一覧
  • Google基盤ソフトウェアのオープンソースクローンを使ってみる一覧

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

    Google基盤ソフトウェアのオープンソースクローンを使ってみる一覧
  • 高速かつ省メモリなbit vector「sucBV」を作る

    はじめに 大規模なデータを扱うアプリケーションでは、速度とともに作業領域量も大きな問題となります。作業領域がメインメモリに収まらない場合、スワッピングが発生し、大幅な速度低下につながります。そのため近年、データ構造は高速なだけでなく、作業領域量が小さいことも求められています。今回紹介するデータ構造は「操作付きbit vector(SUCcinct Bit Vector:sucBV)」です。sucBVは、圧縮索引やSuccinct Data Structureなど、データをコンパクトに表現する際に重要なデータ構造です。STLのvector<bool>と同様に、bit列情報B[0....n-1]を保存します。このbit列情報は前もって与えられ、変更が無いことを前提とします。sucBVは、次の二つの操作を定数時間でサポートします。 rank(p,bit)――B[0...p]中のbit(bitは1

    高速かつ省メモリなbit vector「sucBV」を作る
  • 高速かつ省メモリで文字列を扱うデータ構造「wavelet tree」

    はじめに 大規模なデータを扱うアプリケーションでは、速度とともに作業領域量も大きな問題となります。作業領域がメインメモリに収まらない場合、スワッピングが発生し、大幅な速度低下につながります。そのため近年、データ構造は高速なだけでなく、作業領域量が小さいことも求められています。今回紹介するのは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++

    高速かつ省メモリで文字列を扱うデータ構造「wavelet tree」
  • 高速に符号/復号を行える最小冗長符号「Canonical Huffman Code」

    対象読者 C++の利用者を対象としています。データ圧縮の基礎を知っていることが望ましいです。 必要な環境 C++、32bit環境を想定しています。Windows XP上のVisual Studio C++ 2005、gcc 3.2.2で動作確認済みです。 Huffman Codeの概要 初めに、Huffman Code(以下、HC)について簡単に説明します。データ中に出現する各文字の出現確率が既に分かっている、もしくは予測できる場合に、多く出現する文字に対し短い符号を割り当て、あまり出現しない文字に対し長い符号を割り当てることで、データ全体の符号長を短くすることができます。このように各文字の符号の長さが違う符号(可変長符号)は、元のデータに間違いなく復元できる条件は必要ですが、HCはさらに次の条件を満たした符号を決定します。 瞬時復元可能である データ全体の符号長が最小である 「瞬時復元可

    高速に符号/復号を行える最小冗長符号「Canonical Huffman Code」
  • Amazon EC2を実践的に使ってみよう ~Amazon EC2/S3環境構築のすべて~

    連載では、Amazonが提供するクラウドコンピューティング・サービス「Amazon Web Services(AWS)」の概要から具体的な使い方までを紹介していきたいと思います。今回は、「Amazon EC2」をさらに便利に活用していくための実践的なオプションや、便利なツールを紹介していこうと思います。 はじめに 前回は、「Amazon EC2」を使用するための準備と、実際にインスタンス(仮想サーバ)を起動させるための基的な手順を紹介しました。 今回は、その「Amazon EC2」をさらに便利に活用していくための実践的なオプションや、便利なツールを紹介していきます。 これまでの記事 第1回 「AWSの概要と登録手順 ~Amazon EC2/S3環境構築のすべて~」 第2回 「Amazon S3を使いこなしてみよう ~Amazon EC2/S3環境構築のすべて~」 第3回 「Amazon

    Amazon EC2を実践的に使ってみよう ~Amazon EC2/S3環境構築のすべて~
  • 「実現したいことを計算機の問題に置き換えることが『技術力』」、伊藤CTOが“はてな流”大規模データ処理の極意を語る

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

    「実現したいことを計算機の問題に置き換えることが『技術力』」、伊藤CTOが“はてな流”大規模データ処理の極意を語る
  • 高速な算術圧縮を実現する「Range Coder」

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

    高速な算術圧縮を実現する「Range Coder」
  • Hadoopのインストールとサンプルプログラムの実行:CodeZine

    前回はGoogleの基盤技術とそれに対応するオープンソースソフトウェアとして、Hadoop & hBaseを紹介しました(図1 参照)。今回はHadoopを1台にインストールし、サンプルプログラムを動かします。次にHDFSとMapReduceのアーキテクチャを解説します。最後にサンプルプログラムのソースコードを解説します。2. Hadoopの概要 Hadoopは主にYahoo! Inc.のDoug Cutting氏によって開発が進められているオープンソースソフトウェアで、GoogleFileSystemMapReduceというGoogleの基盤技術のオープンソース実装です。Hadoopという名前は開発者の子供が持っている黄色い象のぬいぐるみの名前に由来しています。HadoopはHDFS(Hadoop Distributed File System)、Hadoop MapReduce Fr

  • 1