FLINTERS Engineer's Blog

FLINTERSのエンジニアによる技術ブログ

Scala

JSON Codec を楽しもう、現場で役立つ circe

おつかれさまです。 中途2年目の堀越です。 Webアプリケーションなんかを開発していると、 例として Http Request / Response を処理するのに大抵は JSON を扱いますよね。 わたしは Scala を触り始めてから長らく play-json と歩みを共にしてきたのですが、…

AWS SQS + Lambda を利用した Slack 通知アプリケーションを Scala で実装して Serverless Framework でデプロイする

お疲れさまです。中途2年目の堀越です。 表題の通り AWS のサービスを活用した Slack 通知アプリケーションを 開発する機会がありましたのでアウトプットです。 尚、今回はイベントソースについて詳細には触れませんのでご了承ください。 こちらについてはま…

【2018年新卒研修】Scalaを通して見えたこと

初めまして、2018年4月に入社した清水です。 新卒研修を終えての振り返りと得た学びについてまとめていこうと思います。Scalaが書けるようになった、Webアプリケーションが作れるようになったということに留まらず、物事の考え方や理解の深め方といった汎用…

ScalaMatsuri2018で登壇してきました!

セプオリの下村です(@s10myk4) 3/16 ~ 3/18の初の3日間開催された ScalaMatsuri2018に参加してきました! 弊社では、カンファレンス、アンカンファレンスでの登壇やオーガナイズ含め 5人のメンバーが登壇しました。 ※ Twitterから画像やコメントのリンクを拝…

継続モナドを使ってwebアプリケーションのユースケース(ICONIX)を表現/実装する

前書き セプオリのしもむらです(@s10myk4) 弊社では、DDDによるソフトウェアの設計手法を積極的に採用していますが、 私は、DDDを具体的な開発プロセスの中で実践する際にユースケース駆動での予備設計を行うことで 要件定義フェーズからドメインについての…

Play FrameworkでServer-Sent Events(SSE)を使ってServer pushする方法あれこれ

あけましておめでとうございます。 初めまして、2017年4月に中途入社した張沢と申します。 今回はPlay FrameworkでServer-Sent Events(SSE)を使用してServer pushを行う実装方法について書きます。 WebSocketの情報は検索すると色々見つかりますが、SSEの記…

ScalaでGoogle Sheets API(Java)を使う

こんにちは。セプテーニオリジナルの池田です。 直近のプロジェクトで、Google Sheets APIを使う機会があったのですが、 公式サイトにScalaのサンプルがなかったので 今回ScalaでのGoogle スプレッドシートの読み込みと書き込みについて紹介します。

9/11に初めて登壇しました

こんにちは、たかこです。 社内でジョブチェンジしてScalaエンジニアになりました。9/11に初めて登壇していて、登壇までの個人の流れを書きます。会社として参加記事は @takashima0411 さんが書いてくれた、こちらをどうぞ。 Scala関西Summit2017に参加して…

日本語とScalaでプロダクトを作る

LoLの世界大会から目が離せない高嶋(@takashima0411)です。 SKTvsRNGはあまりに熱い展開でした。 話は変わりますが、この度短命で規模の小さいプロダクトを作成する機会に恵まれたので、 普段は英語でコードを書いているところを日本語でコードを書いてみま…

Scala関西Summit2017に参加してきました!

セプテーニ・オリジナルからの参加者 弊社からの参加者 8月にジョインしたばかりの青山さんを含め、5名が弊社から参加しました! 全体の流れ 寿司 これはScala関西Summitに関係ありませんが、前日に梅田で食べたお寿司です。 寿司 とても美味しい寿司 会場 …

ScalaのREPLには2通りの方法がある

こんにちは、池田です。 Scalaを学習する際や関数の挙動、動作を確認したいときに、REPLを活用しているかと思いますが 上のようにREPLでimportできないライブラリを使えるようにしたい時にどうするればいいのか? ご存知でしょうか?

scala.concurrent.blocking()

こんにちは。3月にセプテーニ・オリジナルに入社した河内です。 新しい環境でフレッシュな気持ちで業務に取り組んでおります。 さて scala.concurrent.blocking() は全く新しくない話ですが、あまり知られていないのかな、と感じるので書いておきます。 scal…

ScalaでDeeplearning4jを使い自動運転で峠を攻める!

こんにちは。菅野です。 最近、AIとか機械学習とかが話題ですね。 AIに仕事を奪われる職業がどうとかの記事もよく見かけます。 このブログ記事もAIが書いてくれたら良いのにと思っている今日この頃です。 …でも思ってるだけでは仕事を奪ってくれないので、や…

ScalaでAndroid開発をする方法 / セプテーニ技術読本(2017) PDF配布

こんにちは!杉谷と申します。 セプテーニグループのセプテーニ・オリジナル社とコミックスマート社のCTOを務めています。 AndroidがKotlinを正式サポートというニュースが駆け巡っています。 同じJVM系のScalaはどうなの?Androidで使えるの?と思われた方…

Akka Streamでスクレイピング時にサーバーに思いやりを与える

こんにちは、菅野です。 近頃はWeb上で様々なサービスが誕生し、誰もが便利に使っていると思います。また、IFTTTでそれらを繋いだり、イベントをLINEに通知したりするのも簡単です。 それはAPIが公開されているからなのですが、データがほしいけどAPIが公開…

