ぶらっ記ぃ

日本語の練習をしています

Scala

DigdagのExtensionを実装する

モチベーション 個人のリポジトリでdigdag-plugin-datadogを開発していますが、これを使うユースケースは主に _error のタスクでワークフローのエラーをDatadogに通知することであり、これは複数のワークフローが存在する場合、各ワークフローに書いて回る必…

AWS Amplifyを使ってScala.jsアプリをデプロイしようとしたけどうまくいかなかったログ → できました

追記(2020/04/28 23:55) ビルドに使うDockerのイメージを alpine → ubuntu にしたらうまくいきました FROM adoptopenjdk/openjdk8:latest RUN apt-get update && apt-get install --yes curl git openssh-client npm https://master.d24dpd4k731ni4.amplifya…

Coursier を使って最速でScalaの開発環境を整える

ざっくりまとめ Coursierの setup コマンドを使うとJDKとScala開発に必要なツールをまとめてインストールできるよ。 最近追加された install コマンド get-coursier.io Coursier といえば sbt v1.3.0 で取り込まれた高速でライブラリ依存を取得するためのOSS…

scribejavaでOAuthの認証を行いアクセストークンを取得する

github.com ここに書いてある通り。 この記事ではTwitterを対象にAmmoniteでやります。 依存を追加 執筆時点の最新版を使います @ import $ivy.`com.github.scribejava:scribejava-apis:6.4.1` import $ivy.$ サービスクラスのインスタンスを得る Twitter, Y…

ScalaからAWS CDKを叩いてインフラを構築する

モチベーション 先日、TypeScriptとPython向けに AWS Cloud Development Kit がGAになりました。 aws.amazon.com 現在GAではないのですが、JavaもこのAWS CDKの対象言語となっています。 じゃあ、JavaでできるならScalaでもできるよね?(決まり文句) Scalaで…

Maven Central RepositoryからJarを取得して実行可能なスクリプトに変換する

coursierのCLIでbootstrapを使うとできる 以下は Ammonite をダウンロードしてスクリプト化する例 $ coursier bootstrap com.lihaoyi:ammonite_2.12.8:1.6.6 -M ammonite.Main -o amm --standalone https://repo1.maven.org/maven2/com/lihaoyi/ammonite_2.1…

scalafmtでfor式の `<-` と `=` をAlignする

Scalaコードをフォーマットするのによくscalafmtが用いられると思います。 scalameta.org 自身は仕事/個人開発でよく下記の設定を使っています。(宣伝) github.com sbtプロジェクトのディレクトリ下でちょこっとコマンドを叩くだけでscalafmtの環境が整うの…

ロガーを自分で実装するのはやめよう

最近以下のようなコードと出会いました。 package logging import org.slf4j.LoggerFactory object Logger { private val logger = LoggerFactory.getLogger("LOGGER") def debug(message: String): Unit = { logger.debug(message) } def info(message: Str…

JupyterNotebook + almondで Scala 環境を構築する

仕事でたまたま、整形の難しいアプリケーションログを追うことになった。 テキストをいじくるとき、自分はAmmoniteをよく利用するのだが、 (これってもしかして、JupyterNotebookが使えるのでは…?) とふと思い立った。 色々調べたところ、almondというもの…

【ぽえむ】今週やったこと(10/30~11/5)

Table of Contents 1. 読書 1.1. データサイエンティスト要請読本 登竜門編 2. Trailhead 3. fish-shell 3.1. `hub` コマンドの保管を入れた 4. Emacs 4.1. faceの設定をいじるなど 4.2. org-modeを使い始めた 5. Scala 5.1. enum的なものをScalaで使う方法…