Linuxサーバのうるう秒対応について – 2017/1/1 0:00:00(UTC)


リンクバル技術部の川畑です。今年も残すことあと2週間となりました。良い年か迎えられるよう、サーバーリソースやログに異常がないかなど確認したり、監視設定を見直しなどに日々追われております。そして来年早々にうるう秒が「2017/1/1 0:00:00(UTC)」に挿入されるので、その対応についてまとめさせて頂きます。

続きを読む


アプリ開発者必見!「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を使った日本語全文検索をやりたいと思います
リンクバルではエンジニアを積極募集中です。興味のある方は、こちらまでご応募ください。もちろん、社内の人間と面識があるのでしたら、直接にご連絡いただいてもかまいません。


私が愛してやまないWordPressスターターテーマ「Underscores」


WordPressに詳しい人には、今更すぎる内容です

最近WordPressのテーマを1から作る案件が多いのですが、WordPress経験がなさすぎて苦労しております。
とりあえず「スターターテーマ」と呼ばれるものをベースに作成するですが、これも様々なテーマがあって迷いました。
これまでに、以下のテーマが候補に上がりました。

Bones

bones

http://themble.com/bones/

ググってみたところかなり有名とのことで上記サイトにアクセスしましたが、目に飛び込んできた骸骨のイラストが気に入らない為不採用となりました。

Sage

sage

https://roots.io/sage/

こちらもWebサイトを見てみると、gulpのセットアップ済みでデザインもスッカラカンなのは嬉しいですが
Docsを見ると、インストール方法が無駄にSUTAIRISSHUだった為、今回はお見送りとさせていただきました。
私は情弱なので、zipをアップロードしてボタン押すだけじゃないと嫌です。あとBootstrapは使わない予定(多分)なので却下です。

JointsWP

jointswp1

http://jointswp.com/

Sageと同様のイケてる雰囲気を醸し出しておりますが、導入方法はもっとシンプルです。

しかし
jointswp2
今はそういうのはいらないので、そっとブラウザを閉じました。

Underscores

underscores

http://underscores.me/

こちらもかなりメジャーなテーマのようです。レイアウトも何もない真っ白です。
といってもSassのディレクトリ構造はなかなか気が利いており、便利クラスやミックスインも取り揃えています。
そして余計なものは一切入っていないので、かえってやりやすいです。


結局、Underscores + gulp + Bourbon(Neat)でいくことにしました。
結局面倒になって、Bootstrapさんのお世話になる予感がしなくもありませんが…

<

p style=”padding: 4em 0; text-align: center;”>クリック!株式会社リンクバルでは一緒に働くエンジニアを募集中です!クリック!


Google Wifiについて


前回に引き続きWifiネタになってしまいますが、今回はGoogle Wifiについて書きたいと思います。
先日Google社がwifiルータを発表しました。
その名もGoogle Wifi(そのまんまですね・・・。)

一般的なWifiルータと同様の使い方はもちろん可能ですが、
現状普及している機器にはないさまざまな機能が搭載されています。

###802.11s ワイヤレスメッシュネットワークについて
前回の記事では出てこなかった規格になりますが、
そもそも802.11sとはなんぞや?というところを記述します。

端的にいいますと、複数のアクセスポイント(Wifiルータ)を設置し、メッシュ状に各アクセスポイント間を結ぶことで電波のカバー範囲を強化するという技術になります。
たとえば、広いオフィスのどこにいても同じアクセスポイント設定でLANへの接続が可能となります。

###Network Assist機能について
複数設置を行うことで快適なWifi環境を構築できることは前述のとおりですが、単体設置であっても最適化を行う機能が搭載されています。
それがNetwork Assist機能です。
Wifiルータの設定を行ったことがある人は見たことがあるかと思われますが、Wifiにはチャンネルという概念があり、規格ごとに複数のチャンネルが割り当てられています。
複数あるチャンネルの中から最適なチャンネルを自動で選択し、速度低下を防止する仕組みとしてこのNetwork Assist機能が搭載されているそうです。

