Archive for September, 2006

Tufte on Powerpoint

Edward R. Tufte – The Cognitive Style of PowerPoint

Yes, I realise the irony of using bullet points to summarise this too. But some notes are better than no notes.

  • Presenters love PowerPoint, not audiences
  • PP is so low on information density that truths must be abbreviated to fit
  • Bullets can’t show complex relationships, can only show ONE of these:
  • Sequence
  • Priority
  • Or simple set membership
  • Tufte recommends sentences with subjects and verbs rather than bullets
  • Quote from Richard Feynman (re: NASSA and his role on commission investigating Challenger disaster in ‘86):
  • Then we learned about “bullets” – little black circles in front of phrases that were supposed to summarise things. There was one after another of these goddamn bullets in our briefing books on slides

    • Thin content -> boring presentations -> adding PPPhluff
    • Greater detail means greater clarity and gives context
    • Branding on PP slides is insidious
    • “The way to make big improvements in a presentation is to get better content”
    • Avoid hierarchies of bullets
    • Never read from slides
    • Never use PP for paper reports
    • Instead of PP, use handouts of additional material that is dense in information

    TechSession: Ruby and Ruby on Rails

    I delivered an introductory TechSession for GLiNTECH on Ruby and Ruby on Rails a couple of weeks ago. I tried some different presentation techniques to the usual (inspired by Presentation Zen) and with some subject matter that lent itself to the task, came up with something that in my opinion did a pretty good job of holding the audience’s attention. I also got to use the remote control (via SofaControl) of my newish MacBook Pro, which made me feel like a massive nerd.
    Unfortunately the style of presentation means that the slides are pretty much useless by themselves, and the session was not recorded. By way of summary, a very brief summary of my main points:

    Ruby

    • Simple, elegant and OO
    • Principle of least surprise
    • Portable
    • More powerful than “scripting language” implies
    • Language features: Mixins, Blocks, Closures, Continuations, Aliasing
    • Issues: performance & vendor support
    • Advantages: “less” – lines of code, configuration, bugs, frameworks
    • Can give you new perspectives on your main commercially employed language

    Ruby on Rails

    • MVC based web framework
    • Convention over configuration
    • Quick to get started, but completely extensible and controllable
    • Features: Migrations, ActiveRecord, Scaffolding
    • Has great marketing — and marketing matters (see Sun/Java, Microsoft/C#)
    • WILL influence your web development, even if you never use RoR (see Grails, Trails etc)
    • Advantages: fast start, rapid feedback, less code

    Some of the audience hung around and we spoke about technical details as well as strategy and marketing angles. An interesting topic and some great questions made presenting this rather enjoyable.

    10 Programming Languages You Should Learn Right Now

    I don’t know where to start with this astoundingly poor article, but I guess the title is not a bad place. Firstly, I know the headline was written by some copy-lackey who knows little about development, but its obvious that you can’t just learn ten languages RIGHT NOW… Hello editors, this is not your usual top ten list, don’t title as such.

    But not to be too distracted by the title — because its in the content of this article that the real pearlers are found. I don’t have time to fully disect it all, but for your amusement, some quotes and comments:

    • “It doesn’t matter if you’re a good programmer, it’s the syntax that matters” – this one is from Tim Huckaby, who seems like a smart guy from what I could find on him. But that is a bone-headed thing to say, except for in a couple of contexts.
    • “At last count, I knew/have learned over 24 different languages in over 30 years” – this is from Wayne Duqaine, who says some pretty insane things, considering he is supposed to be a “director of Software Development”. Are we supposed to be impressed that you’ve “learnt” so many languages? I’m not.
    • “Building Web apps from scratch using C or COBOL is going the way of the dinosaur” - what the?!? I know some banks wrote their webapps using C a while back (hopefully not in the last five years at least), but if anyone, ANYONE, has ever written a webapp in COBOL, they should have been fired. Or perhaps not fired, but made to maintain their COBOL webapp for eternity. Duqaine said this one.
    • “The demand for AJAX knowledge is huge because it’s so damned hard to learn” – no, AJAX is not hard to learn. It is easy, and any programmer with some web experience could start using it in a matter of hours. The demand is huge because PEOPLE WANT WEBAPPS WITH A RICH CLIENT EXPERIENCE, not because its hard to learn. Huckaby said this one.
    • “JavaScript job availabilities: 4,406” – Noone looks for someone who only codes Javascript, so to say that there are 4000+ jobs available if you know JavaScript is a complete furphy.
    • “Learning C is crucial. Once you learn C, making the jump to Java or C# is fairly easy, because a lot of the syntax is common. Also, a lot of C syntax is used in scripting languages,” said Duquaine – learning C is not crucial. In fact, learning C can be downright disorienting and confusing if you are out to get a job in the Java or C# world. Learn the ins and outs of the Object Orientation world. Learn Design Patterns. Learn some stuff about SQL, learn about data structures, and by all means learn C, but don’t consider it crucial. And to say you should learn C because it will help you with scripting languages is like advising to study French cuisine before you cook your two minute noodles.
    • Ruby: “Why you should learn it: With a focus on simplicity, productivity and letting the computers do the work, in a few years, its usage has spread quickly. As a bonus, many find it easy to learn.” – let’s ignore that they didn’t actually give a reason for why you should learn it, and jump straight to the howler: “letting the computers do the work” — ummmm, I don’t know what to say.
    • Python: “many say it has a sense of humor” – I’m not sure why having a sense of humour means I should learn Python RIGHT NOW, but then again, I’m sure the author is an expert, so I’ll take her advice on this one!
    • VB.NET: “Most argue that VB.Net is currently more popular than ever and one of the only “must-learns.”" – what! You mean the previous 9 on the list are not must learns? I thought I had to learn them RIGHT NOW! Now I’m confused. By the way, surely the fact that there are 14,000+ Java positions to only 2000 or so VB.NET positions means that Java might be more of a “must learn”? Right?
    • Don’t forget to read the comments for some semi-literate (and equally non-sensical) reader feedback.