タグ

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

  • 第2回 [開発編]Airレジの開発チームが語る、最新サービスの裏側 | gihyo.jp

    リクルートライフスタイルが現在力を入れているサービスの一つに、飲店や小売店などにおいてiPadなどのスマートデバイスをレジ端末として使える「Airレジ」(⁠図1)があります。この開発に携わる同社のエンジニアである友永隆之氏(写真1⁠)⁠、伊藤健介氏(写真2⁠)⁠、塚越啓介氏(写真3⁠)⁠、佐橘一旗氏(写真4)に、開発における苦労や工夫しているポイント、これからの展開などについて伺いました。 Airレジを中核とする多彩なサービスで業務を支援 ――Airレジの概要と特徴を教えてください。 佐橘氏:Airレジは、お店の運営や経営で求められるPOSレジ機能を、スマートフォンやタブレット端末で使えるようにしたアプリケーションです。主に自分で店舗を営む方々が自分たちのサービスに注力できるように、さまざまな角度から支援するプロダクトになっています。 Airレジを中核とし、集客を支援する「Airウォレッ

    第2回 [開発編]Airレジの開発チームが語る、最新サービスの裏側 | gihyo.jp
    ainame
    ainame 2016/05/04
  • 第1回 シンプル・軽量な構成管理ツールItamae | gihyo.jp

    はじめに はじめまして。クックパッド株式会社の荒井(@ryot_a_rai)と申します。 今回から全5回、構成管理ツールであるItamaeの入門から実際の活用例までを解説していきます。今まで構成管理ツールを使ったことがなかった方から、Itamaeをすでに使っている方まで、ぜひご覧ください。 Itamaeとは Itamaeは筆者が中心となって開発を進めているオープンソースの構成管理ツールです。同様のツールとしてはPuppet、Chef、Ansibleなどが有名ですが、ItamaeはChefに影響を受けています。Chefの記述性・柔軟性を持ちながら、シンプルで導入しやすい構成管理ツールを目指して開発が進んでいます。 構成管理ツールの必要性 Itamaeの解説を始める前に、構成管理ツールを使う理由について軽く考えてみたいと思います。 サーバ構築の自動化 手動構築の手間と時間を減らす 手動構築によ

    第1回 シンプル・軽量な構成管理ツールItamae | gihyo.jp
    ainame
    ainame 2015/08/03
  • 第5回 MySQLチューニング(4) SQLチューニング基礎 | gihyo.jp

    スロークエリログの出力フォーマット スロークエリログはデフォルトではログファイルに出力されます。log_outputをTABLEに設定すると、mysqlデータベースのslow_logテーブルに出力されます。カンマ区切りで「FILE,TABLE」と設定すると、slow_logテーブルとログファイルの両方に出力されます。なお、log_outputは一般ログ(General Log)とスロークエリログの両方に影響しますので注意してください。 slow_logテーブルはCSVストレージエンジンを利用しているため、CSV形式のデータファイルをコピーして各種のツールで集計も可能です。テーブルに出力している場合のmysqldumpslowに類似した集計は下記のSQL文で可能です。 図2 mysql.slow_logテーブルからmysqldumpslow同等の集計を行うSQLmysql> SELECT

    第5回 MySQLチューニング(4) SQLチューニング基礎 | gihyo.jp
    ainame
    ainame 2015/07/28
    じっくり読みたい
  • 第34回 バージョン管理 ─プロジェクト管理ファイルについて[中編] | gihyo.jp

    はじめに 今回と次回の2回にかけて、イマイチよくわかってないAndroid Studioのプロジェクト管理ファイルについて解説します。途中で飽きちゃう人のために、最低限共有する必要のある(バージョン管理する必要のある)管理ファイルを紹介します。 ここでの対象は.ideaディレクトリだけなので、説明のしやすさも兼ねて <PROJECT_HOME>/.idea/.gitignoreを作成し「.ideaディレクトリに対するホワイトリスト」を提示していきます。 図1 新しく<PROJECT_HOME>/.idea/.gitignoreを作成する リスト1 最低限必要な<PROJECT_HOME>/.idea/.gitignoreの例 *.xml !/gradle.xml リスト2 最低限必要な<PROJECT_HOME>/.idea/.gitignoreの例.gitignoreの内容 /.grad

    第34回 バージョン管理 ─プロジェクト管理ファイルについて[中編] | gihyo.jp
    ainame
    ainame 2015/05/28
  • 第25回 cron周りのベストプラクティス(1) | gihyo.jp

    連載では第一線のPerlハッカーが回替わりで執筆していきます。今回のハッカーはsongmuさんこと松木雅幸さんで、テーマはcronです。 なお稿のサンプルコードは、誌サポートサイトから入手できます。 cronとは? cronは指定日時にジョブの自動実行を行うジョブスケジューラです。UNIX系のOSであれば実装の違いこそあれ、ほぼ標準でインストールされています。 作業自動化や、タスクを自動実行したいなどといった場合にcronは避けては通れません。Perlでバッチ処理を書く際などに多くの人が活用していると思いますが、ベストプラクティスがわからず恐る恐る使っている人も多いのではないでしょうか。 稿では、cron活用におけるベストプラクティスについてお話します。 cronの使いどころ cronの使い途は、主に次の3つが考えられます。 a.アプリケーションのジョブの実行 b.システムに関わる

    第25回 cron周りのベストプラクティス(1) | gihyo.jp
    ainame
    ainame 2014/10/09
  • 第1回 Hubotとは何か | gihyo.jp

    連載では、GitHub社が開発したチャットbot開発・実行フレームワークである「Hubot」を使用して、チャットツールにオリジナルのbotを住まわせ、開発フローに組み込むことで開発を楽にする方法について解説していきます。 botとはなにか 開発の現場で、開発チーム内のコミュニケーションのためにIRCなどのチャットツールを導入することは、よく見る光景だと思います。そんなチャットツールに常駐してチャット経由でコマンドを待ち受けて実行したり、決められた条件に従ってチャットに発言してチャットの参加者に通知したりするようなプログラムのことをbotと呼びます。 Skype、HipChatやChatWorkなどコミュニケーションツールが多様化した現代においても、それぞれのチャットツールに対応したbotが開発されており、botを開発するためのフレームワークも様々な形で提供されています。botを導入するこ

    第1回 Hubotとは何か | gihyo.jp
    ainame
    ainame 2014/05/12
  • 第10回 ジョブキューで後回し大作戦―TheSchwartz、Qudo、Q4M(3) | gihyo.jp

    Q4M―MySQLを利用したジョブキュー 今まではPerlで作られたミドルウェアとしてのジョブキューを紹介してきましたが、最後にMySQLのプラグインとして提供されるジョブキューQ4Mを紹介します。Q4Mは連載第6回「UNIXプログラミングの勘所」を執筆した奥一穂氏によって作られています。MySQLには依存してしまいますが、利用するプログラミング言語には依存しません。MySQLに接続できるどのプログラミング言語からも利用できます。また、TheSchwartzやQudoのようにミドルウェア側のデータスキーマの制限を受けることがないのも魅力の一つでしょう。 Q4Mの使い方 Q4Mのインストール方法はドキュメントで確認してください。 Q4Mをインストールしたら次はジョブキューで使用するテーブルを定義します。TheSchwartzやQudoでは決められたテーブル定義を使用する必要がありましたが、

    第10回 ジョブキューで後回し大作戦―TheSchwartz、Qudo、Q4M(3) | gihyo.jp
    ainame
    ainame 2013/10/23
  • ニコニコ生放送に見る Redis 活用ノウハウ 記事一覧 | gihyo.jp

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

    ニコニコ生放送に見る Redis 活用ノウハウ 記事一覧 | gihyo.jp
    ainame
    ainame 2013/10/14
  • 第1回 memcachedの基本 | gihyo.jp

    株式会社ミクシィ 開発部 システム運用グループの長野です。普段はミクシィのアプリケーション運用を担当しております。今回から数回にわたり、最近Webアプリケーションのスケーラビリティの分野で話題になっているmemcachedについて、弊社開発部 研究開発グループの前坂とともに、使い方や内部構造、運用について解説させて頂きます。 memcachedとは memcachedは、LiveJournalを運営していたDanga Interactive社で、Brad Fitzpatrick氏が中心となって開発されたソフトウェアです。現在ではmixiやはてな、Facebook、Vox、LiveJournalなど、さまざまなサービスでWebアプリケーションのスケーラビリティを向上させる重要な要素になっています。 多くのWebアプリケーションは、RDBMSにデータを格納し、アプリケーションサーバでそのデータ

    第1回 memcachedの基本 | gihyo.jp
  • Happy Testing Perl:第3回 Test::Declareの紹介|gihyo.jp … 技術評論社

    第3回目を担当する小林です。 今回は私が開発したPerlモジュールのTest::Declareについて紹介します。 Test::Declareの特徴 Test::Declareには、以下の特徴があります。 テストコードをDSL風に(宣言的に)書く事を重点に置いている それによりテストコード自体の見やすさを向上させることができる 宣言的にテストを書く事により、一体なにを目的としたテストなのかがわかりやすくなる Test::Declareでは、Test::More、Test::Deep、Test::Exception、Test::Warn、Test::Outputのfunctionをexportしているので、Test::Declareを1つuseするだけで、これらのモジュールのfunctionが利用可能となります。 これらのテストモジュールが提供するfunctionは通常よく使うものですので、

    Happy Testing Perl:第3回 Test::Declareの紹介|gihyo.jp … 技術評論社
    ainame
    ainame 2013/08/29
  • 第2回 トランザクションを知ればデータベースがわかる―「データ復旧」「同時実行制御」を行う“不完全な”しくみ(2) | gihyo.jp

    DBアタマアカデミー 第2回トランザクションを知ればデータベースがわかる―「データ復旧」「同時実行制御」を行う“不完全な”しくみ(2) トランザクションが「終わる」のはいつか ところで、前回で私は、「⁠『⁠障害発生前に終了しているトランザクションの変更は救う』というのが耐久性(D)の定義だ」と述べましたが、このときの「終了している」とはどういう意味なのでしょう。言い換えると、トランザクションは、いったいいつ「終わる」のでしょう。 COMMIT/ROLLBACKには時間がかかる 直観的に考えれば、それは「COMMIT(またはROLLBACK)が実行されたとき」です。そして、ここにおいて私たちとDBMSとの間に認識のズレはありません。障害発生前にCOMMITまでたどり着いたトランザクションは、障害後にも救われます。そんなの当たり前のことではないか、と思うかもしれませんが、DBMSの内部処理とい

    第2回 トランザクションを知ればデータベースがわかる―「データ復旧」「同時実行制御」を行う“不完全な”しくみ(2) | gihyo.jp
  • 第4回 rroongaを使ったソースコード検索エンジンMilkode | gihyo.jp

    はじめまして、おんがえしと申します。 今回は私が作っているソースコード検索エンジンのMilkodeにて、rroonga(とその内部で動くgroonga)がどのように使われているのかを紹介します。 Milkodeの検索画面 ソースコードを検索するということ プログラマの仕事はプログラムを書くことですが、同じくらい「検索する」ことは多いのではないでしょうか。 ある関数の名前を変えたいので使っている箇所をすべて見つけたい ライブラリの仕様が変わった。使っているコードはどこだったか? コードリーディング中。今読んでいる関数の実体はどこにあるのか? ベーマガを買ってゲームのプログラムを写経していた頃から時代は進み、WebにアクセスすればゲームやOS、Webアプリなどのソースコードを無料[1]で手に入れることができるようになりました。必要なものをソースコードから検索し、知識として取り込んでいく技術は今

    第4回 rroongaを使ったソースコード検索エンジンMilkode | gihyo.jp
  • 第10回 リアクティブ・プログラミング | gihyo.jp

    リアクティブ・プログラミング 今回お伝えするのは、Meteorが一般的なWebフレームワークとは一線を画しているコンセプト、「⁠リアクティブ・プログラミング」についてです。 リアクティブ・プログラミングとは、端的に言うと、あるデータに対して行った変更が自動的に伝播し、その他の部分に影響をおよぼすようなプログラミング・パラダイムのことです。 たとえば表計算ソフトの一般的な機能として、セルの値に応じて、そのセルを参照している部分の値も自動的に変更されるというものがありますが、これはリアクティブ・プログラミングの典型的な例です。 また、MVCフレームワークの中には、モデルの値を変更すると自動的にビューが更新されるという機能を持つ(バインディングと呼ばれます)ものもありますが、これもリアクティブ・プログラミングの例と言って良いでしょう。 Meteorの素晴らしい点は、リアクティブ・プログラミングを

    第10回 リアクティブ・プログラミング | gihyo.jp
  • ミクシィのAndroid開発者向けサービス「DeployGate」、無料プランおよび最大3万人にアプリを配信可能な「配布ページ作成機能」の提供を開始 | gihyo.jp

    ミクシィのAndroid開発者向けサービス「DeployGate」、無料プランおよび最大3万人にアプリを配信可能な「配布ページ作成機能」の提供を開始 株式会社ミクシィが2012年9月にリリースしたAndroid開発者向けサービス「DeployGate⁠」⁠。その後、順調にサービスが拡大し、日無料プランおよび新機能の提供を発表した。 DeployGate DeployGateとは DeployGateは、ミクシィが新規事業の第1弾としてスタートしたサービスで、同社が培ってきた技術資産を開発者に向けて提供するというもの。アプリ配布やログ取得、オンラインでの共有など、Androidアプリ開発時に必要な機能が盛り込まれている。 主な特徴として、 すべてがリアルタイムで動作 オンラインでの接続。USBケーブルは不要 開発現場のコラボレーションにフォーカス シンプルで簡単に使えて高機能 といった点が

    ミクシィのAndroid開発者向けサービス「DeployGate」、無料プランおよび最大3万人にアプリを配信可能な「配布ページ作成機能」の提供を開始 | gihyo.jp
    ainame
    ainame 2013/03/04
  • 第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
  • 第4回 UTF-8の冗長なエンコード | gihyo.jp

    今回は、文字コードに関連するセキュリティの話題では古参ともいえるUTF-8の冗長なエンコードというテーマについて紹介します。 UTF-8とは UTF-8は、各文字を1~4バイトの可変長で表現するUnicodeの符号化方式のひとつです。 U+0000からU+007Fの範囲の文字を0x00から0x7Fの1バイトで表現しているため、US-ASCIIと互換性がある、バイト列の途中からでも文字の先頭バイトを簡単に検出できる、多バイト文字の途中に0x00や0x5C(\⁠)⁠、0x2F(/)などが現れない、などの特徴があります。 UTF-8での文字のビットパターンは表1のようになります。 表1 UTF-8でのビットパターン

    第4回 UTF-8の冗長なエンコード | gihyo.jp
  • 第25回 Rackとは何か(3)ミドルウェアのすすめ | gihyo.jp

    前回、前々回の記事では、Rackの生まれた背景、Rackとは何か、実際にRackアプリケーションを作る際に使えるものをご紹介しましたが、もう一つまだ説明していない重要な要素がRackにはあります。今回は、そのミドルウェアという仕組みについてご紹介します。 ミドルウェアとは ミドルウェアとは何かを一言で言うと、「⁠別なアプリケーションをラップして、リクエストやレスポンスを加工したり、処理を切り換えたりするRackアプリケーション」です。 この仕組みがあることで一体何ができるのでしょうか。Webアプリケーションを作っていると、リクエストやレスポンスをアプリケーションに行く前やアプリケーションの処理の後に加工したくなることはよくあります。例えば、条件に応じてURLの書き換えをしたり、エンコーディングの変換をしたり、Cookieの処理をしたり…といったことが日常茶飯事です。こういう処理を、サーバと

    第25回 Rackとは何か(3)ミドルウェアのすすめ | gihyo.jp
    ainame
    ainame 2012/04/28
  • 第3回 RedisによるWebアプリケーション開発(1) | gihyo.jp

    前回までに、Redisの概要と、コマンドラインクライアントによる基的なコマンド操作を見てきました。今回からは、Redisのデータ型を使ったアプリケーション開発について、簡単なサンプルコードと、ニコニコ生放送での事例を交えて紹介していきます。 クライアントライブラリを用いた開発 WebアプリケーションからRedisにアクセスするには、言語ごとのクライアントライブラリを導入することになります。公式サイトにライブラリがリストアップされていますので、各々の環境に合ったものを探してください。 ニコニコ生放送では、PHPによる開発の場合にはphpredisを、Javaで実装している検索サーバーなどではJedisやJRedisを使っています。 今回から掲載するサンプルコードでもこれらのライブラリを使っていきますので、他のライブラリを導入される方はそれぞれ対応するAPIに置き換えてご覧ください。 LIS

    第3回 RedisによるWebアプリケーション開発(1) | gihyo.jp
  • 満を持して登場したmixiモール――ソーシャルグラフ×インタレストグラフで広がる「共感消費」という体験 | gihyo.jp

    株式会社ミクシィと株式会社ディー・エヌ・エーは2012年3月21日、ソーシャルコマースサービス「mixiモール」をリリースしました。今回、ミクシィにてプロジェクトに関わったコマース部コマースグループの白石耕介氏、志村主税氏、杉田絵美氏、岡部馨氏の4名に、mixiモールリリースの背景、狙い、展望について伺ったのでその模様をお届けします。 今回お話いただいた4名 現状のソーシャルサービス×コマースの問題点 まずはじめに、ソーシャルサービスとコマースの掛け合わせ、ソーシャルコマースに関して現状を伺いました。 白石: 現状のソーシャルコマースには3つの問題点があります。 1つ目は、ユーザの皆さんにとってソーシャルサービスはコミュニケーションの場であって「モノを買う」場ではない。すなわち、購買へつなげる心理的ハードルが高い点です。 2つ目は、すでに確立されたEコマース(ビッターズや楽天など)があるこ

    満を持して登場したmixiモール――ソーシャルグラフ×インタレストグラフで広がる「共感消費」という体験 | gihyo.jp
  • 第23回 Eclipseプロジェクト発の新プログラミング言語「Eclipse Xtend」 | gihyo.jp

    「Eclipse Xtend」とは 「Eclipse Xtend」は、Java仮想マシン上で動作する新しいプログラミング言語です。、Eclipseプロジェクトによって開発されたもので、Javaと同様に静的な型を持つ言語であり、Javaコードを生成するコンパイラを備えています。 XtendはEclipseプラグインの1つである「Eclipse Xtext」を利用して開発されました。Eclipse XtextはJavaによるDSL(ドメイン固有言語:Domain Specific Language)の開発を容易にするためのフレームワークおよびツールキットで、これを使えばオリジナルのプログラミング言語を簡単に作成することができます。それだけでなく、Eclipse Xtextで新しい言語を作った場合には、Eclipseの開発サポート機能がその新言語にも適用できるというメリットがあります。 たとえば

    第23回 Eclipseプロジェクト発の新プログラミング言語「Eclipse Xtend」 | gihyo.jp