Fringe81 engineer blog

Fringe81の開発者ブログ

PyCon JP 2019に参加してきました

データ分析、及び機械学習の開発を行っている長谷川水谷です。
9/16(月)-9/17(火)に開催されたPyCon JP 2019に参加し、長谷川がライトニングトーク、水谷がポスターセッションで発表を行ってきました。

f:id:fringeneer:20190919150129j:plain

PyCon JPとは

PyCon JPはPythonに関する日本最大級のカンファレンスです。普段業務や趣味でPythonを使用する人々が集まり、さまざまな分野での活用方法や知見を交換し、交流する集まりです。
今年のテーマは「Python New Era」。令和になって初のカンファレンスであることと、来年でPython2のサポートが終了することから、時代の移り変わりを反映したテーマになっております。

各自の発表内容

長谷川は、CfPが無事通り、エンディング前に行なうライトニングトークの一つとして、登壇してきました。

f:id:fringeneer:20190919144400j:plain

発表のテーマは「Pythonで、処理をより効率化するためのTips集」で、普段業務で行っている広告配信の機械学習システムをより効率化するための方法についてです。

水谷は「VS codeとPyrightで始める型のある生活」と題してポスターセッションで参加させていただきました。

f:id:fringeneer:20190919150812j:plain:w400

当日見に来ていただいた方ありがとうございました。たくさんディスカッションもできてとても楽しく、タメになりました。
型について気になっている方は一定数いるんだなぁということを感じることができて嬉しかったのと、Type Hintに関して触れているセッションなどもいくつかあったのでPython2系のサポートが終わったらこの分野も盛り上がっていきそうだなという感触を得ました。

興味深かった発表

2日間で多くのセッションがありました。
そのなかで長谷川と水谷が特に気になったセッションをいくつか紹介させていただきます。

PythonとAutoML

サイバーエージェントAI Labの芝田将さんのセッション

www.slideshare.net

Cloud AutoMLなど、知見がなくとも機械学習モデルの構築が行えるマネージドサービスが台頭してくる中で、誰でもある程度の精度のモデルを作るのが容易になっている反面、中身がブラックボックスになりがちなAutoMLの要素技術について、「パラメータ最適」、「特徴量作成(選択)」、「モデル選択」の観点に分け、応用されている技術や今ホットな話題について発表されてました。
技術ごとに、土台となっている理論、おすすめのライブラリ、ハマりどころについて非常にわかりやすく丁寧な内容で発表されており、多くの知見を得ることができました。

Pythonで始めてみよう関数型プログラミング

SQUEEZEの寺嶋 哲さんのセッション

寺嶋さんは、すごいHaskell本を原書で読む会を主催されており、発表では前提知識がなくとも、関数型言語の有用性がわかりやすく解説されていて、関数合成、パターンマッチ、モナドなどの代表的な機能に沿って、どのようなライブラリを使えばそれらの機能が実現できるのかについて発表されていました。
ライブラリごとの特性や簡単な使い方が理解できたので、実際に試してみて、もし有用な場合は、プロダクトに積極的に導入していきたいと思いました。

【基調講演】Pythonで切り開く新しい農業

www.youtube.com

2日目の基調講演で発表された小池誠さんの基調講演。
こちらの発表では組み込み系でPythonを採用した理由から始まり、きゅうりの出荷作業における農業と組み合わせたPythonの事例を紹介されていました。
講演の最後に話されていた「農業熟練者の技術をAIで保存して誰でもアクセスできるようになる世界」には胸が高鳴りました。

Pythonでの開発を効率的にすすめるためのツール設定

www.slideshare.net

aodagさんことAtsushi Odagiriさんのセッション。
できるだけツールの力を使ってつまらないミスを防ぐためのツールの導入方法について丁寧に発表されていました。
つまらないミスがなくなることでコードレビューの際にお互いに気持ちよく、深いコードレビューができるようしようという話にすごく共感しました。加えて、僕自身の発表がPyrightでの静的型チェックの話だったので、mypyを使った静的型チェックの話もとても興味深く聞かせていただきました。

