Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
目標 Scala の implicit (暗黙的な型変換)があるとどううれしいか紹介する. implicit の簡単な紹介 型の不一致を解消するための型変換の操作が繰り返し実装に現れると,コードのシンプルさが失われ可読性が落ちる.そこで, implicits を用いることで暗黙的に型の不一致を解消でき,シンプルでわかりやすいコードを記述することができる.さらにこれを応用させて,組み込み型のクラスに対してあたかも新しいメソッドを追加したようにメソッドを呼び出すことができる. 使用例とメリット 異なる複数の通貨間で加算と減算を実行するコードを書く場合を取り上げて, implicit により実装がシンプルになる例を紹介する.ここでは 100 円 + 1 ドル (= 111円) = 211 円 などの演算を想定する.円,ドル,ユーロ,それぞれの貨幣を示すクラス, Yen, Dollar, Euro
package com.example.common import play.api.mvc._ import play.api.libs.json._ import scala.concurrent.Future abstract class JsonValidatedController(cc: ControllerComponents) extends AbstractController(cc) { def async[A](request: Request[AnyContent])(async: A => Result)(implicit reads: Reads[A]) = { Future.successful { val json = request.body.asJson.map(_.validate(reads)) json match { case Some(s: J
こちらで、Spark StreamingからRDBへのデータ書き出しの作業の流れ(Spark Streaming / JDBC連携)を確認した上で、Spark StreamingによるTwitter構文解析※データを、PostgreSQLに格納した手順をまとめます。 実行環境は次の通りです。 ・CentOS 7.5 ・PostgreSQL 9.2.23 ・Apache Spark 2.3.1 ・Scala 2.12.6 ・kuromoji 0.7.7 ・Spark Streaming Twitter 2.10 rev 1.1.0 ・Twitter4J 3.0.3 PostgreSQL : 格納用テーブルの作成 目的)60秒毎に「iPhone6」が含まれるTweet中に出現する単語とその頻度をカウントし、先頭10件の単語情報を格納対象とする psql -d mydb -U postgres
package com.exsample import _root_.controllers.AssetsComponents import play.api.ApplicationLoader.Context import play.api._ import play.filters.HttpFiltersComponents import router.Routes import com.exsample.controllers._ class MyApplicationLoader extends ApplicationLoader { def load(context: Context) = { LoggerConfigurator(context.environment.classLoader).foreach { _.configure(context.environment,
Scala & Play2 学習ノート(1) ここ4,5年C#&Azureマンでやってきましたがこの度転職する運びとなり、新しい職場ではScala&AWSが中心と聞いているので集中的に勉強してみようかと思い学習の経過・メモを記事に残していくつもりです。 ちなみにScala自体は全くの未経験というわけではなく、個人的に勉強して納品とは関係の無い業務ツールを作っていた時期(ソースを見るとScala 2.10.2時代)があります。 かなり忘れている部分もあるのでリハビリを兼ねつつボチボチ画像少なめメモ中心でやっていきます。 環境作成 sbt インストール なにはなくとも sbt。Macならbrewでinstallするだけ。 $ sbt about [info] Loading project definition from /Users/xxxx/project [info] Set curre
Scala & Play2 学習ノート(2) Scala 学習ノート二回目。やっぱWebアプリを作らなきゃということで PlayFramework を使っていきます。 Play2 を使う bizreach のハンズオンが良さげなのでとりあえず流しでやってみます。 プロジェクトの作成 プロジェクトを作る 既にsbt、IntelliJは入っているので新規プロジェクトを作る所から。 bash-3.2$ sbt new playframework/play-scala-seed.g8 --branch 2.6.x [info] Set current project to ideaprojects (in build file:/Users/yossy6954/IdeaProjects/) [info] Set current project to ideaprojects (in build f
package controllers.presenters import models.domains._ import play.api.libs.json._ import play.api.libs.functional.syntax._ trait JsonPostsPresenterImpl extends PostsPresenter { implicit val postWrites = ( (__ \ "id").write[String].contramap((postId: PostId) => postId.toString) and (__ \ "user_id").write[String].contramap((userId: UserId) => userId.toString) and (__ \ "text").write[String].contram
Scala & Play2 学習ノート(3) 前回作った play2-hands-on をAWSで動かします。 Beanstalk 使った事なかったので Beanstalkで、DBもせっかくなのでRDSで作ります。 AWS RDS を使用する まず DB だけ AWS RDS で作成し、ローカルで RDS上のDBに繋いで動くようにします。 RDS 作成 AWS コンソールに繋いで MariaDB を作ります。当然無料利用枠オプションON。 ローカルから繋ぎたいのでパブリックアクセシビリティだけ"はい" に変更し、インスタンス作成。 DB作成 ハンズオンの h2 DBに含まれる create.sql を元に MariaDB用の DDL を作成し、テーブルと初期データを作成します。 MySQL使うのが久々すぎてヤバい。 create table COMPANIES ( ID INT NOT N
基本的にはこちらのページの手順を再現するだけで良いので簡単でした。 環境: - Mac OS Sierra - JDK 1.8.0_171 - Scala 2.12.6(brewでインストール) Graal VMをダウンロードして適当に展開する https://www.graalvm.org/downloads/ バイナリはLinux 64bit版とMac OS 64bit版しかないので注意 ~/graalvm-ce-1.0.0-rc5 に展開したことにする 環境変数JAVA_HOMEを設定する(Java 8でないと動かない?(要確認)ので注意) $ export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_171.jdk/Contents/Home
概要 Play FrameworkとNuxt.jsで環境構築をおこない、SSRするまでの例を紹介する 構成 サーバーサイド:Play (Scala) v2.6.15 フロントエンド:Nuxt (Typescript) v1.3.0 環境構築 まずはPlayをインストールします。 $ sbt new playframework/play-scala-seed.g8 This template generates a Play Scala project name [play-scala-seed]: playframerowk-with-nuxt.js organization [com.example]: com.flatgela play_version [2.6.15]: sbt_version [1.1.6]: scalatestplusplay_version [3.1.2]: T
社内ブログを書いたのでその転載です。 AWS SQS + Lambda を利用した Slack 通知アプリケーションを Scala で実装して Serverless Framework でデプロイする 表題の通り AWS のサービスを活用した Slack 通知アプリケーションを 開発する機会がありましたのでアウトプットです。 尚、今回はイベントソースについて詳細には触れませんのでご了承ください。 こちらについてはまたの機会に。 アプリケーション概要 SQS に溜めたメッセージを Lambda がポーリング 読み込んだメッセージを Slack に POST 通知が成功したメッセージを SQS から削除 本ブログにおいてはコアの機能となっている、 メッセージの読み込み、通知が成功した場合にメッセージを削除する機能について解説していきます。 開発の準備 Serverless Framework
はじめに もともと Lisp の概念だそうです. 私は Lisp にあまり詳しくないため概念だけ調べてみました. ゴール ガッツリとした実装はしません. 「ペアの関数を作って値を取り出す関数を作る」程度で留めます. なぜ元ネタ Lisp で書かないのか🙂 ことば Cons 2つの要素を持つペアを構成する関数を作ります construct. f(a, b) Car 先頭要素 head を返します. 今回はペアを扱うため 左 left の要素を返します. a Cdr 残りの要素 tail を返します. 今回はペアを扱うため 右 right の要素を返します. b Haskell の場合🙂 ペアの関数、第一要素を返す関数、第二要素を返す関数をそれぞれ:tで type を表示してみた結果です.
概要 ScalaのPlay Frameworkで遊んでみようと思ったのですが、まず環境構築で仕様変更等あり、どれが2.6で使えるのか分からなかったので、素人ながら情報整理をしてみました。 前提 よくネットにある手順のactivatorコマンドはsooogleさんのEclipseでPlay Framework 2.6 (Java) の環境構築に記載の通り、2.5でEOLをむかえてしまっています。したがって2.6以降はsbtコマンドを使って、環境構築等を行っていく必要があります。 ちなみに、私が今回試した環境は以下の通りです。 ・Java 1.8 ・sbt 1.1.6 ・Scala 2.12 ・Eclipse 4.7 Oxygen やったこと ※JavaとEclipeはインストール済みの前提とします。 1.sbtのインストール まずはこちらよりsbtをダウンロードしインストールします。 2.P
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く