My bookmarks

This is a list of Alvin Alexander's bookmarks.

The Scala programming language is one big reason why applications like Twitter, LinkedIn and Foursquare have taken off among mobile phone users. Meet Martin Odersky, the man behind the language.

A good example of emulating the C# default keyword in Scala:

def default[A : Default] = implicitly[Default[A]].value

Here it is being used:

scala> default[Int]
res0: Int = 0

scala> default[String]
res1: String = ""

scala> default[Boolean]
res2: Boolean = false

scala> default[Option[Int]]
res3: Option[Int] = None

Summary: Facebook COO Sheryl Sandberg just called Netflix’s famous company culture presentation “the most important document ever to come out of the Valley.”

Netflix has long been famous for giving its employees unlimited vacation time. Netflix CEO Reed Hastings justified this move in a slide deck he first published online in 2009, which also outlines the company’s approach towards hiring...

Recently languages are borrowing concepts from newer breed of functional languages. Type inference and pattern matching I am guessing goes back to ML. Eventually people will come to expect these features too. Given that Lisp came out in 1958 and ML in 1973, it seems to take decades for good ideas to catch on. For those cold decades, these languages were probably considered heretical or worse...

Previously we mentioned that Haskell has a static type system. The type of every expression is known at compile time, which leads to safer code. If you write a program where you try to divide a boolean type with some number, it won't even compile. That's good because it's better to catch such errors at compile time instead of having your program crash. Everything in Haskell has a...

When we first talked about functors, we saw that they were a useful concept for values that can be mapped over. Then, we took that concept one step further by introducing applicative functors, which allow us to view values of certain data types as values with contexts and use normal functions on those values while preserving the meaning of those contexts. In this chapter, we'll learn about...

The "Learn You a Haskell for Great Good" tutorial.

Having been a professional software engineer (C++, Java, assembly code, drivers, compression, encryption, threading, server code) for 25 years, and having used Macs since they first appeared back in the early 1980’s, I have a long and deep perspective on the evolution of Mac OS X (now just “OS X”).

What I see happening with OS X is not pretty.

When one runs into a problem, the focus is...

Why do Americans overwhelmingly prefer iPhone when the rest of the world has overwhelmingly embraced Android?

The numbers tell an incredible story. Worldwide, Android has 75% market share in smartphones, versus 15% for Apple, according to IDC. But in the United States the iPhone still rules, accounting for 63% of smartphone sales at Verizon and an amazing 84% of smartphone sales at AT...

Something strange and remarkable started happening at Google immediately after Larry Page took full control as CEO in 2011: it started designing good-looking apps.

Great design is not something anybody has traditionally expected from Google. Infamously, the company used to focus on A/B testing tiny, incremental changes like 41 different shades of blue for links instead of trusting its...

Anyone who develops software for a living needs a proven way to produce it better, faster, and cheaper. The Productive Programmer offers critical timesaving and productivity tools that you can adopt right away, no matter what platform you use. Master developer Neal Ford not only offers advice on the mechanics of productivity-how to work smarter, spurn interruptions, get the most out your...

There's an old saying that all good things must come to end, but that’s not always the case in the world of technology. A year after webOS was officially shut down, HP opened it up in hopes that third-party developers would continue development. And sure enough, the Open webOS project, established by HP to help further develop the operating system, is thriving—despite the...

ScalaCheck is a library written in the Scala Programming Language and is used for automated specification-based testing of Scala or Java software applications. ScalaCheck was originally inspired by the Haskell library QuickCheck, but has also ventured into its own.

ScalaCheck has no dependencies other than the Scala runtime, and is supported by SBT, ScalaTest and Specs2. You can of...

The URL shares some examples of how to handle money/currency in Java, in particular using the Java BigDecimal class.

The designers of the Josiah DAB Radio and Bluetooth Speaker call their creation the marriage of British ceramic heritage from Stoke-on-Trent with the simplicity and playfulness practiced by the Soho design team. An interesting explanation for a handmade ceramic creation! Anyways, the speakers are deigned with wit and functionality and will look great right next to my Buddha plant.

This links shows an implicit class example, combined with a string interpolation example. The final code looks like this:

// definition
implicit class HTTPInterpolation(s: StringContext) {
   object ok {
     def apply(exprs: Any*) = {
       Ok(s.s(exprs: _*))
     }
   }
}

// use
def index = Action {
  val version = 2.10
  ok"hello scala $version"
}

Friend, Co-author and uber-VC, Brad Feld (who IMHO is also the Gandhi of Venture Capital) suggests in his blog that every entrepreneur should read Robert Pirsig’s all time classic book, Zen and the Art of Motorcycle Maintenance.

Note that this book has nothing to do with startups, term sheets, venture capital, minimum viable product or customer adoption. As Pirsig says, its got...

I just ran across the following Scala for comprehension example, and thought it was a very good example:

for {
  b1 <- books
  b2 <- books
  if b1 != b2
  a1 <- b1.authors
  a2 <- b2.authors 
  if a1 == a2
} yield a1
http://www.ansep.net/

ANSEP is a longitudinal model that works with students from the time they are in middle school all the way through to the PhD. ANSEP increases university recruitment and retention rates through hands-on middle and high school outreach initiatives, rigorous summer bridging programs, focused academic learning communities, organized student cohorts, networks of peer and professional mentors,...

Functional programming is more a mindset than a particular set of tools or languages. In this first installment, I started covering some topics in functional programming, ranging from simple design decisions to some ambitious problem rethinking. I rewrote a simple Java class to make it more functional, then began delving into some topics that set functional programming apart from using...