アプリ開発者必見!「Amazon Rekognition」 で素早く画像分析


リンクバル技術部の中村です。
「re:Invent 2016 Amazon」で発表された、AWSの新機能「Amazon Rekognition」をつかってみました。
Amazon Rekognition は、画像の分析をアプリケーションに簡単に追加できるようにするサービスです。
画像分析のハードルが一気にさがり、アプリケーションがより便利になると感じました。

AWS マネジメントコンソールから写真をアップロードして試す。

AWSの管理画面から、簡単に動作を試すことができます。

女性の写真

aws_rekoginition_woman

人であること、女性であることなどを判定しています。

海の写真

aws_rekoginition_sea

海の写真であることなどを判定しています。

料金

使った枚数だけ、課金されます。
オレゴンリージョンの例を挙げると、
処理画像 1,000 枚あたりの料金
1 か月あたり画像処理* 100 万枚まで 1.00 USD
執筆時点のレートで、一枚あたり約0.12円です。

料金表(オレゴン)

amazon_rekognition_%e6%96%99%e9%87%91_-_%e3%82%a2%e3%83%9e%e3%82%bd%e3%82%99%e3%83%b3_%e3%82%a6%e3%82%a7%e3%83%95%e3%82%99_%e3%82%b5%e3%83%bc%e3%83%92%e3%82%99%e3%82%b9

無料枠

無料枠が設定されています。
気軽に技術検証ができますね。

最初の 12 か月の間、

  • 1ヶ月あたり 5,000 枚の画像分析
  • 毎月1,000 件の顔メタデータを保存

おわりに

AWSの画像解析API Amazon Rekognitionを試しました。
高機能の画像解析が安価に使えるので、開発者は画像解析の技術向上はAWSに任せて、どのように使えば、ユーザーの満足度を上げられるかに注力できそうだと感じました。
SDKを使う事でプログラム中からも使う事ができます。

リンクバルでは、Ruby on Railsで開発された自社サービスを一緒に開発するエンジニアを募集しておりますので、興味を持っていただきましたら、ぜひお問い合わせください!


世界最大のハードウェアシティ、深圳


世界最大のハードウェアシティ、深圳(シンセン、シェンジェン)をご存知ですか? 場所は香港の隣、羽田から飛行機で4〜5時間ほどです。LCCを使えば、往復3万円強で、気軽に訪れることができます。日本から行く場合は、深圳に直接入るよりは、香港経由の方が便利でしょう。

screen-shot-2016-12-02-at-15-42-29

市の中心部にある華強北(ファーチャンペイ)には、秋葉原の30倍とも言われる、巨大な電気街が広がっています。ガジェットや携帯を除いて、純粋に電子部品だけで比較するなら、売り場が縮小し続ける秋葉原の、数百倍の規模があります。

12523114_10208234135953118_8172146019373515994_n

続きを読む


CircleCIを使った自動チェックについて


街コンジャパンの開発ではCircleCIを使って、
コーディングルールやRailsのテストコードを自動チェックしています。

CircleCIの自動チェック処理はCircleCIのキューに一度貯めて、
コンテナという自動チェック処理を行うプロセスがタスクを取り出して一つずつチェックしているようです。

メリット

・開発者が複数でも一定の品質を担保することができる
・CircleCIのチェックが通らないとマージできないので実行できないコードを弾くことができる
・無料でも使うことができる
・GitHubのWebhocksと連携することができる
・GitHubアカウントで認証できる

デメリット

・ソースコードが多くなってくると徐々に遅くなってくる
・無料版では自動チェックをするコンテナが一つのため、キューがたまりやすく効率が悪くなる

コンテナを増やすポイント

コンテナが一つ場合は、15分以上コンパイルを待たないといけないこともありましたので、
開発効率を上げるためにCircleCIのコンテナを2つ使いました。
コンテナの数は開発人数にもよるとは思いますが、開発が忙しくなる時期にコンテナを増やすなどの利用も計画的にすることもできると思います。

まとめ

Githubと連携して使うことができますのでCommitごとにコーディングルールやテストコードを実行できますので、
一定基準の品質を担保しつつ共同開発をすることができます。
無料でも使えるので是非Githubでソースコードを管理されている場合は使ってみると良いと思います。
ちなみに、コーディングルールの自動チェックはRubocupというgemを使って、設定ファイルでコーディングルール管理をしています。

最後に

リンクバルではエンジニアの採用を募集しています。採用はこちら


気になる高級な椅子の使い心地~ITアレルギーな私の技術部奮闘記~


こんにちは。
リンクバルの山本(♀)です。25歳です。

リンクバルの看板商品「街コン」のイベントプランナーでしたが、ひょんな事からリンクバルのシステム系の部署である技術部に異動となり、
今はシステム開発のディレクターになるべく修行中です。
「~入門」「初心者でも分かる~」が読めないぐらいITアレルギーな私のWEB部での奮闘をお楽しみください。

いつもよりも良いものを使ってみると、たまにトラブる・・・。

