startups, investing, and miscellaneous thoughts

Gambler's Verity?

Flip a fair coin four times. Consider the cases, if any, after a heads. Since you're flipping a fair coin—you reason—you should notice no significant patterns in the flips after a heads, because flips are independent. However, you have heard of “hot streaks” or how random events become “due”, so you record your results. You flip H T H H, and record “tails” and “heads” (bolded the flips after a heads). You flip T T H T and record “tails” from the 4th position... (more) →

Occasionally, you may need to interface with Java Futures in Scala. Unfortunately, it is “an abomination”. Several older Java libraries, like Amazon's SDK, provides asynchronous interfaces using Java's Futures. java.util.concurrent.Future only provides a .get, and no mechanism to react to completion. The best solution to avoid blocking a thread checking for completion (or simply .geting inside another thread) is to periodically check for completion. .. (more) →

Since many asynchronous APIs in Scala use Futures, if you prefer using Task, you'll need to convert between the two. Here are two simple classes that enhance scalaz.concurrent.Task and scala.concurrent.Future: .. (more) →

Here's a few classes and functions I've collected over the past few years that I find incredibly useful with day-to-day Scala development. .. (more) →

Dialogue above debate

I'm drawn to people who engage in direct dialogue about the fundamental concepts behind complex and polarizing issues. Recently I've been listening to podcast episodes about this — individuals who are a member of a “side”, and yet are drawn away from debate and instead deeply explore what the “other side” believes. Here are a few that I've especially enjoyed. .. (more) →