print(“Hello, World!”)

Musings on code, coders and the universe

  • The secret to refactoring code in baby steps

    I am going to tell you a secret, that will probably make you more confident at tackling huge refactorings. It’s so simple, you probably did or saw this at some point already, but it’s easy to forget when you are knee deep into a refactoring. So here it is. The secret to doing huge refactorings in safe baby steps is: don’t immediately rip out old implementations. Instead use them as a crutch until it’s easy and safe to delete them.

    Read more…
  • Working with Red Hat Linux (RHEL) in a Vagrant Box

    In this post I will take you through the first steps of setting up Red Hat Enterprise Linux for modern development using Vagrant. Big companies like buying Linux from other big companies. There’s nothing wrong with that, but when you start working towards treating your Infrastructure as Code the fact that you need a valid subscription with the OS vendor to install any packages makes for a rough start in infrastructure automation.

    Read more…
  • Using Git hooks to keep your build stable

    A little known fact is that Git supports client-side hooks to execute a command line script before certain commands such as commit or push. This feature can be used to perform additional quality checks on your codebase. What’s way cool about it is that Git will actually cancel the action if the exit status code of a script is not zero. This makes it a perfect fit for automated checks making sure you’re not shooting yourself in the foot.

    Read more…
  • Resisting marshmallows is hard. Adopting TDD, too.

    We are not as rational as we think we are. Or as Dan Ariley might put it: We’re All Predictably Irrational. The other day I read “Die Kunst des klaren Denkens” (lit: The art of clear thinking) by Swiss author Rolf Dobelli. One of the common logical fallacies Dobelli
    describes in this book is the fallacy of Hyperbolic Discounting - the inclination to value immediate rewards over over delayed rewards. It seems to me, this human predisposition like no other lies at the heart of many mistakes in software development, including failed attempts adopting Test-Driven Development (TDD).

    Read more…
  • An Odyssee of Android testing

    A few days ago I started developing my first native Android App. Finally a green field project! Finally, an opportunity, to do things right! Finally, a project I could develop in a Test-Driven fashion without the weight of any legacy cruft slowing me down! Or so I thought… With a lot of enthusiasm I bootstrapped a new Maven Project and sure enough there was an Archetype with something called “Instrumentation Tests” included.

    Read more…
  • Resolving the Jenkins Xcode License Agreement Issue

    When I set up a new Jenkins CI Server on OS X in order to build iOS Projects I ran into some trouble. The combination of Xcode 4.3, the Jenkins Xcode Plugin 1.3.1 and the Jenkins CI Version 1.458 does not seem to play well together. Whenever I tried to build an Xcode project, the build failed with the following message: You have not agreed to the Xcode license agreements, please run xcodebuild standalone from within a Terminal window to review and agree to the Xcode license agreements.

    Read more…
  • Brilliant talks on Software Engineering

    I love to watch talks on software engineering. To me, they’re a great source of inspiration and knowledge, I can just cram somewhere into a quiet evening on the couch.

    I found it quite a discovery that so many videos of talks I deem absolutely brilliant are available on the web - for free! And now I would like to share with you some of these video gems I discovered so far - so without further ado, here’s a list of my favorite videos on software engineering, grouped by topic:

    Read more…