Book review: Masterminds of Programming by Federico Biancuzzi and Shane Warden

mastermindsThe next review in my work related books thread is of Masterminds of Programming by Federico Biancuzzi and Shane Warden. The subtitle, Conversations with the creators of major programming languages, is a good summary of the contents. The book is an edited transcript of interviews with the creators of major programming languages.

Frequently the conversation is with a single person but in a couple of cases two or even three people are interviewed. This is one small failing of the book because particularly where they interview three people the resulting chapter is very long and a bit repetitive.

There is a valid question to ask as to whether languages can be so closely tied to single individuals, and in the afterword the authors touch on this saying that one of the recurring themes was that the people they interviewed succeeded because they surrounded themselves with brilliant people. Some of these languages started off as one-man exercises but most grow from collective academic or corporate efforts, and even the one-man band languages developed a fairly formal community.

The languages covered are object-oriented languages (C++, Objective-C, Java, C# and Eiffel), functional languages (ML, Haskell, APL), glue languages originally designed to occupy the space between Unix and C (Awk, Lua, Python, Perl), languages designed for embedding (Forth and PostScript). Dartmouth Basic, SQL and UML are basically their own things. To be honest UML does not really fit into the book in my view since it is a formal design description language rather than an executable programming language. The languages were created between 1964 (Dartmouth BASIC) or maybe 1957 (for APL) and 2000 (C#).

I was sad to note the absence of a chapter on FORTRAN but John Backus, the inventor of FORTRAN died in 2007 – a couple of years before the book was written. Also there are no women interviewed in this book, a quick search reveals there are a number of programming languages invented or co-invented by women. COBOL, invented by Grace Hopper would be a prime candidate here but she died in 1992. Small Talk which inspired a lot of object-oriented languages was co-invented by Adele Goldberg and LOGO co-invented by Cynthia Solomon would fit rather well into the book.

The interviewers clearly had a set of questions which they asked each interviewee and the varying results indicate which questions chimed with the interests of the interviewee. The topics included concurrency, how to manage feature requests for languages, working in teams, debugging, software engineering and teaching.

The authors of the object-oriented languages (C++, Objective-C, Java, C# and Eiffel) are somewhat at each others throats. However, they are all pretty clear that object-orientation is the way forward for large software projects although they see encapsulation rather than inheritance or reuse as the key benefits it brings. There is a degree of condescension towards those languages that they perceived to have been successful as a result of marketing.

The authors of the functional programming languages are more interested in formal specification, I feel I should learn more about type theory. I have looked at Haskell in the past, and found it a bit challenging, however ideas from Haskell and other functional programming languages have made it into Python, my preferred language. The chapter on APL was entertaining, it was conceived and developed as a coherent formalised system for describing algebra the authors did not touch a computer for a number of years after “development” started in the mid-fifties. It is written as symbols which are challenging to enter on a conventional keyboard, you can see it in action here.

Tedd Codd’s relational database design was core to the success of SQL, and is largely why it has not been replaced. SQL was designed alongside IBM’s System R but Oracle produced the first commercial SQL engine.

I learnt a few random facts from the book which I can’t write as a coherent story:

  • Charles H. Moore – author of Forth: “Legacy code may be the downfall of our civilisation”;
  • Awk is an acronym of its authors names, Alfred Aho, Peter Weinberger and Brian Kernighan;
  • Tom Love – co-author of Objective-C – “100,000 lines of code fills a box of paper and requires 2 people to maintain it. Test cases should be another two or three boxes.”!

The book would have really benefited from some sample code in each language, perhaps in the manner of Exercises in Programming Style which implements the same algorithm in different programming styles. I picked up Beautiful Code by Andy Oram and Greg Wilson, interviews with programmers, for my reading list. As well as The Mythical Man-month by Frederick P. Brooks, Jr which I probably should have read years ago.

I found this book really interesting, in part as a way of understanding how the programming languages I use every day of my working life came into being but also to understand the mindset of highly skilled programmers.

Book review: Resonate by Nancy Duarte

resonateI picked up Resonate: Present Visual Stories That Transform Audiences by Nancy Duarte following a couple of recommendations in Storytelling with Data by Cole Nussbaumer Knaflic. You can see how Resonate  influenced the storytelling elements of Knaflic’s book.

Resonate  is about the importance of storytelling in making presentations, and a model to construct compelling presentations which will leave your audience primed to go off and take the action you want.

The book is beautifully produced, as you might expect from an author from a company which provides consulting on making presentations. In the front material Duarte mentions VisualStory(tm) and Presentation Form(tm) which are products from her company but through the rest of the book Duarte Design is scarcely mentioned.

The nine chapter titles make a pretty good summary of the book, I have added my own comments to clarify a bit:

  1. Why resonate? – audiences change when you make a personal connection with them, a presentation is not just about facts.
  2. Lessons from myths and movies – adding elements of storytelling makes a presentation much more impactful – people have been writing about the mechanics of storytelling for a couple of thousand years!
  3. Get to know the hero – the hero is the audience. In scriptwriting terms the hero goes on a well-defined journey and we are going to take the audience on a similarly structured journey. We tend to write presentation centred on ourselves, our companies and our products – they should be centred on the audience.
  4. Define the journey – you need to be clear about the intended outcome of your presentation, and make everything in your presentation about reaching that outcome.
  5. Create meaningful content – this is about compiling the content for your presentation, it includes a call to include personal stories and also to research your audience.
  6. Structure reveals insights – this is about structuring the content you’ve compiled. A lot of the structure of a presentation is about alternating between “what is” and “what could be”.
  7. Deliver something they’ll always remember – providing contrasts in presentational style and content to maintain interest.
  8. There is always room to improve – this chapter emphasises how much work successful presenters put into their presentation, both in initial preparation but also reflecting on performances.
  9. Change your world – this is largely a call to action for us to go out and do it!

There’s a final chapter called Inspiration is everywhere which has case studies on Mozart – how the sonata structure reflects a presentation structure, Alfred Hitchcock – how a presentation (or a film) is a well-planned collaborative endeavour and e.e. cummings – breaking the rules to get impact. There are a plenty of case studies spread through the book demonstrating how speakers structure compelling presentations, analysing them in terms of the model Duarte proposes. I liked the fact that the case studies included “people like me”, Richard Feynman – a physicist, and Marcus Covert – a biologist.

We’ve all heard of “this meeting could have been an email”, Duarte mentions at one point “this presentation could have been a report”. She sees a presentation as a platform to provoke action, produce change and a raw presentation of facts does not fit this definition – this could be a written report. I find a lot of the presentations I give fall into this category.

Resonate talks mainly in terms of high importance presentations: end of year reports to investors, presentations to win multi-million dollar research grants, Steve Jobs iphone presentation – big productions involving significant work, and a team of collaborators. It is up to the reader to determine how to make these ideas work for their own more modest circumstances.

I was also pleased that some elements that I include instinctively such as personal stories, and passion, and doing some research on my potential audience are recommended and effective. I think my change on reading Resonate will be more focus on The Big Idea and what I want the audience to do when they leave the presentation. There is also a strong indication that my slides should contain less text then I add – Duarte says that a single slide filled with text would take an audience 30 seconds to read, and they will either be reading your slide or listening to you, not both. She also says as a rule of thumb a slide should not be on screen for more than 2 minutes.

Overall, I’m glad I read this book – at times I found the style a bit grating but the content is thought-provoking. As a physical scientist I’m used to the idea that physical models are correct and can be proved. Duarte’s model of how to build and deliver a successful presentation is not a physical model – it is a framework for discussion and a source for new ideas.

Book review: Data Points by Nathan Yau

data_pointsI picked up Data Points by Nathan Yau as a recommended book on exploratory data analysis in Storytelling with data. I have previously read Nathan Yau’s book Visualize This.

Visualise This  was very focussed on the technical side of producing data visualisations, with code samples and so forth. This is a “bigger picture” book divided into three sections: context, exploration and presentation.

Context can be summarised as: who, how, what, when, where, why. Context is covered explicitly in the first chapter using the medium of Yau’s wedding photos as an example. Spinning off from here is a mention of the Quantified Self movement, there was a time a few years ago when this was popular – people would record aspects of their life in great detail and build visualisations from them. This was enabled by the growth of the first generations of smartphone which made this sort of data collection easy. Yau points out – and I think all data scientists can agree with this – that most of the job is actually collecting together the data required for a project and getting it into a shape to visualise.

The “Exploration” chapters start with an overview of what a data visualisation is, one of the strengths of this book is the many examples of visualisations, in this case going as far back as William Playfair in 1786 with the invention of the bar chart. This chapter also highlights that a data visualisation can be a flow chart, or it can be an abstract piece of art which is based on data. Yau cites John Tukey’s Exploratory Data Analysis a number of times which was published in the 1970s at a time when the author felt the need to explain that a “bold” effect can be achieved using a pen rather than a pencil. The point being that we now have immense power in readily available software to produce visualisations at the click of a button which would have taken an expert many hours of manual labour in the relatively recent past.

The next chapters provide a summary of how we build a data visualisation starting with the fundamental building blocks: title, visual cues (the data), coordinate system, scale and context elements. The visual cues are further broken down into attributes like position, length, angle, direction, shapes and so forth.

Once this groundwork has been done, there is an extensive taxonomy of chart types including more esoteric plots such as the cartogram (where geographic areas are distorted to show the relative sizes of variables), and radar or polar plots which, along with calendar heatmaps are useful for showing periodic timeseries data.
The “Visualising with clarity” chapter starts to talk about presentation, and how the purpose of visualisations is to allow comparisons. I think the useful takeaway from this chapter for me was that distribution plots are rather more difficult for the lay viewer to interpret than practitioners realise.
I found the penultimate chapter on “Designing for an audience” a little brief. A handy hint here was to design presentations for the audience at the back of the room – nobody likes to hear “this is probably too small for you to see” from a speaker. Another useful tip for making interactive presentations is that people like to find out about themselves, so if you have data on people then make it easy for viewers to “look themselves up” because that’s the first thing they are going to do.

The book finishes with a chapter on technologies, some of them such as R, Adobe Illustrator, Microsoft Excel, Google Sheets, Tableau are still around and remain good choices. Yau’s favoured combination is R with Adobe Illustrator used to polish the results. The Javascript library Data Driven Documents (d3) and Processing are still active. Other systems like IBM’s Many Eyes project, MapBox’s TileMill have disappeared. Javascript Libraries Raphael and the Javascript Infovis Toolkit appear dormant, in the sense that the activity on their GitHub repositories is minimal. Nobody talks about Flash and ActionScript anymore.

Data Points is much more a book about exploratory data visualisation then Storytelling with data, I think Yau believes that exploratory data analysis is an exercise in storytelling. The strength of this book is the wide range of examples used to illustrate the points being made through the book. The style is chatty, it is not a difficult read. It is less focussed on delivering specific lessons in making data visualisations than Storytelling with data.

Book review: Margaret the First – A Biography of Margaret Cavendish by Douglas Grant

magaret_cavendishI have come across Margaret Cavendish in number of times in reading about the history of science, I think most recently in a biography of Christiaan Huygens. She is noted for attending a Royal Society meeting in 1666, and for being one of the earliest published female authors in England. She sounded very interesting so I picked up Margaret the First: A biography of Margaret Cavendish by Douglas Grant – one of the few biographies about her.

Margaret Cavendish was born in 1623 to the aristocratic Lucas family of Colchester and died at the relatively early age of 50 in 1673. As a child she was a keen writer, and picked up an interest in science from her brother John although as a girl her formal education was limited.

The Lucas’s were fairly heavily involved in the Civil War on the Royalist side. Margaret joined the household of the queen, Henrietta Maria, as a maid of honour in 1643. She fled to Paris with the queen’s household in 1644.  At this point William Cavendish (1st Duke of Newcastle), later to became Margaret’s husband enters the story – he was immensely wealthy and was Captain-General to the Royalist army North England. Following the Battle of Marston Moor he too fled to Europe – to Hamburg in the first instance.

William Cavendish was widower – his first wife, Elizabeth having died in 1643. Margaret and William met in Paris and were married in late 1645. Having read quite a lot of scientific biography I am starting to get a feel for what written resources are available to the biographer – in this case I suspect it was Margaret’s published writings and the financial records of her husband, which were most important. In exile William Cavendish was always struggling for money, although he seems to have had the gift of the gab since a number of times they appear on the brink of destitution which is resolved when William goes and talks to his creditors!

Whilst in Paris, Margaret dined with at least René Descartes and Thomas Hobbes – there was a fairly active salon culture in Paris at the time in which I believe women were moderately involved. In England involvement in intellectual circles appears to have been forbidden for women but perhaps it was a little more open in Paris.

The couple moved to Antwerp in 1648, where they lived in Rubens old house, again surviving on credit which William Cavendish often seemed to spend on horses! It was at this time that Margaret started to write for publication. Grant’s broad view of her output could be summarised as "needed an editor", she appeared to write straight to publication with little sign of returning to work to correct and edit for structure and coherence. 

Her early books were poetic with a theme of natural philosophy, this isn’t as outlandish as it first sounds – Erasmus Darwin was to write poetically about natural philosophy in the following century. Her atomic theories would read oddly to our eyes but were not inconsistent with prevailing theories of the time. She sat within the Classical / Cartesian school of natural philosophy with an emphasis on pure thought which in the second half of the 17th century was being displaced by a science driven by observation and experiment. In fact she wrote some criticism of the newly invented microscope. Her writing covers a wide range of forms (poetry, prose, plays, orations, letters), and a substantial fraction of it is what you might describe as romantic fiction – although The Blazing World has been described as proto-science fiction.

Margaret and her husband returned to England in 1660 following the death of Oliver Cromwell in 1658 and the Restoration of Charles II. After spending some time in London, whilst William Cavendish regained possession of his estates, the couple retired to the country from where Margaret promoted her writing – providing free copies of her books to universities and individuals. It is during this period that she attended a meeting of the Royal Society, Samuel Pepys is quite critical of her and the general impression was that men felt she shouldn’t have been there.

She died rather suddenly in 1673, a few years before her much older husband who died in 1676.

It would seem that Margaret Cavendish was a very bright young woman, who missed out almost entirely on any sort of education because she was a women. Her interest in science was promoted by her older brother John, her husband and his brother as well as extensive correspondence and dinners with leading intellectuals of the day arising from her time in Paris and Antwerp. Her work was published and promoted broadly most likely because of the power of her husband, which also served to mute criticism. She was widely seen as a rather eccentric character, in part this seems to be down to a vintage dress sense but her simply writing would probably been a factor too.

It would be nice to report that Margaret Cavendish was a pioneer, soon followed by other women into the public, scientific sphere but she wasn’t. Caroline Herschel’s work was presented to the Royal Society in 1788 – over 100 years later, exceptionally Queen Victoria became a member of the Royal Society but it wasn’t until 1945 that Kathleen Lonsdale and Marjory Stephenson became the first female fellows of the Royal Society. The first women to study for undergraduate degrees started in 1880 with Oxford and Cambridge not awarding degrees to women until 1920 and 1945 respectively.

This book was published in 1956, there are a limited number of biographies of Margaret Cavendish and although this one was entirely acceptable it is a bit dated and I can’t help feeling there will have been a lot of scholarly work done on her life in the intervening years.

Book review: Storytelling with data by Cole Nussbaumer Knaflic

storytellingThis book, Storytelling with data by Cole Nussbaumer Knaflic, fits in with my work, and my interests. It relates to data visualisation, an area in which I have read a number of books including The Visual Display of Quantitative Information by Edward R. Tufte, Visualize This by Nathan Yau, Data Visualization: a successful design process by Andy Kirk and Interactive Data Visualization for the web by Scott Murray. These range from the intensely theoretical (Tufte) to the deeply technical (Murray).

Storytelling with data is closest in content to Andy Kirk’s book and his website is cited in the (very good) additional resources list. A second similarity with Andy Kirk’s book is that Storytelling is “the book of the course” –  the book is derived from her the author’s training courses.

The differentiating factor with Knaflic’s book is the focus on storytelling, presenting a case to persuade rather than focussing on on the production of a data visualisation, although that is part of the process. The book is divided into 6 key lessons, each of which gets a chapter, with a couple of chapters of examples, an introduction and an epilogue this makes 10 chapters. The six key lessons are:

1. understand the context
2. choose an appropriate visual display
3. eliminate clutter
4. focus attention where you want it
5. think like a designer
6. tell a story

I think I got the most out of the understand the context and tell a story chapters, technically I am quite experienced but my knowledge is around how to make charts and process the data to make charts rather than telling a story. The understanding the context chapter talks about the “Big Idea” and the “3-minutes story”. The Big Idea is the single idea you are trying to get across in a presentation, and the 3-minute story is the elevator pitch – how you would put your story into 3 minutes. I liked a callout box with a list of verbs (accept, agree, begin, believe…) used to prompt you for what action you want your audience to take having seen your presentation.

The chapter on choosing an appropriate visual display is quite straightforward, Knaflic presents the 12 types of display she finds herself using frequently (which includes simple text, and text tables). This is a fairly small set since variations of bar charts – horizontal, vertical, stacked and waterfall cover off 5 types. This is appropriate, if you are telling a story to persuade then you don’t want to be spending your time explaining how your esoteric display works. Knaflic steers away from specific technology, only mentioning at the beginning of the book that all the charts shown were made in Microsoft Excel and Adobe Illustrator was sometimes used to get a chart looking just right at the end of the process.

There is a list of sins in data visualisation including the reviled pie chart, and 3D plots but perhaps surprisingly the use of secondary axes to plot data on different scales together.

The chapters on eliminate clutter, focus attention where you want it, and think like a designer are all about making sure that the viewer is paying attention where you want them to pay attention. Some of this is about the Tuftian “eliminate clutter” much of which creeps into charts through default behaviour in software. Some is about using gestalt theories of attention to group items together through similarity, proximity and so forth and some is about using pre-attentive attributes such as colour and type face to draw attention to certain elements. This reminded me of The Programmer’s Brain by Felienne Hermans, which links theories of how our brain works with the practices of programming.

The chapter on tell a story introduces some resources on storying telling from playwrights and screenwriters – basically the idea of the three act play with a setup, conflict and resolution. This is a different way of thinking for me, my presentations tend to follow the traditional structure of a scientific paper but it is interesting to see the link with creative writing and drama – which is generally excluded from scientific writing.

One of the lessons I learnt from this book was to make better use of of chart titles and PowerPoint titles, I tend to go for  descriptive chart titles (“Ticket Trend”, to use an example from the book) and PowerPoint titles which simply labelled a section of a talk (“Methodology”). Knaflic encourages us to use this valuable “real estate” in a presentation for a call to action: “Please Approve the Hire of 2 FTEs”.

The six lessons are reinforced with a chapter which covers a single worked example from beginning to end, and another chapter of case studies which looks at fixing particular issues with single charts.

I enjoyed this book, its beautifully produced and fairly easy reading. It also led me to buy two more books Resonate by Nancy Duarte and Data Points by Nathan Yau, and so the “to be read” pile grows again!