LOUPE Engineer Blog

Technology, Design, Education

TechLT忘年会@ASAC開催

いつも勉強会を共同開催しているFramgiaさんと共同で年末のLT忘年会を開催しました。本日はそのイベントレポートをお送りします。

 

開催場所は青山スタートアップアクセラレーションセンター。東京都の起業家支援プログラムにてLOUPEもお世話になっている施設です。快適なコワーキングスペースとイベントスペースを使わせていただいています :)

 

f:id:suenaga_m:20151214195517j:plain

 

LT① HerokuからHashiCorp~StartUpのインフラ変遷

SENSEI NOTEの立ち上がりからのインフラ事情についてお話ししました。

当初はHerokuで運用していたこともあり、その影響を多少受けた構成になっているのも事実ではありますが、特にここ最近ではInfrastructure as a Codeに向けての取り組みを進めています。メリットとしては

  • インフラの変更をGithubフローに載せれる
  • インフラの変更履歴の保存
  • インフラのDiffの明確化
  • インフラナレッジの共有

あたりが非常にいいです。確かにまだ使いにくいと感じる部分もありますが、導入のコストは格段に低くなってきている印象を受けます。インフラエンジニアとアプリケーションエンジニアとの境がなくなってくるかもしれません。そのためにしっかりとしたインフラサイドの基礎知識を、組織として持てるかが重要だと感じます。

 

speakerdeck.com

 

LT② 今年一年間の機械学習まわりの手法を振り返ってみる

Bizreachにてデータサイエンス領域を取り組んでいる工藤さん。

最近は特に機械学習がブームですね。DeepLearningの技術革新により認識精度が非常に向上したことが背景にあるようです。TensorFlowについて触ってみた方も多いのではないでしょうか?

特に工藤さんはword2vecを使った求人情報のテキスト解析について取り組み興味があるようで、今までに可視化が難しかった領域を容易に可視化できるようになってきているのが面白いですね。これからデータが増え、人の行動がどんどんインターネットに進出していくことでログがますます増えることは容易に想像できるので機械学習やデータサイエンス領域は2016年以降も注目の技術領域です。

 

www.slideshare.net

 

LT③ ウェブフレームワークにおけるValidation

続いてUniconの嶋本さん

昨今では様々なデバイスがインターネットとつながり、いろいろなデータのやり取りを進めています。その中で問題になってくるのがValidation。データを守る役割だけでなくユーザビリティを確保する役割でも非常に重要です。

  • アプリケーションのValidation
  • データベースのValidation
  • ブラウザのフロントエンドとのValidation
  • モバイルアプリケーションのValidation

ユーザのニーズが高まるにつれて考えなければならないValidationも多様性を増してきています。適切なValidationを用意してしっかりとデータを守る必要性が増えてきていますね。

 

speakerdeck.com

 

LT④ AndroidStudio2.0で爆速アプリ開発

Uniconの立花さん

AndroidStudio2.0でアプリ開発が爆速になるという話。2015年はAndroid開発者コミュニティも昨今では非常に活性化してきた印象を受けますね。Android自体が使いやすくなってユーザが増えてきていることが大きいとは思いますが、新しい言語も出ましたしこれから規模は大きく拡大していくことが予想されます。

AndroidStudioのInstantRunが非常に便利だという話ですが、開発環境の高速化は生産性において大変ありがたいことです。だいぶ開発が捗るいい機能ですね。

 

speakerdeck.com

 

LT⑤ 島根で酒造×ITに挑戦 〜ちょっとだけRuby〜

続いてフランジア・ジャパンの本間さん

前回から引き続きの島根の酒蔵でRaspberryPiを活用されている話です。

酒蔵IoTはだいぶ進んできた模様でもうデータ取得を開始されたとのこと。リアルデータを蓄積していくとそれがビッグデータになります。ビッグデータが一度取れるとそれを使った検証や今後の展開が楽しみです。

 

f:id:suenaga_m:20151222121945j:plain

 

LT⑥ ReactiveCocoaとMVVMモデル

サイバーエージェントのLe Van Nghiaさん

2014年に引き続き Swift開発も変化がありましたね。Swiftのバージョンが2.0になった時にはLOUPEでもアップデート対応の必要性を迫られました。

Le Van Nghiaさんにはリアクティブプログラミングの概念を非常にわかりやすい概念モデルにてLTしていただきました。基本の構成はシンプルに、それを組み合わせることでリアクティブなインタラクションを実現することが可能になっているのですね。

 

