読者です 読者をやめる 読者になる 読者になる

Septeni Engineer's Blog

セプテーニエンジニアが綴る技術ブログ

Scala

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

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

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

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

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, …

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…

PlayFramework2.4におけるDIのテスト方法

はじめまして、8月入社の外国人プログラマーのXiaoです。少し前から [PlayFramework2.4][1] を使い始めて、いろいろ良い変化を感じました。その中でもPlay2.4では [Guice][3] を使って正式に [DI][2] 機能が導入されました。DIを導入するメリットの一つとし…

Akka Schedulerの定期実行を使って自動的にInstagramから画像を取得し、Tumblrへ投稿してみる

こんにちは!村井と申します。 見出しの通りですが、Akka Schedulerの定期実行を使ってInstagramから画像を取得し、 Tumblrへ自動投稿をしたいと思います。 Akkaの設定 Akkaとは そもそもAkkaですが、 Scala/Javaで非同期処理を実現するためのライブラリで…

GANMA!でのCache実装例

こんにちは、杉谷と申します。 いま運用している"GANMA!"のCache周りは比較的ちゃんと出来ている気がしていまして、 サービスの特性もありますがアクセス数の割にはMasterDB1台Slave無しでも負荷すっかすか、というくらいには負荷が押さえられています。 GAN…

研修でscala-dddbaseを使って掲示板作ってみました

はじめまして、新人のno_sugiyamaです。 研修でscala、PlayFramework、ドメイン駆動設計(DDD)を使って掲示板を作りました。 実装する際に使ったscala-dddbaseライブラリがDDDで実装するときに非常に便利だったので、実際にどんな感じで使ったかをご紹介した…

Playframeworkで定期実行させる - akka-quartz-schedulerを使う

こんにちは、t_hirohataです。最近PlayFrameworkで、指定した時間に処理を動かすプログラムを書いたので そこで使ったライブラリをちらっとご紹介します。akka-quartz-scheduler今回ご紹介するのは、akka-quartz-schedulerというライブラリで、 cronのような…

Dispatch(HTTPクライアントライブラリ)を使ったサンプルコードを書いてみた

ども、@kimutyamです。業務の一部で外部API基盤開発に携わったんで、ブログに書こうと思いました。 開発メンバーがライブラリの知識がなくても簡単にAPIリクエストを行い、レスポンスをクラスにマッピングされた形で返ってくるような基盤を作成しようと思い…

scalaで外部コマンドを実行する

こんばんは、しもむらです。 弊社もScalaプロジェクトが結構増えてきました。 定期的に外部向けの勉強会も行ったり、社内で勉強会をしたりしています。 次回の外部向け勉強会は 6/16(火) 20:00~にあります。 興味ある方はぜひご参加ください。 http://septen…

【Scala】StrategyパターンでTwitter投稿を実装してみた

こんにちは。@kimutyamです。 新卒入社3年目のアプリケーションエンジニアです。 今はつぶやきGANMA!というグループ会社のサービスを開発・運用しております。弊社はScalaカンパニーになりつつあり、Scalaを利用したサービスが増えてきた次第であります。 つ…