いつもより少し値段が高いものを食べて、
胃もたれを起こした経験ありませんか。
例えばこんな感じ。
通常山本家ではだいたい200グラム700円(海外製)ぐらいの牛細切れを使用するのですが、
img_20161109_163246-2

たまーに200グラム1500円の和牛を食べると胃がこんな感じになって、気持ち悪くなる。
img_20161109_163255

これと同じ状況が牛肉だけではなく、色々なことに起こったりするんですよね。
結局普段から使い慣れていないものは、良いものでも使いこなせない。
今日はそんなお話。

高級な椅子ってどんな椅子?

株式会社リンクバルでは、席で仕事をする時間が長いエンジニアやデザイナーは
少し高級な椅子が支給されています。
これ↓↓
img_20161125_130520

ちなみに通常の椅子はこれ↓↓
img_20161125_153034

高級な椅子、なんか凄そうじゃないですか。
※これからはこの椅子をエンジニア椅子と呼ぶこととします。
技術部に異動した当初、私もエンジニア椅子が支給されたのですが、
私エンジニア椅子が合わなくて結局普通の椅子に変えてもらいました。
なんか首のところが・・・こう、窮屈というか閉塞感というか。
とにかく良い感じがしなかったのです。
この椅子って本当にいいの?という疑問を勝手に抱き、
この場をかりてエンジニアにインタビューしてきました。

エンジニアにインタビュー

インタビュー①:エンジニアY(♂)
img_20161109_162552

山本:「エンジニア椅子の使い心地はどうですか。」
エンジニアY(♂):「僕・・・あんまり合わないっすね。なんかこう、腰の辺りに違和感があります。」
ふむ。私と同じような意見である。

インタビュー②:エンジニアH(♂)
img_20161109_162711

山本:「エンジニア椅子の使い心地はどうですか。」
エンジニアH(♂):「凄くいいですよ!とても使いやすいです。かなり気に入っています。」
ん?どういうことだ。
エンジニアH(♂):「これ自分の体に合わせて調整できるんですよ。しかもかなり微調整も可能です。
最初は面倒ですが、一回調整しちゃえばかなり快適に仕事できます。」

結局・・・。

ふむ。なるほど。エンジニア椅子は自分の体に合わせて調整する椅子だったのか。
面倒くさがらず調整する、それを成し遂げた者にのみ、快適が訪れる椅子でした。
そんなこんなで、私も自分に合わせて調整してみた。
img_20161125_155420
なんだか優雅な気分になりますね~。

こんな株式会社リンクバルで
一緒に働くエンジニアを募集中です!
新しい事にチャレンジしたい、もっともっと成長したい、そんな
フロンティアスピリットをお持ちの方が生き生きと働ける会社です。
詳細はコチラ

最後まで読んでくださり、ありがとうございました。


Elasticsearchで簡単な検索をしてみる


リンクバルの井上です。
システムのデータの規模が大きくなるにつれて必ず問題になるのが検索パフォーマンスかと思います。
今回はその改善で利用されるLuceneベースの全文検索・解析ができるElasticsearchで簡単なユーザ検索をしてみます

ElasticSearchとは?

Elastic社提供のLuceneベースのマルチテナント・スキーマレスで
クラウドに最適化されたサーチエンジンサーバー

ElasticSearchの導入メリット

・全文検索が高速
・導入しやすい
・プラグインが豊富
・RESTfulAPI
・データの可視化が簡単(Kibanaの導入)

ElasticSearchを入れる

Javaのinstall

brew install java

ElasticsSearchのinstall

今回は最新の5.0ではなく2系を使います
brew install homebrew/versions/elasticsearch24

kibanaのinstall

ElasticSearchにversionを合わせないとエラー起こるのversion指定してinstall

brew install homebrew/versions/kibana44

kibanaのplugin Senseをinstall

/usr/local/opt/kibana44/bin/kibana plugin --install elastic/sense

Elasticsearchの起動

/usr/local/bin/elasticsearch

port 9200で起動されるので下記でアクセスできます
http://localhost:9200

kibanaの起動

/usr/local/bin/kibana

こちらはport5602で起動します
http://localhost:5601

検索機能を使う

indexの作成

kibanaのSenseでsample_indexという名のindexを作成します。
““POST sample_index
%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-11-29-12-06-07

mappingの作成

PUT http://localhost:9200/sample_index/_mapping/user
 {
    "user" : {
        "properties" : {
           "name" : {"type" : "string" },
            "message" : {"type" : "string"}
        }
    }
}

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-11-25-15-43-54

データの登録

““POST http://localhost:9200/sample_index/user
{
“name”: “user”,
“message”: “user_message”

}
““
%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-11-25-15-43-54

検索してみる

GET http://localhost:9200/sample_index/_search?pretty=true
{
  "query" : {
    "simple_query_string": {
       "fields": ["name"],
       "query": "test1"
    }
  }
}

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-11-25-15-57-16

ユーザの検索ができました!
次回はkuromojiを使った日本語全文検索をやりたいと思います
リンクバルではエンジニアを積極募集中です。興味のある方は、こちらまでご応募ください。もちろん、社内の人間と面識があるのでしたら、直接にご連絡いただいてもかまいません。