speakerdeck.com

 

 

さて、こういった形で様々な業態の方からLT形式にて2015年振り返ったわけですが、改めて思うと様々な分野で様々な技術革新が進んでいますね。多分野の方々にLTいただいたのですが、知っている領域だけでなくいろいろな知見を得ることができました。

2016年も引き続き勉強会を開催していきたいと思っていますので、どうぞよろしくお願いします。

 

 

以下は参加された皆さんと登壇者の皆さんでの懇親会の写真です :)

 

f:id:suenaga_m:20151222122357j:plain

f:id:suenaga_m:20151222122400j:plain

f:id:suenaga_m:20151222122402j:plain

f:id:suenaga_m:20151222122404j:plain

 

Framgia x LOUPE 共同技術勉強会 #6 ~ Ruby2.3 / Sketch & Zeplin / 酒蔵IoT ~

恒例のFramgiaさんとLOUPEの共同技術勉強会も6回目となりました。

今回はなんと高校2年生でAndroidアプリ開発をしているというNくんも参加してくれました。Nくんありがとう!

 

1発表目:Ruby2.3の追加機能と変更点について / @sue738

11/11に出たばかりのRuby2.3.0-preview1の変更点をまとめた発表でした。

qiita.com

2発表目:Sketch is 便利 for Engineers / @beta_chelsea

LOUPEで活用しているOS XデザインツールSketchと、共有サービスZeplinの便利さを紹介させていただきました。

speakerdeck.com

3発表目:酒蔵IoTについて / 本間さん

今まさにFramgiaさんが実施中の酒蔵IoTの取り組みについての共有でした。
Raspberry Pi とセンサを活用した温度・湿度の取り方だけじゃなく、実施上のハマりポイントなど、IoTの面白さが詰まったお話を伺えました。

酒蔵の実データを取得している管理画面も見せていただいたんですが、今回はホワイトボードに書いた構成図の写真をご紹介。

f:id:beta_chelsea:20151117200022j:plain

 

以上、#6の内容をお伝えしました。

 

次回は新しい場所を使わせていただくことができそうな計画を立てておりますので、
これまでより規模を大きめで開催予定です。お楽しみに!

Framgia x LOUPE 共同技術勉強会を開催しました #5

毎月恒例のFramgiaさんとLOUPEの共同技術勉強会の様子です。

今回も渋谷-千歳-島根-ハノイをつないだ開催となりました。

 

1発表目:三城さん

CORSについて。詳細は下記リンクをどうぞ。

CORS | Viblo

 

2発表目:@mktakuya

AIZU Online Judgeの問題Submitのライブデモでした。

AIZU ONLINE JUDGE: Programming Challenge

 

3発表目:マイさん

Cucumberについてのご紹介。

cucumber.io

 

4発表目:@beta_chelsea

先日開催された高専プロコンOB戦に参戦してきた話です。

speakerdeck.com

 

5発表目:@sue738

先月HashiConfで発表のあったOttoについてのご紹介。

speakerdeck.com

 

そして最後にFramgiaの本間さんから酒造りにRaspberryPiを使ったデータ抽出についての共有でした。RaspberryPiが出て、周辺センサも進化してだいぶマイコンも使いやすくなりましたね。こちらの環境で使うRaspberryPiかな?

www.wantedly.com

 

さて、今回もテストフレームワークや競技プログラミングの話からIoTの話など多岐に渡る内容になりました。

次回は11/17(火)LOUPE にて開催します。発表者も募集していますので、会社を越えた社内勉強会にご興味ある方、こちらまでお気軽にご連絡ください ;)

Framgia x LOUPE 共同勉強会 #4

べーた(柏)です。先日9/28(月)は恒例の勉強会デーでした!

Framgiaさんとの共同勉強会第4回は、弊社オフィス(一軒家・通称LOUPE邸)からの参加となりました。

勉強会は夜19時頃からの実施なのですが、いつも多忙で外出の多い社長がこの日はちょうど在宅だっため、晩御飯タイムとぶつかり、台所から美味しそうな匂いが漂ってくるなかでのSkype連携が行われました。一軒家ならではの光景です。

それでは、本題の勉強会内容レポートです。

発表1:楽しいLambda

まずはフランジアCTOの本間さんからの発表で、今回もレベルの高いお話を伺うことができました。