isucon6予選をscala実装で挑戦

新卒1年目の東です。 個人的にハッカソンやコンテストに出るのが好きで、去年はisucon6予選にも挑戦しました。 結果は惨敗だったのですが、isucon6予選はアプリケーションにボトルネックが仕掛けられており、非常に勉強になるものでした。 isucon6予選の言語…

Akka HTTP で LINE bot を作ってみました

こんにちは、Xiaoです。 最近Akka HTTPの正式版 X がで出ましたね。 自分は前からAkka HTTPに興味があって、ちょうどいい機会なので、Akka HTTPを詳しく勉強するため、簡単のWebサービスを作ってみたいと思います。 LINE Bot とは LINE が提供する Messaging…

コードをより良くするためのツール紹介

こんにちは! 新卒の濱と申します。 弊社では、開発言語としてScalaを採用しています。 私はScalaを使い始めて半年以上経ちましたが、コードレビューでは指摘されることが多く、未だに勉強の日々です。 コードレビューでは先輩や同僚が悪いところを指摘して…

素早くデータマイニングしたくなったらSparkを始めよう

こんにちは。菅野です。 Scalaを使って集計バッチなどを書くと、ふつうは以下のようにコレクションのメソッドを駆使してデータをこねくり回しますよね? val 何かのデータ: Seq[String] = ??? 何かのデータ .groupBy(identity) .mapValues(_.size) .toSeq .s…

Androidにおける画像のトリミング実装 CropImageView

こんにちわ、加藤です。 最近、GANMA!というアプリにて画像のトリミングを実装する機会があったため、備忘録的に紹介したいと思います。 とはいえ、実に簡易的なものですのでご承知ください。 デモ CropImageViewを組み込んだ例です。 保存ボタンはCropImage…

ScalaのTry型での例外処理コスト

こんにちは、広幡です。 最近Scalaのコードを見ていると、Try(throw new Exception)していたり、Failure(new Exception)していたりと、 人によってバラバラなので揃えたいなーと感じています。 そこで、どっちを扱うほうがいいのか気になったので少し調べて…

2015〜2016年で開発組織を作るためにやってみたこと

こんにちは、杉谷と申します。 GANMA!を開発しつつ、社内環境を整えたりとかしています。 この会社に入社してから3年(+1ヶ月)経ちました。あっという間! いろいろやってきた結果、組織がますます良い感じになってきたので、会社ぐるみで試みてきたことを…

【保存版】Scala/Scrum/DDD 困ったこと50連発ガトリングトークでの質問に対する回答

こんにちは。 @kimutyam (木村)です。 先日は『Scala/Scrum/DDD 困ったこと50連発ガトリングトーク』という勉強会にて登壇させていただきました。 scala-scrum-ddd-gatlingtalk.connpass.com 登壇後はガトリングすぎたのであっという間に終わったという意見…

ScalaMatsuriで同人誌を配布した話《PDF有り》 / 今週末にイベント開催します

こんにちは、杉谷です。 少し前に開催されたScalaMatsuri2016に将軍スポンサーとして参加させていただいたいた際、スポンサーノベルティとしてScala同人誌の配布をさせていただきました。その際に得られた知見を共有します。 なぜ作ろうと思ったのか ノベル…

AkkaのActor生成時の注意点やテスト方法のナレッジ共有

こんにちは、広幡です。 現在携わっているプロジェクトでは、バッチアプリケーションをAkkaで開発しています。 開発が進んできてActorの生成方法やテスト方法などのナレッジが少しずつたまってきたのでシェアしようと思います。 バージョンは、Akka 2.3.14, …

Scala祭り2016行きました!Reactiveが自己トレンドとなった話

こんにちわ。Xiaoです。 1月30、31日に開催された日本最大級のScalaカンファレンス、Scala祭りに参加してきました。 scalamatsuri.org 今回のScala祭り2016では、初心者向けから上級者向けまで、コーディングのベストプラクティスからシステムの設計まで…

僕が 『 将軍 』 になるまでにした7つのこと

はじめまして。 セプテーニ・オリジナル代表の武藤です。 早速ですが大層なタイトルで恐縮です。。 明日から開催される Scala Matsuri で『将軍』スポンサーをする事になりましたので全力で乗っかってみました。m( )m 当日会場でも流しますがこの映像の会社…

Akka Http 2.0とScala.jsを試してみた

初めまして。菅野と申します。 去年10月に入社し、広告運用ツールを開発するチームに所属しています。 私は普段の開発ではPlayとTypeScriptを使用しています。 PlayやTypeScriptにはそれほど不満は感じていないのですが、その他のツールやライブラリについて…

scala.concurrent.Future の実装を追ってみる

あけましておめでとうございます。id:i000i0 です。 去年の9月に入社して以来、Scalaを使って広告の運用ツールを開発しています。 Scalaで開発していると強力な標準ライブラリのお世話になりますが、その内部実装がどうなっているかについて気になることがあ…

[Scala, Android] Publisher, Subscriberでイベント通知を実装してみる

どうもGANMA!チーム、しもむらです。 絶賛 Android × Scalaで開発中なのでそこから書きたいと思います。 入れ子のFragment内のイベントを上位に伝搬するのってめんどう、もっとダイレクトな感じにしたい Fragment内で発生したイベントを上位のActivityやFrag…