タグ

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

  • 第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
  • 第257回 AutopilotでかんたんUIテスト | gihyo.jp

    GUIアプリケーションにおいてユーザーインターフェースのテストは重要です。今回はUnityとUbuntuのインストーラーのUIテスト自動化のために開発された、Autopilotの使い方について紹介します。 Autopilotとは 冒頭でも述べたとおりUIのテストは重要なのですが、ユーザーの操作が必要になることから自動化が難しい分野でもあります。例えば過去のインストーラーの品質評価では、テスト項目を記載して複数のユーザーに手動でインストールを実行してもらい、問題を洗い出すという対応を行っていました[1]⁠。 しかしこれでは作業コストがかかりすぎてしまいますし、アルファやベータリリースのようなマイルストーン毎でないとなかなかテストユーザーが集まりません。このためこれまでも、少なくともインストーラーのテストの自動化は急務であるという認識がありました。さらに、UbuntuはUnityという独自のイ

    第257回 AutopilotでかんたんUIテスト | gihyo.jp
    okinaka
    okinaka 2013/01/17
  • 第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
    okinaka
    okinaka 2013/01/10
  • 第250回 Ubuntuに日本語を話してもらおう(前編) | gihyo.jp

    今回から2回に渡り、Ubuntuで利用可能ないくつかのソフトウェアを組み合わせて、入力テキストを喋る仕組みを作るレシピをお届けします。Mbrola、MeCabを使って音声を合成し、Linuxのサウンドサブシステムを通じて音声を出力します。 MBROLAプロジェクトとは MBROLAとは、汎用音声合成エンジン「mbrola」と、mbrolaで利用可能な音声データベースを開発するプロジェクトです[1]⁠。1995年にベルギーのFaculte Polytechnique de Mons大学のTCTS研究室が開始しました。音声合成エンジンもデータベースもバイナリーの形で提供されているためオープンソースソフトウェアではありませんが、フリーなライセンス[2]のもとで利用できます。 DebianやUbuntuではmbrolaのパッケージが提供されています。Ubuntuソフトウェアセンターでmbrolaを

    第250回 Ubuntuに日本語を話してもらおう(前編) | gihyo.jp
  • 第5回 Node.jsアプリケーションをHerokuで動かす | gihyo.jp

    はじめに 前回までで、Node.jsによる簡単なWebアプリケーションが一通り完成しました。今回はこの構築したアプリケーションを、クラウドベースのアプリケーションホスティングサービスであるHeroku上で、動かしてみたいと思います。HerokuはNode.js以外にもJava, Ruby, Pythonなどのアプリケーションをデプロイすることができます。 Herokuのセットアップ まず、Herokuのサイトから、「⁠Sign up」ボタンよりアカウントを登録してください。 図1 Herokuのサイト さらに、heroku toolbeltというHeroku用コマンドラインツールや開発およびデプロイに使うアプリケーション一式が提供されています。こちらを各々の環境に合わせてインストールします。 インストールが終わったら、コマンドラインからherokuに対する認証処理を行っておきましょう。 $

    第5回 Node.jsアプリケーションをHerokuで動かす | gihyo.jp
    okinaka
    okinaka 2012/08/09
  • 2012年7月第5週号 1位は、ワイヤーフレームとプロトタイプとモックアップの違い、気になるネタは、OS X Mountain Lionがリリース | gihyo.jp

    週刊Webテク通信 2012年7月第5週号1位は、ワイヤーフレームとプロトタイプとモックアップの違い、気になるネタは、OS X Mountain Lionがリリース ネットで見かけたWebテク(Webテクニック・Webテクノロジー)記事から、Webデザイナーの目で厳選したネタを週刊で紹介するこのコーナー。今回は、2012年7月23日~2012年7月29日の間に見つけた記事のベスト5です。 1. Wireframing, Prototyping, Mockuping - What’s the Difference? - DesignModohttp://designmodo.com/wireframing-prototyping-mockuping/ ワイヤーフレームとプロトタイプとモックアップの違いをまとめた記事です。この記事通りに使い分けなくてもいいと思いますが、こういった区別があるとい

    2012年7月第5週号 1位は、ワイヤーフレームとプロトタイプとモックアップの違い、気になるネタは、OS X Mountain Lionがリリース | gihyo.jp
    okinaka
    okinaka 2012/08/02
  • 第231回 ownCloudで自分専用クラウドストレージ | gihyo.jp

    ownCloudはWebDAVを使ったファイル共有サービスを立ち上げるための、FLOSSなサーバーアプリケーションです。2012年5月24日にリリースされた4.0は、非常に多くの新機能が追加され、既存の有料サービスにも引けを取らない完成度に仕上がってきました。そこで今回はこのownCloudをUbuntu上で試します。 ownCloudとは ownCloudはKDEやSUSEの開発者が開発したオープンソースのファイル共有サーバーアプリケーションです。そのソースコードはAGPLv3でライセンスされており、現在はownCloudコミュニティで無償のコミュニティ版を開発し、それをサポートするownCloud社が商用サポートを提供するという開発体制をとっています。コミュニティ版と有償版の違いは主にサポートの有無とライセンスの違いであり、コミュニティ版でもほぼ全機能を使うことが可能です。 図1 ブラ

    第231回 ownCloudで自分専用クラウドストレージ | gihyo.jp
  • 第226回 LXCで軽量仮想環境の活用 | gihyo.jp

    Ubuntu 12.04 LTSの目標の一つは、LXCLinux Containers)の充実でした。11.04の頃から格的にサポートを開始したLXCは、かんたんに軽量な仮想環境を作成できるとあって、アプリケーションのテスト環境やJujuのようなクラウドマシンの生成ツールでも使われています。 さらに今回のリリースでは、x86マシン上でARMの実行環境を生成できるようになりました。そこで今回は、UbuntuにおけるLXCの基的な使い方を紹介します。 LXCで仮想環境を作る LXCLinuxカーネルのControl GroupやNamespaceという機能を使って、ホストOSとは隔離された環境を作るツールです。LXCのパッケージにはテンプレートという形で各OSの最小構成のrootfs環境を作るスクリプトも付属しているため、VirutalBoxやXenのようにコマンドラインから簡単に仮想

    第226回 LXCで軽量仮想環境の活用 | gihyo.jp
  • 第1回 LESSのメリットと導入方法 | gihyo.jp

    CSSをより柔軟に、わかりやすく、速く、ミスを少なく記述できる 最近、CSSの拡張メタ言語「LESS」が話題になっています。LESSとは、かんたんに言えば、CSSの良いところを活かしつつも 「より柔軟に」 「よりわかりやすく」 「より速く」 「よりミスを少なく」 記述できるという、新しい書き方です。うさんくさいと感じるほどにいいことづくめですね。 CSSの拡張メタ言語には、LESSの他にも、Sass、Stylusといったものがありますが、LESSは一番CSSの書式に近く、活用するためのツールがそろっているのが特徴です。 最近LESSについて、はてなブックマークや技術系ブログでもたくさんとりあげられているので、実際に興味を持っている方や試した方もいらっしゃるかもしれません。しかし、まだ入門記事が多く、実際に導入したときのメリットをイメージできないことも多いのではないでしょうか? 連載では、

    第1回 LESSのメリットと導入方法 | gihyo.jp
    okinaka
    okinaka 2012/06/04
  • 第222回 EclipseでGitを使う | gihyo.jp

    ほぼ1年前、連載の第167回で統合開発環境であるEclipseを取り上げました。当時Ubuntu11.04で利用可能なEclipseのバージョンは3.5でしたが、季節が一巡した現在は、Ubuntu12.04でEclipse 3.7を利用可能です。Eclipse体のバージョンアップもさることながら、Git拡張機能に関する変化がありました。そこで今回はEclipseでGitを使う方法をお届けします。 Egitの導入 Gitに関しては連載の第212回で、Ubuntuで利用できるさまざまなクライアントソフトウェアを紹介しました。EclipseをこのようなGitのクライアントとして使うための拡張機能がEgitです。 Egitに限らず、Eclipseは独自の仕組みによって拡張機能をインストールすることができます。しかし、ここで考慮するべきなのは「Ubuntuの」パッケージ管理システムです。 Ub

    第222回 EclipseでGitを使う | gihyo.jp
  • Google Driveの同期機能を概観する | gihyo.jp

    Google Driveは、Google Docsやそのファイル管理に対する新しいWebサービスです。また、Dropboxのような、Webとローカルにあるファイルの同期機能がついたアプリケーションも提供されます。 詳細はGoogleのサイトをご覧いただきたいのですが、稿ではもっとも気になる同期機能を概観してみます。 Google Driveとは? Google Driveは、次の特徴を持っています。 5GBのフリーディスクスペース(それ以上は有料) アップロードしたファイルの検索(OCR) PCのローカルフォルダとの同期 Android端末からのオンラインアクセス、ファイルアップロード(iOS向けは対応中) GmailやGoogle+との連携 Google Driveを使えるようにする 現在、Google Driveは、Googleのアカウントをもっているユーザーに徐々に開放している段階

    Google Driveの同期機能を概観する | gihyo.jp
    okinaka
    okinaka 2012/04/27
  • 第1回 Node.jsとは | gihyo.jp

    はじめに 連載では、注目を集めるNode.jsを使って、Webアプリケーションを様々なクラウド環境で動かすことを最終目的にしています。Node.jsに触れたことがないJavaPHPなど普段サーバサイドで開発されている方を主な対象として、まずNode.jsの概要から紹介していきます。 Node.jsとは Node.jsとは、ブラウザGoogle Chrome用に開発されたJavaScriptエンジンV8がサーバ上でプログラムを実行できるように、ファイルやネットワークI/Oなど多くの機能を追加したものです。軽量で効率よく多くのリクエストを処理するネットワークアプリケーションの構築ができるプラットフォームになっています。いわゆるサーバサイドJavaScriptの代名詞として注目を集めています。 Node.jsでは“⁠軽量で効率良く⁠”というのを実現するために次の2つのモデルを採用しています。

    第1回 Node.jsとは | gihyo.jp
  • 第30回 Scalaをネイティブサポートした「Play Framework 2.0」 | gihyo.jp

    2.0で大幅に拡張されたPlay Framework 連載の第14回、第15回で「Play Framework」(⁠以下、Play)というJavaアプリケーション開発フレームワークを紹介しました。Playは、Ruby on Railsのように簡単なコマンドだけでMVCスタイルのWebアプリケーションの雛形を構築し、開発をスタートさせることができるフレームワークです。 2012年3月13日、そのPlayの新バージョン「Play framework 2.0」(⁠以下、Play 2.0)がリリースされました。この新バージョンでは、核となるアーキテクチャに大幅な変更が加えられました。主なポイントとしては次のような項目が挙げられています。 JavaおよびScalaのネイティブサポート 強力なビルドシステムの構築 型安全性へのフォーカス 非同期プログラミングのより強力なサポート データストアとモデル

    第30回 Scalaをネイティブサポートした「Play Framework 2.0」 | gihyo.jp
  • 第216回 Avahiとローカルエリアネットワーク | gihyo.jp

    Apple社のiTunesなどに関連して、Bonjourという言葉を聞いたことがあると思います。Bonjourは同一ネットワークに提供されているサービスを把握するための仕組みで、対応している機器やコンピューターであれば、ネットワークにつないだだけでお互いのサービスを認識することができます。 今回はこのBonjourに対応したソフトウェアであるAvahiに関するレシピです。 Avahiの役割 Avahiはオープンソースソフトウェアとしてリリースされています。Ubuntuではデフォルトでインストールされます。Ubuntuを起動すると自動で起動し、インストールされているソフトウェアが提供するサービスをネットワークに配信するほか、同一ネットワークにあるBonjour対応ノードからの通知を受け付けて、その情報をキャッシュします。 このキャッシュ情報を一覧するソフトウェアが提供されているので使ってみま

    第216回 Avahiとローカルエリアネットワーク | gihyo.jp
  • 2012年3月第4週号 1位は、Bootstrapを補完するツールや素材、気になるネタは、アマゾン、実際に商品を購入した人のレビューに「証明マーク」表示 | gihyo.jp

    週刊Webテク通信 2012年3月第4週号1位は、Bootstrapを補完するツールや素材、気になるネタは、アマゾン、実際に商品を購入した人のレビューに「証明マーク」表示 ネットで見かけたWebテク(Webテクニック・Webテクノロジー)記事から、Webデザイナーの目で厳選したネタを週刊で紹介するこのコーナー。今回は、2012年3月19日~2012年3月25日の間に見つけた記事のベスト5です。 1. 20+ Beautiful Resources That Complement Twitter Bootstraphttp://www.webresourcesdepot.com/20-beautiful-resources-that-complement-twitter-bootstrap/ Bootstrapを補完するツールや素材を多数紹介しています。 この連載でも何度も取り上げていますが

    2012年3月第4週号 1位は、Bootstrapを補完するツールや素材、気になるネタは、アマゾン、実際に商品を購入した人のレビューに「証明マーク」表示 | gihyo.jp
    okinaka
    okinaka 2012/03/30
  • 第29回 JavaオブジェクトとJSONオブジェクトの変換に便利な「Google Gson」 | gihyo.jp

    型→JSONの変換 前回は2回にわたってJavaプログラムでJSONデータを扱うための「Jackson Java JSON-processor」を紹介しました。今回はJSONデータを扱うもう1つのJavaライブラリ「Google Gson」を紹介します。Gsonの特徴は、JavaオブジェクトとJSONオブジェクトの変換を、シンプルなコードで行うことができる点です。字句解析を行えるような低レベルのAPIも備えていますが、それよりもオブジェクト変換の簡潔さに注力しているあたりがJacksonとの大きな違いと言えます。 Gsonはこのページよりダウンロードすることができます。「⁠google-gson-2.1-release.zip 」をダウンロードして解凍し、中のjarファイルをクラスパスに含めて使用します。 Gsonを使う場合に重要なのは、GsonクラスのtoJson()メソッドとfro

    第29回 JavaオブジェクトとJSONオブジェクトの変換に便利な「Google Gson」 | gihyo.jp
    okinaka
    okinaka 2012/03/23
  • 第215回 Ubuntuのベータ版をテストする | gihyo.jp

    3月もなかばを過ぎ、そろそろUbuntu 12.04の最終的な形も見え始めてきたところです。今月末にはベータ2のリリースも控えているので、今回はUbuntuのベータ版を使う上でのポイントを紹介します。 ベータ版を使う前に ベータ版を使うメリット Ubuntuはリリースされた後の修正・変更に対して、セキュリティ関連を除いて慎重になる傾向があります。実際のところリリースから1ヶ月程度であれば、リリース後に見つかった不具合の対応も活発に行われることになりますが、対応によって新たな不具合が発生することを防ぐために手続きが厳格になること、まずは開発版での修正を確認できない限りはリリース版には反映されないこと、メインの開発者が次期リリースの開発に軸足を移していくことなどから、開発時の修正に比べるとハードルがあがります。 そこで、開発版の段階で一通り確認して問題点を報告しておいたほうが修正されやすいので

    第215回 Ubuntuのベータ版をテストする | gihyo.jp
  • 第28回 「Jackson Java JSON-processor」でJSONデータの読み書きを行う | gihyo.jp

    ツリーモデルAPIでJSONデータを読み込む 前回は「Jackson Java JSON-processor」(⁠以下、Jackson)のストリーミングAPIを利用して、JavaプログラムからJSON形式のデータにアクセスする方法を解説しました。今回はそれに引き続き、ツリーモデルのAPIを使う方法を紹介します。JacksonのツリーモデルAPIは、XMLのDOM APIに相当するもので、一度メモリ上に全てのデータを読み込んでオブジェクトのツリーを構築するため、先頭から順番にデータを読み込むストリーミングAPIに比べて柔軟なデータアクセスが可能です。 ツリーモデルの核になるのは、ブジェクトツリーのノードを表すJsonNodeクラスです。JsonNodeオブジェクトは、複数の子ノードと、それに紐付くフィールド名の情報を保持しています。子ノードを表すJsonNodeオブジェクトはget()メソッ

    第28回 「Jackson Java JSON-processor」でJSONデータの読み書きを行う | gihyo.jp
    okinaka
    okinaka 2012/03/08
  • 第213回 Ubuntuを使ってUPnPとDLNAのネットワーキングを覗いてみる | gihyo.jp

    連載の「第86回 UbuntuをWindows 7のサーバとして使う(2)DLNAサーバ編」「⁠第109回 HDDレコーダを使いこなす(1)DLNAクライアント」「⁠第111回 UbuntuからHDDレコーダを使いこなす(2)動画ファイルのダウンロード」では、DLNAやUPnPに関するレシピをお届けしました。 今回はGUPnPというソフトウェアを使い、このDLNAやUPnPをもう少し掘り下げて説明してみます。 UPnP?DLNADLNAに関して調べていると必ず、UPnPという言葉も目にするはずです。この2つの区別がいまひとつわからずに混乱している方も多いのではないでしょうか? そこで、まずはこの2つが何なのか、まとめておきましょう。 UPnPもDLNAも、互いに独立した業界団体です。ローカルネットワークを介したハードウェアの相互運用性の向上がその目的です。簡単に言ってしまうと「ネット

    第213回 Ubuntuを使ってUPnPとDLNAのネットワーキングを覗いてみる | gihyo.jp
  • 第212回 Git/Bazaarブラウザあれこれ | gihyo.jp

    明日から3月です。春です。春といえば出会いと別れの季節。「⁠出会い(merge)」と「別れ(branch)」を初心者でも効率よく行うために、グラフィカルなインターフェースを備えたGit/Bazaarクライアントをいくつかご紹介します。 Gitクライアント Gitは世界でもっとも使われている分散型バージョン管理システムです。Recipeの読者であれば、LinuxカーネルやGitHubなんかでお世話になっている人も多いことでしょう。Ubuntuでもgitパッケージをインストールすることで簡単に導入できます。 ちなみに、Gitは初期状態だと日語などのマルチバイトのファイル名を数値表現で表示します。git-gui/gitk以外のクライアントはこれを数値のまま表示してしまうため、日語ファイル名を含む差分を見るときに不便です。以下のコマンドで、数値表現に変更せずそのまま表示するように設定を変更して

    第212回 Git/Bazaarブラウザあれこれ | gihyo.jp