あまりこれまでLambdaを使う機会がなかったのですが、キャッシュとして利用できる具体例などを交えて説明して頂いたため、今後似たような形を見かけたら置き換えていくことができそうです! JavaScriptのクロージャに近い雰囲気を感じました。

発表2:企業ロゴに学ぶ 頭を使わないスライド作り

2番目は今夏いっぱいの期間を現地インターンで活躍してくれたやましーから。

企業ロゴのカラーリングを参考にした配色について発表してくれました。 自分もボーッとしていると白地+黒文字(もしくはその逆)なスライドで発表することが多々有るのですが、前々回のElectronに関する発表の際はそちらのサイトの配色を頂いてきたりしました。そしてそれをしっかり察知していたやましー(指摘されました!)...流石!!

今度困った時は、LOUPE配色にチャレンジしてみたいと思います!

発表3:Rubyのコードを高速にするためのメモ

最後は弊社CTOの末永から、fast-rubyについて日本語で一覧化したものをQiita記事として公開しての発表でした。

ベンチマーク等の詳細はリンク先ですが、これこれをどう書くべきかをシュッと知りたいんだ!という個人的要望にこちらの記事の一覧がちょうどぴったりで大変助かります。 おや、もっとよく書けそうだぞ、というときに適宜参照していきたい記事ですので、今後ともお世話になると思います。 qiita.com

以上、3発表でした。

個人的には今回の勉強会は大変タイムリーに役立つお話が多くて、大変助かりました!

配色については先日ちょうど意識し始めたところでしたし、 Lambdaとfast-ruby は最近書いてるRubyスクリプトについて、リファクタや高速化周りの知見が不足していて困っていたところでした。

※最近書いてるRubyスクリプト↓

高専カンファレンス with プロコン(仮称) - 高専カンファレンス Wiki

ざっくりいうと、0,1マップのパズルを頑張って解きなさいよ、という競技のOB戦にエントリーしております。 まだリモートリポジトリへは上がっていませんが、ローカルでgit管理はしていますので、 どういう過程でリファクタしたとかがモロバレになる予定です...。 最終的には今回の勉強会での学びを生かしたソースになる、はずです。 (注:あと10日しかないのでぼちぼち切羽詰まっています)

またこの共同勉強会で成果発表ができればなと思っております!

以上、第4回勉強会レポートでした〜。

Framgia x LOUPE勉強会#3

末永です。Framgiaさんと共同開催している勉強会も3回目になりました。

引き続き Skypeを使ってグローバルに勉強会をやっていますが、今回はハノイのオフィスをリモート見学させてもらいました。おしゃれなエントランスから300名規模のエンジニアの開発ルームまで。非常に活気のあふれるオフィスですごいです。

ストリートビューで見るとこちら。めちゃめちゃでかい。

https://goo.gl/maps/uJFdGFGLRQP2

 

周辺にもいくつか高層ビルが立ち並び、オフィスから下をのぞくとプールが!リゾート感溢れますね。いつかLOUPEも...!!(※ 一方LOUPEは一軒家。それはそれで楽しいです)

 

さて、それでは勉強会のレポートです!

 

発表1: 開発プロジェクトの工程

まず最初はFramgiaのHuyさんから。開発プロセスとしてよく知られるV字モデルについて丁寧に話していただきました。

昨今Web界隈ではアジャイルで高速に開発しようといった流れはありますが、アジャイルは決してV字モデルで表される開発プロセスを「省略」していいわけではないとのこと。プロセスは「省略」するのではなく、どれだけサイクルを「小さく」回すかが大事だと。改めてV字モデルについて改めて振り返るいい機会になりました。

この辺りの話は基本情報(FE)や応用情報(AP)の資格試験によく出てくる話です。

資格なんていらないという人も多いですが、資格なく開発するというのは運転免許なく運転するようなものだというワードがメンバーの心に響いていたようです。取らなくていいにしても、FEやAP、そしてより上位の高度の試験は知っておくべき内容が体系的にまとまっていていい教材です。ブログなどで断片的な情報をつまんだり、先端の技術を追いかけるよりもこういうベースの知識を詰め込んでおくことは非常に重要です。

 

発表2: BackboneにReactをチョイ足しして幸せになった話

発表の2番目は弊社ベータから。先生限定の情報共有サービス SENSEI NOTE にて最近導入したReactとBackboneの構成についての紹介。普段外に公開することのない会員限定サービスを特別に一部チラ見せ公開してます ;)

