Scala

Scala.jsでもReactを使いたい

はじめに Scalaが好きすぎてフロントエンドでも使いたいのでScala.jsに入門してみました。 必須環境 Scala.jsのチュートリアル曰くsbtとかnode.jsを入れなさいということなのでインストールしましょう。 また、npmパッケージのキャッシュとかバージョンの固…

gitbucket-backup-pluginをリリースしました

はじめに GitBucketのバックアップ機能を提供するgitbucket-backup-pluginをリリースしました。 github.com gitbucket-windows-backup-pluginを開発・保守してきましたが、以下の点が気に入りませんでした。 名前にwindowsと入れてしまったせいでWindows専用…

gitbucket-windows-backup-pluginの0.5をリリースしたお話

はじめに github.com gitbucket-windows-backup-pluginの0.5をリリースしました。 今回のリリースで以下の機能の追加を行いました。 バックアップの最終ステップでAWS S3互換のオブジェクトストレージにアーカイブをアップロード出来るように変更 特定のURL…

ScalaでもAWS S3互換にファイルをアップロードしたい

はじめに S3にファイルをアップロードするコードを追加するのに、いきなりAWSを契約するのは勇気が要る*1のでとりあえずS3のコンパチ品でテストしてみることにしました。 github.com Minio こちらのMinioさん、単一のファイルをダウンロードして実行するだけ…

gitbucket-windows-backup-pluginの0.4をリリースしたお話

はじめに という訳でgitbucket-windows-backup-pluginの0.4をリリースしました。 github.com 新機能 バックアップの成功時もしくは失敗時にメール通知を行うようにしました。 バックアップの成功時もしくは失敗時にメール通知を行うには、GitBucketのSMTP設…

GitBucketのバックアッププラグインを作ったお話

はじめに 弊社の環境ではWindowsでGitBucketを動作させていますが、GitBucketのバックアップを気合と根性とJenkinsと自作プログラムとpsql*1とPowerShellで行っていたのが割とつらみポイントが高めだったので、オールインワンでバックアップを行ってくれるプ…

焦るんじゃない、俺はScalaでもディレクトリをそのままZIPで固めたいだけなんだ

ScalaでディレクトリをそのままZIPで固めたくて、『java directory zip』みたいなキーワードでググると大抵ZipOutputStreamとかZipEntryとかが出てきて面倒くさいなぁと思っていました。 github.com zt-zipを使うとディレクトリをZIPに一撃で固められて非常…

gitbucket-plugin-template のGiter8テンプレートを勝手に作ったお話

はじめに GitBucketはプラグインシステムを導入しており、プラグインのテンプレートも用意されていますがGiter8テンプレート化されておらず*1、sbt newを当たり前のものとしてしまっていた弊社にとってはなんだかなぁといった感じでした。 ので、勝手に自作…

AkkaでもActorの再起動を遅延したい

はじめに Actorはエラー発生時に再起動させることが出来ますが、デフォルトの挙動では可能な限りすぐに再起動をさせようとするためDBやWebサービス等の障害が原因ですぐに復旧しない場合はActorの生成→停止を繰り返し死屍累々となることが予想出来ます。 と…

Akkaでもテストを実施したい

はじめに あけましておめでとうございます 今年の目標も前年と同様に「生き抜く」を主軸としてなんかいい感じに頑張ります。 今回はAkkaのテストについてです。 今回の内容はほとんどAkka実践バイブル(翔泳社 2017年)から参考にさせて頂いた*1のですが、Acto…

Scalaでも値が範囲に入っているか確認したい

はじめにとおわりに Scalaで整数が特定の範囲に入っているかを宣言的に書けないかなと思ったのですが、やっぱり書けました。 val range = 0 to 255 println(range contains -1) println(range contains 0) println(range contains 20) println(range contain…

Akkaのエラーハンドリングストラテジを確認したい

はじめに Akkaを実運用に突っ込もうと考えたときに一番最初に気になるのはActorがくたばった時の挙動ですよね。 知らない間にActorがくたばっていてメッセージだけが虚空の彼方に消えていったなんて事態になった日には次回の自身のボーナスも虚空に消えかね…

Scalaでも演算子のオーバーロードをしたい

はじめに Scalaの演算子オーバーロードについてサクッと確認してみます。 オーバーロード まぁ、とりあえず言語仕様を見ておけば安心だよねといった感じです。困ったら公式ドキュメントを読む。日本書紀にもそう書いてあります。 case class AltInt(val valu…

implicitパラメータとは何ぞや

はじめに PlayでコントローラからビューからFuture[T].mapからお前らimplicitパラメータ好きすぎだろってくらい多用されています。これはゆるふわっと使っていると後でヤバい目に遭うなと思ったので軽く調べてみました。 ゆるふわ愛されimplicit 言語仕様のi…

ScalaでもリフレクションでtoStringしたい

はじめに Scalaを始めたのでとりあえずリフレクションでtoStringしてみました。 弊社にとってリフレクションでtoStringするのはもはや挨拶のようなものです。 環境 Scalaのバージョンは2.12.3です。 真のジェネリック 当たり前かどうかは分かりませんが、JVM…