I recently stumbled over this video. It gives a good introduction to what Continuous Delivery is at its core.
The title says it all, enjoy!
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.
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.
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.
Although I was quite sure that I had SE Linux disabled, it was causing connection issues for me. Entering the command
chcon -t samba_share_t /path solved this for me.
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
- Your wireless network probably shows up as “Wi-Fi“. Please adjust the following line accordingly, if your system uses a different name
sudo networksetup -setv6off "Wi-Fi"
With those steps things worked immediately.
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.
Published on April, 1st
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.