Alvin Alexander | Java, Scala, Unix, Perl, Mac OS X

The sbt-errors-summary plugin looks cool. Here’s a summary from its author:

“A simple plugin that makes the error reporter a bit more concise. I find it useful when doing refactoring: I get a lot of compilation errors, and I waste a lot of time switching between files and looking for line numbers in the error message, when I can immediately see what's wrong when looking at the faulty line.”

SBT errors summary plugin

At the 2013 Buddhist Geeks Conference, Shinzen Young gave a talk about The Meaning of Life. I just found this image on my phone, and apparently the meaning is in there somewhere. :) The graphic was created by Kelly Kingman.

The Meaning of Life, by Shinzen Young

“Shut your mouth, work extremely hard and be the first one in there, last one to leave, and to lead by example.”

Denver Broncos QB Chad Kelly, talking about the advice he got from his uncle, Hall of Fame QB Jim Kelly.

I’ll write more about this in the future, but for now, here’s a look at the three nen actions, as described in the excellent book, Zen Training.

Zen Training: The three nen actions

I’m always curious about how people think, and these days I’m most interested in how functional programmers think about programming problems. Along those lines I found a good blog post (tutorial) titled, “Thinking Functionally with Haskell”, and these are my notes from that post:

Table of Contents1 - A little `lazy val` conversion example2 - A second `lazy val` conversion example3 - One more `lazy val` conversion example4 - The end

I don’t have any major conclusions to share in this blog post, but ... what I was curious about is how Scala implements lazy val fields. That is, when the Scala code I write is translated into a .class file and bytecode that a JVM can understand, what does that resulting code look like?

The Electronic Frontier Foundation has a report titled, Measuring the Progress of AI Research.

Measuring the Progress of AI Research

If you were ever interested in learning about research at Google, here’s their Research at Google website.

Research at Google

“On Saturday, a big Labrador retriever named Thorr bounded up to the nurse’s station in Sitka Community Hospital and nudged Ryan Huddlestun, twice. Down the hall, Thorr’s owner, Eric Lamont Skousen, was having a seizure. The nudges were a call for help, one Skousen couldn’t give himself.”

Part of a story on

My new favorite website ( has this terrific infographic that demonstrates that all CPU operations are not equal.

Not all CPU operations are equal (infographic)

Here are some details behind why O’Reilly no longer sells books and videos on

If you’re interested in business, an important part of this is seeing that O’Reilly defines itself as a distributor of knowledge. When you think in terms like that, it’s probably easier to say, “We’re not just a seller of books.” If they defined themselves only as a book-seller, they might be out of business by now.

Some people look at life as a science or engineering puzzle that has to be solved.

Others see the Tao in life, go with the flow, and find peace and harmony.

Me, I’m just here for the cookies.

Today (June 30, 2017) is the last day to buy “Learning Functional Programming in Scala” for $10. The price goes up to $25 tonight, and $30 on August 1st.

I just ran across this image in this presentation on ScalaCheck, and thought, “If you read my book, Learning Functional Programming in Scala, you know what that statement means.”

Blah blah blah is a monad
Table of Contents1 - Background2 - Requirements3 - Building your application4 - Note 1: Font smoothing5 - Note 2: Setting the “application category”6 - The Mac/Java AppBundler7 - More information8 - Summary

In this article I’ll show how to build a macOS application from a Java Jar file. I tested this with Java 1.8 on macOS 10.12.5 (Sierra) on June 29, 2017.

Three assumptions in this process are:

Walked up to the living room window, looked at the clouds, and started to say, “Wow, that’s some nasty looking sh-,” when a close lightning bolt threw me back across the room. Lesson learned: Don’t curse at Mother Nature’s designs.

RIP, Tanner.
RIP, Smokey.
RIP, Rusty.

It’s been a rough two weeks in the animal kingdom.

“No matter how slow you are writing clean code, you will always be slower if you make a mess.”

~ Bob Martin (via this tweet)

The next version of my book, Learning Functional Programming in Scala, is now available. See that link for details.

Table of Contents1 - What’s new (June 25, 2017)2 - Buying the book3 - One more thing4 - Preview5 - Some time in the future ...

My new book, Learning Functional Programming in Scala, is currently on sale as a PDF you can purchase for $30 US. Details are listed below.

Back to top

What’s new (June 25, 2017)

If you’ve been following along with me recently, the latest changes are: