View gist:b0451fbd6e33ed2dc6d93773eefb2abd
"" prio=5 tid=0x4c nid=NA waiting for monitor entry
java.lang.Thread.State: BLOCKED
waiting for to release lock on <0x473f> (a play.core.server.DevServerStart$$anon$1)
at play.core.server.DevServerStart$$anon$1.get(DevServerStart.scala:122)
at play.core.server.AkkaHttpServer.modelConversion(AkkaHttpServer.scala:184)
at play.core.server.AkkaHttpServer.handleRequest(AkkaHttpServer.scala:190)
at play.core.server.AkkaHttpServer.$anonfun$createServerBinding$3(AkkaHttpServer.scala:107)
at play.core.server.AkkaHttpServer$$Lambda$383.1818878724.apply(Unknown Source:-1)
View gist:04b93bf0dcd40474e17961186333b871
[error];2.6.0-SNAPSHOT!sbt-plugin.jar origin location must be absolute: C:\Users\wsargent\.ivy2\local\\sbt-plugin\scala_2.10\sbt_0.13\2.6.0-SNAPSHOT\jars\sbt-plugin.jar
java.lang.IllegalArgumentException:;2.6.0-SNAPSHOT!sbt-plugin.jar origin location must be absolute: C:\Users\wsargent\.ivy2\local\\sbt-plugin\scala_2.10\sbt_0.13\2.6.0-SNAPSHOT\jars\sbt-plugin.jar
at org.apache.ivy.util.Checks.checkAbsolute(
at org.apache.ivy.core.cache.DefaultRepositoryCacheManager.getArchiveFileInCache(
at org.apache.ivy.core.resolve.ResolveEngine.downloadAr
View .zshrc
export DEFAULT_USER=wsargent
source $HOME/.antigen/antigen.zsh
# Load the oh-my-zsh's library.
antigen use oh-my-zsh
# Bundles from the default repo (robbyrussell's oh-my-zsh).
antigen bundle git
antigen bundle pip

Windows 10 Development Environment for Scala

This is a guide for Scala and Java development on Windows, using Windows Subsystem for Linux, although a bunch of it is applicable to a VirtualBox / Vagrant / Docker subsystem environment. This is not complete, but is intended to be as step by step as possible.

Sadly, much of this pertains to Git, GPG, SSH, and Windows all not working, rather than Windows Subsystem for Linux. There is no unified command line experience for native Windows still -- instead, there's a bunch of different conflicting programs which all bring along their own environment and need to be told about each other.

Harden Windows 10

Read the entire Decent Security guide, and follow the instructions, especially:

View gh-clone
# Usage: gh-clone lagom lagom to checkout lagom/lagom
function gh-clone() {
mkdir $PROJNAME;
hub init -g
hub clone $OWNERNAME/$PROJNAME master;
cd master;
export WORKDIR=$HOME/work
# Creates a working tree to check out a branch locally.
# This is useful when you have multiple branches on origin,
# and want to pull work work with them
function worktree() {
# We assume we're always under $WORKDIR somewhere.
# Go down the tree until we know what project we're in.
while [[ "$(dirname "$PWD")" != $WORKDIR ]] ; do
find "$PWD"/ -maxdepth 1 "$@"

Internet Scale Services Checklist

A checklist for designing and developing internet scale services, inspired by James Hamilton's 2007 paper "On Desgining and Deploying Internet-Scale Services."

Basic tenets

  • Does the design expect failures to happen regularly and handle them gracefully?
  • Have we kept things as simple as possible?
import akka.util.Timeout;
import scala.compat.java8.FutureConverters;
import scala.concurrent.Future;
import java.util.concurrent.CompletionStage;
import java.util.concurrent.TimeUnit;
public class JavaActorLookup {