タグ

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

  • Pacemakerでかんたんクラスタリング体験してみよう! 記事一覧 | gihyo.jp

    第5回Pacemakerを運用してみよう![保守運用編(2)] 岡和田拓也 2011-05-12

    Pacemakerでかんたんクラスタリング体験してみよう! 記事一覧 | gihyo.jp
  • 本文解説チェックポイントリスト[オンラインゲームを支える技術 ―壮大なプレイ空間の舞台裏](WEB+DB PRESS plusシリーズ)|gihyo.jp … 技術評論社

    WEB+DB PRESS plus(ウェブディービープレスプラス)シリーズは, Webアプリケーション開発のためのプログラミング技術情報誌『WEB+DB PRESS』編集部が自信を持ってお届けするシリーズです。 『オンラインゲームを支える技術 -- 壮大なプレイ空間の舞台裏』では、オンラインゲーム開発技術のエッセンスを抽出し厳選解説していますが、それでも600ページを超えるボリュームになりました。そこで、各章のチェックポイント、見所をトピックごとにグループ化して以下にまとめました。書の紙面掲載の、「書の構成」や目次&索引コーナーと合わせて、お読みいただく際の参考および読後の理解度チェックなどにぜひご活用ください。 ※リストに登場する会社名、製品名は一般に各社の登録商標または商標です。リストでは、™、© 、®マークなどは表示しておりません。 第0章:[速習]オンラインゲームプログラミ

  • オンラインゲームを支える技術 ―壮大なプレイ空間の舞台裏

    2011年3月24日紙版発売 2014年12月10日電子版発売 中嶋謙互 著 A5判/624ページ 定価3,168円(体2,880円+税10%) ISBN 978-4-7741-4580-8 Gihyo Direct Amazon 楽天ブックス ヨドバシ.com 電子版 Gihyo Digital Publishing honto 書のサポートページサンプルファイルのダウンロードや正誤表など このの概要 オンラインゲームをテーマとした技術解説書。 ソフトウェア開発において,オンラインゲーム開発者は卓越した技術力を持つ専門性の高い花形と言われています。そこでは,ゲームのアイデアをソフトウェアという形にするため,企画を熟知した上で,CPUサイクルを極限まで節約しながら続々登場する大量のオブジェクトを動かし,ネットワークで発生するミリ秒のレイテンシを徹底的に切り詰め,無数のコネクションを捌

    オンラインゲームを支える技術 ―壮大なプレイ空間の舞台裏
  • 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
  • 第2回 「締め切りは絶対に守るもの」と考えると世界が変わる | gihyo.jp

    「締め切りを守ること」の大切さ 今までたくさんの日米のエンジニア仕事をしてきた。その中には私よりも明らかに「賢いエンジニア」もいたし、ものすごい生産性でプログラムを作ってくれる「馬力(ばりき)のあるエンジニア」もいた。しかし、そんな中でも、私がものを作るうえで最も大切だと考えている「あること」をキチンとこなせる人は100人に1人もいなかった。その「あること」とは、「⁠常に締め切りを守れるように仕事をすること」である。 チームで仕事をする場合、どうしてもお互いが担当するタスク(=作業)の間に依存関係が生じる。そんなときに、どれか一つのタスクの完了の遅れが、ほかのタスクの完了に波及し、それがタスク間の競合を引き起こして全体のスケジュールがさらに遅れる、という事態はソフトウェア開発の現場ではよく見られる。そんな状況をできるだけ回避するには、プロジェクトに関わる人全員が、自分に割り当てられたタス

    第2回 「締め切りは絶対に守るもの」と考えると世界が変わる | gihyo.jp
  • Jettyで始めるWebSocket超入門 記事一覧 | gihyo.jp

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

    Jettyで始めるWebSocket超入門 記事一覧 | gihyo.jp
  • 第1回 WebSocket登場までの歴史 | gihyo.jp

    はじめに 初めまして。NTTアドバンステクノロジの金城と申します。幸運にも記事を執筆させていただけることになりました。WebSocketという新しいウェブの規格についての連載を、全4回の予定でお届けします。 用語統一について WebSocketは「WebSocket」「⁠WebSockets⁠」⁠、単語を切り離した「Web Socket」等、表記に揺れがあります。2009年12月22日のワーキングドラフトのタイトルは「The Web Sockets API」となっていますが、2010年4月26日のエディターズドラフトでは「The WebSocket API」となっています。この連載では、最新の仕様書に則り、用語を「WebSocket」で統一します。 HTML5とWebSocketの関係 WebSocketは、もともとHTML5の一機能として仕様の策定が進められていました。しかし、Web S

    第1回 WebSocket登場までの歴史 | gihyo.jp
  • 第43回 Rails 3を支える名脇役たち その1 - Arel - | gihyo.jp

    はじめに Ruby on Railsの2年半ぶりのメジャーバージョンアップである3.0の正式リリースがいよいよ間近に迫ってきました。 Rails 3は、アプリケーション・レベルではRails 2.3との互換性をなるべく保ちながらも、メジャーバージョンアップだけあってフレームワーク自体は隅々にまで徹底的なリファクタリングが施されて更なる洗練を遂げています。結果として、Rails 3では融通の効かないフルスタック構造を捨ててすっきりとしたモジュール独立性が実現されているのですが、この際に、Merbとの合併の影響もあってか、いくつかの新たな外部ライブラリに依存する形になっているのも興味深いところです。 そこで稿では、あえてRails 3そのものではなく、このRails 3の大改造の舞台裏を支える裏方さんにスポットライトを当ててみたいと思います。 Arelによってパラダイムが大きく変わったAct

    第43回 Rails 3を支える名脇役たち その1 - Arel - | gihyo.jp
  • 第127回 ターミナルマルチプレクサ tmuxを使ってみよう | gihyo.jp

    端末で作業をするなら、特にsshなどでネットワーク後しに作業を行うなら、仮想端末管理ソフトウェアであるGNU Screenは必須といってよいでしょう。Ubuntu 10.04であれば、GNU Screenをさらに便利に使うためのアプリケーション「byobu」が最初から導入されているので、こちらを使っているユーザも多いと思います(byobuについては連載72回参照、注1⁠)⁠。 今週のレシピは、GNU Screenと同じ仮想端末管理ソフトウェアである「tmux」ターミナルマルチプレクサを紹介します。 GNU Screenの利点とは GNU Screenの利点を簡単におさらいしておきましょう。GNU Screenには多くの機能がありますが、筆者が主に使っているのは以下のような機能です。 GUIのタブ機能のように、複数の端末を起動して切り替えられる 端末を画面分割して使うことができる 端末上で

    第127回 ターミナルマルチプレクサ tmuxを使ってみよう | gihyo.jp
  • 第32回 Reactorで非同期処理をやってみよう(2) | gihyo.jp

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

    第32回 Reactorで非同期処理をやってみよう(2) | gihyo.jp
  • 第1回 一生の仕事を選ぶということ | gihyo.jp

    「一度しかない人生、思いっきり楽しもうぜ」 酒の席になるとやたらと人生哲学みたいなものを語り出して部下や後輩を困らせるという人がたまにいるが、私もあの手の「説教」を聞くのは得意ではない。しかたがないので、「⁠はあ、そうですか」とか「勉強になります」とか言いながらも、心の中では「早く終わらないかな」とか、その日に解決できなかったバグを「明日の朝にはどう攻略しようか」と作戦を練ったりしている私だ。 じゃあ自分なりの「人生哲学」みたいなものをまったく持っていないかというと、そうではない。ただ、そんな話はネチネチと時間をかけて語るものでもなければ、ましてや酒の席でするのに適した話ではないと思っているだけのことだ(私が、下戸だというのはさておいて⁠)⁠。 では具体的には何かと言えば、「⁠自分が当にやりたいことを見つけろ」という、とても単純な話だ。言い方を変えて「わがままに生きろ」でも「自分に正直に

    第1回 一生の仕事を選ぶということ | gihyo.jp
  • C/C++プログラマのためのDTrace入門 記事一覧 | gihyo.jp

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

    C/C++プログラマのためのDTrace入門 記事一覧 | 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
  • 第40回 RVM(Ruby Version Manager)による環境構築(2) | gihyo.jp

    前回は、RVMのインストール、RVMで Rubyをインストールして使う方法を紹介しました。今回は、以下の3つを紹介していきます。 RVMを最新版にアップデートする RVMを使って複数のバージョンのRubyでスクリプトを実行する GemSetsについて RVMを最新版にアップデートする RVMは、Bugfixや機能追加が毎日行なわれている活発なプロジェクトです。開発者の方は、なるべく最新のバージョンを使うことを推奨しています。ここでは、RVMを最新版にする方法をみてみましょう。 "rvm update --head"を使用すると開発リポジトリであるhttp://github.com/wayneeseguin/rvmから最新版を取得します。githubから取得するため、環境にgitがインストールされている必要があります。 % rvm update --head アップデートされたRVMを使うた

    第40回 RVM(Ruby Version Manager)による環境構築(2) | 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
  • 第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
  • 第116回 UbuntuとEmacsでプログラミングをはじめよう(前編) | gihyo.jp

    プログラミングをはじめよう いよいよ2010年度がはじまりました。この春からの新入社員や新入学生の方の中には、これからLinuxでプログラミングを始めるという方も多くいると思います[1]⁠。Windowsでプログラミングといえば、Visual Studioのような統合開発環境を使用するのが一般的のようですが、Ubuntuではどうすればよいのでしょうか。 UbuntuはUnixの文化を受け継ぐOSですから、プログラミングのためのツールは豊富に揃っています。しかしそれゆえに「とりあえずこうすればOK」という定石がよくわからないという人も多いかもしれません。 Linuxにおける開発環境は色々ありますが、やはり一番メジャーな統合開発環境といえばEclipseとNetBeansでしょう。しかし今回から3回にわたって、開発環境としてのEmacsを紹介します[2]⁠。 Emacsのインストール Emac

    第116回 UbuntuとEmacsでプログラミングをはじめよう(前編) | 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
  • 第4回 Railsアプリケーションをもっと速く | gihyo.jp

    Rails Web アプリケーションをもっと速く こんなストーリーを考えてみます。 あなたは、Railsを学び、アプリケーションを作成し、サービスをインターネットに公開しました。しばらくすると、最初のユーザができます。あなたはとてもハッピーです。そうするうちにユーザが二人増え、十人になり、百人になりました。あなたはハッピーです、ユーザーもみんなハッピーです。 でも、ユーザが千人になり、一万人になり…。といった場合、何が起こるでしょうか? そこで起こるのはアプリケーションへの同時接続数増加によるサービス提供速度の低下です。ユーザ数が一万人を越えてしまうWebサーバに特有の問題は、C10K問題として知られています。 それでなくとも、残念ながらRailsは同様他種フレームワークと比べて、単位時間あたりの処理量が低いことで知られています。その理由は、RailsではRubyが遅くて、NativeTh

    第4回 Railsアプリケーションをもっと速く | gihyo.jp
  • iPadファーストインプレッション――想像以上の高レスポンスがもたらす「新たな世界」 | gihyo.jp

    はじめに いきなりだが、この記事と前回の記事はほとんどiPad上のEverrnoteアプリで執筆した。iPadはそれがまったく苦にならない端末である。画面が大きいためにタッチタイピングが簡単にできるということもあるが、何よりもiPadのレスポンスの良さによるところが大きい。このレスポンスの良さはまったく予想していなかったが、このことがiPadを驚くほど魅力ある商品にすることに成功している。 Evernoteで執筆中の画面 iPadのサイズが持つ意味 まずiPadを手にとってみると素直にその大きさに感動させられる。“⁠デカいiPhone⁠”という言葉どおり。ホームボタンの大きさだけが全く同じだ。 iPadの大きさをiPhoneMacBook Airと比較 画像やWebのブラウジングがiPhoneとは比べられないほどに快適でストレスがない。パソコンのディスプレイと同じように表示領域が広がる気

    iPadファーストインプレッション――想像以上の高レスポンスがもたらす「新たな世界」 | gihyo.jp