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.

sbt のための super shell

in

週末中に sbt のための super shell の実装がまとまってきたのでここに報告する。大まかな概要としては、ターミナル画面の下 n行を乗っ取って今走っているタスクを表示させる。

ログを現状報告に使うことの限界

ログは多くの場面で有用で、時としては何が起こっているかを知るための唯一の現実解であったりする。だけども、sbt のようなコンソールアプリにおいては、ログを使ってビルド・ユーザに現在なにが起こっているかを報告するのはうまくいかないことがある。

仮に sbt が一切ログを表示しなかったとすると、sbt が長時間走るタスクを実行して一見固まってしまったときに何が起きているか分からなくなる。そのため、update のようなタスクは "Updating blabla subproject" と "Done updating" といった開始、終了ログを表示する。update タスクはユーザやビルドによって非常に長い時間がかかってしまうことで有名だが、少ないライブラリ依存性を持つその他の多くのビルドは 1s 以内で完了する。そのような場合、ビルドの開始時に "Done updating" がズラーッと壁のように並ぶことになる。

-Xlint, -Xfatal-warnings, そして Scalafix を用いた Scala の厳格化

in

コンパイルする、さもなければコンパイルしない。警告などいらない。最近気に入っている Scala コンパイラのフラグは "-Xlint""-Xfatal-warnings" の 2つだ。

以下は、サブプロジェクトと共に使えるセッティングの例だ:

ThisBuild / scalaVersion := "2.12.6"
 
lazy val commonSettings = List(
  scalacOptions ++= Seq(
    "-encoding", "utf8",
    "-deprecation",
    "-unchecked",
    "-Xlint",
    "-feature",
    "-language:existentials",
    "-language:experimental.macros",
    "-language:higherKinds",
    "-language:implicitConversions"
  ),
  scalacOptions ++= (scalaVersion.value match {

git gone: stale なローカルブランチのクリーンアップ

git gone は、Erik Aybar さんの Git Tip: Deleting Old Local Branches をベースに僕が書いたカスタム git コマンドだ。Bash でスクリプト書くのは不慣れなので Google とか Stackoverflow を見ながら書いたが、一応動いてくれていると思う。このページの最後にソースを貼ったのでそれを ~/bin など適当な場所に git-gone として保存する。

使い方は git gone と打てば出てくるようにした:

$ git gone
usage: git gone [-pndD] [<branch>=origin]
OPTIONS
  -p  prune remote branch
  -n  dry run: list the gone branches
  -d  delete the gone branches
  -D  delete the gone branches forcefully
 
EXAMPLES
git gone -pn  prune and dry run
git gone -d delete the gone branches

xenoanthropology (2018.09 mixtape)

in

Spotify: https://open.spotify.com/user/1235450353/playlist/5US2KVLXPDrsB1C3IikMpT...
YouTube: https://www.youtube.com/playlist?list=PLSUh6oJ5ZotVUgp0rFjOJPKyVoFQMEUzo

  • First Flight - Kaitlyn Aurelia Smith
  • Vind - Christian Löffler, Mohna
  • Heptapod B - Jóhann Jóhannsson
  • Bad Blood - SBTRKT Remix - Nao
  • Glasir - Telefon Tel Aviv Remix - These Hidden Hands
  • A Parallel Life - Ocoeur
  • Object Unknown - Kool Keith
  • Airships Fill the Sky - Morgan Packard
  • Retrograde - James Blake
  • Nowhere - Crazy P's Heatwave Mix - Aquanote, Zoe Ellis

Scala で書くコンソール・ゲーム

リッチなコンソールアプリの基盤は、1970年代の VT100 のような物理端末、そしてそれらのカーソル制御、テキスト整形のためのバイトシーケンスを標準化した ANSI X3.64 制御シーケンスにある。現代のターミナルアプリケーションはこれらターミナルのふるまいをエミュレートする。

そのため、良いターミナルアプリを前提とすれば、制御シーケンスprintln(...) して、標準入力を読み込む能力さえあればリッチなコンソールアプリを書くことができる。これは、どのプログラミング言語でも可能なはずだ。

console5

sbt 1.2.0

in

@eed3si9n

皆さんこんにちは。Lightbend Tooling team にかわって sbt 1.2.0 をアナウンスします。これは sbt 1 のフィーチャーリリース第二弾で、バイナリ互換性は維持しつつ新機能にフォーカスを当てたリリースとなっている。sbt 1 は Semantic Versioning にもとづいてリリースされるので、プラグインは sbt 1.x シリーズ中機能することが期待されている。

  • 2018年7月31日に 1.2.0 final 版がリリースされた。
  • 2018年7月6日までに大きな問題が見つからなければ、1.2.0-RC1 は 1.2.0 final 版となる予定だ。

sbt 1.2 の主な新機能はクロスJDK forking、composite project、そして実験的な thin client だ。sbt 1.1 から 6ヶ月の間他にも色々なバグ修正や改善点がたまっていた。

プラグイン開発のための SbtPlugin

君達の JDK は全て jabba がいただいた

OpenJDK 11-ea, GraalVM, Eclipse OpenJ9 を試してみたり、未だに OpenJDK 6 でビルドしなければいけなかったりしたとしても jabba なら万全だ。jabba は Stanley Shyiko (@shyiko) さんが作ったクロスプラットフォームな Java のバージョンマネージャーだ。

AdoptOpenJDK 8 and 11

以下は jabba を使って Travis CI 上で AdoptOpenJDK 8 と 11 を用いてクロスビルドする方法だ:

sudo: false
dist: trusty
group: stable
 
language: scala
 
scala:
  - 2.12.7
 
env:
  global:
    - JABBA_HOME=/home/travis/.jabba
 
matrix:
  include:
  - env:
      - TRAVIS_JDK=adopt@1.8.192-12
  - env:
Syndicate content