Tech Sketch Bucket of Technical Chips by TIS Inc.

RubyからAmazon Kinesisを操作する

Pocket

昨年11月、米ラスベガスで開催されたカンファレンス「AWS re:Invent 2013」で、ストリーミングデータをリアルタイムに処理するサービスである「Amazon Kinesis」が発表されました。ストリーミングデータをリアルタイムに処理...と、なにやら難しそうな感じがしますが、API、SDKが公開されているので簡単に試すことができます。今回はRuby向けAWS SDKを利用し、Amazon Kinesisを操作してみます。

「Backbone.js」と「jQuery Mobile」を組み合わせてネイティブっぽいWebアプリを作ってみよう!~ ①環境構築&サーバ側の実装編 ~

Pocket

HTML5の普及によりWebアプリは急速に進化しています。しかし、Webアプリを作成する際のデファクトスタンダードは存在していないのが現状です。そこで、比較的導入実績の多いJavaScriptフレームワークである「Backbone.js」と「jQuery Mobile」を用いてネイティブに近いWebアプリを作成してみました。今回から4回に分けて上記手法を用いたWebアプリの作成方法についてご紹介します。
本連載ではサーバの実装からクライアントの実装までWebアプリを作成するために必要なことをひととおり解説します。

まず、初回である今回は環境構築とサーバ側の実装を見ていきたいと思います。

体を動かすロボット操作(ロボ制御チーム:Ruby + LEGO MINDSTORMS NXT 2.0)

Pocket

人の動きに合わせてモノが動いたら楽しい。

2011年/2012年のGartner hype cycleにもあるように、「キーボード・マウス・ディスプレイ」という三種の神器を越えた Natural User Interface が今注目を集めています。「ならば、作ってみっか!」という精神の元、2012/2/24に行なった「1泊2日で動くものを作るぞ!チーム開発合宿」にて

Kinect等を用いて人間の動きを検出し、その動作に従ってロボットを動かす

という仕組みを、 Xtion Pro Live を用いた ジェスチャ入力チーム(クライアント側)LEGO MINDSTORMS NXT 2.0 を用いた ロボ制御チーム(サーバ側) の2チームに分かれて作ってみました。

ジェスチャ入力チーム(クライアント側)

  1. 人間の動きを検出して
  2. 画面表示しつつ、
  3. 条件を満たしたときに対応したRESTのリクエストを送付

ロボ制御チーム(サーバ側)

  1. RESTのリクエストを元にロボット(LEGO MINDSTORMS NXT 2.0)を制御

ここでは後半の、ロボ制御チームの処理概要について解説します。

なお LEGO MINDSTORMS NXT 2.0 は、こんな感じで動きます。


右手の先に針が取り付けてあります。リモート制御で風船を割るのが今回の目標です。

「GitLab」を使ってGitリポジトリを管理

Pocket

GitLabとは?

GitLabとは、GitHubのようなサービスを社内などのクローズドな環境に独自で構築できるように公開されたオープンソースです。
GitHubだと開発した成果物が社外に保存されるということで業務利用が敬遠されることがあると思います。
しかし、開発者にとってGitリポジトリが管理できるGitHubは非常に便利で使い勝手のいいものです。
それを社内にも構築できるようになるということで関心をもたれる開発者の方々も多いのではないでしょうか。

GitLabがどういう仕組みで稼働しているのか、またどういう運用をすればいいのか、その際の注意点など、
筆者が実際に導入した経験をもとにご紹介したいと思います。