Once a Software Engineer, Always a Software Engineer – Code is the Key

•May 5, 2015 • Leave a Comment

Lee Hsien Loong (Singapore’s prime minister since 2004) share the last code he wrote – a C++ Sudoku solver.  :)

Managing Humans

•May 2, 2015 • Leave a Comment

I recently read Managing Humans.  Although classified as semi-fiction, with the names of people all fake, I can only imagine that correlation is high to real events, with anyone who has worked with Rands over the years being able to identify who/what/when from the book :)   I suspect many of us have considered writing such a book :)

Here are just a few classic extracts from the book that can liven up your day of “management” madness

  • Page 5, the all hands meeting run by the CEO that really doesn’t make a connection with the staff
  • Page 8, understand your manager, and what makes him tick ;)
  • Page 10, an utter classic in my view.  The manager who doesn’t understand what you do, and isn’t an engineer.
  • Page 18, Rands Test, 11 possible points
  • Chapter 4 – How to run a meeting. Essentially, agenda and referee
  • Page 58, Classify the Participants. Although obvious, its worrying how many people don’t get this concept.  Pawns and Players – which are you?
  • Page 76,  Management is chess – enough said!.  Understand the consequences, make the decision, move.  If you are not in this game, your in the wrong game.  Have an “edge”, and understand what “execute” (move) means.
  • Chapter 15, great engineers are often promoted to leadership for their hard work.  While many succeed, and equal part fails because the skills required to lead are vastly different than the ones required to be an engineer.
  • Page 99, advice for maintaining an engineering mindset.  I for one have pretty much adhered to this view for the entire history of having direct reports.  Enough said
  • Page 101, remember what it means to be an engineer.  A chap once told me that since he had moved to a management position, he was no longer an engineer.  :(  I was disappointed with the comment
  • Page 113, make great decisions, and take responsibility for those decisions.
  • Chapter 19, as a software developer, you are going to get screwed at some point – very true, and not just once.
  • Page 119, Rands 1.0 Hierarchy.  Some great commentary here, including faking done.
  • Chapter 21, Time to Think.  Like to commentary on Google 20%, page 138.  Its a numbers game of thinking and bumping into stuff.
  • Chapter 26, When the sky falls :)  War room,  Think we’ve all been there a few times on this.
  • Page 167, Hacking is important. High-impact, fast-moving and bold barbarian.  Game on.
  • Page 172, Bored people quit – very true!
  • Chapter 34, meeting creatures.  Some gems in here – Mr Irrelevant, and The Snake.
  • Chapter 39, rules for he reorg.
  • Chapter 44, resignation check-list.  Rule #4 is mandatory in my view.  Rule #6 is just madness to even consider.

Net out, worth a read.  Some good pointers, but take them in your context, quoting the book is so not the right thing to do as a leader

Pushing Market Depth (Level 2) to HTML Clients

•May 1, 2015 • Leave a Comment

Lightstreamer recently published an article on pushing Level 2 market data to a HTML client.  An interesting article with offers the read source code and appropriate commentary on how the demo works.  What I think is missing, and maybe Lightstreamer can update the article in the future, is in my view the following:


  • Performance numbers for both websockets and non-websockets
  • Links from the article to other articles Lightstreamer might have on Data Adapter and filtering.  Filtering is particularly key when the client (HTML) become overwhelmed with data, and can’t keep up with paints (renders)
  • Commentary on disconnect of the client and reconnect and the impact on the market data feed.  Likewise commentary on server (adapter death) and the performance of fail-over, recovery
  • Bandwidth usage

Overall, an interesting article

M#, Carbon C++, Speculation Continues

•April 28, 2015 • Leave a Comment

Anyone who’s read Joe Duffy’s 2014 blog postings knows that there is something brewing in the Microsoft compiler and language department.  What language the new language will be based on (C#, or maybe C++) isn’t clear, or the name of said language.  Channel 9 forum’s offers some thoughts based on LinkedIn profiles etc.  Will anything be said about the new language at Build 2015 conference?  Or will we have to continue waiting for some while longer for Joe to post another titbit of information?

Minimum Viable Product (MVP)

•April 21, 2015 • Leave a Comment

Jon Pittman’s “The Tyranny of the Minimum Viable Product” posting offers an interesting read on a subject that is often difficult when a stakeholder is asked to define the features of an MVP for a new product.

The intent behind the MVP idea is to minimize wasted effort and risk — to focus the product on only the key elements that will capture the imagination of early customers, let them understand the vision and direction, and see the product as an early demonstration of that vision.

Unfortunately, the devil is in the detail.  Stakeholders often get lost in the world of features, and before you know it, the MVP has n features, and n years of development to achieve MVP readiness.

LLVM-Based Compiler For .NET

•April 14, 2015 • 1 Comment

The NEW Microsoft is somewhat embracing Open Source.  2015 started with the CoreCLR being open sourced – the CoreCLR is the execution engine for .NET apps and performs compilation to machine code, garbage collection, and other core functionality to .NET.

Today,we hear that Russell Hadley on the LLVM mailing list that Microsoft has a new effort to

Produce MSIL code generators based on LLVM and targeting the open source dotnet CoreCLR

This new JIT will allow any C# program written for the .NET Core class libraries to run on any platform that CoreCLR can be ported to and that LLVM will target.


WatchKit Packaging and WKInterfaceController

•April 10, 2015 • Leave a Comment

Having spent the last few (late) night with Xcode playing with WatchKit apps, there are a few interesting takeaways for any new WatchKit developers:

  • Packaging of WatchKit apps is nicely explained by this diagram – target structure.   The storyboards are separate from the actual WatchKit code (WKInterfaceController etc).  More interestingly, and least well publicised is the fact that Apple Watch also uses wifi if possible, together with the default Bluetooth LE to communicate with its paired iPhone.
  • Actions and Outlets work as you’d expect – Control-Drag the UI widget from the storyboard into the Assistant editor page that contains the WKInterfaceController derived code, and the outlet will automatically be created and bound.  Essentially creating an IPC channel over Bluetooth to the paired iPhone :)
  • Shared app group’s are relevant if you want the two processes to access the same files or data (e.g. preference)
  • openParentApplication looks like effectively an RPC call between the WatchKit extension sandbox process and the parent iOS process.
  • This tutorial offers assistance on adding Glances and Handoff functionality to your WatchKit app.

Get every new post delivered to your Inbox.

Join 683 other followers