タグ

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

  • 第3回 すべてのMySQLユーザに高速な全文検索機能を! - mroongaの紹介 | gihyo.jp

    前回の地価マップでの事例紹介では、Ruby on Railsからgroongaとmroongaを使って位置情報検索をした事例を紹介しました。Active Recordを拡張して位置情報検索をするためのgemとその使い方も紹介していたので、Ruby on Railsユーザにとって実用的な内容だったのではないでしょうか。 今回は、前回使い方を紹介したmroongaについて、さらに紹介します。前回はmroongaの使い方がでてきましたが、今回は使い方の紹介はしません。その代わり、mroonga自身のことについて紹介します。mroongaの歴史、大事にしていること、さらにどのようなアーキテクチャになっているかについて説明します。 自分のアプリケーションで利用するプロダクトを検討するときに、プロダクトがどのような方向で作られているかを考慮していますか? 自分のアプリケーションが大事にしたいことをその

    第3回 すべてのMySQLユーザに高速な全文検索機能を! - mroongaの紹介 | gihyo.jp
  • Pacemakerでかんたんクラスタリング体験してみよう! 記事一覧 | gihyo.jp

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

    Pacemakerでかんたんクラスタリング体験してみよう! 記事一覧 | gihyo.jp
  • 第39回 Plamo Linuxのビルドスクリプトとパッケージ管理ツール[その2] | gihyo.jp

    10月も下旬となるとめっきり日が短くなり、朝晩はずいぶん寒さを感じるようになってきました。残暑が長く続いた分、秋らしい季節の実感がないまま冬に突入している感じです。今年もあと2ヵ月、Plamo-5.0に向けた32ビット版と64ビット版の同期作業も最終段階に入ってきました。 さて、今回は前回に引き続いてパッケージ作りには欠かせないビルドスクリプトとその背景にあるビルドシステムについて取りあげてみます。 GNU Autotools 前回PlamoBuildスクリプトの例として紹介したXfce用のファイルマネジャーThunarは、configureを用いてビルド環境を構築するようになっており、configure ; make ; make install だけでビルド、インストールできます。 このconfigureスクリプトはGNUプロジェクトが開発したAutotoolsと呼ばれる開発システムの

    第39回 Plamo Linuxのビルドスクリプトとパッケージ管理ツール[その2] | gihyo.jp
  • 第6回 node.js、SignalRとクラウド、まとめ | gihyo.jp

    これまで5回にわたってnode.jsとSignalRについて説明をしてきましたが、この両者は思った以上に似ている技術だと感じていただけたのではないかと思います。 連載の最後となる今回は、node.jsとSignalRのそれぞれを実際にクラウドで運用するにあたって、避けることができないスケールアウトについて説明を行って、それぞれの特徴と違いをまとめたいと思います。 まずはスケールアウトを行うにあたって必要となるRedisの説明を行っておきます。RedisとはオープンソースのKVS(Key-Value Store)なのですが、他のKVSにない特徴としてPub/Sub型のメッセージングが実装されていることが挙げられます。 図 Redisは最近、非常に人気があるKVSの1つとなっている 簡単に説明するとRedisを経由して複数のサーバ間でのメッセージのプッシュ通信が出来る機能です。この機能をnod

    第6回 node.js、SignalRとクラウド、まとめ | gihyo.jp
  • 「第37回 HTML5とか勉強会 ~ビギナー向けデバッグツール特集」活動報告 | gihyo.jp

    2013年3月21日、第37回のHTML5とか勉強会はNTTアドバンステクノロジ株式会社さんに会場をお借りして開催しました。 今回は「ビギナー向けデバッグツール特集」をテーマとして、Chrome、Safari、Firefox、Internet Explorerに付属している各開発者ツール、またAdobe Edge Inspectについて取り上げました。 稿では、その内容についてレポートします。 Chrome DevTools for beginners Chromeの開発者ツールについてhtml5j.orgの吉川さんから紹介いただきました。 Chromeの開発者ツールは、Chromeの右クリックメニューにある「要素の検証」等で起動することができます。 まずは基的な設定の方法をいくつか紹介しました。 ツールの左下にあるボタンをクリックか長押しすると、ツールの表示位置をブラウザの下部か、右

    「第37回 HTML5とか勉強会 ~ビギナー向けデバッグツール特集」活動報告 | gihyo.jp
  • 第5回 チューニングのために理解しておきたいGCの4つのアルゴリズム | gihyo.jp

    なぜアルゴリズムを学ぶのか GCによる停止時間が長くなり、アプリケーションの処理時間が短くなると、業務に使える時間が短くなってしまいます。その問題を解決するために、GCをチューニングすることで、アプリケーションの停止時間を短くすることが考えられます。 その際大事なのは、GCのアルゴルズムを把握しておくことです。 GCのチューニングを行うときは、GCで行われている処理の内、どの処理に時間がかかっているかをモニタリング⇒分析⇒チューニングする、という流れになります。しかし、GCのアルゴリズムを知らないと、モニタリング結果を見てもどこに問題があるかがわからず、分析やチューニングを行うことができません。 今回は、以下の4つのアルゴリズムをご紹介します。 マーク&スイープGC コンパクション コピーGC 世代別GC GCのアルゴリズムはJVMの実装によって異なりますが、多くの場合、上記4つのアルゴリ

    第5回 チューニングのために理解しておきたいGCの4つのアルゴリズム | gihyo.jp
  • gihyo.jp FreeBSD勉強会第15回「インストーラを使わないでFreeBSDをインストールする方法」、2月22日に開催 | gihyo.jp

    gihyo.jp FreeBSD勉強会第15回「インストーラを使わないでFreeBSDをインストールする方法」、2月22日に開催 gihyo.jp FreeBSD勉強会第15回のご案内です。 FreeBSDのインストールでは通常、インストーラが使われます。インストーラはディスクのパーティショニング、プロダクトの展開、基的な初期設定などを代替で行ってくれるものです。実際にはコマンドを実行してパーティショニングやプロダクトの展開を実施しているだけなので、インストーラを使わなくてもFreeBSDをインストールすることができます。 勉強会では、実際にFreeBSDを手動でインストールする方法を実演しながら、FreeBSDの仕組みやインストーラが実施している内容を深く理解することを目的とします。また、インストール後の基的な設定についても、どのコマンドを使って何を設定するのかを説明します。Fre

    gihyo.jp FreeBSD勉強会第15回「インストーラを使わないでFreeBSDをインストールする方法」、2月22日に開催 | gihyo.jp
  • 第6回 レプリケーション+シャーディングでMongoDBをもっと使いこなす | gihyo.jp

    概要 連載では第4回ではレプリケーション、第5回ではシャーディングについて説明してきましたが、今回はレプリケーションとシャーディングを組み合わせた構成について紹介します。この構成を取ることにより、データを冗長化させつつも、分割して配置することができるため、可用性と読み取り性能を両方向上させることができます。 前回のシャーディングの構成では、単一のmongodをシャーディングサーバに割り当てていましたので、その1つのmongodが障害になると、シャーディングの機能が停止してしまうという問題がありました(図1参照⁠)⁠。 図1 これを解決するために、シャーディングサーバに単一のmongodではなくレプリカセットを割り当てます。これによりレプリカセット内のmongodに障害が発生してもシャーディングの機能が停止しない構成にすることができます(図2参照⁠)⁠。 図2 さらに信頼性を高めたい場合は

    第6回 レプリケーション+シャーディングでMongoDBをもっと使いこなす | gihyo.jp
  • 第45回 CSSのコンポーネント化がもたらすメリット | gihyo.jp

    同じ記述の繰り返しを防ぎメンテナンス性や柔軟性を向上 W3Cによって策定された仕様の1つで、HTML/XMLの要素の表示をコントロールするために生まれたのが「CSS」(⁠Cascading Style Sheets)です。HTMLとこのCSSを組み合わせることによって、文書構造(HTML)と見た目の表現(CSS)を切り離すことが可能になるほか、HTMLだけでは実現できないデザインやレイアウトが可能になるといった大きなメリットがあることから、Webサイトの構築やWebアプリケーションの開発において欠かせない技術となっています。 このCSSで現在注目を集めつつあるのが「オブジェクト指向CSS」や「Scalable and Modular Architecture for CSS」(⁠拡張性のあるモジュールアプローチ)といった考え方です。これらは、CSSで記述する内容を「コンポーネント化」するこ

  • 第17回 Webアプリケーションのパフォーマンス改善(2) | gihyo.jp

    前回の(1)はこちらから。 ボトルネックの特定 システムの現状が把握できたところで、ボトルネックの特定に取りかかります。アプリケーションのレスポンスタイムのうち、どこにどれぐらいの時間がかかっているのかを特定していきましょう。 Time::HiResによる簡単な計測 Time::HiResモジュールを利用することで、特定の個所にどれぐらい時間がかかっているのかを計測できます(リスト5⁠)⁠。 リスト5 Time::HiResの使用例 use Time::HiRes qw/ gettimeofday tv_interval /; my $t0 = [ gettimeofday ]; # 計測開始 ... # 処理時間を計測したい処理 my $elapsed = tv_interval($t0); # 経過時間(秒) ここは遅いだろう、という部分に目星が付いている場合には、処理時間を確実に計測

    第17回 Webアプリケーションのパフォーマンス改善(2) | gihyo.jp
  • 第1回 機械学習を実践する前の基礎知識 | gihyo.jp

    みなさん、次のようなことができたらいいと思ったことはありませんか? 「顧客ごとに、適したタイミングと内容で、DMを送信できたら……」 「CGM系サイトへの誹謗中傷なんかのスパム投稿を自動識別できたら……」 「サーバの負荷が高まるタイミングを事前に予測できたら……」 一見するとこれらは実現していることがまったく異なりますが、じつはある共通点があります。それは「データを分析し、その結果を活用している」という点です。 Data is Kingの考えから得られるメリット かつてAmazonに在籍していたRonny Kohaviは「Data is King at Amazon」と言い、データの重要性を説きました。事実、Amazonはユーザの購買履歴から商品のレコメンデーションを行い、ユーザのサイト内の遷移履歴やクリック率からサイト構造の改善を行うなど、データを徹底的に活用していることで知られています

    第1回 機械学習を実践する前の基礎知識 | gihyo.jp
  • 第2回 node.jsの概要とアプリケーション開発の準備 | gihyo.jp

    前回ではリアルタイムWebを実現する技術としてnode.jsとSignalRを上げました。今回と次回は既に利用実績もあるnode.jsについて説明したいと思います。 まずは、なぜnode.jsがリアルタイムWebを実現するために利用されているかを見ながら、実際にnode.jsを使ったアプリケーションを開発していきます。 node.jsの特徴 Apacheでは1クライアントからの要求に対して1つのスレッドが生成されますが、node.jsではイベント駆動モデルとノンブロッキングI/Oを採用しているので、1つのスレッドで数多くのクライアントの要求を処理できるようになっています。 「1つのスレッドで処理を行うnode.jsは逆にパフォーマンスが落ちるのでは?」と思われる方もいると思います。リクエストを処理するスレッドが1つですが、ネットワークI/Oやデータベース処理などを非同期で行うことで、サーバ

    第2回 node.jsの概要とアプリケーション開発の準備 | gihyo.jp
  • 第1回 JVMはどのようにメモリ空間を利用するのか | gihyo.jp

    あのWebサービスもJVMを利用している 「Javaは大規模なエンタープライズシステムにしか使われない」 それが常識だと思っていませんか? たしかに、これまでJava Virtual Machine(JVM)は、他の言語を実行すると遅く、Javaのプログラムを実行する環境にすぎないものでした。ところが、Java 7から実装されたInvokeDynamicにより、JVM上で、RubyPHPなどさまざまなコンピュータ言語で記述されたプログラムをより高速に実行できるようになりました。 これにより、今までエンタープライズでJava言語で記述されたプログラムを実行するだけの環境であったJVMが、汎用的な実行環境になったと言えます。また、これまでJavaの実行環境として使用されていたノウハウが、他の言語で記述されたプログラムを実行する際にも利用できます。 最近では、TwitterがJVMをアプリケー

    第1回 JVMはどのようにメモリ空間を利用するのか | gihyo.jp
    clavier
    clavier 2013/01/16
  • 第2回 最大の課題「I/Oボトルネック」の原因と分析法 | gihyo.jp

    I/Oの「レスポンス」と「スループット」とは? 連載第1回でご紹介したように、大規模データ処理を行うデータベースで一番大きな課題となるのは、ディスクI/O(以降、単にI/Oと表記します)のボトルネックです。数百GBやTBクラスの巨大データウェアハウスの場合、SQLが実行される時間のほとんどがI/Oを待つ時間となっているケースが多々あります。 ここでは、I/Oボトルネックが発生するおもな原因を、「⁠レスポンス」と「スループット」という概念から見ていきましょう。それぞれ、広義では以下の定義となります。 I/Oレスポンス=I/O要求処理にかかる応答時間 I/Oスループット=単位時間当たりのI/O処理量 Oracle Databaseに当てはめると、以下のように定義できます。 I/Oレスポンス=1データブロックの読み出しや書き込みにかかる時間 I/Oスループット=単位時間あたりの読み出しや書き込み

    第2回 最大の課題「I/Oボトルネック」の原因と分析法 | gihyo.jp
  • HTML5の破られた約束 | gihyo.jp

    2012年10月15~16日、サンフランシスコのPalace HotelでHTML5 Developer Conferenceが開催されました。その中からChris Heilmann氏(@codepo8)の「Broken promises of HTML5」というプレゼンテーションを紹介します。 MozillaのエヴァンジェリストであるChris氏はMozillaをさまざまな権利/しがらみにとらわれないHTML5の永世中立国だとし、現在のHTML5はハイプ曲線[1]の過度の期待を過ぎ、幻滅期にあるという話から始まります。そしてHTML5がこれからどうあるべきかに続きます。まずHTML5がうまくやってきたのは次の部分だと述べています。 Webを壊さない(後方互換性) 一貫した構文解析 マルチメディア 強化されたformエレメント ですが、突然変異と題してHTMLMediaElement#ca

    HTML5の破られた約束 | gihyo.jp
  • 第42回 スマートフォンサービスを支えるデータベース環境[後編] | gihyo.jp

    サイバーエージェントが展開する「Ameba」のスマートフォンプラットフォームにおいて、データベースとして活用されているのがHBaseです。前回に引き続き、この開発を担当したAmeba Technology Laboratory所属の鈴木俊裕氏と善明晃由氏にお話を伺っていきます。 (左から)鈴木俊裕氏と善明晃由氏 専用APIを用意しHBaseを抽象化 サイバーエージェントは現在、スマートフォン向けのプラットフォーム事業を「デカグラフ」として展開しています。これは個々のサービスを「ミニグラフ」と位置付け、それらをデカグラフとして集約するという構想であり、実際のプラットフォームとして開発されたのが「Ameba」のスマートフォンプラットフォームです。 このプラットフォームはデータベースとしてHBaseを利用しており、その中にソーシャルサービスに向くグラフ構造でデータを格納しています。同社の「Ame

  • 第1回 Meteorをはじめよう | gihyo.jp

    Meteorとは? Meteorは、2012年4月に彗星のように登場した、新たなアプリケーションプラットフォームです。この原稿の執筆時で、バージョンは0.3.6とされており、まだまだプレビュー版の域は超えていません。また、現状ではUNIX環境(MacOS Xを含む)でしかうまく動作しないようです。 しかし、Webアプリケーション開発をとことんまで素早く、楽に行えるようにするためのさまざまな仕組みが盛り込まれていることから、登場直後からかなりの注目を集めています(公式サイトには、「⁠1日か2日でプロトタイプを、2~3週間で製品レベルのアプリを構築できるようにする」とあります⁠)⁠。 MeteorはMITライセンスに基づくオープンソースプロジェクトとして、Github上で公開されています。現在4人の開発者がフルタイムで開発に従事しており、1年以内に1.0をリリースする予定だとされています。 M

    第1回 Meteorをはじめよう | gihyo.jp
  • 2012年5月8日 BSDハイパーバイザBHyVe、ゲストイメージ公開開始 | gihyo.jp

    release Pre-configured BHyVe Guest Images FreeBSDをベースに開発されているタイプ2ハイパーバイザ「BHyVe」向けのゲストOSイメージの公開がはじまりました。現在のところFreeBSD 9.0-RELEASEのイメージが公開されています。 BHyVe - BSD HyperVisor 公開されたイメージは、ネットワークインターフェースとしてem0の使用を前提とし、IPアドレスとして192.168.1.151が設定されています。起動前に変更したい場合にはmd(4)経由でマウントして/etc/rc.confを書き換えれよいと説明があります。 BHyVeを動作させるにはNehalem以降搭載されているVT-xとEPTの機能を持ったIntelプロセッサが必要です。モデルによっては必要な機能が搭載されていないものがありますので注意してください。AMD

    2012年5月8日 BSDハイパーバイザBHyVe、ゲストイメージ公開開始 | gihyo.jp
    clavier
    clavier 2012/11/14
  • 第6回 Node.jsアプリケーションをCloud9で開発する | gihyo.jp

    はじめに 少し間が空いてしまいましたが、今回はクラウド上のIDE(統合開発環境)であるCloud9 IDEを使って、Node.jsアプリケーションの開発を行う方法について紹介します。前回紹介したHerokuとの連携機能およびGitを用いて、Cloud9 IDEとソースコードを相互にやり取りする方法を説明します。 Cloud9 IDEでは、統合開発環境では基的なコード補完やシンタックスチェック、Git、Mercurialのバージョン管理ツールの利用だけでなく、SSH、FTPなどのCUIによる操作もサポートからチームによるチャットなどを使った共同での開発作業と、幅広く多機能な環境をブラウザから利用することができます。 Cloud9 IDEにサインアップ まず、Cloud9 IDEのサイトから、[⁠Sign up]ボタンよりアカウントを登録しましょう。GitHubまたはBitbucketのアカ

    第6回 Node.jsアプリケーションをCloud9で開発する | gihyo.jp
  • 第3回 localStorageとpostMessageの使いどころ(3) | gihyo.jp

    localStorageとpostMessage postMessageを使うことで、サーバを経由しないで異なるドメイン間でのデータ受け渡しが可能だということを説明しました。またlocalStorageを使うことで「サーバには送られないがブラウザにのみ保持されるデータ」を気軽に作ることができるようになりました。 「他サービスのid」ならまだしも「どんなサービスを使っているのか」までも秘匿(ひとく)したいケースは実際にはまれでしょうから、そこまでストイックな、完全にクライアントサイドでのみデータを保持するサービスにこだわる必要もないでしょうが、方向性としては興味深いと思います。クライアントサイドでのみデータを保持するということは、ブラウザのキャッシュをクリアしたらデータが消えるということでもあります。そんな状況は好ましくないでしょうから、localStorageに当に永続化が必要な情報を入

    第3回 localStorageとpostMessageの使いどころ(3) | gihyo.jp