Category: Software Development

  • Implementing Custom Quicksilver Actions

    As it was a nice London day today – wind, rain, sunny spells and a cosy 15?C all that, I spent the day with my Mac learning how to get more out of Quicksilver. I was wondering for some time how to implement my own actions. The task at hand was to have a single…

  • Saving the DRY-Dogma

    Recently (well some time ago, but I am thinking at a leisurely pace) Jay discussed how he thinks, that DRY is not neccessarily the most important thing, when it comes to writing tests. As I a am working on a huge (by agile standards) project for a while now, I feel very dogmatic about DRY,…

  • To Hell with Virtualisation – Updated

    These days virtualisation seems to be all the rage. There are some benefits to it. It’s a way to increase the utilsation of your hardware just as pipelining increases the utilisation of the processor’s execution units. But as pipelining it comes at a price. You might increase the throughput, but the latency gets higher. Furthermore…

  • More Thoughts about Mocking and State

    Steve rightfully asked for the source of the bad feelings we had about about adding a sequential return value feature to Mockito. The issue is that a Mockito stub is stateless, i.e. the value returned depended solely on the parameters being passed in when calling the stub. Statelessness is generally a nice property. It makes…

  • Mocking and Stubbing – When to roll your own?

    Szczepan was kind enough to spent some time with me tonight chatting about his puzzles on whether to include a feature into Mockito that allows a stubbed method to return differently on different calls. Clearly jmock and easymock allow you to chain return values and even pass in callbacks, that the mock evaluates to answer…

  • How much weighs your checkin?

    Beeing budget-driven you have to have the right tools. The simplest thing I could come up with are the code scales, that tell you what you have got in your workspace: (svn diff |grep -e “^\+[^\+]”|wc -l;svn diff|grep -e “^-[^-]”|wc -l;echo “-“;echo “p”)|dc It once again proves the point that real programmers use unix and…

  • Introducing Budget-Driven Development

    Now we got continuous integration, pair programming, TDD and many more things and still manage to pile up heaps of problems. So today Szczepiq and I were wondering, what to do about this. Of course we need a new acronym and we are cold-heartedly stealing one BDD (Sorry!) . Trouble is people always come up…

  • A DSL Object Graph Traversal

    I choose this somewhat dry title for a presentation I did at TW UK the the other week. It was about an external DSL, I wrote some time back, that allows you to specify traversals of object graphs. These specifications might be used to perform the following operations with object graphs: Serialization Visualization Comparison Cloning…

  • How do we tell truths that might hurt?

    Is the title of a pamphlet written by the late Edsger Dijkstra back in 1975. Working in “enterprise development”, I find that most of the stuff is still true. Replace PL/1 and Cobol with J2EE and ABAP or some other “crap du jour” and it will sound still very familiar. One point I like a…

  • Class#isAssignableFrom()

    The naming of this method is rather poor. I allways spend ages figuring out what it does. To sort it out once and for all I will put the translation into human language here: isAssignableFrom < => isSuperTypeOf