内容はスライドに任せるとして、質問として上がったのがLOUPEではどういう基準で新しい技術の選定するのかということ。今回Reactを採用しましたが、常に先端の技術を使いたいといった要求はそんなに強くはありません。新しい技術は工数を下げてくれるものが多いですがドキュメントが少なくつらい。かつ、ものによってはバージョンアップも多く追従するのがつらい。個人で小さく試しながら頃合いを見つつ、適切なタイミングでプロダクション環境でのGoを出せることが大事です。

そのためにも自分たちのプロダクトやコードベースをシンプルに捨てやすい構造に保っておくこと、これが柔軟にアップデートし続ける上で重要だと思います。設計やデザインを既存のコードに依存しすぎないシンプルなコードベースを維持していきたいですね。

 

speakerdeck.com

 

発表3: Terraform インフラをコードで書く

さて最後がTerraformでのインフラ構築について発表です。

LOUPEでは元々Herokuで運用していたものを一度VPSに変更し、最近Terraform+AWSへの切り替えを進めています。従来インフラの領域は最も属人的な領域で、ナレッジの共有が少ない領域だと思います。履歴管理もパラメータチューニングも目に見えません。それが全部コードで書けると構成もわかりやすく、メンバー間での共有もGithubのフローに乗せることが可能になります。

僕らのチームはスモールで若いメンバーが多いのでできるだけナレッジをシェアし、残す方向に持っていきたいと思っています。インフラがコードで書けて残せるのは非常にありがたいです。

似たようなものでは他にもCloudFormation等がありますが、HashiCorpのサービス群を見てみると今後に非常に期待が持てます。

 

speakerdeck.com

 

さて、今回は開発プロセスの話からJavascriptのフレームワーク、そしてインフラと多様な技術Tipsについての共有となりました。

FramgiaさんとLOUPEという規模も事業モデルも異なる2社での勉強会は意外な学びが多くあります。

 

それではまた次回は来週、楽しみです。

Framgia × LOUPE 勉強会#2

こんにちは、LOUPEエンジニアインターン歴6ヶ月になったyamasyです。

前回の合同勉強会から約2週間、今回の会場はLOUPE邸!Framgia CTOの本間さんをお迎えして…の予定でしたが、電車トラブルで遠隔からのご参加。
ベトナムのハノイから三城さん・トミタさん、島根からイチカワさんが参戦し、Skype上での勉強会となりました。

発表1 Chrome Extension いじってみた話

一番手はLOUPEエンジニアインターンの @mktakuya。
テーマはChrome拡張。みなさんChrome使ってますよね(?)
3種類あるChrome拡張 Browser Action / Page Action / Context Menu を1つずつ、自作の機能を例に解説してもらいました。
エンジニアに身近なのはLGTMLTTMでしょうか。

www.slideshare.net

最後にSENSEI NOTEで検索できるChrome拡張の紹介がありました。

https://chrome.google.com/webstore/detail/sensei-note-search/enoecblednfpnefbhfllbnknfeldcaio

面倒くさそうだな〜と思っていたのですが、想像以上にさくっと作れてしまうのですね。
Chromeをガシガシ標準利用している方は自前でつくるとよいかもしれません!
https://developer.chrome.com/extensions

発表2 Ruboty に名前をつけて(中略)一緒に暮らしたい

Raspberry Pi 2 B+(新しいやつ)でbotを飼いはじめました、LOUPEエンジニアインターンの@yamasy1549です。

Raspberry Pi を前々からいじってみたいなーと思っていたのでこのたび使ってみました。流行りにのってAPI をいろいろ乗っけたり、人感センサをつけたりしています。

www.slideshare.net

主な機能としては

  • botを呼んだらおへんじ
  • 天気を教えてくれる(livedoor Weather hack API)
  • botと雑談(docomo 雑談API)
  • 誰かいたら教えてくれる(人感センサ)
  • 写真から年齢などを推定してくれる(PUX 顔検出API)

です。最後の顔検出は後日gemにしてみました。
https://github.com/yamasy1549/ruboty-pux

発表3 Rubyのblockについて

最後はFramgia インターンの三城さん。

FramgiaさんのサービスであるVIBLOに投稿した記事を使った発表です。なるほど(!)

blockとは何なのか? 何がうれしいのか? をお話しいただきました。