###最後に
発表を見た限りですが、さすがGoogle社が出す製品で先鋭的!と感じました。
あとは気になる価格と発売日ですが、米国ではすでに予約が始まっており1台129ドル、3台セットで299ドルとのことです。
日本向けの展開が待ち遠しい限りです。

リンクバルはいろいろな技術を習得する機会に恵まれています。
今までの経験をベースにさらに新しいことにチャレンジしたい方、ぜひ応募お願いします。
採用情報はコチラ


【11/25開催】Ruby on Rails初心者ハンズオン#2~ToDoアプリを作ってみよう!~ フォローアップ


こんにちは、リンクバル 技術部 エンジニアの中村です。

弊社主催の2016/11/25(金)「【11/25開催】Ruby on Rails初心者ハンズオン#2~ToDoアプリを作ってみよう!~」のフォローアップを掲載いたします。

「Ruby on Rails初心者ハンズオン」の続編の勉強会として、「タスク管理アプリ」の開発を通して、Ruby on Railsを学習します。

シンプルなアプリケーションですが、Ruby on Railsを始めて学ぶ上で、役立つエッセンスがたくさん詰まっています。

募集要項

https://linkbal.connpass.com/event/44224/

機能一覧

  • タスクの一覧表示
  • タスクの新規追加
  • タスクの編集
  • タスクの削除
  • タスクの完了チェック

スライド

完成版のソースコード

後で、復習ができるように、ソースコードを共有いたします。

https://github.com/ynakayu/todoapp

開発環境構築

今回は、ブラウザのみで、プログラム開発ができる、クラウドIDE「Codeanywhere」の、無料プランを利用します。

https://codeanywhere.com/

多くのユーザーに利用されている

02_codeanywhere_%e5%88%a9%e7%94%a8%e8%80%85%e6%95%b0

※前回の勉強会で使用した、nitros.io はサービス終了。AWSに買収されて今後が期待されるCloud9 は、クレジットカード登録が必須となったため、今回は利用しません。

トップ

サービスサイトへ遷移

https://codeanywhere.com/
※ Google Chromeの利用を推奨します。

01_codeanywhere_top

「Sign up for free」をクリック。

登録情報入力

03_codeanywhere_%e7%99%bb%e9%8c%b2%e6%83%85%e5%a0%b1%e5%85%a5%e5%8a%9b

  1. メールアドレス
  2. パスワード
  3. 私はロボットではありませんをチェック
  4. Register をクリック

Welcome

04_codeanywhere_welcome

here をクリック。

コンテナの作成

05_codeanywhere_container

  1. Container を選択
  2. Name: Techlink
  3. Search : ruby
  4. Ruby CentOS 6.5 を選択
  5. CREATE をクリック

06_codeanywhere_create_container

IDEのレイアウトを使いやすいように変更しておくと便利

07_codeanywhere_%e3%83%ac%e3%82%a4%e3%82%a2%e3%82%a6%e3%83%88

View > Layout > Split Horizontal

IDEの説明

08_codeanywhere_ide%e8%aa%ac%e6%98%8e

おわりに

Ruby on Rails の基礎を学ぶ上で、基礎となる要素が含まれた、TODOアプリの開発を勉強しました。Ruby on Rails で開発する上きっかけになればと思っております。

リンクバルでは、テクノロージーと人を繋ぐ勉強会テックリンクを今後も開催予定です。勉強会で取り上げて欲しいテーマなどありましたら、アンケートにご記載くださいませ。

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


DigitalOceanを使う5つのメリット

DigitalOcean

リンクバル技術部の川畑です。最近というより1・2年前から海外で流行っているVPS DigitalOcean についてまとめました。IaaS界の巨塔 AWS と比較して良いところを5つか列挙させて頂きます。

コストが安い!

  • DigitalOceanは1番下のスペックのDroplets(AWSのEC2インスタンスみたいなの)で比較した場合、1時間あたり $0.007 1月あたり $5になります。
  • AWSの1番下のスペックのEC2インスタンスだと、t2.nanoが1時間あたり $0.01 1月でEBS 8GBで起動すると $14.64になります。

続きを読む