タグ

ブックマーク / gihyo.jp (387)

  • 第1回 RDBMSとNoSQLデータベース | gihyo.jp

    はじめに NoSQL(Not Only SQL)という言葉が注目を集めています。これは「RDBMSが得意なことはRDBMSで、不得意なところにはRDBMSにこだわらず、用途に合ったデータストアを使いましょう』という考え方です。最近では、いわゆるNoSQLデータベース (⁠key-valueストアや各種データベース⁠)⁠ が次々と登場してきています。 そこで今回から数回に渡り、それぞれのNoSQLデータベースの特徴や具体的な使い方について紹介していきます。 RDBMSの強みとは そもそも、MySQLやPostgreSQLなどのRDBMSの弱みを補うため、様々なNoSQLデータベースが登場してきたわけですが、RDBMSにはたくさんの強みがあることも忘れてはいけません。 RDBMSの強み データの一貫性 (⁠トランザクション) 更新時のコストが少ない(JOINが前提でテーブルが正規化されている)

    第1回 RDBMSとNoSQLデータベース | gihyo.jp
  • 第1回 サーバ仮想化の鍵を握る「アプリケーション視点」①サーバ仮想化の「理想と現実」 | gihyo.jp

    はじめに この連載では、大規模システム基盤としての実績をもつ、日立製作所のSOAプラットフォーム「Cosminexus(コズミネクサス⁠)⁠」のホワイトペーパーの紹介を通じて、システム基盤の信頼性を確保するための技術や、全体最適に向けたシステム構築に取り組むための考え方を紹介していきます。 第1回目のテーマでは「サーバ仮想化」について取り上げます。 サーバの仮想化とは? 現在のシステムでは、「⁠サーバ仮想化⁠」⁠、「⁠デスクトップ仮想化⁠」⁠、「⁠ストレージ仮想化」などのさまざまな適用箇所での仮想化技術の利用が始まっています。仮想化のもたらす恩恵は数多く、導入の目的は分野によって異なります。今回から3回にわたって「サーバの仮想化」を取り上げます。サーバ仮想化が求められる背景、適用メリット、運用時における課題の紹介を通じて、仮想化導入を成功に導くために考えておくべきポイントとなる「アプリケー

    第1回 サーバ仮想化の鍵を握る「アプリケーション視点」①サーバ仮想化の「理想と現実」 | gihyo.jp
    okinaka
    okinaka 2010/05/14
  • 第2回 Cassandraのインストールから起動まで | gihyo.jp

    前回はCassandraとは何かを簡単に説明しました。第2回では、Cassandraを実際にインストールして開発環境で動かしてみましょう。 Cassandraをインストールしよう 環境を確認する まずは環境の確認をしましょう。筆者の環境は以下のようになっています。 Windows 7 Professional Sun JDK 1.6.0_18 64bit Eclipse 3.5.1 この連載ではおもにWindowsでの環境を想定しています。ただ、CassandraはJavaベースなので、MacLinuxなど別OSでも同様に動くはずです。 Cassandraをダウンロードする 連載では現時点での最新版Cassandraha 0.6.1を使います。以下のサイトからダウンロードできます。 The Apache Cassandra Project URL:http://cassandra.ap

    第2回 Cassandraのインストールから起動まで | gihyo.jp
  • 第41回 Sinatra 1.0の世界にようこそ | gihyo.jp

    はじめに SinatraはRubyで記述されたWebアプリケーションを素早く、簡単につくるためのDSL(ドメイン固有言語)です。 すでに第7回で、原悠さんにより「小規模Webアプリのためのフレームワーク、Sinatra」というかたちで紹介されています。 簡潔な文法で、高い表現力を持つSinatraは、アメリカRubyコミュニティや企業を中心に、瞬く間にユーザを増やしました。また、Rubyという一言語に留まらず[1]⁠、Sinatraを模したフレームワークが多く作られている現状からも、SinatraはWebアプリケーション開発そのものにも大きな影響を与えたと言えます。 最近ではここ日でも、個人利用を中心に、そこかしこでSinatraを使って開発をしている、という話を聞くようになりました。筆者自身、1ユーザとして現在業務で利用しており、1年前は知る人ぞ知る存在だったSinatraは、実際に

    第41回 Sinatra 1.0の世界にようこそ | gihyo.jp
    okinaka
    okinaka 2010/05/06
  • 第1回 NoSQL、そしてCassandraとは | gihyo.jp

    NoSQLミドルウェアの特徴をもう少し細かく挙げてみます。分量の都合もあり個別には触れませんが、それぞれのNoSQLミドルウェアで差別化部分に関してはかなり詳細に説明がされていますので、ぜひそちらを参照してみてください。 高速に動作する リレーションモデルではないデータモデル スケールアウト型アーキテクチャ コモディティサーバによって構築される スキーマフリー SPOF(単一故障点)を持たない 自動的に複数台へレプリケーションする イベンチュアルコンシステンシまたは一貫性の選択が可能 SQLのような強力なクエリ言語を持たず、シンプルな問い合わせしかできない Cassandraとは何か NoSQLミドルウェアの筆頭といえばGoogle BigTableやAmazon Dynamoですが、オープンソースの世界でもいろいろなものが出てきています。その中でも最近特に注目を集めているのが、Apach

    第1回 NoSQL、そしてCassandraとは | gihyo.jp
  • 第117回 UbuntuとEmacsでプログラミングをはじめよう(中編) | gihyo.jp

    先週に引き続き、今週はC言語以外の言語や開発をサポートするための、いくつかの機能を紹介します。 scratchバッファでEmacs Lispを使ってみよう ご存じの通り、Emacs LispはEmacsで使われているLispの方言です。EmacsはC言語で書かれたコア部分以外のほとんどがこのelispによって実装されており、ユーザはelispによってEmacsそのものを拡張することができます。 Emacsの設定ファイルである.emacsもelispのプログラムそのもので、Emacsは.emacsに書かれたコードを評価することで、設定を行っています。 といっても、そんなに難しいものではありません。Emacsを起動した時に、最初に開かれるバッファ *scratch* は、デフォルトでメジャーモードが lisp-interaction-mode になっており、このモードではelispの式をその場

    第117回 UbuntuとEmacsでプログラミングをはじめよう(中編) | gihyo.jp
  • 第12回 ボロノイ図の作成(後編) | gihyo.jp

    はじめに 前回は、半平面の交差にもとづいてボロノイ図を計算するための考え方を説明しました。最終回となる今回は、疑似半平面の生成を実装した上で、ボロノイ図作成のプログラムを完成させます。 凸多角形による疑似半平面表現 前回も述べた通り、ある母点のボロノイ領域を求めるには、その母点と他の各母点の垂直二等分線から作られる全ての半平面の交差を計算する必要があります。すでに学習済みの凸多角形の交差計算方法を、そのまま半平面の交差計算にも利用するため、半平面を擬似的に凸多角形へと変換することを考えます。 図1を見てください。点線で囲まれた正方形の内部が、実際にボロノイ図の計算を行いたい座標範囲だとします。この正方形を取り囲むように、三角形が置かれています。(0, -10)といった頂点座標のとり方に特別な意味はなく、正方形を覆い尽くしていることがポイントです。 図1 境界三角形の設定 ある直線が与えられ

    第12回 ボロノイ図の作成(後編) | gihyo.jp
    okinaka
    okinaka 2010/04/12
  • 第11回 ボロノイ図の作成(前編) | gihyo.jp

    はじめに 連載では、ごく単純な直線の式からスタートし、線分、多角形とステップアップしながら計算幾何を学習してきました。その最後の締めくくりとして、今回からは、ボロノイ図の作成方法を見ていくことにします。 ボロノイ図とは まず、第1回でも簡単に触れたボロノイ図について、改めて説明します。 平面上に複数の母点が配置されているとき、それぞれの母点に最も近くなる点を集めると、母点ごとに「勢力図」のような領域が形成されます。この領域分割図をボロノイ図(voronoi diagram)といいます(図1⁠)⁠。 図1 ボロノイ図 ボロノイ図の各領域をボロノイ領域(voronoi region)と呼び、ボロノイ領域の境界線をボロノイ辺(voronoi edge)と呼びます。 ボロノイ辺の性質 ボロノイ図において、ボロノイ辺が持つ性質を考えてみましょう(図2⁠)⁠。 図2 2つの母点とボロノイ辺 母点aと

    第11回 ボロノイ図の作成(前編) | gihyo.jp
    okinaka
    okinaka 2010/03/30
  • 最終回 はじめMath! Javaでコンピュータ数学 総まとめ | gihyo.jp

    どんな小さな山でも、地図なしに登るのは不安です。目的の山頂を目指して、途中の絶景ポイントを巡りながら、安心して歩き続けるためには地図が不可欠です。歩き慣れない道ならなおさらです。高い山になれば、地図だけではまだ不安です。たいていの山には要所要所にチェックポイントがあります。このチェックポイントを追えば一応山頂に着くでしょう。しかし、一番は道案内人です。初心者が途中困ったことになるのを、前もって避けさせてくれるからです。 連載も78回(現時点)の長きに渡りました。今回で連載を締めくくるに当たって、全体を見渡す地図を残します。絶景ポイントのリスト代わりに、用語一覧を、道順のチェックポイント代わりに語句の索引(用語総解説)を用意します。 今回の記事が、皆さんにとっての登山案内人としてお役にたてれば幸いです。 図78.1 目次・索引は書物の案内人 連載で取り扱った内容 はやいもので、連載が始まっ

    最終回 はじめMath! Javaでコンピュータ数学 総まとめ | gihyo.jp
    okinaka
    okinaka 2010/03/12
  • 第9回 検索エンジンの開発にあたって | gihyo.jp

    はじめに 前回までで、検索エンジンの基となる仕組みの大枠は説明しました。 今回は、復習を兼ねてこれまでの連載全体を見ていき、検索エンジンを作る上で説明が足りなかった部分を補足していこうと思います。連載では実際のコードはあまり載せられませんが、ぜひこの際に簡単な検索エンジンを作ってみることをお勧めします。 全体の構成 第2回で紹介した検索エンジンの構成をもう一度見てみましょう。 図1 検索エンジンの構成 検索エンジンは索引とその索引を構築する部分、そしてその索引を検索する部分の3つに分けられることを説明しました。連載では、索引に関しては第3~6回、構築方法に関しては第7回、そして検索方法に関しては前回の第8回でそれぞれ説明してきました。各項目をとても足早に説明してきましたが、一応全部の要素がカバーされていますので、これまでの知識を使って簡単な検索エンジンを作ることはできてしまいます。

    第9回 検索エンジンの開発にあたって | gihyo.jp
    okinaka
    okinaka 2010/03/03
  • 第33回 RubyistのためのMongoDB入門(2) | gihyo.jp

    第31回に続いて、今回はMongoDBRubyから使う方法をご紹介します。 MongoDBRubyから使うためのライブラリ MongoDBRubyから使うには、以下のライブラリ等を利用する必要があります。 Ruby driver for MongoDB [GitHub, チュートリアル] RubyからMongoDBを使う上で基となるのが、公式のRubyドライバです。 MongoDBのほぼ全機能にアクセスできるため、複雑なことをしたいときには頼りになるでしょう。後述する他のライブラリも内部ではこのドライバを使っています。 ドキュメントをオブジェクトにマッピングしてActiveRecordライクに扱う、オブジェクトマッパーの機能を提供するライブラリもあります。今回は代表的なものを2つご紹介します。 MongoMapper [GitHub, 作者による紹介] 比較的ActiveRecor

    第33回 RubyistのためのMongoDB入門(2) | gihyo.jp
    okinaka
    okinaka 2010/03/02
  • 第4回 仮想化はサーバ管理者を救うのか?─VMware ESXiで行う運用 | gihyo.jp

    事業を展開する企業が抱える問題として、新サービスのリリースを優先した結果、システムが乱立しTCOが増大していることに気が付かない企業などもあるかと思います。とくに、企業に体力があり勢いに乗る事業などを展開する場合、次々と新しいサービスを提供することに衆目が集まり、基盤やインフラまでなかなか目が行き届かず、結果としてSIerなどが仕切っていたり、外部ASPなどに任せてしまったり、思いつきでサーバやデータセンターなどを増やして対応しようなどといったこともあるようです。 今回は、これらの問題点への対応として、今業界を賑わせている「サーバ仮想化」を利用した場合、どの程度解決、貢献できるのか? ─その可能性も含めてですが─ 実際に企業が初めて利用する場合のメリット/デメリットについて説明できればと思います。 数年前から徐々に注目を集めてきたサーバ仮想化ですが、CPUがマルチコア化した昨今、一気に採用

    第4回 仮想化はサーバ管理者を救うのか?─VMware ESXiで行う運用 | gihyo.jp
    okinaka
    okinaka 2010/02/25
  • 第32回 Reactorで非同期処理をやってみよう(2) | gihyo.jp

    おさらい 第29回では、非同期処理を実現する方法としてReactorパターンを紹介しました。 一般的に非同期処理として使われているスレッド処理と違い、Reactorパターンはシングルスレッドで動作し、スレッド間のデータの共有に悩む必要はありません。しかしReactorパターンはコードが直感的ではなく、慣れていない人には取っつきにくいものであることも確かです。 そのため、Reactorパターンを意識せずに非同期処理を実現するためのライブラリがRubyにはたくさん用意されています。 今回は、その中でもよく使われているEventMachineについて簡単に説明します。 EventMachineとは EventMachineとは、Reactorパターンを利用して非同期処理を実現し、高レベルなネットワークインターフェースを提供するライブラリです。 複雑なReactorパターンによる処理はブラックボッ

    第32回 Reactorで非同期処理をやってみよう(2) | gihyo.jp
    okinaka
    okinaka 2010/02/23
  • 第109回 HDDレコーダを使いこなす(1)DLNAクライアント | gihyo.jp

    第86回で、UbuntuをDLNAサーバにする方法を紹介しました。今回は、DLNA機能を持つHDDレコーダに対して、UbuntuをDLNAクライアントとして使う方法を紹介します。 デジタル放送は見られません 第86回ではDLNAサーバとして、MediaTombを使用していましたが、今回は、DLNAサーバとして東芝製のハードディスク&DVDレコーダ、VARDIA RD-S502を使います。 そして、はじめにお断りしておきます。RD-S502には、デジタル放送を録画したファイルをネットワーク経由で配信するためのDTCP-IPに対応したDLNAサーバ機能を持っていますが、現時点でDTCP-IPの仕組みに対応したUbuntu用の視聴ソフトウェアが存在しないため、視聴できません[1]⁠。Ubuntuから閲覧できるのは、アナログ放送を録画したもののみです[2]⁠。 DLNA配信を有効にする RD-S5

    第109回 HDDレコーダを使いこなす(1)DLNAクライアント | gihyo.jp
  • 第31回 RubyistのためのMongoDB入門(1) | gihyo.jp

    はじめに ここ最近、NoSQLというキーワードが注目を集めています。 リレーショナルデータベースは、一般的にスケールアウト(サーバの台数を増やして性能向上を図る手法)が難しく、特に大規模サービスにおいてパフォーマンス上のボトルネックとなりえます。また、タグやグラフ構造のようなデータは関係モデルに馴染みにくいため、それらを扱う際にはアプリケーションコードもぎこちないものになりがちです。 これらの問題を背景に、何にでもリレーショナルデータベースを使うのではなく、用途に応じてKVSなど他のデータストアを選択する流れが広まりつつあります。このムーブメントがNoSQL(Not Only SQL)と呼ばれているものです。 今回は、NoSQLなデータベースの1つであるMongoDBをご紹介します。 MongoDBとは MongoDBは高いパフォーマンスとスケーラビリティを特徴とするドキュメント指向型デー

    第31回 RubyistのためのMongoDB入門(1) | gihyo.jp
    okinaka
    okinaka 2010/02/15
  • 第2回 Linux KVMで動かすWindows | gihyo.jp

    KVM+Windowsを高速化するVirtio Linux KVM(以下KVM)は、Linuxカーネルに組み込まれた仮想化環境ですが、KVM上の仮想マシンではLinuxだけでなくWindowsも動作させることができます。これはKVMが実現している仮想マシンが「完全仮想化」であるためです。 完全仮想化はOSに修正が必要ない点がメリットですが、I/Oなどの速度面ではOSに修正を加える「準仮想化」が有利な場合があります。そこで、I/Oを司るデバイスドライバを準仮想化で動作させることで性能を向上させる部分的な準仮想化の方式が、現在の主流となっています。このデバイスドライバを「パラバーチャル(準仮想化)ドライバ」と呼びます。 KVMでは、I/Oの準仮想化方式として「Virtio」が採用されています。VirtioはVirtualBoxなどでも採用されている実装になっています。今回は、VirtioのWi

    第2回 Linux KVMで動かすWindows | gihyo.jp
    okinaka
    okinaka 2010/02/13
  • 第30回 RubyとHadoopで分散処理 Hadoop Streamingで外部データを読み込む | gihyo.jp

    前回のおさらい 第28回ではHadoop Streamingの仕組みについて説明しました。今回は、実際にHadoop Streamingを利用してデータ解析したときの具体的な話や、利用してみて困った(ハマった)Hadoop Streaming特有の問題とその解決法について紹介していきます。 実際に利用してみて困った(ハマった)こと さて、第28回でも紹介しましたが今回Hadoopを利用したのはopen('http://tabemiru.com/2009'); return false;">たべみるのデータ解析のためです。たべみるのデータ解析では、材名や地域名といった特定の値ごとにデータをまとめる処理が多く、またその処理速度が遅いのが問題だったのですが、このような処理はHadoop上(Ruby)でも比較的簡単に実装することができました。 それで最初は「これはスムーズにHadoop上に処理を

    第30回 RubyとHadoopで分散処理 Hadoop Streamingで外部データを読み込む | gihyo.jp
    okinaka
    okinaka 2010/02/02
    URL (0029)と 回(30)が異なることもあるのね。
  • 第3回 「サーバ集約」を実行するための検証ポイント | gihyo.jp

    今回は、サーバを集約する際に行う検証について、物品の調達や環境の構築、項目の精査より実際の検証を実施し、番機器調達の台数根拠と設定項目等に関する設計の一歩を踏み出す部分までを、実例に近い形で紹介したいと思います。 検証項目、結果数値に関しては可能な限り具体的に出そうと思います。これらはできるだけユーザ企業側がポリシーを持ち、主導的に実施するのが好ましいでしょう。 ※ 前回、VMware ESXiに関しても記載する予定としていましたが、ボリュームの関係上、次回とさせていただきます。 なぜ検証を行うのか? 前回までに、現行踏襲の基礎数値の定義付け→机上の計算による集約台数を算出しました。会社や案件によっては、机上の計算から稟議が通ったのを受けて、すぐに番機器発注という流れもあるかもしれませんが、連載では検証局面を設け、1台あたりの処理性能の確認と、異なるスペックによるハードウェア、ミドル

    第3回 「サーバ集約」を実行するための検証ポイント | gihyo.jp
    okinaka
    okinaka 2010/01/29
  • 第29回 Reactorで非同期処理をやってみよう(1) | gihyo.jp

    はじめに WebサービスAPIをコールするような、ネットワークを介した通信処理は、今日では頻繁に行われています。 ローカルマシンのみで完結する処理と比べると、通信が必要な処理は多大な時間が必要になります。相手サーバへの接続、相手サーバ側での処理、相手サーバからの受信など、何もすることなくただ待つだけの時間が存在します。 この無駄な時間の間に他の処理ができるならば、トータルの処理時間を大幅に短縮することが可能になります。これを実現するためにスレッドがよく使われています。しかしマルチスレッドプログラミングはいろいろと注意を払う点も多く、使いにくさを感じている方も多いのではないでしょうか。 今回はReactorパターンという、マルチスレッドとは違ったアプローチで非同期処理を実現してみたいと思います。 複数のwebサーバからHTML文章を取得してみる 同期処理 ひとまず非同期処理を忘れて、シーケ

    第29回 Reactorで非同期処理をやってみよう(1) | gihyo.jp
    okinaka
    okinaka 2010/01/28
  • 第1回 SEOツールを使いこなそう!(1)検索順位チェックツール―「順位チェック300」と「SEO Talk」 | gihyo.jp

    2010年版SEO体得講座 第1回SEOツールを使いこなそう!(1)検索順位チェックツール―「順位チェック300」と「SEO Talk」 検索順位チェックツールの紹介 はじめまして。株式会社ディーボの藤沢です。今回から当コラムを担当させていただきますのでよろしくお願いします。コラムの内容ですが、当社でリリースしているSEOツールがたくさんありまして、そのツールの紹介をするのがひとつ、もうひとつは、毎月の検索エンジンのアルゴリズム動向を当社で継続調査しておりまして、そのレポート記事です。この2つを交互に出していこうと思っておりますのでよろしくお願いします。 今回はSEOツールのご紹介で、検索順位チェックツールです。 SEO対策は検索順位の向上を目指すものですので、その成果を確認するためには、検索結果の順位をこまめにチェックする必要があります。しかし、検索結果の画面で、対象のサイトが何位になっ

    第1回 SEOツールを使いこなそう!(1)検索順位チェックツール―「順位チェック300」と「SEO Talk」 | gihyo.jp
    okinaka
    okinaka 2010/01/18