タグ

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

  • 第5回 オブジェクトストレージのCloud Storage | gihyo.jp

    Cloud Storage Cloud StorageはオブジェクトストレージのSaaSで、AWSで言うところのS3に相当するようなサービスです。 データはCloud Storage側で自動的に暗号化されてGoogleのディスクに保存されます。 3種類のStorage Classラインナップ 以下の3種類があります。 Standard Storage Durable Reduced Availability(DRA)Storage Nearline Storage StandardはS3のスタンダードストレージ、Durable Reduced Availability(DRA)はS3の低冗長化ストレージ、NearlineはS3で言うところのGlacierの立ち位置のサービスです。ただしNearlineはGlacierとかなり違った特徴を持っていますので、後述の説明を参考にしてください。 こ

    第5回 オブジェクトストレージのCloud Storage | gihyo.jp
    syohex
    syohex 2016/07/12
  • 第4回 x86プロセッサにおけるプロセッサ仮想化 | gihyo.jp

    これまで、x86システム仮想マシンの概要、およびその実例としてDebian GNU/Linux 6.0を利用した仮想マシンの実行方法について紹介してきました。今回からは、より具体的にCPU、メモリ、I/Oデバイスの仮想化がどうやって実現されているかを解説したいと思います。 今回は、仮想マシンを実装するための古典的手法およびそれを従来のx86プロセッサに適用する際の問題点、そして仮想マシンソフトウェアがどのようにそれらの障壁を乗り越えてきたかについて解説します。 システム仮想マシンに求められる条件 これまで、システム仮想マシンはどのようなものかについて説明してきましたが、仮想化仮想化の生みの親とも言えるGoldbergらは、1974年に書いた論文にて、仮想マシンソフトウェアとはどのようなものであるべきかについて、コンピュータアーキテクチャの観点から論じています。 彼らは、その仮想マシンソフト

    第4回 x86プロセッサにおけるプロセッサ仮想化 | gihyo.jp
  • diffの動作原理を知る~どのようにして差分を導き出すのか | gihyo.jp

    UNIXの基的なコマンドの1つであるdiff。 これに実装されているアルゴリズムは実に興味深い世界が広がっています。 稿では、筆者が開発した独自ライブラリ「dtl」をもとに「diffのしくみ」を解説します。 はじめに diffは2つのファイルやディレクトリの差分を取るのに使用するプログラムです。 ソフトウェア開発を行っている方であれば、SubversionやGitなどのバージョン管理システムを通して利用していることが多いかと思います。稿ではそのdiffの動作原理について解説します。 差分の計算の際に重要な3つの要素 差分を計算するというのは次の3つを計算することに帰結します。 編集距離 2つの要素列の違いを数値化したもの LCS(Longest Common Subsequence) 2つの要素列の最長共通部分列 SES(Shortest Edit Script) ある要素列を別の要

    diffの動作原理を知る~どのようにして差分を導き出すのか | gihyo.jp
    syohex
    syohex 2011/03/11
    diffのアルゴリズムについて
  • 第157回 AndroidとUbuntuの素敵な出会い コマンドラインでのAndroid開発 | gihyo.jp

    今週はUbuntuとAndroidについてのレシピのしめくくりとして、Androidのエミュレータ環境と非IDE環境でのAndroid開発手法を紹介します。 Androidのスクリーンショットを撮る 先週、先々週のレシピでもIDEOS実機のスクリーンショットを撮っていますが、これらのスクリーンショットはAndroid SDKを導入したUbuntuから撮影しています。ここでいきなり脱線して、スクリーンショットの撮影方法を紹介しましょう。 まず先週紹介したSDKの導入、実機のデバッグモードとパーミッションの設定までを行なっておきます。準備ができたら実機をUbuntuにUSB接続してDalvik Debug Monitorを起動しましょう。 Dalvik Debug Monitorの起動 $ cd android-sdk-linux_86/tools $ ./ddms 図1 起動したDalvik

    第157回 AndroidとUbuntuの素敵な出会い コマンドラインでのAndroid開発 | gihyo.jp
  • 第5回 Xslate 次世代テンプレートエンジン(2) | gihyo.jp

    ※1)Xslateではテンプレートのコンパイル結果をキャッシュできる ※2)デフォルトは$ENV{HOME}/.xslate_cacheだが、$ENV{HOME}が書き込み可能でなければほかのディレクトリも試す ※3) テンプレートの構文によってデフォルトは変わる。これらはデフォルト構文Kolonのデフォルト値 リスト8 オプションを指定する(hello_xslate2.pl) use strict; use Text::Xslate; my %vpath = ( header => "- - - - - - - - - - -\n", footer => "- - - - - - - - - - -\n", hello => "Hello, Xslate world!\n", ); my $tx = Text::Xslate->new( path => \%vpath, header =

    第5回 Xslate 次世代テンプレートエンジン(2) | gihyo.jp
    syohex
    syohex 2011/02/02
    WebDBに載っていたもの
  • 第39回 DBIx::Skinny:DBIx::Classに不満を感じたら | gihyo.jp

    DBIC以降の選択肢 今回はデータベース話の締めくくりとして、DBIx::Class以降に登場したいくつかの選択肢についてざっくりまとめておきます。これらはいずれも若く、DBICに比べてユーザ数も少ないためドキュメントなどの整備が遅れている部分もありますが、今回とりあげるものの多くは日人がつくっているものですから、英語圏で開発が進められているものより疑問や要望は送りやすいはず。気になることがあったらぜひそれぞれの作者氏に伝えていただければと思います。 DBIx::Skinny nekokakこと小林篤氏のDBIx::Skinnyは、今回紹介するもののなかではもっとも実績豊富なものといってよいでしょう。開発の動機については氏のブログによくまとまっていますが、標準で用意されているCRUDメソッドを使うときだけでなく、速度を稼ぐために生のSQLを書いたときでもinflateなどの補助機能を使え

    第39回 DBIx::Skinny:DBIx::Classに不満を感じたら | gihyo.jp
    syohex
    syohex 2011/02/01
    ORマッパ. Tengのことも書いてある。
  • これでできる! クロスブラウザJavaScript入門 記事一覧 | gihyo.jp

    運営元のロゴ Copyright © 2007-2024 All Rights Reserved by Gijutsu-Hyoron Co., Ltd. ページ内容の全部あるいは一部を無断で利用することを禁止します⁠。個別にライセンスが設定されている記事等はそのライセンスに従います。

    これでできる! クロスブラウザJavaScript入門 記事一覧 | gihyo.jp
  • 第1回 x86仮想マシンことはじめ | gihyo.jp

    ここ数年、インテルx86系プロセッサを使ったコンピュータ(以下x86システム)で仮想マシンを利用する機会が増えています。 x86システムの上で仮想マシンを使うのはこれまで開発者をはじめITエンジニアが多かったように思いますが、企業のサーバ統合などに広く使われるようになり、今ではWindows 7にXP Modeが搭載されるなど、デスクトップ環境においても広く見かけるようになりました。このように仮想マシン技術はとても身近なものとなってきています。 また、仮想化は、コンピュータリソースの柔軟かつ効率的な運用管理を実現するために用いられ、クラウドコンピューティングの基盤にも用いられる重要な技術のひとつとなっています。 このように、x86システムの仮想化技術はたいへん注目されていますが、その仮想マシン技術がどのようなギミックで実現されているのかを知っているITエンジニアの方は、まだまだ少ないように

    第1回 x86仮想マシンことはじめ | gihyo.jp
  • 第9回 MapReduce処理をやってみよう![準備編] | gihyo.jp

    MapReduce処理の向き不向き さて、前回構築したHadoop環境ですが、それを使ってのMapReduce処理の実装をしてみましょう。が、その前に、どのような処理が向いているのか確認してみたいと思います。 MapReduceは計算フレームワークですが、HDFSと組み合わせることにより、特に大規模データの分散処理に有用なものとなります(小さい入力データについて処理を分散させることも可能です⁠)⁠。 入力に使用されるデータの種類は テキスト XML バイナリ データベースから という風にいくつかの入力を受け付けることが可能です。今回はテキストファイルを入力としたMapReduceを行いたいと思います。 大規模なテキストデータ 入力となるテキストデータを今回はインターネット上のコンテンツから取得したいと思います。 2ちゃんねるという巨大掲示板サイトは、みなさんご存じかと思います。2ちゃんねる

    第9回 MapReduce処理をやってみよう![準備編] | gihyo.jp
  • 第39回 RVM(Ruby Version Manager)による環境構築 | gihyo.jp

    はじめに Rubyの普及にともない、Rubyの生みの親である、まつもとゆきひろ氏がC言語で作成したRubyインタプリタ(CRuby)以外にも、JVMで実行されるJRuby、Objective-Cで実装されMacアプリケーションのプログラミングのできるMacRuby、CRubyベースにメモリ管理に改良を加えているRuby Enterprise Edition等、プログラミング言語Rubyを実行できる環境が増えてきました。またCRubyに関しても、現在最も使われているバージョンである1.8系以外にも、最新の安定版である1.9系も普及期にはいってきました。 今回は、複数のRuby実行環境の管理を簡単にするRVM(Ruby Version Magager)を紹介します。 RVMとは RVMはUNIX系の環境で、複数のRuby処理系をインストール、共存させることができるツールです。 ひとつの環境に対

    第39回 RVM(Ruby Version Manager)による環境構築 | gihyo.jp
    syohex
    syohex 2011/01/12
    Ruby版 perlbrewのようなもの
  • 第1回 Hello, Wicket | gihyo.jp

    Wicketとは WicketはApache Software Foundationで開発されている、Webアプリケーション開発用のフレームワークです。フレームワークにもさまざまなものがあり、それぞれ用途が異なります。Wicketの行うことは、ブラウザからのリクエストを受け付け、処理を振り分け、ページを生成してブラウザにレスポンスを返すことです。位置づけとしては、Apache Strutsと同じと考えれば良いでしょう。 Wicketの特徴 Wicketには他の多くのWebフレームワークとは異なる、大きな特徴があります。多くのWebフレームワークが、リクエストからレスポンスまでのフロー(流れ)をどのようにコントロールするか、という方針で作られているのに対して、Wicketは「Webページをページというオブジェクトとして扱い、オブジェクトを組み立てることでアプリケーションを構築する」という考え

    第1回 Hello, Wicket | gihyo.jp
  • 第152回 パッケージをビルドしてみる | gihyo.jp

    寒い冬にはパッケージビルド!? ようやく冬らしい季節なってきました。みなさんの部屋には、もちろん暖房器具があるでしょう。また、部屋の中にはきっと、たくさんのPCもあるのではないかと思います。筆者の部屋にも、数えるとうんざりするぐらいたくさんあります。しかしながら、PCは熱を出すくせに熱には弱く、排熱をしないと壊れてしまいます。 せっかくPCがたくさんあるのなら、これで暖を取るのもアリではないでしょうか。とはいえ、最近のPCは以前よりも発熱量は減っています。連続して発熱させるためには、CPUを100%(マルチコアであれば、それ以上)で稼動させるパッケージのビルドが最適なのです。 ……と小咄はこのぐらいにして、今回はパッケージをビルドする方法を紹介します。 パッケージのビルドとは パッケージのビルドというのは、ソースコードからバイナリパッケージを生成することだと思ってください。「⁠オープンソー

    第152回 パッケージをビルドしてみる | gihyo.jp
    syohex
    syohex 2010/12/24
    パッケージのビルドについて
  • 第1回 関数フローの採取 | gihyo.jp

    はじめに DTrace とは 皆さんは DTrace をご存知でしょうか? DTrace は Sun Microsystems のブライアン・キャントリル(Bryan Cantrill)氏によって開発された、汎用情報採取のフレームワークです。 キャントリル氏へのインタビューでも語られているように、カーネルの動作状況を調査/確認することは、これまで非常に困難な作業でした。 しかし、DTrace の登場により、実際に稼動中のシステムのカーネルからも、安全に(かつ低コストで)情報を採取できるようになりました。 また、DTraceによって解析が容易になったことで、これまで解決することができなかったSolarisカーネルの(潜在的だったものも含めた)実装上の問題も、多数改善することができたのだそうです。 カーネル開発に関わったことがある方ならもちろん、通常のアプリケーション開発であっても、次のような

    第1回 関数フローの採取 | gihyo.jp
  • 第4回 FreeBSD勉強会開催―「サーバの負荷分析とチューニングの基礎」 | gihyo.jp

    2010年6月18日、株式会社Speeeオフィスにて「第4回 FreeBSD勉強会」が開催されました。この勉強会はFreeBSDコミッタである佐藤広生氏、後藤大地氏両名の立案がきっかけで開催されています。『⁠Software Design』や『FreeBSD Daily Topics』を発行する技術評論社、会場提供元となる株式会社Speee、ハンドリングをおこなうオングスおよびFreeBSD実行委員会のご協力いただいております。 第4回目は佐藤広生氏から「サーバの負荷分析とチューニングの基礎」のタイトルのもと、FreeBSDに用意されている基的なコマンドを使ってシステムの負荷状況を調べ、どういった状況にあるのかを調べる方法が紹介されました。紹介されたコマンドはtime(1)、vmstat(8)、iostat(8)、ministat(1)などです。パフォーマンスチューニングに利用できるパラ

    第4回 FreeBSD勉強会開催―「サーバの負荷分析とチューニングの基礎」 | gihyo.jp
  • 第22回 Mojolicious::Lite:本当に簡単なウェブアプリがあればいいときは |gihyo.jp … 技術評論社

    あれから1年 Mojoについては2009年1月1日から4回にわたって特集記事を連載しました。ちょうど執筆を開始した直後に作者リーデル氏が不幸な医療事故にあい、一時はどうなることかと思いましたが、連載を終了する直前に開発続行の宣言が出て、ほっとしたのをよく覚えています。 あれから1年。Mojoを取り巻く環境はずいぶん変わりましたが、いま、Mojoはいったいどうなっているのでしょうか。今回は今年最後の記事として、Mojo界隈の近況をお届けすることにします。 大きく変わったといわれていますが…… 昨年12月にバージョン0.9に到達したMojoは、途中事故の後遺症で開発が停滞した時期はあったものの、この1年でかれこれ30回以上のリリースが行われたことからもわかるように、いまもなお着実に開発が続けられています。この「ベータテスト」期間中にいくつか後方互換性が失われる変更があったため批判を浴びたことも

    第22回 Mojolicious::Lite:本当に簡単なウェブアプリがあればいいときは |gihyo.jp … 技術評論社
  • 第118回 UbuntuとEmacsでプログラミングをはじめよう(後編) | gihyo.jp

    今週はEmacsでのプログラミング環境のまとめとして、Emacsでの編集作業に役立つ便利な拡張機能を紹介します。 分岐したアンドゥの履歴を管理する undo-tree エディタにおいてアンドゥ、リドゥはとても便利な機能ですが、アンドゥした後に新しい入力を行うと、リドゥができないというジレンマがあります。以下のようなケースを想定してみてください。 Aを入力する Aの入力をアンドゥ Bを入力する やっぱりAに戻したい <- これはできない このような、ツリー状に分岐する入力の履歴を管理し、任意のバージョンに戻れる機能を提供するのがundo-tree.elです。以下のようにgitをインストールして、undo-treeを入手してください。 $ sudo apt-get install git-core $ git clone http://www.dr-qubit.org/git/undo-tre

    第118回 UbuntuとEmacsでプログラミングをはじめよう(後編) | gihyo.jp
    syohex
    syohex 2010/04/23
  • 第29回 Test::Base:データ本位のテストをするときは | gihyo.jp

    テストは実行する前にも数えられるはず 前回、前々回と見てきたように、Test Anything Protocolでは来ひとつひとつのテストに連番が割り振られます。新しいテストを追加したければ、テストファイルの末尾に移動して、テスト番号をひとつずつ増やしながらテストを書き進め、終わったら先頭に戻って宣言部を更新する。先頭に戻るのが面倒であれば宣言部を末尾に移してもよいですが、いずれにしてもテストを追加し終わった時点でテストの件数はわかっているのですから、更新に困ることはないはずでした。 ところが、Perl 5の時代に入ってテスト用のモジュールが連番を振ってくれるようになった結果、テストの件数がわかりづらくなったため、no_planやdone_testingのように実際にテストを実行した回数をテストの総数とみなす手法が登場した――というのが前回の話でしたが、そういった妥協案は、Test An

    第29回 Test::Base:データ本位のテストをするときは | gihyo.jp
  • 第1回 ウェブブラウザとJavaScriptの未来 | gihyo.jp

    こんにちは、id:os0xこと太田昌吾です。今回から、クロスブラウザ対策を中心としたJavaScriptの初級から中級の方向けの連載を開始します。JavaScriptの基礎的な文法は理解されているという前提での解説となりますので、ご了承ください(間違いやすい、わかり難いと思われるところは適宜補足します⁠)⁠。初回である今回はJavaScriptやウェブブラウザの背景など盛りだくさんの内容でお届けします。 JavaScriptのイマ JavaScriptは2010年現在において、最も重要な言語となりつつあります。旧来はすべての処理をサーバーで行って、結果をウェブブラウザ上に表示するだけというのがウェブの一般的な姿でした。2005年に登場したGoogle Mapsを一つの契機として徐々にウェブブラウザ・クライアント側での処理が見直され始め、近年ではクラウドやSaas、そしてHTML5の流行によ

    第1回 ウェブブラウザとJavaScriptの未来 | gihyo.jp
  • 第26回 ShipIt:モジュールのリリースをもっと手軽に | gihyo.jp

    CPANにモジュールをアップロードする前に 第23回から続けてきたシリーズの一環として、今回はモジュールをCPANにアップロードするときのツールをまとめてみます。おそらくこのようなツールに興味を持つような方なら当然 perlnewmod や perlmodlib、あるいはCPANやPAUSEについてのよくある質問のページ[1]くらい読んでいるでしょうから大丈夫だろうとは思っていますが、今回とりあげるツールは使い方を間違えると周囲に多大な迷惑をかける可能性があります。一度CPANにアップロードされたファイルは、たとえミスであっても数日中には世界中のミラーにコピーされますし、BackPANと呼ばれる保管庫には半永久的に保存されますので、うっかり無意味な(あるいは部外秘の)モジュールを公開してしまうことがないよう、また、ほかの人の迷惑になるような名前空間を占有してしまわないよう、実際に試してみる

    第26回 ShipIt:モジュールのリリースをもっと手軽に | gihyo.jp
    syohex
    syohex 2010/02/24
    CPANへのアップロードについて
  • 第25回 Module::Starter:モジュールを書くためのテンプレート | gihyo.jp

    モジュールを再利用可能にするためのツールたち Perl 4の時代まではいざ知らず、いまどきPerlのモジュールやアプリケーションを再配布しようと思ったら、CPANモジュールと同じ形式にしておくのがベタープラクティスです。たとえ一般には公開しない社外秘のモジュールであっても、Makefile.PLやBuild.PLを用意して、テストも書いて、できればREADMEやChangesなどの更新履歴もつけておけば、別のプロジェクトを立ち上げたときにコピー&ペーストする必要もなくなりますし、業務の引き継ぎなども簡単になります。 とはいえ、モジュールを書くたびにMakefile.PLなどを一から書きおこすのは面倒な話。メタ情報の部分はモジュールごとに異なるとはいえ、それ以外の部分は(特にひな形の時点では)大差ないのがふつうですから、できれば省力化したいところです。 今回はそんなときに使われるひな形作成ツ

    第25回 Module::Starter:モジュールを書くためのテンプレート | gihyo.jp
    syohex
    syohex 2010/02/09
    Moduleテンプレートの説明