はじめに もともと Lisp の概念だそうです. 私は Lisp にあまり詳しくないため概念だけ調べてみました. ゴール ガッツリとした実装はしません. 「ペアの関数を作って値を取り出す関数を作る」程度で留めます. なぜ元ネタ Lisp で書かないのか🙂 ことば

概要 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
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? High Performance Spark github → https://github.com/yutapok/-memorandum/blob/master/HighPerformanceSpark.md 翻訳→気になった点のピックアップをしているため、不自然な日本語の箇所があります。 間違いがあればご指摘ください。 まだ途中なので後続の章も都度更新する予定 他の書籍や情報では語られていないことを中心に備忘録として (参考) ← 私の付け足し 書籍 情報 2017出版 Spark version 2.0.1以降〜 OReilly
Play Framework 世の中には多様なウェブシステムのためのフレームワークがありますが、今回はPlayに注目して話します。Javaには伝統的にJavaEEというものがあり、最近はやりのkotlinでのコーディングが可能なSpringもかなり使いやすくなっていますが、scalaなどの親和性も考慮するとPlayが一番よさそうなため。アーキテクチャもモダンなので管理がしやすい印象です。 Playのインストール 以前はactivatorというツールがあったようですが、今は提供されていないようです。公式ドキュメントによると現在はGitHubからスターターコードをダウンロードするか、sbtのgilter8テンプレートを使うというのが推奨されている始め方のようです。gilter8を使う場合は以下のようにします。 該当フォルダに移動して、sbt runとするとhttp://localhost:90
背景 2017年の9月にOracleがJDKの新たなリリース・モデルを発表して以降、Javaユーザーを中心として、新たな短いリリースサイクルに追従できるのか、現在のOracle JDKに代わって配布されるOpenJDKにはLTS(長期サポート)が用意されるのかといったことを含めて不安に思っている方が多いようです。OpenJDKのバイナリをリリースしてサポートを提供しているのはOracle一社ではないですし、Java 11 LTSが提供される予定のAdoptOpenJDKに最悪逃げればいいかなと個人的には思っています(AdoptOpenJDKのサポートについて完全に理解しているわけではないので、これはあくまで印象です)。ただ、OpenJDK LTSが提供されればそれに越したことはないので、OpenJDK LTSが提供されることを願いたいです。 ただ、それは別にして、JVM言語が新しいJDKの
Webjarsのホームページから、Bootstrapに必要なライブラリを探して、libraryDependenciesに追加をします。Webjarsを使うのに必要な、webjars-playのライブラリも追加しています。 name := """WebjarsTest""" organization := "jp.co.example" version := "1.0-SNAPSHOT" lazy val root = (project in file(".")).enablePlugins(PlayScala) scalaVersion := "2.12.6" libraryDependencies ++= Seq( guice, "org.webjars" %% "webjars-play" % "2.6.3", "org.webjars" % "bootstrap" % "4.1.3"
他のウェブフレームワークと同様にPlayでもDIができるようになっています。DIというのは、JSR330で規定されている依存性の注入の手法であり、Play Framework(2.4以降?)では、GoogleのGuiceというライブラリを使って実現されています。そんなに難しいわけではないのですが、原理とやり方をきちんと理解しないとなかなかとっつきにくい印象があります。AkkaのActorと組み合わせた例で説明したいと思います。 Play FrameworkにおけるDI まず、JSR330を使うということは、javax.injectパッケージのアノテーションを使うということだということを理解する必要があります。何かのコンポーネントに対して依存性の注入を行うためには、@Injectアノテーションを使ってクラスを修飾します。ちなみに、scala(Play)の場合はコンストラクタで宣言するのが一般
プログラムは動かさないと始まらない!最初は動かなくて嵌るかもしれない。 でも自分の手を動かして書いたソースが動き始めるともっと書きたくなってくるはず! 手を動かすことに喜びを感じたら、プログラミングの才能があるね! 最初はうまく書けなくても良いんだよ。 とにかくソースを書いて動かしてみようぜ!! 事前準備 まずは動作環境が必要だ。Windows7しか想定してない。すまん。 JavaとScalaのインストール・ダウンロード 以下のバージョンでダウンロードしインストールする。 Java SE 7u21 http://www.oracle.com/technetwork/java/javase/downloads/index.html scala-2.10.1 http://www.scala-lang.org/downloads 環境変数の設定 JAVA_HOME JAVA_HOME=C:\P
Option型って知っているかい?これマジ凄いよ! NullPointerException、通称 ヌルポ 。 少し込み入ったJavaアプリを作って動かすと、大抵発生するよね。 nullチェックを入れてたり、規約で縛ったりして対応することになると思います。 だけど、コンパイル時に見つけることができれば、、、と思ったことない? Option型を上手く使えれば、コンパイル時にnullチェックみたいなことができてしまうんだ。 とても素敵だよね! では、Option型について語ってみます。 Optionとは 値があるかないかを表す型です。箱って言っても良いかもですね。 Optionは更に2種類のサブクラスを持っている。 Some None Some 値があることを表す型。値を持っている。 None 値がないことを表す型。 Optionを使ってみる 淡白に説明してみたので、早速使ってみよう! Opt
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? この記事は PagerDuty 社がElixirを採用したときのことについて語ったCees de Grootさんの Elixir at PagerDuty の翻訳です ところどころ適当な訳になっていますが、その場合は編集リクエストなどもらえると幸いです。 PagerDutyが立ち上がった時、開発スピードがとても大切でした。 だから私達PagerDutyがRailsを最初に選んだことは驚くに値しないでしょう。 まもなく限界が来てScalaがスケールアップのため選ばれました。 しかし、RubyとScalaの間には言語自体の見た目やコミュニテ
自分用。気がついたら追加していく。 ユーザグループによる採用事例一覧もあるけど、 自分が見つけたスライドとかへのポインタも兼ねてるので一旦残しておく。 またScalaMatsuriのスポンサーを見てみるのも、Scalaに力をいれている会社を眺めるのに良いかもしれない。 http://2017.scalamatsuri.org/#sp http://2016.scalamatsuri.org/#sp 国内 株式会社ドワンゴ(ニコニコ生放送、モバイル系?) http://www.slideshare.net/kmizushima/scala-mizushima http://www.slideshare.net/sifue/developers-summit-2014-play2scalaweb https://speakerdeck.com/tlync/guo-ji-to-scala-jap
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? こんにちは、アカウンティング・サース・ジャパンの永井です。 突発企画として技術書をテーマに語り合う技術書座談会を社内で開催してみたので、そちらのレポートになります。 書籍座談会とは? 「普通の技術ブログともまた違ったことしたいね」という話をしていたところ、自分たちが使っている技術の情報を探すときに意外と困るという話が出ました。 そこで、私たちが採用しているScalaについての技術書を、うちの技術の偉い人を中心にエンジニア数名でレビュー、ディスカッションしてオススメ度や感想をまとめたら面白そうということで実施してみました。 本日のテーマ
最近、Scalaを書き始めてみました。 並列処理が書きやすくて、うまく書けたときは面白く感じますが、まだまだ言語の仕様を覚えきれてなかったり、そもそも関数型言語としての書き方ができていないかなーという感じです。 そんな中、ちょっとしたアプリを作る機会があったので、ScalaのCI環境を作りしながら進めてみました。 手順をメモがてら残しておこうと思います。 利用したツールの構成としては、Jenkins + ScalaTest + scoverage + Scalastyle な感じです。 とりあえずJenkinsでテストを動かすまで Scalaプロジェクト側の設定 ScalaTestの設定 利用するテストフレームワークのライブラリを設定する。 build.sbtのlibraryDependenciesに以下の内容を追記する。
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 基本的にはここに書かれている。 そしてまとめてみたら意外と分量があった。 http://www.scala-lang.org/download/ 1.Java 1.6以上のインストール ScalaはJVM上で動くので、Javaの環境が必要。そんなわけで、java と打って返事がないただの屍のようだ、となるか1.6未満の場合Javaをインストールする(※前提JREは今後変わる可能性もあるので、この辺りはインストール前によく確認)。 こちらからJava Platform (JDK) をダウンロード。 http://www.oracle.co
Playframework2.5のアプリケーションをdockerでAWS EC2にデプロイしてCloudWatch Logsでログを集約した話です。デプロイの自動化はここでは触れません。すごいまとめていうとdockerのawslogs logging driverが楽で便利だから使おうぜーってだけの話です。 dockerの1.9以上のバージョンでAmazon CloudWatch Logs logging driverを使いました。 環境は下記の通りです。 環境 Playframework 2.5 Amazon Linux Java 1.8 (EC2ではopenjdk1.8を利用) docker 1.12.6 手順 本番用のlogbackの設定 playframeworkでdockerのビルド CloudWatch Logsの設定 EC2インスタンスでアプリケーション起動 1. 本番用のl
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く