タグ

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

  • 第328回 「違いがわかる人」になろう | gihyo.jp

    人の世は移ろいゆくものです。人生の劇的な変化にはそうそう遭遇しないかもしれませんが、身の回りのちょっとした変化ぐらいであれば毎日のようにどこかで発生しています。そしてその違いに気が付けるかどうかで、世界を見る目は大きく変わるのです。 バージョンアップ前後のソースコードの差異、校正から戻ってきた原稿の変更点、ミステリーツアーを賭けた間違い探し、恋人の髪型の変化……。そんな日々の「違いがわかる人」になり、ゆくゆくは上質を知る人になるために、今回はいくつかの差分ツールを紹介します。 テキストの差分 Ubuntuの利用者が一番よく調べる「違い」はテキストデータ、とくにソースコードの「差分」でしょう。Ubuntuに最初から入っているdiffコマンドは、2つのファイルやディレクトリの差分を人と機械が読みやすいフォーマットで作成するためのコマンドです。 たとえば以下の2つのファイル、sampleA.tx

    第328回 「違いがわかる人」になろう | gihyo.jp
  • Amazon Redshiftではじめるビッグデータ処理入門 記事一覧 | gihyo.jp

    第5回Amazon Redshiftのアーキテクチャ ~スケーリングとリストアを試してみよう 宮崎真,藤川幸一 2013-06-10

    Amazon Redshiftではじめるビッグデータ処理入門 記事一覧 | gihyo.jp
  • 第1回 LXCとコンテナの基本 | gihyo.jp

    はじめに みなさま、はじめまして。加藤と申します。最近注目を集めている仮想化技術の『コンテナ』に関する連載を始めることになりました。よろしくお願いいたします。 コンピュータの性能が向上し、仮想化という言葉も一般的になりました。従来はVPS等のサービスやIaaS、クラウドといったキーワードと共に語られることが多かった仮想化ですが、最近では開発者自身のPC上で仮想化を使ってテスト環境を作成し、使い終わったら消去するという使われ方が増え、仮想化技術を扱うエンジニアも、インフラエンジニアからアプリ開発者まで広くなりました。 また、従来は仮想的なマシンをコンピュータ上で実現するVMware、Hyper-V、KVMといった技術が話題になることが多かったことに対し、最近ではImmutable Infrastructureといったキーワードと共に『コンテナ』が話題になることが増えました。『⁠コンテナ』とは

    第1回 LXCとコンテナの基本 | gihyo.jp
  • 第318回 HackとPHPの実行環境HHVMをLXCで試す | gihyo.jp

    今回は、LXCで用意したコンテナにHHVMをインストールし、PHP(言語)とHack言語を体験するレシピです。 HHVMとは HHVM(HipHop Virtual Machine)とは、Facebook社によって開発されたOSSです。PHP(言語)のコードの実行を、現在標準的に使われているPHP(実行環境)よりも高速化することを目的としています。特徴は、PHPのコードを専用の中間表現のバイトコード(HHBC)に変換し、このバイトコードを専用の中間表現(HHIR)に変換して最適化を施した後、x86-64あるいはARM64のマシンコードにJust-In-Timeコンパイルする点です。 先日、このHHVMのバージョン3.0.0が公開され、合わせてHackという新しい言語も公開されました。HHVMはPHPに加え、このHackの実行環境にもなります。 Ubuntu用にHHVMのパッケージを提供する

    第318回 HackとPHPの実行環境HHVMをLXCで試す | gihyo.jp
  • 第316回 SimpleScreenRecorderで簡単スクリーンレコード | gihyo.jp

    Ubuntuは人気のあるLinuxディストリビューションの1つですが、いかに人気があっても、隣近所にユーザーがいるとは限りません。困っているユーザーをサポートするために、フォーラムやメーリングリスト、IRCチャットが運用されていますが、操作や設定方法を的確に文章で伝えるのは、なかなか難しいことです。 そこで今回は、コミュニケーションの助けとなるかもしれない、スクリーンレコードに関するレシピをお届けします。 SimpleScreenRecorder スクリーンレコードとは、現在ディスプレイに表示されている画面をビデオに保存する機能です。見えているものがそのままビデオとなるため、直感的に物事を伝えるのに適しています。 Ubuntuではこの用途を満たすRecordMyDesktopのパッケージが利用可能です。しかしこのソフトウェア自体の操作方法に慣れが必要で、不満を持つユーザーも少なくありません

    第316回 SimpleScreenRecorderで簡単スクリーンレコード | gihyo.jp
  • 第315回 apt-cacher-ngを使ってAPT用キャッシュプロキシの構築 | gihyo.jp

    複数台のPCでパッケージのインストールを高速化するためにapt-mirrorを使用している、という例を見かけることがちらほらあります。APT用のキャッシュプロキシがあまり知られていないようなので、今回のレシピでは、APT用のキャッシュプロキシとapt-offlineによるオフライン環境でのインストールについて紹介します。 複数PCでのインストールを高速に行う Ubuntu搭載のPCや仮想マシンを複数台動かしている場合は、インストールやアップデートの際に各PCで同一のパッケージをダウンロードするため、時間がかかったりネットワーク帯域を浪費しがちだったりします。クラウド環境で、数十台~数百台単位でサーバーを管理している場合ならなおさらです。そういった場合は、リポジトリのミラーを作成するか、キャッシュプロキシを利用すると、パッケージ取得が高速に行えます。 前者は、連載の第47回でapt-mir

    第315回 apt-cacher-ngを使ってAPT用キャッシュプロキシの構築 | gihyo.jp
  • 第307回 サービスオーケストレーションツール「Juju GUI」でWebブラウザからサービスをデプロイする | gihyo.jp

    昨年は第288回や第294回で、Ubuntuのサービスオーケストレーションツールである「Juju」を紹介しました。今回はWebブラウザを使ってサーバー上にさまざまなサービスをデプロイできる「Juju GUI」を紹介しましょう。 Juju GUIとJuju Quickstart 「Juju GUI」は、JujuをWebブラウザから操作できるサーバーサイドのツールです。Node.jsベースで実装されており、サービスの状態の確認、ドラッグ&ドロップでのサービスのデプロイ、Webブラウザからのサービスの設定変更やスケールアウト・バック、設定のエクスポートやインポートなどが行えます。実際の動作は、Jujuのデモページを見ると良いでしょう。 Juju GUIをデプロイする Juju GUIはCharm(Jujuでは、サービスをデプロイするために必要な処理を書いたスクリプト群をCharmと呼びます)とし

    第307回 サービスオーケストレーションツール「Juju GUI」でWebブラウザからサービスをデプロイする | gihyo.jp
    okinaka
    okinaka 2014/01/15
  • 第2回 本当にコードを失っても大丈夫なのか、確かめてみよう | gihyo.jp

    前回、「⁠これまでの記事で取り上げたコードを、テスト駆動ベースに移行していく」と書きました。さっそく、取り組んでいきましょう。その中で「コードをすべて失ってしまったとしても、テストが無事なら元と同じ品質のコードをもう一度書くことができる」かどうかを確かめていきましょう。 今回取り上げるプログラム 今回取り上げるのは「PHPでNゲージ模型を自由自在に動かそう」です。第1回のリスト1は、以下のようになっていました。 リスト1 「⁠Nゲージ」第1回リスト1より #! /usr/local/bin/php <?php $url = "http://192.168.0.100/"; file_get_contents($url."?00=C"); file_get_contents($url."?01=D"); file_get_contents($url."?02=D"); file_get_co

    第2回 本当にコードを失っても大丈夫なのか、確かめてみよう | gihyo.jp
    okinaka
    okinaka 2013/12/27
    テスト以前にコードをきれいにしてほしい。
  • 第1回 テスト“だけ”を使ってコードを再現するのは難しい? | gihyo.jp

    プロローグ 読者の方で、次のように思っていらっしゃる方は、どれくらいいるでしょうか。 「いちばん重要な財産はコードであり、万一コードを失ってしまったら、元と同じ品質のコードをもう一度書くのはとても大変だ」 筆者も長年このように思っていました。では、もし以下のように考えたらどうでしょう。 「いちばん重要な財産はテストであり、万一コードをすべて失ってしまったとしても、テストが無事なら元と同じ品質のコードをもう一度書くことができる」 今までとずいぶん違う考え方ですね。いろんな声が聞こえてきそうです。 「コメントはどうするんだ」 「テストが複雑すぎて保守できなくなったらどうするんだ」 ごもっともです。テスト駆動開発は万能ではありません。うまく適用できない場面もあり、このときは従来どおりのやり方が必要です。たとえば、デバイス制御(あるタイミングでI/Oポートを叩くとか)などは、保守可能なテストを書く

    第1回 テスト“だけ”を使ってコードを再現するのは難しい? | gihyo.jp
    okinaka
    okinaka 2013/12/24
    これはひどい・・・。
  • 第294回 仮想化ソフトLXC上でデプロイツールJujuを使う | gihyo.jp

    先月公開した第288回では、Ubuntuのサービスオーケストレーションツールである「Juju」を使ってAmazon Web Service上のUbuntuインスタンスを作成したり、スケールする方法を紹介しました。今回はAmazon Web Serviceではなく、LXCを用いて「ローカルにデプロイする方法」を紹介しましょう。 Juju on LXC LXCLinux Containers)は第226回でも紹介した仮想化ソフトウェアです。Linuxカーネルの機能を使っているため、Linuxカーネルが動く環境であれば、どのホストやゲストでも動かすことができます。たとえば、現在スマートフォンやタブレット向けに開発している「Ubuntu Touch」は、Ubuntu用にカスタマイズしたLinuxカーネルとUbuntu環境を動かしつつ、その中でLXCを使ってAndroidの仮想マシンとAndroi

    第294回 仮想化ソフトLXC上でデプロイツールJujuを使う | gihyo.jp
  • 第5回 Kii Cloudを用いたチャットアプリケーションの開発[その1]―ユーザサインアップ/サインインの実装 | gihyo.jp

    MBaaS徹底入門――Kii Cloudでスマホアプリ開発 第5回Kii Cloudを用いたチャットアプリケーションの開発[その1]―ユーザサインアップ/サインインの実装 前回はKii Cloudを用いたアプリケーション開発環境のセットアップを行いました。そしていよいよ今回から、Kii Cloudを用いた「チャットアプリケーション」の開発を行っていきます。 この連載で開発したアプリケーションについては、GitHub上にて全体のコードをApache License, Version 2.0のライセンスで公開いたします。アプリケーションのコードや細かい動作など、お手持ちの開発環境や端末にてぜひ確認してみてください。 https://github.com/KiiPlatform/KiiChat-gihyo/tree/Vol.5 チャットアプリケーションの機能 今回開発するチャットアプリケーション

    第5回 Kii Cloudを用いたチャットアプリケーションの開発[その1]―ユーザサインアップ/サインインの実装 | gihyo.jp
    okinaka
    okinaka 2013/09/25
  • 第10回 [実録] MySQL向け全文検索エンジン「Tritonn」から「mroonga」への移行ガイド(3) | gihyo.jp

    隔週連載groonga 第10回[実録] MySQL向け全文検索エンジン「Tritonn」から「mroonga」への移行ガイド(3) こんにちは、株式会社リブセンスの吉田健太郎です。第8回に続いて、私が体験したTritonnからmroongaのシステム移行プロジェクトを舞台裏からお届けします。 これまでのあらすじ 将来的な技術負債を残さない、そしてInnoDBの性能向上等の恩恵を受けるため、もはやレガシーとなったMySQL 5.0を捨てて、MySQL 5.6への移行を行いたい。しかしSolrへ乗り換えるほどでもなく、引き続きシンプルにSQLを用いた、リレーショナルな日語対応の全文検索を使いたい。この構想を実現するため、groongaのMySQLバインディング版である「mroonga」を用いた、MySQL 5.6への移行プロジェクトが始動しました。 これまでの記事と、主なトピックは次の通り

    第10回 [実録] MySQL向け全文検索エンジン「Tritonn」から「mroonga」への移行ガイド(3) | gihyo.jp
  • 第49回 自炊データとnetpbm | gihyo.jp

    日中は厳しい残暑が続くものの、朝夕は多少過しやすくなり、夜の時間もずいぶん長くなってきました。「⁠読書の秋」への準備、というわけでもありませんが、授業で使う参考資料をまとめて自炊した勢いで、棚に眠っていた重いも何冊か電子化してみました。 それらの中には数百ページのハードカバーも含まれます。ハードカバーは値段も高く、作りもしっかりしているので、分解することに心理的、物理的な抵抗はあったものの、思いきって電子化してサイズや重さの制約から解き放ってみると、以前よりもずっと頻繁に目を通せるようになりました。移動中や外出先での空き時間に、数百ページもあるハードカバーを手軽に読めるのは、電子書籍ならでは魅力でしょう。 しかし、自炊電子書籍が増えてくるにつれ、それらをもっと読みやすくできないだろうか、と思うようになりました。たとえば、紙のでは製上の都合もあって、文の周囲にはかなり広い余裕

    第49回 自炊データとnetpbm | gihyo.jp
    okinaka
    okinaka 2013/08/30
  • 第8回 CentOS6でのRPMパッケージを用いた MySQL 5.6 &amp;amp; mroonga &amp;amp; PHP 5.4 環境の作り方 | gihyo.jp

    例えばPHP 5.4.xとMySQL 5.6.x環境を用意する際、mysqlndが採用できれば後述の手順において、PHPのRPMパッケージ作成は省略可能です。つまり、mroongaのRPMパッケージ作成のみで導入できます。しかし事情により、mysqlndが使えず従来のlibmysqlclientが必要な環境の場合には、PHP・mroongaそれぞれのRPMパッケージを後述する手順で作成します。なお、iusの提供するmysql56u-develパッケージにはmroongaのビルドに必要なlibmysqlservices.aが不足しているため、オラクル公式のRPMパッケージを利用して紹介します。 Remiリポジトリ・IUSリポジトリのインストールについては、公式サイトが参考になります。 Remiリポジトリ : http://rpms.famillecollet.com/ IUSリポジトリ :

    第8回 CentOS6でのRPMパッケージを用いた MySQL 5.6 &amp;amp; mroonga &amp;amp; PHP 5.4 環境の作り方 | gihyo.jp
  • 第284回 クロスプラットフォームなアプリケーション開発フレームワークQtでプログラミングをはじめる | gihyo.jp

    第276回 Ubuntuオフラインミーティング2013.05 Tokyo――IT屋ではない人からみた体験レポートよりバトンを渡されてから大変遅くなってしまいました。今回は幅広く使われているアプリケーション開発フレームワークのQtについて紹介します。また、UbuntuにおいてのQtも紹介します。 Qtとは Qt(キュート)とは、プログラミング言語C++で書かれたクロスプラットフォームな開発フレームワーク[1]です。たとえば仮想化ソフトのVirtualBoxは、LinuxWindowsMacで動作します。これには扱いやすいフロントエンドGUIがありますが、これはQtで作られています[2]⁠。また、扱いやすいQtCreatorというIDEで快適にプログラミングをすることができます。 図1 QtCreator 次のような特徴があるため、プログラミング初心者から上級者までお勧めできるフレームワー

    第284回 クロスプラットフォームなアプリケーション開発フレームワークQtでプログラミングをはじめる | gihyo.jp
    okinaka
    okinaka 2013/08/01
  • 第1回 スマートフォンアプリ開発に求められるもの | gihyo.jp

    スマホが世界を席巻する 日国内で販売される携帯電話の大半はスマートフォン(以降スマホ)になりましたが、世界に目を向けてみると、スマホのユーザ数はすでに10億人規模に達していて、今年1年だけでも新たに約10億台が出荷されると言われています。2013年はインストールベース(ユーザの手元で使われている台数ベース)でもタブレットを含むスマホのインストールベースがPCを抜いてしまうと言われており、スマホの拡大はますます勢いづいています。 求められるスマホアプリ開発者 スマホのユーザが増えると同時に、アプリの開発を始める開発者の方も増えてきました。多くの場合アプリ開発はあるアイデアから始まります。そのアイデアは、自分が日常感じている問題をうまく解決できる方法を思い付いたところから始まる場合もありますし、自分が得意な分野を対象としてアプリのストア(App StoreやGoogle Play)に置かれて

    第1回 スマートフォンアプリ開発に求められるもの | gihyo.jp
    okinaka
    okinaka 2013/07/24
    いきなりの自社製品紹介はなかった。
  • 第9回 SinatraとSequel・Hamlで掲示板アプリを作る | gihyo.jp

    はじめに 第7回はRails以外のWebフレームワークの簡単な紹介と、SinatraでHello Worldアプリケーションを動かすところまでを解説しました。今回はSinatraで実際のアプリケーションを作り、SequelとHamlという2つのライブラリを紹介します。 Sinatraの特徴は、CGIスクリプトのようにファイル一つからアプリケーションが書ける気軽さです。CGIスクリプトといえば、代表的なものは何と言っても掲示板(BBS)です。そこで、今回はSinatraで掲示板アプリを作ってみました。ソースコードが少し長めなので、githubにて全文を公開しています。適宜参照しながら読み進めて下さい。ファイル構成は以下のようになっています。 start.rb アプリケーションの体。 model/comment.rb 掲示板の書き込みを表すモデルの定義。 view/index.haml トッ

    第9回 SinatraとSequel・Hamlで掲示板アプリを作る | gihyo.jp
  • 第5回 Rubyでサーバ要らずの高速全文検索! - rroongaの紹介 | gihyo.jp

    前回のMilkodeでの事例紹介では、Rubyでrroongaを使ってソースコード検索エンジンを実装している事例を紹介しました。Milkodeは全文検索エンジンを組み込むことにより、大量のファイルに対しても高速な検索を実現しています。rroongaを使った代表的なアプリケーションの1つです。プログラマにとってとても便利なアプリケーションなので、ぜひ使ってみてください。 前回はユーザ視点からのrroongaの紹介でしたが、今回は違った角度から紹介します。rroongaの歴史、大事にしていることについて説明します。 自分のアプリケーションで利用するプロダクトを検討するときに、プロダクトがどのような方向で作られているかを考慮していますか? 自分のアプリケーションが大事にしたいことをそのプロダクトでも大事にしているなら、相性がよいかもしれません。さて、rroongaはあなたが大事にしたいことを大事

    第5回 Rubyでサーバ要らずの高速全文検索! - rroongaの紹介 | gihyo.jp
  • 第6回 クラウドサービスの比較:AWS、Windows Azure、さくらのクラウド | gihyo.jp

    今回でこの連載も最終回です。これまでAmazon Web Services、さくらのクラウド、Windows Azure、Google App Engineについて触れてきました。最終回ということでこれらのベンチマークを比較してみたいと思います。 unixbenchで比較 Amazon Web Services(AWS⁠)⁠、さくらのクラウド(以降さくら⁠)⁠、Windows Azure(以降Azure)は、IaaS(仮想サーバ)がありますが、Google App EngineはPaaSなので単純な比較はできません。まずは前者の3つについて、比較をしてみましょう。 今回はパフォーマンス計測の定番、unixbenchで比較をしてみました。 https://code.google.com/p/byte-unixbench/ 計測対象は下記の通りです。 ディスクについては、AWSではProvis

    第6回 クラウドサービスの比較:AWS、Windows Azure、さくらのクラウド | gihyo.jp
    okinaka
    okinaka 2013/06/04
  • 連載:きちんと学びたいテストエンジニアのためのTestLink入門|gihyo.jp … 技術評論社

    第3回次期バージョン1.8に見るTestLinkの過去・現在・未来 TestLink日語化部会 2008-10-17

    連載:きちんと学びたいテストエンジニアのためのTestLink入門|gihyo.jp … 技術評論社