君達の JDK は全て SDKMAN! がいただいた

in

これは Travis CI に自分で JDK をインストールする解説の第2弾だ。以前は、jabba を紹介した。

今日は SDKMAN!, という、Marco Vermeulen (@marc0der) さんが作った元気な名前のツールを見ていく。これは、JDK の他にも Groovy、Spark、sbt など JVM 上の様々なツールを対象とする環境マネージャーだ。

AdoptOpenJDK 11 と 8

2019-11-06 更新: SDKMAN の更新プロンプトが CI をブロックするのを回避するために sdkman_auto_selfupdate を追加した。また、sdk install の行に || true を追加した。

2019.03 mixtape

in

Spotify: https://open.spotify.com/user/1235450353/playlist/0guisAxA5Q2WO6biLJqdU0...
YouTube: https://www.youtube.com/playlist?list=PLSUh6oJ5ZotUlIMwWcbtV7FRTEzHqYm_7

2h 58m

track list

  • Mbr / Ajisai - Ametsub
  • Win In The Flat World - Lorenzo Senni
  • Opal - Four Tet Remix - Bicep, Four Tet
  • ؞ؖ؞ৢ؞ؖ؞ৢ؞ؖ؞ৢ؞ؖ؞ৢ؞ؖ؞ৢ؞ؖ؞ৢ؞ؖ؞ৢ؞ؖ؞ৢ؞ؖ؞ৢ؞ؖ؞ৢ؞ؖ؞ৢ؞ؖ؞ৢ؞ؖ؞ৢ؞ؖ؞ - △▃△▓
  • Recursion - Throwing Snow
  • Opal Waltz - Supernaive
  • Turnhalle - Barker & Baumecker
  • #17 - Aphex Twin
  • Good Winds - Efdemin
  • Stingray Nebula - OUER

Docker での sbt

AdoptOpenJDK JDK 8 を用いる場合:

docker pull eed3si9n/sbt:jdk8-alpine
docker run -it --mount src="$(pwd)",target=/opt/workspace,type=bind eed3si9n/sbt:jdk8-alpine

AdoptOpenJDK JDK 11 を用いる場合:

docker pull eed3si9n/sbt:jdk11-alpine
docker run -it --mount src="$(pwd)",target=/opt/workspace,type=bind eed3si9n/sbt:jdk11-alpine

Pamflet 0.8.0

年末の連休中に Pamflet の left TOC (目次) を実装して、Pamflet 0.8.0 としてリリースした。

Pamflet は短い文書、特にオープンソース・ソフトウェアの ユーザ・ドキュメントを公開するためのアプリだ。

scopt 4

in

scopt 4 における関数型 DSL は以下のようになる:

import scopt.OParser
val builder = OParser.builder[Config]
val parser1 = {
  import builder._
  OParser.sequence(
    programName("scopt"),
    head("scopt", "4.x"),
    // option -f, --foo
    opt[Int]('f', "foo")
      .action((x, c) => c.copy(foo = x))
      .text("foo is an integer property"),
    // more options here...
  )
}
 
// OParser.parse returns Option[Config]
OParser.parse(parser1, args, Config()) match {
  case Some(config) =>
    // do something
  case _ =>
    // arguments are bad, error message will have been displayed
}

OptionParser 内でメソッドを呼ぶのではなく、関数型 DSL はまず特定の Config データ型に対するビルダーを作って、opt[A](...) など Oparser[A, Config] を返す関数を呼ぶ。

これらの OParser[A, Config] パーサーは OParser.sequence(...) を用いて合成できる。

最初は for 内包表記を使ってこの合成を表すことも考えていたが、その見た目に慣れて人にとっては分かりづらいと思ったので sequence 関数を作った。

芽キャベツのサラダ

scala.Seq のマスキング

in

現行の Scala 2.13.0-M5 のままで行くと、scala.Seqscala.collection.Seq から scala.collection.immutable.Seq に変更される予定だ。Scala 2.13 collections rework に何故今まで不変じゃなかったのかの解説が少し書かれている。行間から推し量ると、scala.Seq がデフォルトで不変になることを喜ぶべきだと言っているんだと思う。

デフォルトで列が不変になることはアプリや新しく書かれるコードには良いことだと思う。ライブラリ作者にとってはもう少しこみいっているかもしれない。

  • あなたがクロスビルドされたライブラリを持っていて
  • ライブラリのユーザも複数の Scala バージョンを使っていて
  • ライブラリのユーザが Array(...) を使っていた場合

この不変 Seq への変更は、breaking change つまり非互換な API 変更となりうる。

underhill (2018.12 mixtape)

in

Spotify: https://open.spotify.com/user/1235450353/playlist/1cOJUEKtQfCKAovwSZhdyh...
YouTube: https://www.youtube.com/playlist?list=PLSUh6oJ5ZotVgnwc5xG-mE2uiunHANOyY

3 h 28 min

track list

  • Nobody But You - George FitzGerald, Hudson Scott
  • Nothing To Lose - Giorgia Angiuli
  • Bellyache (Marian Hill Remix) - Billie Eilish, Marian Hill
  • Technicolour - Mansionair
  • Come Home - BAYNK, Shallou
  • asleep (feat. MOONZz) - pluko, MOONZz

カンファレンスを女性にとってよりセーフなスペースにするための方法

Eugene Yokota、Yifan Xing 著

技術カンファレンスにおける女性の参加率 (やその他のバックグラウンドを持つ人の参加率) を改善するには、周辺のカルチャーを変えていく必要がある。そのためには以下の 2点に関してハッキリとしたシグナル化とコミュニケーションを必要とする:

  1. カンファレンスで女性参加者をナンパするのはダメ
  2. 技術的な能力を前提として、女性参加者とプロフェッショナルかつ対等に接する

これらは全てのカンファレンスにおいて基調講演の前と、社交タイムの前に繰り返し連絡されるべき事項だ。

'Red Mars' by Kim Stanley Robinson

Red Mars (Mars Trilogy, #1)Red Mars by Kim Stanley Robinson
My rating: 4 of 5 stars

Red Mars is a science fiction classic written in 1992. This book is everything I wanted and more, starting with first hundred astronauts and cosmonauts migrating to Mars to build the infrastructure such that more people can migrate. By the middle of the book, thousands of people migrate to Mars. The book explores various dimensions the epic project, not just technological challenges, but psychological effects, personality differences, and political interests by superpowers. The geography of Mars is written in vivid, majestic details.

Syndicate content