sbtからMaven Centralにライブラリをpublishする

毎回ググり直している気がするのでメモを…

初回のpublishはsbtのドキュメント通りにやれば問題ない(なかったと思う)です。

sbt Reference Manual — Using Sonatype

2回目以降の手順については以下。

1. sbtからpublishSignedタスクを実行する

$ sbt publishSigned

2. PGPパスフレーズを入力

Please enter PGP passphrase (or ENTER to abort)と聞かれるのでを入力。 パスフレーズは初回時に自分で設定しているはずなので頑張って思い出す。

3. SonatypeからCentral Repositoryにリリース

2が成功するとSonatype社のリポジトリにリリースがされる。
ここからMaven Centralに向けて再度リリースをする。

ここからの手順はこちらを参考に。 central.sonatype.org

まずはSonotypeのリポジトリにアクセスしてログイン。

Nexus Repository Manager

左側のメニューからStaging Repositoriesを選択し、先ほどリリースした自分のライブラリにチェックを入れる。
チェックを入れたら上のメニューのCloseをクリック。しばらく待って完了したらReleaseをクリックしてMaven Centralへリリースを行う。

f:id:todokr:20170728184748p:plain

絵文字URL短縮サービスをつくりました😎

f:id:todokr:20170710194311p:plain

Unicode Emojiを利用したURL短縮サービスを作ってみました。

何かしら絵文字を使ったサービスを作ってみたいなーとは以前から考えていたのですが、「絵文字の種類数を基数としたN進数でURLを短縮するのはどうだろう?」と思いついたのでやってみました。

バックエンドはScala + PlayをElastic Beanstalkで動かしています。短縮URLのリダイレクトにはS3のWebsite Redirect Location機能を使っています。 (今考えればAWS JavaScript SDK + Cognito + S3でサーバーレスにしてもよかったかも知れません…)

遊び半分で作ってみたものなのでずっとサービスとして提供し続けられるかは分かりませんが、ふとした折に使っていただけると幸いですw

Emoji URL Shortener

Scala Days 2017 Copenhagen 3日目

f:id:todokr:20170604040655p:plain

とうとう最終日です。

Keynote: Open source is just about the source, isn’t it?

最終日のキーノートはApache Mahoutのファウンダーである@mainecさんによるOSSについてのセッションです。

続きを読む

Scala Days 2017 Copenhagen 2日目

f:id:todokr:20170602131606p:plain

元気よく2日目に行ってまいりました。

Tools for Verified Scala

2日目のキーノートはEPFL内の研究室で開発されたstainlessというコード解析ツールについてです。

続きを読む

Scala Days 2017 Copenhagen 1日目

Scala Days 2017 Copenhagenの1日目に参加してきました。 f:id:todokr:20170601042032j:plain

初日はScalaの作者であるMartin Odersky先生による「What’s different in Dotty?」というキーノートです。

続きを読む

長時間のフライトで役立ったグッズ

Scala Daysに参加するため、昨日からコペンハーゲンに来ています。

日本からのフライトは10時間ほどかかるのですが、昨年のサンフランシスコへのフライト(13時間!)では完全に腰を撃破されてしまったため、今回は快適に過ごせるように便利グッズをいくつか持ち込んでみました。

Rock Dan(収納ケース付き)フットレスト

座席前のテーブルに引っ掛け、足を乗せて使うものです。見た目も構造も簡素なのですが大変効果がありました。足を投げ出せるだけでだいぶ違います。
もともとは¥8,000ほどするものらしいですが、今は83%オフ(!)で¥1,000ちょっとなのでエイヤーと買ってしまいました。このくらいの価格で買えるなら2~3時間のフライトでも持っていて損はないと思います。

HOMECUBE 改良版 エアーピロー

膨らませて使う大型の枕です。大型と言ってもそこまで大量に息を吹き込む必要はありませんでした。
折りたたんだ状態では小さい水筒ほどのサイズなので、カバンにぽんと入れて持っていきました。(使った後自分でたたむのはなかなか大変でしたが…)

f:id:todokr:20170531161414p:plain

飛行機の座席を倒しづらいシーンはままあると思うのですが(いかついお兄さんが後ろに座ってるとか)、そういう際にこういう枕があると非常に便利だと思います。
中がちょっとした空洞になっているので、中でスマホや携帯ゲーム機を使ったりもできます。以前にちょっと話題になった1人ダンボールシアターと同じ要領ですね。

腰も無事フライトに耐えきったので、今日からのScala Daysを楽しみたいと思います!

「JSONにコメント書きたい!」って思ったあなたにはHjsonがおすすめ。

f:id:todokr:20160423202157p:plain

JSONにコメントを残したいなあと思うことは多々あるかと思います。 特に設定ファイルの場合、「なぜこの値にしているのか」「取りうる値の範囲」などの情報を残しておけるとありがたそうですね。

先日、Hjsonなるものを発見しました。コメントが残せる以外にも、末尾のカンマやクオーテーションが不要だったりと、なかなか快適そうです。

Javaでの実装があるので、これをScalaから利用してみます。
hjson-java

hjson-javaをScalaから利用するサンプル

出力

Name: Shunsuke Tadokoro
Colors: ["red","green","blue"]
Greet: Hello, HJSON!
Regex: ^\d{2,4}\.\w+?-\d+
HTML: <h1>HTML Element</h1>
若さ 若さってなんだ ふりむかないことさ
愛ってなんだ ためらわないことさ

ここまで簡潔に書きたいならそもそもYAMLでいいのではという気もしますが、 通常のJSONもHjsonとしてパースできるという後方互換性(?)があるので、 JSONを扱う既存のコードにすんなりと組み込めるという点ではこちらに分がありそうです。

Java以外にもJS、PythonC#、.Net、PHPでの実装があるようです。

Packages for Developers