Month: July 2014

  • Method Resolution Order, C3, and Super Proxies

    In the previous article in this series we looked at a seemingly simple class graph with some surprising behavior. The central mystery was how a class with two bases can seem to invoke two different method implementations with just a single invocation of super(). In order to understand how that …

  • Method Resolution Order, C3, and Super Proxies

    In the previous article in this series we looked at a seemingly simple class graph with some surprising behavior. The central mystery was how a class with two bases can seem to invoke two different method implementations with just a single invocation of super(). In order to understand how that …

  • Writing: Nothing is Set in Stone

    My latest Becoming a Better Programmer column is published in the July issue of CVu magazine (26.3). It called Nothing is Set in Stone. It talks about the soft nature of software, and how to make fearless changes.

  • Writing: Nothing is Set in Stone

    My latest Becoming a Better Programmer column is published in the July issue of CVu magazine (26.3). It called Nothing is Set in Stone. It talks about the soft nature of software, and how to make fearless changes.

  • Writing: Becoming a Better Programmer

    I am delighted to announce that I have signed a contract to publish my latest book, Becoming a Better Programmer with the excellent folks at O’Reilly. You can find out more about the book from it’s catalogue page at http://shop.oreilly.com/p…

  • Writing: Becoming a Better Programmer

    I am delighted to announce that I have signed a contract to publish my latest book, Becoming a Better Programmer with the excellent folks at O’Reilly. You can find out more about the book from it’s catalogue page at http://shop.oreilly.com/p…

  • Best GCC warning flags for compiling C++

    A recent discussion on ACCU-general gave people an opportunity to share the warning flags they like to use with g++. I thought I’d write down the consensus as I understood it, mainly for my own reference: -Wredundant-decls -Wcast-align -Wmissing-declar…

  • What git server should I use?

    At work we are considering whether we can use Git for our source control. I am a big fan of Git, so I’d like to see this happen. We only need to work against a central repository most of the time, so I’m looking at what servers might work for us. Updat…

  • Renewing self-signed certificate for ejabberd

    I run an ejabberd server on an Ubuntu 12.10 box and this week I started getting notified by my IM client that the server’s certificate had expired. Here’s how I managed to generate a new certificate. WARNING: this process backs up, deletes and then res…

  • Letter to my MP on DRIP

    Sent via WriteToThem.com. More Info Dear Mr Hammond, I am writing to express my concern about the Data Retention and Investigatory Powers Bill (DRIP). I feel that forcing companies to store data on their customers is an unacceptable breach of the right…

  • What is node.js?

    Node.js is a way of writing your web applications wholly in JavaScript, which sounds like a terrible idea. However, it is also an asynchronous programming environment that has been proven to scale really well, and it’s a collection of libraries many of…

  • A mini mocking framework

    Ever wondered how a mocking framework like JMock or GoogleMock works? We’ll look at how to write a very basic example, and find out that Java is more flexible than you may have thought. Slides: A mini mocking framework.

  • Rational Computational Geometry in Python

    In the previous article, we looked at how a standard technique for determining the collinearity of points, based on computing the sign of the area of the triangle formed by two points on the line and a third query point. We discovered, that when used with Python’s float type [1 …

  • Rational Computational Geometry in Python

    In the previous article, we looked at how a standard technique for determining the collinearity of points, based on computing the sign of the area of the triangle formed by two points on the line and a third query point. We discovered, that when used with Python’s float type [1 …

  • Business of Software Conference Europe

    Kathy Sierra on ‘Motivation Matters’ at Business of Software Europe. Last week our founder Anna attended the Business of Software Europe conference in Cambridge, and it was quite something indeed. Although the Business of Software Conference has been …

  • Business of Software Conference Europe

    Kathy Sierra on ‘Motivation Matters’ at Business of Software Europe. Last week our founder Anna attended the Business of Software Europe conference in Cambridge, and it was quite something indeed. Although the Business of Software Conference has been …