https://viblo.asia/eiji346/posts/YrEBRAggG8Zj

10.times do
# 処理
end
Object.method 引数

Rubyを始めたての頃は馴染みの浅かったこの形も、「blockは引数なんだ」と気づけば理解しやすいかも。

eachがもつ配列の中身を一つづつ見ていくというベースの機能をそのままにして、その上でどういう処理をしていくか?という部分を柔軟に決める事がblockの便利な所だと思います。

Framgia CTO 本間さんからは「Procと#methodに突っ込むとさらにお!となるよ」とコメントをいただきました。根っこのところまで詳しく掘り下げていくとまた新たな発見がありますね!

次回は…

9/16(水)、Framgia Japanにおじゃまします!

Framgia x LOUPE 勉強会#1レポート

夏真っ盛りで冷たい蕎麦が美味しい季節になりましね。べーたです。
今回は合同勉強会のレポートをお送りしようと思います。

 

Framgia x LOUPE

普段の勉強会は弊社エンジニアチーム内で持ち回りにLTを行うという形式でやっているのですが、今回は初の試みとして、株式会社フランジア・ジャパンさんにお邪魔して合同勉強会を実施させて頂きました!

framgia.co.jp

 

メイン会場の渋谷から、フランジアさんの他拠点(島根・ベトナム)と弊社インターンのMKくん(千歳)の計4拠点をSkypeでつないで実施というグローバル感のある勉強会でした。

 

発表1:モデル中のSQLを綺麗に書く

フランジアCTOの本間さんからの発表で、Qiitaで公開中の記事「モデル中のSQLを綺麗に書く」をテーマに、詳細解説を交えながら紹介してくださいました。

恥ずかしながら自分はメタなところには滅法弱いため、聞いている間中は目から鱗が止まりませんでした。また、良く問題点をWeb検索で解決しようとした時にありがちなのが過程を飛ばして結論にたどり着くというものです。しかし、本間さんの解説では、一番簡易な解決法→その方法の問題点→次の解決法→さらにその問題点...と丁寧に深掘りされています。なぜそのような実装に至ったのか? ということが分かりやすく、大変勉強になりました!

ここまでメタに書けると楽しさ百倍なんだろうなぁ、と思います。

qiita.com

 

発表2:Electronをかじってみた

こちらは自分(べーた)より発表でした。
Electronは旧称Atom-Shellと言い、2年ほど前から登場しているものなので真新しいわけでは無いのですが、今回の勉強会では幸いにも(?)あまり詳しい方はいらっしゃらないとのことだったので、紹介させていただきました。

発表後の雑談でCordova(PhoneGap)みたいだねという話が出たのですが、なるほどそんな具合ですね。かなり以前はあくまでもブラウザ内の世界でHTMLページをどうこうすることがWeb系技術の守備範囲だったのですが、最近はCordovaやElectronでかなり世界が広まっていますね。Web系勢としては大変おいしくて有難いなと思います。

 

 

発表3:Phoenix Framework

LOUPEのCTO末永からはRails Likeなことでも話題のPhoenix Frameworkについての発表でした。

振興の言語Elixirで動くPhoenixですが、大変速いとのことです。Web上の各サービスが応答速度でしのぎを削るなか、速いというのは大変魅力的なキーワードです。また、資料中に例があるように、MVC構成やmigrationなどRailsに使い勝手が(作者さんが同じということもあって)大変似ています。平常からRailsに触れているエンジニアにとっては大変とっつきやすいのではないでしょうか。

まだ周辺ライブラリのサポートが薄かったり、書き方がRailsと比較して冗長に感じられたりするような印象がありますが、Phoenix Framework自体のバージョンがv0.16.0 ですので、今後のメジャーアップデートでぐっと実用的になってくることに期待が寄せられます。

 

 

次回にむけて

今回の連携勉強会開催については、1週間前に初めて聞かされて本当にびっくり&緊張していましたが、フランジアCTOの本間さんからのお話は普段の弊社勢での勉強会では絶対に聞けない種類の知識でしたので、参加させて頂いて本当に良かったなと思いました。ありがとうございました!

そんな Framgia x LOUPE 勉強会ですが、実は8月下旬に次回開催がすでに決定しております。次は弊社(一軒家)にお招きしての開催となります。お部屋ちゃんとお掃除しないとですね。どうぞよろしくお願いいたします!