タグ

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

  • 第10回 動的な索引構築 | gihyo.jp

    はじめに 今回からは、近年の話題や少し発展した話題について触れていく予定です。 第7回では、転置索引の静的な構築方法について触れました。今回は、索引に対して文書のインクリメンタルに追加していく方法について触れていきます。 動的な索引構築の必要性 第7回の復習になりますが、索引の構築方法には"静的"な方法と"動的"な方法が存在します。英語ではそれぞれ、Offline Index Construction、Online Index Constructionと呼ばれています[1]⁠。 文書が頻繁に追加される場合や索引が大規模な場合、文書の追加の度に索引を作り直すことは非常に高コストとなり現実的ではありません。このような場合は、動的な構築方法により索引をインクリメンタルに更新していくことで対応することができます。情報が絶えず追加されている近年のWeb上では、とても重要な構築方法となります。 メモリ

    第10回 動的な索引構築 | gihyo.jp
  • 第2回 完全版:ブラウザとデバッグ環境 | gihyo.jp

    こんにちは、太田です。前回はクロスブラウザの入口として、各ブラウザの特徴をまとめつつ、実際にクロスブラウザなコードを紹介しました。今回はクロスブラウザ対策における基である、各ブラウザ環境の構築について解説したいと思います。 前回紹介した通りブラウザにはたくさんの種類・バージョンがあります。それぞれが動作する環境を用意するだけでも、一苦労ではすみません。なるべく少ないマシンで、各バージョンをインストールして、さらにデバッグするための環境作りについて紹介します。なお、Safari以外はWindows環境を想定しています。さらに、特に断りがない限りはWindows XP SP3をベースに解説させていただきます。ご了承ください。 各ブラウザのデバッグ環境は近年目覚しいほどの進化を遂げています。統合デバッグ環境の草分けであるFirebugを筆頭に、Safari/Chrome(WebKit)のWeb

    第2回 完全版:ブラウザとデバッグ環境 | gihyo.jp
  • 第5回 SQLで木構造を扱う~入れ子集合モデル (2)入れ子集合モデルにおける検索 | gihyo.jp

    入れ子集合モデルにおける検索 ルートとリーフを求める まず入れ子集合の検索で基となる考え方を理解しましょう。それは「包含関係を調べる」ことです。 たとえば、ルート(ここで言う足立社長)とリーフ(猪狩、木島氏ら)を求めることを考えます。リーフの円は、自分の中に下位の円を一つも含まないという特性を持ちます。したがって、NOT EXISTSによって表現できます(リスト1、図5⁠)⁠。 リスト1 リーフの円を求める SELECT * FROM OrgChart Boss WHERE NOT EXISTS (SELECT * FROM OrgChart Workers WHERE Workers.lft > Boss.lft AND Workers.lft < Boss.rgt); 図5 リスト1の実行結果

    第5回 SQLで木構造を扱う~入れ子集合モデル (2)入れ子集合モデルにおける検索 | gihyo.jp
  • 米Yahoo!、社内で使われているWebプロキシキャッシュ「Traffic Server」をオープンソース化 | gihyo.jp

    濃縮還元オレンジニュース 米Yahoo!、社内で使われているWebプロキシキャッシュ「Traffic Server」をオープンソース化 2009年11月4日、米Yahoo!はWebプロキシキャッシュ「Traffic Server」をオープンソースとして公開しました。プロキシキャッシュとは、よくアクセスされるコンテンツをキャッシュして高負荷なHTTPトラフィックを効率良くさばくための技術です。ほかに有名なものでは「Squid」があります。 Traffic ServerはC++で書かれており、コード量は数十万行にも及びます。またマルチスレッドで動作し、一般的なクアッドコアマシンで秒間リクエスト数が3万を超えるなど、非常に高速に動作します。実績も申し分 なく、米Yahoo!のトップページやメール、スポーツ、ニュースなど多くのサービスで使われています。 元をたどると、2002年に米Yahoo!によ

    米Yahoo!、社内で使われているWebプロキシキャッシュ「Traffic Server」をオープンソース化 | gihyo.jp
  • 第3回 Ustream.tvでWebカメラやビデオカメラを使って中継してみよう | gihyo.jp

    野外活動や机の上での作業、イベントなどの模様をインターネット中継するには、通常、Webカメラやデジタルビデオカメラを利用します。そして、カメラによっては配信するために別のハードウェアも必要になる場合があります。今回は、これらの機材を使った配信に関してまとめてみます。 USB接続型のWebカメラを利用した配信 まずは金銭面で敷居の低い、USB接続型のWebカメラを使った配信を試してみましょう。 Note: Webカメラには様々なタイプがありますが、稿ではUSBで接続する外付けタイプの小型カメラを指すことにします。 Webカメラを準備します。最近では様々なタイプのWebカメラが販売されています。購入する場合には、Webカメラの設置位置をよく考えて選ぶようにしましょう。設置位置によっては、Webカメラを固定するための三脚用途のアームやスタンドが必要になります。そして、Ustream.tvの中継

    第3回 Ustream.tvでWebカメラやビデオカメラを使って中継してみよう | gihyo.jp
  • 第1回 クラウドをコントロールするということの意義 | gihyo.jp

    誰もが大規模インフラを試せる時代がやってきた 第1回では、クラウドコンピューティング環境のひとつとして、プログラマから見たAmazon EC2の魅力と、そのような環境を使いこなすためのオープンソースソフトウェアWakameについて概要を紹介いたします。 私たち開発者はWebシステムのスケールアウトについてのベストプラクティスを世界中から得ることができます。 利用するプロダクトを各々スケールアウトさせるノウハウがやっと一般的になってきましたが、運用まできちんとまとめられたものはまだこれからと言う状況です。 それもそのはず、スケールアウトさせられるほどインフラに投資された環境で、実際に運用をしてみた技術者は少ないのです。 昨今、運用業務が効率化できると言うこともあって、インフラの仮想化技術に注目が集まるようになりました。 仮想化技術は究極のポータビリティを実現し、物理的に結ばれたハードウェアと

    第1回 クラウドをコントロールするということの意義 | gihyo.jp
  • 第72回 screen-profiles(&quot;byobu&quot;)を使う | gihyo.jp

    Ubuntu 9.04では様々な新機能が追加されました。その中には"screen-profiles"と名付けられた、GNU Screenの設定集が含まれています。これはターミナルにCPUやメモリの利用率、無線LANの接続品質・アップデータの有無などなど、多くのインジケータを表示することができるものです。今回はこのscreen-profilesの使い方を紹介します。あわせて、screen-profilesの最新版、"byobu"(屏風)も紹介します。 screen-profilesの概要 GNU Screenは第19回でも触れた通り、ターミナルを頻繁に利用するユーザーにとっては欠かせないものです。sshでログインしてScreenを起動して作業を行い(screen⁠)⁠、Screenをdetach(screen -r)して再接続、といった使い方は、ターミナルを中心に作業を行う場合の定石のひとつ

    第72回 screen-profiles(&quot;byobu&quot;)を使う | gihyo.jp
  • 第3回 transformプロパティ | gihyo.jp

    今回はCSS3でもあまり一般的に知られてないtransformプロパティについて説明します。transformプロパティは2008年の11月まではWebkit系とAppleのブラウザとSafariの独自実装でしたが、11月以降は正式にW3CにEditors Draftとして受けいられ、現在は策定中です[1]⁠。 今後のブラウザでは、より一層のCSS3やSVG, HTML5の対応、レンダリングエンジンのスピードに焦点があてられます。いち早く、CSS3に慣れ実践的に使えるように、今から新しいセレクタも含めプロパティを勉強し実践で使えるようしておくべきでしょう。 今回説明するプロパティは『transformプロパティ』と『transform-originプロパティ』です。両方のプロパティに共通するtransformトランスフォーム)という名前のとおり、『⁠変形』を実装するためのプロパティです。

    第3回 transformプロパティ | gihyo.jp
    k_37to
    k_37to 2009/04/29
  • Ubuntu Weekly Recipe:第57回 VAIO Type Pを使う(2):各種ドライバの設定|gihyo.jp … 技術評論社

    今回もVAIO Type PでUbuntu 8.04を使うためのレシピを紹介します。今回の設定を終えることで、ほぼ一通りの機能が利用できるようになるはずです。 xserver-xorg-video-psbの利用 Type Pで利用されているPoulsboチップセット内蔵のGMA500は、xserver-xorg-video-psbというドライバで動作します。しかしこのドライバはまだ8.10や9.04で利用されるXServer用の移植が完了しておらず、さらに旧来のDRMを経由して利用しなければいけません。8.10以降での利用が微妙な状態なのもこれが理由です(LP#269611⁠)⁠。 この問題はUbuntu MobileのPPA対応モジュールが用意されているのですが、諸般の事情によりアップデートカーネルに追いついておらず(2.6.24-16までしかモジュールがありません⁠)⁠、手元でビルドを

    Ubuntu Weekly Recipe:第57回 VAIO Type Pを使う(2):各種ドライバの設定|gihyo.jp … 技術評論社
  • 第48回 デュアルディスプレイを使う | gihyo.jp

    この数年に販売されたデスクトップPCの多く、そしてノートPCのほとんどは、複数のディスプレイを利用することができるようになっています。また、液晶ディスプレイの価格下落に伴い、WUXGAクラスのディスプレイであっても、非常に安価に調達できますので、複数のモニタをお持ちの方も多いかもしれません。 今回はUbuntu上でデュアルディスプレイを設定するレシピをお届けします。 デュアルディスプレイの分類 デュアルディスプレイ(トリプル、クアッドといった、2つ以上のマルチディスプレイも含みます)の使い方は、大きく分けて2つあります。 1つは「ミラーリング」などと呼ばれる使い方で、複数のディスプレイに同じ映像を表示する使い方です。これは主にノートPCとプロジェクタを組み合わせる場合に用い、複数のユーザに同じ画像を見せたい場合に利用します。 もう1つが「拡張デスクトップ」などと呼ばれる方法です。これは複数

    第48回 デュアルディスプレイを使う | gihyo.jp
  • 2008年4月23日 NVIDIAドライバの性能をアップさせる方法 Compiz Fusion編 | gihyo.jp

    heads-up NVIDIA + Compiz NVIDIAドライバ(x11/nvidia-driver)とCompiz Fusion(x11-wm/compiz-fusion)を使っている場合、次のようにCompiz起動時にオプション“⁠--loose-binding⁠”を指定することで動作速度を改善できます。NVIDIAドライバはテクスチャのバインディング処理が遅いところがあるため、このオプションを指定することでCompizの動作が改善されることになります。 この結果、Xorgサーバが消費するCPU時間が短縮され、他の処理にCPUパワーをまわせるようになります。NVIDIAドライバを使っている場合はほとんどの場合で推奨できるオプションです。NVIDIAドライバを使っている場合には試してみてください。 compiz --loose-binding --replace 最近のNVIDIA

    2008年4月23日 NVIDIAドライバの性能をアップさせる方法 Compiz Fusion編 | gihyo.jp
  • PFIとNTTレゾナント、Hadoopに関する解析資料を公開 | gihyo.jp

    Preferred Infrastructure(PFI)とNTTレゾナントが共同でHadoopに関する調査を行い、その報告書がPDFにて公開されています。 HadoopはGoogleMapReduce(編注)をJavaで実装したオープンソースプロダクトで、報告書ではGoogleが持っている機能をHadoopではどう実装されているのかを、該当ソースのポインタを含めて記載しています。 Googleの分散ファイルシステムであるGFS(Google File System)は、HadoopではHDFS(Hadoop DistributedFile System)にて実現しています。GFSが提供しているファイルシステム機能のほとんどはHDFSでも提供しています。ただし、調査を行ったHadoop0.16.4では「ファイルのランダム書き込み」と「ファイルのアトミックな追記」は実現できていません(後者

    PFIとNTTレゾナント、Hadoopに関する解析資料を公開 | gihyo.jp
  • 第1回 テスト管理システムとは何か? | gihyo.jp

    はじめに TestLinkとは、オープンソースのテスト管理システムです。TestLinkは、Francisco Mancardi氏、Andreas Morsing氏、Martin Havlat氏を中心としたコミュニティで開発されています。元々は海外で作られていたソフトウェアでしたが、最近は日でも徐々に浸透してきているようです。 連載では、TestLinkの日語化に携わっているTestLink日語化部会の私たちが、このTestLinkの基機能について順次ご紹介していきます。 今回はTestLinkのご紹介する前準備として、「⁠テスト管理システムとは何か」「⁠では、そもそもテスト管理とは?」といったことについて考えてみましょう。 テスト管理システムとは何か 「テスト管理システム」と言う言葉を聞いたことはありますか? もしかしたら、「⁠バージョン管理システムやバグ管理システムなら聞いた

    第1回 テスト管理システムとは何か? | gihyo.jp
  • 第1回 Ubiquity登場 | gihyo.jp

    Mozilla LabsからUbiquity登場 - コントロールを取り戻せ 2008年8月26日(米国時間⁠)⁠、Mozilla Labsから実験的な取り組みとしてUbiquityが発表されました。 UbiquityはFirefoxエクステンションとして実装された拡張機能で、Firefoxに対して新しいUIや操作方法、拡張性を提供するものです。簡単に言ってしまうと拡張されたFirefoxの操作をプロンプトからコマンドを使って実行できるようにするものです。将来的には音声による操作やより先進的なUIを使った操作を提供する計画とされています。まだ実験的提供ですが、すでに興味深い機能が実装され有益なうえにいじりがいのあるプロダクトに仕上がっています。 図1 Ubiquity - An experiment into connecting the Web with language. Ubiqui

    第1回 Ubiquity登場 | gihyo.jp
  • 第2回 ストレージの高信頼性技術 | gihyo.jp

    ストレージの基的な役割は、データを記録/保存することにあります。保存してあったはずのデータが読み出せなくなるといったデータ喪失は、ストレージにとっては最も根的かつ深刻なトラブルと言えます。とはいえ、現在の主流であるHDDは物理的に可動する機械部品でもあり、消耗や破損は避けられません。そこで、ストレージにはさまざまな高信頼性技術が盛り込まれ、データの保全に取り組んでいます。 RAIDの基礎知識 RAIDとは、“⁠Redundant Arrays of Inexpensive Disks⁠”の頭文字を取ったものです。直訳してみると、「⁠安価なディスクを使って冗長性を持たせたディスク・アレイ」という意味になります。 HDDの障害発生率が、コンピュータを構成する他のパーツに比べても高いことは昔から変わっていません。RAIDの基的なアイデアは、HDD単体の信頼性を高めるよりも、壊れることを前提

    第2回 ストレージの高信頼性技術 | gihyo.jp
  • 第29回 スクリーンショットを扱う・作業を記録する | gihyo.jp

    操作手順を説明する場合や、自分用の備忘録を作る際など、スクリーンショットを撮って加工する、といった作業を行うことがあります。今回はスクリーンショットの取得・加工など、「⁠作業の様子を記録する」レシピを紹介します。 スクリーンショットの取得 Ubuntuではデフォルトでgnome-screenshotコマンドがインストールされ、[⁠PrtScr]キーを押下することで起動できるようになっています(図1⁠)⁠。このコマンドは主に3種類の起動方法があり、それぞれ異なる動作をするようになっています。 (1)[アプリケーション]→[アクセサリ]→[スクリーンショットの取得]で起動する。 この操作で起動された場合、細かいパラメータを指定してスクリーンショットの撮影が行えます。実際の動作はウインドウ、もしくはデスクトップ全体を対象にします。 ターミナルや[Alt]+[F2]などから、gnome-scree

    第29回 スクリーンショットを扱う・作業を記録する | gihyo.jp
  • 第2回 memcachedのメモリストレージを理解する | gihyo.jp

    株式会社ミクシィ 研究開発グループの前坂です。前回の記事でmemcachedは分散に長けた高速なキャッシュサーバであることが紹介されました。今回はmemcachedの内部構造がどう実装されているのか、そしてメモリがどう管理されているのかをご紹介します。また、memcachedの内部構造の事情による弱点も紹介します。 メモリを整理して再利用するSlab Allocationメカニズム 昨今のmemcachedはデフォルトでSlab Allocatorというメカニズムを使ってメモリの確保・管理を行っています。このメカニズムが登場する以前のメモリ確保の戦略は、単純にすべてのレコードに対してmallocとfreeを行うといったものでした。しがしながら、このアプローチではメモリにフラグメンテーション(断片化)を発生させてしまい、OSのメモリマネージャに負荷をかけ、最悪の場合だとmemcachedのプ

    第2回 memcachedのメモリストレージを理解する | gihyo.jp
  • 第4回 誰でも「マスターリポジトリ」 ~ リポジトリ連携の相対性 | gihyo.jp

    今回は、普段使用している共有リポジトリ(= マスターリポジトリ)へのアクセスができないような、制約のある状況を考えてみます。このような状況でも、分散リポジトリ形式であることを活かし、共同作業を円滑に進める方法について説明します。 「閉じた環境」での作業 開発成果をリリースする場合、顧客の環境に赴いての導入作業や、場合によっては稼動環境下での障害調査・対応が求められるケースがあります。 ある程度の規模の組織では、システム稼働環境は無論のこと、作業用PCが接続されたネットワークですら、ファイアーウォールや運用規約によって、ガッチリと守られている場合の方が多いのではないでしょうか。 そういった環境には、当然外部からアクセスすることはできませんから、アクセスするためにはターゲット環境側に移動する必要がありますが、今度は逆にマスターリポジトリへのアクセスができなくなってしまいます。 そうなると、中央

    第4回 誰でも「マスターリポジトリ」 ~ リポジトリ連携の相対性 | gihyo.jp
  • 連載:Cプログラミング入門|gihyo.jp … 技術評論社

    第22回[最終回]Appendix.3 配列とポインタ、構造体と共用体、makeについて 山森丈範 2007-11-23

    連載:Cプログラミング入門|gihyo.jp … 技術評論社
  • 第12回 ポインティングデバイスのカスタマイズ(1):トラックポイント・タッチパッドのカスタマイズ | gihyo.jp

    一般的なデスクトップユースでは、マウスやトラックポイント(ポインティング・スティック⁠)⁠・タッチパッドといった、ポインティングデバイスは欠かせません。今回はこうしたポインティングデバイスのうち、ノートPCで利用される、ポインティング・スティック(ポインティング・スティック)とタッチパッドのカスタマイズについて説明します。 トラックポイント(ポインティング・スティック) トラックポイント(一般名称は「ポインティング・スティック」ですが、稿ではこれを「トラックポイント」と呼ぶことにします)は、キーボードの[H⁠]⁠・[⁠J]キーの間に小型のジョイスティックを配置し、これを操作することでポインタを操作する形式のデバイスです。 現在のノートPCではそれほど採用数が多くなく、Lenovo(旧IBM)のThinkpadシリーズや、DellのLatitudeシリーズのモバイル向けモデル、HPのMob

    第12回 ポインティングデバイスのカスタマイズ(1):トラックポイント・タッチパッドのカスタマイズ | gihyo.jp