Site Menu



Recent Comments

Social Links

Site search

Recent Posts



VMware Fusion 4 on OS X Mavericks

Having upgraded to OS X Mavericks just recently, one of the main questions for me was, whether I would need to upgrade from VMware Fusion 4 to the current version (which is Fusion 7). Initially the thought had not really occurred to me, but after the second crash of my MacBook I started to look around. The majority of content I found was about the support status and some people had gotten really agitated during the discussion. But little was said about the technical side of things, i.e. whether the stuff was working or not.

What I can say today is that for me VMware Fusion 4.1.4 works nicely and without issues so far. I use it almost exclusively to run a company-provided Java development environment on Windows 7 64 bit. So no 3D graphics, USB drives, or other “fancy” things.

The crashes were most like caused by an old version of the keyboard remapping tool Karabiner (formerly KeyRemap4MacBook). Once I had upgraded to the appropriate version, the crashes were gone.

Ant Build System for the Nullsoft Installer System (NSIS)

Lately I had to automate the installation of quite a few inter-related system components for the creation of demo systems (usually in virtual machines). In my case those were  a dedicated database, three server applications and various clients operating against those servers. The important part was that quite a few configuration settings had to be aligned across all these components. So I decided to externalize those settings into a common properties file and build wrappers around the original installers that would query that properties file.

Since this was a Windows-only exercise I decided to leverage the Nullsoft Installer System (NSIS) which is free and has a great community with loads of additional plugins. But for building my installers I still used Ant to achieve this automatically and therefore reproducibly. Other factors were

  • Support for arbitrary number of components with quick and easy addition of new ones
  • Wherever possible automate also the download of the original installers
  • As “centralized” as possible, meaning that only component-specific aspects should be handled outside the main NSIS script

The result is a central NSIS script that includes component-specific details. Those are post-processing instructions and the original installers. Overall, it was worth the effort and provided a robust basis for other similar setup later on.

Connecting to Raspberry Pi via SSH: Connection Timeout

When trying to connect to my new Raspberry Pi via SSH, this only worked when done locally. It turned out to be caused by the /ect/hosts file. I had set the hostname using the raspi-config tool, which linked it with the loopback address instead of the real one (192.168.x.x). Changing it to the proper address solved the issue.

Connecting from Windows 7 to Samba on CentOS 6: Access denied

Although I was quite sure that I had SE Linux disabled, it was causing connection issues for me. Entering the commandchcon -t samba_share_t /path solved this for me.

AirPlay with AirPort Express, MacOS X Lion and iTunes

Just recently I purchased an AirPort Epress from Apple to connect it to my stereo and enjoy music in a better quality than from the built-in speakers of the MacBook. The inital setup went fine but iTunes was not able to connect (iPhone just worked). After trying various things it turned out that IPv6 was responsible for this. Unfortunately it is not possible to turn IPv6 off in the GUI (brilliant idea, folks!). But it can be achieved via the command line. So here are the steps I had to take

  • Open terminal
  • Run: networksetup -listallnetworkservices
  • Your wireless network probably shows up as “Wi-Fi“. Please adjust the following line accordingly, if your system uses a different name
  • Run: sudo networksetup -setv6off "Wi-Fi"

With those steps things worked immediately.

The Importance of Names

Every once in a while someone is rolling their eyes when I, again, insist on a well-chosen name for a piece of software or an architectural component. And the same also goes for the text of log messages, by they way; but let’s stick with the software example for now.

Well, my experience with many customers has been the following, which is why I think names are important: As soon as the name “has left your mouth” the customer will immediately and sub-consciously create an association in his mind what is behind it. This only takes a second or two, so it is finished before I even start to explain what a piece of software does.

Assuming that my name was chosen poorly, and hence his idea about the software’s purpose is wrong, he will then desperately try to match my explanation with his mental picture. Obviously this will not be successful and after some time (hopefully just a few minutes), he will interrupt me and say that he doesn’t understand and shouldn’t the software actually be doing this and that.

It makes the conversation longer than necessary and, more importantly, creates some friction; the latter is hopefully not too big, but esp. at the beginning of a project when there is no good personal relationship yet, it’s something you want to avoid. Also, think about all the people who just read the name in a document or presentation and don’t have a chance to talk with you. They will run around and spread the (wrong) word. I have been on several projects where bad names created some really big problems for the aforementioned reasons.

“Google Maps 8-bit for NES”

Published on April, 1st :-)

My New Toy: Mac Mini

Having been a very happy iPod user for more than six years, I finally got myself a Mac Mini as a kind of New Year’s present. And I must admit that it totally blew me away! The overall usability and the many tiny details that show the degree of thinking that was put into the product are awesome. And of course the design is so much beyond any computer I ever had before.

My only problem now is to find and play with all those nice tools that make one’s life even better. What I already installed are of course Emacs, Eclipse, and a few more. Once I have gained enough experience there will probably be a separate post on what I consider useful.

Keyboard Tools

Just a quick post to share two awesome utilities that I have been using for a while now. I like working with the keyboard over the mouse in many cases, simply because I am faster with that, and was recently pointed to a a tool that will make things even better:

Auto Hotkey: This allows you to “play” an arbitrary set of key strokes and commands either by replacing text you just typed or by re-assigning a key (combination). Very handy for emails where you can now simply type “brc” and get “Best regards,<NEW_LINE>Christoph”

Another tool worth mentioning is Key Tweak, which provides a GUI over the registry that allows to remap the keyboard. My use-case was a very old IBM Model M keyboard that does not have a Windows key (I was made aware of the tool by this post)

Eric Ries: “The Lean Startup”

I stumbled over this when reading a German article about the Visual Studio ALM Days 2011. Eric Ries basically makes the argument that startups, like any company, need management; you cannot expect to succeed without it. The key point, though, is that a special flavor of management is needed, which is tailored to the specifics of startup companies.

When looking at the reviews at Amazon, it becomes apparent that the author has hit a nerve. Although not all of them are really enthusiastic, already their sheer number (142 as of this writing) is interesting. I will not repeat things here but provide a few of my thoughts:

  • First of all, I was reading this not from the perspective of someone who works for a startup or wants to create one any time soon. Instead my background is on distributed systems working for a well-established software company. So the aspect of how to change innovation within an existing organization was the interesting part for me.
  • The key aspect I took away was that in many, many cases it is better to start building something quickly, fully accepting that the initial solution is far from perfect, and get feedback fast. This also coincides with my observation that most people have great difficulty to really grasp and understand something really new. Instead of spending much time on slides, just do a mock-up or prototype and some screenshots and all your discussions will be much smoother.
  • If you expect checklists and concrete advice for your particular situation, you will probably be disappointed. I would argue, however, that the book’s approach to tell you how to think is certainly better than to have a one-size-fits-all list of things to check off.

Overall I enjoyed the reading and fell that it has expanded my way of thinking. Also, I found quite a few parallels (e.g. with agile software development) and this reiteration has helped to “persist” things in my mind.