VR Book

Samsung VR Headset
VR Book : Human-Centered Design for Virtual Reality
By Jerald, Jason
Book – 2015

Learn about the design of Virtual Reality systems. This textbook format book is a bit like a university level textbook, but it is published by the ACM so it has some of the flavour of a scholarly research paper. But wait: it is readable, and takes you through all aspects of VR systems, from system design, hardware, content creation, health effects, to interaction design. VR is not a new technology: we progress from old historic systems requiring specialised lab hardware, to the latest Oculus mass market headsets.

Hardcover, 600 pages, many excellent illustrations.

Chaos Monkeys


Chaos Monkeys : Obscene Fortune and Random Failure in Silicon Valley
By Garcia Martinez, Antonio

Book – 2016

This book takes you into the life of Silicon Valley startups, beneath the veneer of respectability, complete with lying, cheating, and double-crossing co-founders. Get ready for a wild, coarse ride. The reward: you get insight into the challenges that a startup founder faces, including financial, legal, and personal. There are great contrasts between west and east coasts business culture. There are also great contrasts between Facebook and other silicon valley companies.

The author’s experiences include leading a startup through the Y-Combinator boot camp program. He has great respect for Paul Graham, Y-Combinator’s founder. The experiences continue, with VC funding, then acquisition by Twitter and Facebook at a time when they wanted to “monetize” ads. He reported to Cheryl Sandberg, and a chapter of the book tells what happens in a meeting with Zuck.

The book is a quick read at times, then at other times it expands my vocabulary. Without getting too serious, there are appropriate and memorable quotes from Churchill, Hunter S. Thompson, Shakespeare, Adam Smith, Fidel Castro, the bible, and Machiavelli. The book is a quick read at times, then at other times it expands my vocabulary.

At 500 pages, it is a large book. It is fascinating, so make sure you do not have commitments for a few days!

Exploring ES6

Exploring ES6 – Upgrade to the next version of JavaScript, Dr. Axel Rauschmayer, LeanPub, 2015

An in-depth book on ECMAScript 6, for JavaScript programmers, free to read on the web. It is a book for people who already know JavaScript but want to understand it better.

The previous book on JavaScript, published in 2014, is free to read on the web. It is for experienced programmers “who want to deepen their skills and/or look up specific topics.”

Rauschmayer teaches classes for Ecmanauten, blogs at 2ality.com, holds talks and workshops at conferences, and organizes the MunichJS user group.

the Start-Up Bubble

Disrupted – My Misadventure in the Start-Up Bubble By Lyons, Dan Book – 2016

Lyons was a technology journalist at the top of his career when the news industry imploded, leaving him screwed (in his words). He stumbled around, eventually getting work at HubSpot, the marketing support company. The job fit was so bad! When it ended about a year later, Lyons had a perfect chance to exercise his well practised skills in satirical writing and ‘take the piss out’ of Hubspot.

There are a few themes here:

  • ageism: Lyons was twice the age of the average Hubspotter, and he delights in detailing how green they were
  • VC start-up bubble: Hubspot and similar businesses make their founders millionaires while being unprofitable. The VC investors loose millions.
  • marketing: Hubspot’s ‘awesome’ capability was in spammy email campaigns.
  • culture: The company culture was laughable, and Lyons has a great time satirizing it.

The book is infamous at the moment. See Lyon’s Linkedin post, and Hubspot’s riposte. See also Lyons’ article in the NY Times.
Lyons’ Linkedin profile describes his experience at Hubspot succinctly as ‘Veni, vidi, scripsi’. Lyons may never again get a chance to work in a technology company, but he has revenues from a best seller, and I suspect he has a comfortable future as an author.

Software Craftsman

Software Craftsman : Professionalism, Pragmatism, Pride
By Mancuso, Sandro
Book – 2014

This book is for the working software developer. Do you see yourself as a professional? Or do you have pride in your skills a craftsman? Or is your work just a job, driven by a non-technical micro-manager?

Mancuso discusses the Craftmanship movement, which became strong around 2008, and compares it with the Agile and XP movements. This book will comfort you when deadlines are pressing. Better still, if you read it while in the early stages of planning a software project, you will plan and design quality code from the start.

Mancuso discusses this in the context of his own career progression from a green, cocky youngster through to a mature leader, showing considerable wisdom.

Here is the author‘s site.

Game Programming Patterns

Game Programming Patterns By Nystrom, Robert Book – 2014

Programmers will want to read this book. Not just game programmers, but also any programmer. Program structure is important for maintainability of large or medium programs. C++ language programmers will get the most benefit from the book. Other languages are also discussed, and all languages require some attention to structure.

Nystrom’s book is very readable and, perhaps I should add, entertaining. He has a dialogue on the go: the margin notes (his inner critic) are in counterpoint to the main discourse.

He gives credit to the Gang Of Four book (noting that it is 20 years old now,) as a foundation for his proposed new set of patterns.

The Best Perl


The Perl language does not get enough respect these days. Newer languages like JavaScript, Python or Clojure get all the attention. But Perl is still in use almost everywhere, for many types of programs. It is powering the web at many  sites, including ZipRecruiter, PriceLine, TicketMaster, and DuckDuckGo.

Perl is good for rapid development. One reason is that there are many contributed modules are available, for just about any task you could imagine. Have a look at CPAN, the Perl module directory, containing more than 100,000 modules.

Suppose you have a bit of Perl experience and are starting a larger enterprise app. How do you choose among the thousands of Perl modules and frameworks? Suppose you Google a bit. Some of the best and newest modules will not be on the first Google page, because the best module authors are not necessarily SEO experts. Google will lead you to modules which look good at first blush, but do not have complete tests, or which depend on new versions of Perl, or have ‘hidden dark corners’.  You could get bogged down in Google results by the large quantity, the wild diversity, and the varying quality. Where do you start?

This is where Kensho becomes handy. It is a guide that recommends frameworks. There is a concise list of the best 5 database frameworks, the best 12 Object Oriented modules, the best 8 unit testing frameworks, and so on. 100 recommended modules in all.

For example, if you are planning an enterprise web site, look at the web development category, which lists app frameworks. In this, Catalyst is a mature project. Mojolicious is almost as mature, and is a large project with many features. Dancer2 is newer, and is quite different in that it is a DSL on top of Perl. Dancer2’s author had experience with the Sinatra framework. Your code will be concise, but at times  you will struggle to know what is happening behind the DSL facade (compare this with Rails in the Ruby world).

Now, look at the Object Oriented programming category.  You could structure your project based on the Moo or Moose object oriented frameworks. Your choice might be constrained by your choice of web app framework. If you use Catalyst, your OO will be Moose, and if Dancer then OO will be Moo with perhaps a bit of Moosex.

Likewise, testing frameworks can be constrained by previous choices.

The Kensho list is somewhat personal, being the preferences of Chris   Prather (PERIGRIN) (the originator) and Karen Etheridge, who is one of the most committed members of the Perl community. If you have used Perl, you have probably used one or many of the modules she wrote or maintains.

What’s the Kenshō 見性 name all about? From Wikipedia: “Kenshō is an initial insight or awakening, not full Buddhahood. It is to be followed by further training to deepen this insight, and learn to express it in daily life.”

So, before you start coding, have a look at the recommended frameworks, and structure your project better. There Is More Than One Way To Do It (TIMTOWTDI) but in most cases There Is A Best Way To Do It (TIABWTDI). And maybe TIMTOWTDI is one of Perl’s weaknesses! It will trip up the maintenance programmer, who may have to learn a new programming style with each project.

Many thanks to Gabor Szabo for corrections!