チームメイトのためにdocstringを書こう!

www.slideshare.net

くーむさんのセッション。
docstringの書き方、3つの流派の紹介という基礎的なところから、docstringからドキュメントを生成する方法、チームにdocstringを書く文化を築かせるための工夫といった発展的なところまで発表されていました。
Type Hintとの併用の仕方とドキュメントの自動生成の部分は今後ぜひ採用したいと思いました。

感想

スピーカーとして参加した初めてのPyConはとても楽しく、自分が発表する題目に関してたくさんディスカッションすることができてとても有意義なものとなりました。
Pythonで開発するための便利なtipsを知ることでき、「これをチームに取り入れたい」と思えるものがたくさんありました。
また、Python〇〇でいろんな可能性や利便性が広がっているんだと強く思いました。
今回弊社から2名がスピーカーとして参加せていただきましたが、今後もPythonを頑張っていきたいと、さらに思うことができました。
最後にPyCon2019を運営してくさったスタッフの皆様方、本当にありがとうございました。

弊社オフィスでElm Meetup in Summerが開催されました

技術開発本部エンジニアの泉です。 先月末8/25にElm Meetup in Summerというイベントを弊社オフィスで開催しました。

elm-jp.connpass.com

今回のイベント開催は、connpassでの募集開始から一週間と立たないうちに100人もの参加応募があるなど、ここ最近のElmの盛り上がりを大きく感じさせるものとなりました。

前回のElm Tokyo Meetup Vol.4開催ののち、かれこれ1年ほどの歳月が経過しての今回のイベントとなりましたが、弊社もオフィスを六本木グランドタワーへと移転し、より収容人数の大きい会場を提供することができるようになりました。さまざまな意味で時期の温まった素晴らしいタイミングだったのではないかなと思います。

f:id:fringeneer:20190905175736j:plain
会場を埋め尽くす参加者

f:id:fringeneer:20190905175834j:plain
オープニングとトークをするわたしと@ababupdownba氏

ライトニングトーク

今回はなんと総勢で8人もの登壇者を迎える豪華なライトニングトークとなりました。

弊社からはわたくし泉も運営の傍ら登壇させて頂きました。直近で登壇したのがフランスのパリで開催されたelm Europe 2019でしたので、そこから続けて日本でもElmに関するイベントで登壇ができたというのはとても喜ばしい限りです。

f:id:fringeneer:20190905175929j:plain
トークをするわたし

同じくUniposチームでフロントエンド・テックリードを務める同期の海老原も登壇し、Elmのアプリケーション開発で遭遇するモジュール分割をどのように考えていくかというトピックでトークをしました。

f:id:fringeneer:20190905180056j:plain
登壇をするわたしの同期

パネルディスカッション

今回のミートアップでは特別企画として、Elmをガチで使っている方々によるパネルディスカッションが行われました。

f:id:fringeneer:20190905181744j:plain

話された内容は、実際の業務でElmを使っていて受ける率直な印象からリアルなツラミなどなど。加えて、Elmのサーバーサイド活用可能性の話からHaskellに至るまでまで幅広い内容で展開されました。

懇親会のようす

みんなお待ちかねの懇親会。ミートアップといえば、やはり懇親会です。

f:id:fringeneer:20190905180336j:plain
乾杯の様子。真っ昼間から酒を飲みます。

今回のミートアップでは、首から下げるネックストラップにElm歴に応じたカラーシールをつけるという新しい取り組みを行いました。こうすることで、Elmの習熟度に応じた情報交換が促されるのではないかという狙いです。

f:id:fringeneer:20190905180413j:plain
語り合あうElmoたち

会場撤収のギリギリまで懇親会は盛り上がりました。聞くところによると、このあとも引き続き参加者たちは夜の六本木でElmについて語り明かしたとのことです。

最後に

世界的に見てもElmはいまだに利用者の少ない言語のひとつですが、一方でコミュニティは非常に親密で、かつ新しくElmの世界へ足を踏み入れる人たちを拒むことのない慈愛に満ちた場所であると私は思います。プロダクト利用をしている経験者から、まだElmに興味があるだけというレベルの方まで、幅広いレベルの人々がElmという共通言語を介して融和しています。

今回のイベントもまた、弊社からボランティアで参加してくれた社員や、コミュニティからの有志ボランティア、そして多くの参加者の皆様に支えられたものとなりました。参加者の多くが、これからまさにElmを始めたい、もっと書いていきたい、というやる気とエネルギーに満ちるような素晴らしいイベントとなったことは間違いありません。

弊社も2年前からElmをプロダクト開発の言語として利用し始め、いまとなっては7万行にも及ぶ大規模なコードベースにまで成長しました。Elmが我々の組織にもたらしたものは、Elmのもつシンプルかつ強力な型システムという「技術的特徴」とその生産性のみならず、その削ぎ落とされたシンプルさから、我々が最も大事にしている「設計」に注力する大きな余裕をチームに与えてくれました。

これからも、日本最大規模のElmアプリケーションを作る会社の矜持としてこのようなミートアップの開催など、コミュニティの成長につながるような支援をしていきたいと思います。

それでは、ごきげんよう

f:id:fringeneer:20190905180459j:plain

WEB+DB PRESSでScala特集記事を執筆しました

エンジニアの大沼です。

8/24に発売されるWEB+DB PRESS Vol.112にて、同僚の谷口、豊島の3人で『実践Scala オブジェクト指向×関数型』という題で特集記事を執筆しました。Fringe81エンジニアとしては前号に続き2号連続での執筆をさせていただきました。

f:id:fringeneer:20190820204709j:plain

私たちの特集では、Scalaの基本的な文法からアプリケーション作成までを27ページの中に凝縮してお届けしています。 WEB+DB PRESS誌では初のScalaについての特集ということで、Scalaを初めて触る方を対象に、Scalaの基本的な使い方からScalaプログラミングの楽しさが伝わる事を目指して、執筆しました。 特集は5章構成となっており、それぞれの概要は下記の通りです。

  • 1章:Scalaの歴史からScalaを利用するためのセットアップ方法について解説しています。
  • 2章/3章:初めて触る方向けにScalaの基本的な文法からコレクションライブラリ等について解説しています。
  • 4章:Scalaの魅力である型安全、簡潔さ、エレガントが実感できるよう、Scalaの応用的な使い方について解説しています。また最近リリースされた2.13における変更点についても解説しています。
  • 5章:1章〜4章まで学んだ事を活かして、実際にWebアプリケーションを実装する内容

お題としたアプリケーションは一般的なCRUD処理ではなく、遊び心溢れるかつ実用的なお題となっているので、興味を惹かれた方は是非本誌をお取りになってご確認ください。

今回執筆するにあたって気をつけたのは、『代数的データ型』『モナド』のような、はじめて触れる人にとって少し難しく感じられるような言葉を使わないようにした点です。 Fringe81のエンジニアインターンではScalaを課題にしているのですが、Scalaは難しそうだ、という学生さんはやはり多いです。 しかし、いざ開発をはじめてもらうと比較的すぐに手に馴染んで書けるようになったという人をたくさん見てきました。 このような状況はもったいないと思い、読者の方々に「やっぱり難しそうだな」と思われないような表現を心がけました。

私達は日々Scalaを利用してアプリケーションを実装していますが、実用性に富みつつ奥深い、バランスが取れた言語と感じています。またプログラミングしていて非常に楽しい言語です!
分量の都合で書ききれなかったこともたくさんありますが、WEB+DB PRESS誌を手にとっていただいた皆さんにScalaの魅力を少しでも伝えられたら嬉しく思います。

また、同僚の泉によるelm Europe 2019の参加レポートも掲載されています。海外のElmコミュニティの盛り上がりがわかるものになっているので、Elmに興味を持っている方々も是非本誌をとって頂ければと思います!