22 May 2015

On Morality: Not-Just-A-Consulting-Monkey

In lieu of the recently uncovered scandals involving the German (US, British etc) secret services - and the respective government officials, I reflected upon my (consulting) engagements:


* I deeply mistrust government organizations that keep too many things hidden from their own government. The current „review boards“ (German: Untersuchungsausschuss) are systematically boycotted by the „agencies“ and will surely not lead to any significant result or changed behavior. Documents are destroyed or blackened - officials show no interest whatsoever to uncover wrongdoing.

* Spying on their own citizens without specific warrant violates our constitution, I support appropriate initiatives (reference in German).

* Helping other nations’ intelligence agencies to spy on our own citizens and companies is a serious crime and should be prosecuted. 

* In light of recent and not-so-recent eventy, including everything around heroic whistleblower Ed Snowdon, supporting these organizations is morally doubtful or debatable.

* Investigating or preventing violent crime is required police work, but must under no circumstances be unconditionally extended to the private sphere of all (!) individuals and organizations of a country.

I believe that consultants/architects and developers like myself should start to stand up for morality and *real* compliance to our constitution - and refuse all kind of support for the „secret organizations“ and those parts of our government that is related to them (e.g. the German Kanzleramt).

For myself I therefore decided to refrain from doing ANY WORK for the „secret organizations“, until all of the currently open issues have been clarified (but I doubt that will ever happen, as long as we have to endure political puppets that act as cohorts to foreign governments).

The only exception that I regards morally acceptable would be support for changing-these-organizations-for-the-better, e.g. creating transparency, investigate and uncover previous crimes or supporting reviews.


(I re-used the term from the inspiring Martin-Fowler keynote from OOP-Conference 2014)


18 March 2015

IT-Systeme systematisch verbessern...

Software neu erstellen - das lernen wir alle in Ausbildung und Studium.

Die Evolution, Weiterentwicklung oder Verbesserung von Softwaresystemen systematisch zu betreiben, müssen wir uns mühevoll in "Training on the Job" selbst beibringen - bisher zumindest...

Neuer Lehrplan zum Thema

Seit kurzem hat der iSAQB e.V. einen entsprechenden Lehrplan namens IMPRVOVE aufgenommen (Disclaimer: Ich habe den entworfen und eingereicht).

Dessen Name ist Programm: Sie können ab sofort lernen, wie Verbesserung, Evolution oder Weiterentwicklung systematisch funktioniert, mit balancierten betriebswirtschaftlichen, fachlichen und technischen Zielen.

IMPROVE hilft Ihnen, kurzfristige Budgetvorgaben und langfristige Architektur- und Produktqualität in Einklang zu bringen. Sie vermeiden Verletzungen der konzeptionellen Integrität und kurzfristige Behelfslösungen. Es zeigt systematische Auswege aus inkonsistenter Implementierung und riskanter Technologiediversifizierung.

Premiere im Juni 2015

Peter Hruschka und ich bieten als Premiere diesen Workshop öffentlich an - Details finden Sie auf der arc42 Website.

Was Sie zum systematischen Verbessern brauchen

aim42 verrät Ihnen schon ziemlich viel, aber ganz praktisch sollten Sie folgende Fähigkeiten mitbringen, wenn Sie Systeme verbessern möchten:

  • Systematische Problemanalyse betreiben, sowohl auf Makro- (z.B. bei Querschnittsthemen, externen Schnittstellen, Entwicklungsprozessen) wie auch auf Mikroebene (z.B. im Code)
  • systematisch Verbesserungsvorschläge für die gefundenen Probleme entwerfen.
  • sowohl Probleme wie auch Lösungsoptionen aus betriebswirtschaftlicher Sicht bewerten (d.h. in Geldeinheiten!). Dieser Punkt fällt Softwareentwicklern erfahrungsgemäß besonders schwer.
  • Langfristiges Vorgehen bei Verbesserung planen, ihre "Evolutionsstrategie" festlegen.
  • Kurzfristige Verbesserungen planen und durchführen, beispielsweise Refactorings, Einführung interner Schnittstellen, Verbesserung von Modularisierung, Kohäsion und/oder Kopplung.
  • Sich durch betriebswirtschaftlich fundierte Argumentation gegen kurzfristige Widerstände durchsetzen.

In diesem Sinne - viel Spaß beim Verbessern Ihrer Systeme.

26 July 2014

Connect your Kindle® to password-protected WiFi

Just in case you need to connect your Amazon-Kindle® to a password-protected WiFi network - and it does not work... That often happens in hotels, at airports or other locations with protected WiFi access. An unconfortable but working solution is the following: You need a real computer (or tablet or smart smartphone) to find out the IP address of the WiFi router... If you don't know what that is - this solution is not for you, sorry. 1.) Use a computer to find out the IP address of the router of the protected WiFi. Window 2.) On your Kindle®, enter this IP address as browser URL. 3.) Your Kindle® browser will display the appropriate login or registration page. It won't look nice, and typing username and password won't be comfortable. But it will work! 4.) nothing more to do :-)

13 May 2014

Open-Close-Principle considered (practically) useless

Underlying Goal Considered Valuable

In a recent blogpost, the honorable Uncle Bob once again discussed the merits of the famous Open-Close-Principle. Quote:
You should be able to extend the behavior of a system without having to modify that system.
I like and strongly support that idea. It's realization by plugin-architectures is useful in some cases, it's foundation in object-orientation is one of the few useful applications of inheritance. I teach the OCP in classes and advice people inhale it like oxygen in their daily life. It's a beautiful theoretical concept. In practice, it's mostly useless - sigh.

The Nature of Changes in Practice

Since more than 20 years I work with teams changing, enhancing or optimizing software systems. I've seen code in financial industry, insurance and banking systems, logistics, telecommunications, embedded systems and, of course, the web. Changes were often corrections to previous requirements: (I quote real customers and product-managers in the following lines)
  • "aargh - we didn't mean it THAT way, please correct it to THIS way".
  • "Make it faster, whatever it takes."
  • )
  • "We need some new attributes in the view"
  • "You have to integrate the XYZ system urgently into our processing" (replace XYZ by SAP(c), Oracle(c) or any huge commercial software suite that you cannot integrate by just calling a simple API)
Too bad those requirements cannot be met by simply creating a new plugin to a nice-and-beautiful plugin architecture. Too bad those requirements often invalidate yesterdays' assumptions and code. The open-close-principle does not help me in those cases. Those cases are the rule, the standard, normal. Even if I (or other software engineers) had implemented plugin architectures - those wouldn't help with new attributes in some strange old-school UI or some backend insurance database.

Is Open-Close Applied in Real Systems?

Most productive systems I met (and I met many many dozens of them) don't have the notion of clear extension points. Many have been implemented by teams under severe cost or time restrictions without freedom to apply design principles - sigh again. That's one reason we founded aim42 - to systematically improve (and hopefully help spread OCP application..). @Uncle Bob: Thanx for your design principles - they make this (software) world a better place...

16 February 2014

Software Quality is More Than Just Code Quality

I'm astonished how many people in our software business try to improve systems by JUST looking at source code - and ignoring loads of other aspects. Especially vendors of code analysis tools tend to equate "software quality" with "code quality" - which ignores major parts of quality issues. Let me illustrate my point with some examples.

Sample 1: Gold-Plated System

The team has created features above features, all highly configurable with a good-looking user interface. There's a button here, a menu there, some choices and a lot of functions... all stuff adding no business value, not useful for the end-user. By the way - all written in clean-code. In my opinion, this team produced *waste* - and the resulting system will more expensive to maintain than it needs to be - more lines of code, more configuration, more difficult to understand.

Sample 2: Overly Complex Solution

Data from a relational database is selected, then transformed into Java objects, then into an XML representation. This XML is processed into a pdf document, which is send via smtp-mail to the user. User prints the pdf, fills out some fields, scans the pdf. The system performs OCR (optical character recognition) and transforms back to xml. The xml is converted to Java objects, which are used to update the relational database. Sounds crazy? Is crazy - but describes an existing system. All written in nice and clean code. In my opinion this sample describes a conceptual disaster, where refactoring code alone wouldn't help - re-architecting the overall process would be the right approach.

Sample 3: Horrible User Experience

A company opened their impressive and useful backend services to customers by adding a web-frontend. Both back- and frontend code was written by expert programmers, adhering to many clean-code principles. Unit and integration tests supported the system. But the user interface has a nightmare. Layout, colors and screen flow had been created by programmers, not by usability-experts. Sidenote: I'm quite sure you have experienced similar situations... programmers-as-designers seems to be a common anti-pattern in development.

Software Quality is MORE than Code Quality

The examples above hopefully illustrate the point that even with well-written code a system can *fail* for its users or developers. Quality attributes like performance, understandability, maintainability, understandability, security or compliance might be neglected despite good source code...

Analyze Problems From Bird's Eye Perspective

In exiting business systems you should approach *improvement* or system evolution from different perspectives, not only by counting code-violations or code-metrics. For example the following perspectives provided valuable input for some of my own practice experiences:
  • Qualitative Analysis (e.g. ATAM)
  • Runtime Analysis, e.g. performance and resource monitoring
  • Analysis of Development Process
  • Data Analysis - find improper structures and content
  • Issue-Tracker Analysis
  • Static Code Analysis

Clean Code is Important...

I'm convinced of the importance of understandable code. I will actively promote refactoring towards cleaner code whenever appropriate. The principles of clean code need to be taught and practiced throughout our industry. But hopefully you see my argument - there's some more to do: we need to create understandability on a higher level, need to design appropriate technical and business concepts, need to design appropriate data structures and interfaces and so on...

Methodical Improvement to the Rescue

What's needed to systematically improve software is an iterative approach to find *many* problems, not only within code. aim42 collects practices and patterns to achieve exactly that - the foundation for systematic improvement. Think about it when some manager demands compliance to some code metric or coding-convention... you might be better off by optimizing or improving something completely different.

05 February 2014

aim42 - Systematic Approach to Software Maintenance

During the OOP-Conference 2014, Stefan Tilkov and myself released aim42 - the systematic approach to software maintenance and improvement.
Aim42 logo
We named it "aim", short for "Architecture Improvement Method". aim42 is a free and open-source project, a community approach to collect practices and patterns.

Why Do We Need Software Architecture Improvement

Software maintenance is a major issue, because over time many systems degrade massively: Understandability (and with it, maintainability) goes down, and cost-of-change grow. See the diagram below:
Cost of change

aim4 Phases

It consists of three distinct phases:
  1. Analyze: search and collect problems, issues, deficiencies and technical debt within your system and your development process.
  2. Evaluate:understand root-causes of problems, determine their „value“ and cost/effort of their remedies.
  3. Improve: systematically improve code and structures, reduce technical debt, remove waste and optimize.

Community Approach

Currently we host the (AsciiDoc) source of the aim42 guidebook on Github, one of the best-known open-source communities.
Find some further information (oops - currently in German only) within our initial presentation (on Speakerdeck) or the upcoming YouTube channel.


* Feb. 16th: Changed URL from Bitbucket to Github

26 November 2013

22-Digit IBAN Considered Harmful

Whoever decided to replace the old-fashioned 9-10 digit
bank account numbers by the 22-digit IBAN clearly favors
machines over humans.

It's cruel to force humans to fill 22-digit numbers into money transfer statements.

Everybody has heard of the 7 +/- 2 rule, the number of things a human can usually keep in short-term memory. 22 is clearly out of this range.

Banks of the world - this decisions does NOT make me love you.

"Der Spiegel" has a nice article about it, titled
"IBAN Die Schreckliche"

04 November 2013

Java JDK on OS-X (here: 10.9, Mavericks)

Boredom warning: This post describes some commands to configure Java-7 on Mac OS-X. Now fun to read.


After my recent upgrade to 10.9, I had to install Java again (Apple seems to be regarding Java as something evil…)

The Apple-Java is still 1.6 - if you’re happy with that: use the proposed download from Apple and you’re all set.

If, e.g. for software development, you want something a bit more recent...


Downloading from Oracle, running the installer… but still, 1.6 is the active JDK.

(Simple) solution: In any shell (e.g. Terminal, iTerm):

sudo ln -sf /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK


On your system, the PATH to java might be set at three different locations:


If you happen to have / need  a JAVA_HOME environment variable:

export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home"

Make sure, JAVA_HOME is set in one of the abovementioned locations. I suggest you get rid of it… (delete it from ~/.profile)




22 September 2013

Deutschland wählt totale Überwachung - Ade digitale Bürgerrechte

Demokratie == das Volk herrscht.

Heute (22. September 2013) hat das deutsche Volk sich entschieden, auf Privatsphäre im Internet auch zukünftig weiträumig zu verzichten.

Da unsere großartigen Faselpolitiker ja lieber über Autobahn-Maut-für-Ausländer streiten, oder so genannte systemrelevante Betrüger mit Geld bewerfen - kann das "Neuland" Internet ja ruhig von den Kumpels der anderen Geheimdienste weiter kontaminiert werden. Vor den eigenen "Diensten" braucht man sich ja kaum zu fürchten - die können ja nicht mal richtig Verbrecher fangen.

Ich glaube, die Tatsache der verlorenen digitalen Privatsphäre ist für Normalbürger schlicht zu kompliziert. Oder wird vom alltäglichen Ärger überlagert.

Ich zumindest markiere mir den Tag als trauriges Ereignis im Kalender: Mitbevölkerung hat's nicht kapiert. Politiker interessiert's nicht. Für Medien nicht cool, weil weder Sex noch Blut. Und wir paar (entsetzten) Informatiker zählen nicht genug.

(Politik-)Frust auf ganzer Linie.

Why I Still Read Books

Are Books Old-Fashioned?

In times of everything-online it might sound old-fashioned to favor printed books over online sources: They are usually more expensive, cannot directly be forwarded via email and there's no chance to get free updates.

I very often research (technical) topics online, which is great to get a quick overview. But where to dive in? Even to minor topics you easily find hundreds of sources, blog-posts, reports, rants and forum discussions…

Books have Higher Quality in Content and Structure

My argument pro-books is quite simple: Usually the authors have intensively thought about two issues:
  1. the topic itself and
  2. ways of describing content to their readers.

Furthermore, reviewers and publishers have provided feedback - which invariably leads to higher quality in content and structure.

Arguments are easier to follow, language more concise (and not restricted to 140 characters), overly long sentences are (often) replaced by understandable "lightweigt" alternatives…

Others Have Read for You

Amazon-reviews often help me to find appropriate books on a topic. Enthusiastic reviews are no guarantee, but an indicator.

E-Books as Compromise

Searchable pdf's (or other e-book formats) provide a great compromise - at least when they've been proofread and copyedited. I tried quite a number of self-published e-books, with mixed results.

Great Examples

Let me give you only a few of the great examples I encountered recently:

These are only a few examples where you immediately recognize the amount of blood, sweat, tears (and, of course, love for the topic) these authors invested.

Disclaimer: I write books myself. I spend hours thinking about details, asking colleagues and friends for feedback. I write "prototypes" and later replace them away with complete re-writes.

09 September 2013

Emacs on Mac-OS: Configuration for Alt- and Meta-Key

Oh what a nuisance, having to configure key-bindings so that Emacs becomes usable on Mac-OS...

The Problem

  • You need a proper META-key to use Emacs.
  • With non-US keyboards, you need the ALT-key to type characters like [, ], { or }. 


Command-as-Meta? No way...

People discuss wether to configure the COMMAND-key (aka "apple-key" or CMD) as META. 

Imho impossible, as in *all* other Mac applications, CMD plays a central role (new, open, duplicate, quit, minimize etc.). No way I can unlearn these key combinations.


Escape-as-Meta? Your Fingers Run Marathon...

Some people use ESC as Meta. For every of the numerous Meta-commands in Emacs, send your little pinky finger all the way up north-east to Escape-country… no, that feels like an unhealthy amount of movement to me.


Left-ALT-as-Meta, Right-Alt-for-Special-Characters

Whow - that's clever: Using the left-Alt key for something different than the right-Alt key...

Simple put the following line in your emacs configuration file (~/emacs.d/user.el or similar):

(setq ns-right-alternate-modifier nil)

That works fine for me...


Of course, I have CAPS-Lock mapped to CTRL (in Mac-OS system settings under keyboard)


Some more Emacs Links

@pschirmacher pointed me to  http://www.braveclojure.com/basic-emacs/, which contains both a nice setup and pragmatic introduction.

I use the "vanilla Emacs" - of course the key config from above also works in terminal-Emacs. 

09 August 2013

The Privacy Tragedy or NDA Considered Impossible

The classic tragedy is a sad story - as protagonists usually suffer from serious losses.

The last few weeks have shown that our privacy had been lost years ago - without us (protagonists) realising it.

Now, with the heroic help of guys like Ed Snowden, the magnitude of this privacy-loss became visible:

* Governments (especially from the US, Germany, UK and maybe several others) violate fundamental privacy rights (like the American Constitution and the German Grundgesetz).

* Companies trying to keep their users' data private are forced by governments to either shut down their operation or violate privacy rights.

* All Internet traffic is systematically monitored by government agencies - without users' consent. They are reading ALL our communications.

The Root of All Evil: Yes - We Scan!

The root of this evil is located in the USA and its villains (Germany and the UK as prime examples). Storing and processing (private) data and communication via companies located in these countries has from now on to be considered unsafe, sometimes harmful!

Ok - you probably already knew that. And you knew Obama's slogan "Yes, We Scan"?

The Tragedy

We cannot do a single thing about it - without giving up the comfort zone:

* Our operating systems are designed (sometimes well, sometimes worse) in the USA. I personally find it *very* likely that modern operating systems already contain backdoors for governments.

* Most communication and social networking services are located in the US (Facebook, Twitter, Google, Yahoo, LinkedIn) or Germany (Web.de, GMX, Telekom) - and actively cooperate with governments! They freely give away your private data!

* Many convenience services are located in the US (Dropbox, Evernote, GoogleDrive, Microsoft-SkyDrive). Despite their claims to keep our data private, they all cooperate with Governments.

* The fundamental infrastructure for large portions of software development is tightly connected to US companies (Java -> Oracle, C# and dotNet -> Microsoft, VMWare (SpringSource), JavaScript (Apple, Google)).

* OpenSource is only better in theory: For larger systems (like Linux, Firefox, BSD, Gnome, KDE, MySQL) it is simply not viable to inspect the source code for potential security or privacy issues. How can I keep my trust in systems like TrueCrypt or the EncFS (encrypted file system)?

We Are Lost

I have never in my life been more frustrated with politics and these so called "democratic" governments (this incompetent morons that failed in protecting our Grundgesetz or the US constitution). They value secret agencies higher than our rights to keep private information private!

We lost privacy in digital life. No (comfortable) way out of this!

NDA Considered Impossible

I earn my money with software and computer stuff. It involves private and sometimes even secret information.

I usually sign privacy agreements (NDA, non-disclosure-agreement). I promise in this legally binding documents not to give away *any* private or secret data.

From now nobody in our business can keep such a promise! Somebody gives me digital data - some rogue government will be able to read it!

Hope In Small And Painful Doses

Yes - you can encrypt your email (PGP, GPG or S/Mime). All of these solutions require a considerable investment in software and organizational infrastructure.

Yes - you can move to self-compiled Linux kernels and window drivers. If you're willing to invest days to get the most fundamental system up-and-running. None of the sexy software packages run on your exotic system. It's not nearly as comfortable as the commercially available alternatives.

And - what will be a trustworthy compiler? Is the backdoor already build into your hardware (which is most likely driven by US-designed chips…)

Yes - you can move away from *all* the comfortable network and cloud-based services. No Google or Bing searches, no tweets, no Facebook, no Dropbox, LinkedIn or Xing any longer.

Despite myself trying some of these steps - tragedy struck. We're lost our privacy.

Thanx, Ed, for making this clear.

20 July 2013

How to get a custom map onto your Garmin GPS device

This directions are for people using Garmin(™)GPS devices - but need special or customized maps on it.

Geocachers, bikers, hikers, mountaineers - read on.

I'll describe the following things:

  1. where to get a (free) map
  2. how to create a custom map
  3. how to get the map onto your Garmin device
  4. how to convince your Garmin device to use your new map


I'm not associated with Garmin Ltd. - and might not work with

Why should I want all this?

You want (custom, specialized) maps on your GPS device as you:
  • like outdoor activities in unknown locations,
  • own a Garmin device for GPS navigation,
  • sometimes need *current* and free maps

Where to get a (free) map

Of course the OpenStreepMap would be the first place to go, unfortunately it is quite clumsy to get their data transformed into something legibly by a Garmin device.

Their data is awesome - but other people thankfully solved the issue of transforming it to appropriate formats… (kudos to Lambertus Ijsselstein for his incredible work!)

How to create a custom map

Point your browser to garmin.openstreetmap.nl -
a free service from Lambertus.


You stick with the default "generic routable" selection but enable the "manual tile selection".

Now you can choose whatever locations you need on the map. In the example above, I selected three rectangles (called tiles in geo-map-speak) for Cyprus.

Click on the "Download map now" link! Your custom map will now be generated (in the background) for you - that may take up to 24h, depending on the load they currently have.

You need to enter an email address, so that they can send you a download link… They won't spam you!

How to get the map…

After a while you'll receive a friendly mail containing a download link. For Garmin devices, you only need to download a single (zipped) file:


It's called "osm_generig_gmapsupp.zip" - ignore the strange name. Download and unpack to a folder of your choice.

There will be one single file in this archive. "gmapsupp.img". I recommend to rename the (unpacked) file to something you can remember - in my example I called it "cyprus.img".

You're close - but not finished yet. Have your Garmin device ready?

… onto your Garmin device

Plugin your USB cable or otherwise connect your Garmin.
Usually it is shown as disk.

You need to respect the Garmin directory name - it's "Garmin" spelled with capital "G"…

Every "*.img" file you copy into this directory can be used as a map… Too bad your Garmin device does not pick those up automatically…


How to convince your Garmin device to use your new map

Turn on your Garmin device and navigate to the "Maps" screen (shown here for a GPSmap 62s). Select "Menu":


Select the "Setup Map" (on the screenshot above you see German version, "karte einrichten"):


You now need to select the appropriate maps:


Your Garmin now display a list of all available maps. Usually all the OpenStreetMap maps are called "OSM generic".
It's advisable to deselect many (or all) of the other maps - as Garmin gets confused if several maps cover the same GPS coordinates…

(just in case you're adventurous: You can patch the "img" file to contain a better name - fire up a (hex/binary) editor and just replace the characters "OSM generic routable" by a name of your choice")

26 June 2013

innoQ und arc42 machen (wieder) Unmögliches möglich

mit unserer coolen Sommer-Aktion, gegen Langeweile und schlechte Laune:
Wir lösen den Widerspruch zwischen "gedruckt" und "eBook" (zur CPSA-F Zertifizierung) auf!
Unser kleines eBook über die iSAQB Prüfung zum Certified Professional for Software Architecture (Foundation Level) gibt es ausschliesslich in digitaler Form - zumindest können Sie es nur so kaufen.
In Absprache mit dem Verlag und mit tatkräftiger Unterstützung von innoQ haben wir (Peter Hruschka und ich) eine limitierte Auflage gedruckt - die wir für kurze Zeit auf fcfs-Basis (first come first serve) gerne an Interessenten verschenken!

Update, Januar 2013: Die Aktion ist ausgelaufen - wir haben jetzt KEINE Exemplare mehr übrig, sorry!

Es erwartet Sie ein Überblick über den iSAQB Lehrplan, eine kurze Auffrischung der relevanten Themen, eine Vorstellung der Prüfungsmodalitäten sowie Hinweise zu den Arten von Prüfungsfragen.
Garantiert zu kurz, um non-geeks das Bestehen der Prüfung zu ermöglichen, aber als kompakte Wissensauffrischung für Softwareentwickler und -architekten hoffentlich hilfreich.
ISAQB Shortcut
Einfach eine Email an gernot.starke@innoq.com senden, als Promotion-Code "GS-Sommer-13" und die Postadresse nicht vergessen, an die wir Ihr persönliches Exemplar senden dürfen...

25 June 2013

Letter to Our Governments: Germany, GB and US are Surveillance States

Dear Mrs Merkel, Mr Cameron and Mr Obama,

in transforming your countries to surveillance states you let them win - those terrorists and scoundrels of all kinds. That surely was one of THEIR plans - planting seeds of mistrust in our western democratic societies.

Now you spy on your own fellow, consciously violate privacy and the secrecy of (formerly) private communication over public networks. Mrs Merkel called for similar surveillance in Germany...

You accuse those who informed the public and media about you spying on citizens - although they deserve to become public heroes (read what Bruce Schneier says about it)

I hereby declare my high esteem to those we nowadays call "whistleblowers", the Snowdens and Mannings, the heroes of our time. They sacrifice a life in freedom, so that all others know about Prism, Tempora and potentially others. 

Liberty of speech, thought and communication is one of the pillars of democracy - and I personally see those violated by YOU.

I signed every petition website I could get hold of in favor of Ed Snowden - and very much hope he never needs to regret what he did for us! Kudos to him and other truth-tellers - that's what whistleblowing is about!


Bruce Schneier impressively summarizes:

"You governments are putting your own self-interest ahead of the interests of the country. That needs to change!"

Just in case you ever considered calling me a friend - forget it. 


From today, I'll be actively sponsoring and using privacy networks like Tor. I will at least try to break out of surveillance!


deeply troubled,

Gernot Starke

30 May 2013

Patterns-kompakt, die Vierte...

Gerade frisch aus der Druckerpresse kommt die vierte Auflage von Patterns-kompakt, der kurzen und hoffentlich kurzweiligen Einführung in Entwurfsmuster.

Das Buch fasst die wichtigsten Entwurfsmuster zusammen, die Sie für Software-Entwicklung benötigen. Software-Entwickler, -Architekten und -Designer finden darin effektiv anwendbare Lösungen für tägliche Entwurfsprobleme. 

Neu zur vierten Auflage sind jede Menge Codebeispiele, die zum Experimentieren mit den Mustern einladen… siehe hier.

Mehr zum Inhalt, viele Extrakte und jede Menge zugehörigen Sourcecode finden Sie auf der Website zum Buch… (danke an Karl Eilebrecht, dem PK-Helden!)



Rein aus historischen Gründen hier mal die Evolution der Cover (links mit der ersten Auflage beginnend) - wobei wir uns für das Aussehen der ersten Auflage ja fast bei unseren Lesern entschuldigen müssen :-)

pk1-cover pk2-cover PK3-Cover


Übrigens hat auch der Verlag eine Evolution hinter sich - von Spektrum über Spektrum-Elsevier zu Springer zu Springer-Vieweg…. 

07 May 2013

a little proud...


673 Teilnehmer JAX 2013 2 

Es war schon sehr beeindruckend, vor dieser riesigen Kulisse sprechen zu dürfen - danke allen Teilnehmern!

(unabhängiger) Artikel über arc42-Einsatz

In der dotnetPRO erschien vor einiger Zeit "Nie wieder planlos" - ein ausführlicher Überblick zum arc42-Template und dessen Einsatz in der Praxis - aus der Feder von André Krämer.


Seit heute ist dieser kostenfrei als download erhältlich - dank einer Sondergenehmigung der dotnetPRO-Crew :-)



09 April 2013

arc42 now has open source repositories

At Bitbucket you now find our arc42.org open source code repositories. They are independent of the arc42 architecture template (will someday maybe serve as examples for the latter).
I just comitted two small utilities for Pdf manipulation (PdfStamper and PdfUtil) - both are not "finished" but working...
Pdfstamper logo
Issue trackers are live and actively monitored.

The third project, DupeDetect, handles duplicate entries in your geocaching logs… In case you don't know what that is, don't mind. Geocachers *will* know. Hopefully we make this available as a cloud-based service soon, parallel to the source code.
(did I ever mention that I absolutely *love* the Atlassian guys…)

Software Architecture "Summer" in Berlin

Summer-Summit in Berlin - or is it Summit-Summer?

I'm proud to be part of a new conference in Berlin, June 5.-7th 2013. A number of top-notch software architects (aahm - plus myself…)  present current topics in interactive sessions.

Simon Brown, Neal Ford, Phillip Ghadir,  Dr. Venkat Subramaniam, Stefan Tilkov and Vaughn Vernon should be reason enough to join...

 Topics include evaluation and estimation, concurrency, delivery, domain-driven-design and others - check the website for details

My topic will be software interfaces - you'll get examples of horrible, good and excellent interfaces, plus numerous practices and tips to improve your own interfaces…  Would be great to meet you in Berlin!


240x180 en 17525 v2

Postbank's neues Onlinebanking: Security-Desaster

Na, welch' eine Freude für Freunde von DoS-Angriffen:

Da führt die Postbank mit viel Aufwand ein neues Onlinebanking ein - und kehrt zur alten Kontonummer-PIN Authentication zurück...

Nach dreimaliger falscher Eingabe einer PIN wird das gesamte Konto für Onlinebanking gesperrt.


Schlecht für mich als Benutzer - weil jeder x-beliebige Angreifer meine Kontonummer natürlich auf jeglicher Geschäftskorrespondenz findet - und meine (online-) Transaktionen damit sehr einfach torpedieren kann.


Bislang konnte ich beim Online-Portal der Postbank einen (beliebig langen) kryptischen Usernamen vergeben, und ebenfalls ein beliebig langes Kennwort… 


Hat bei denen noch niemand was von IT-Security gehört?



Update Mai 2013: Heute verkündete eine Rundmail an Kontoinhaber der Postbank, dass es "zukünftig" eine erweiterte Anmeldung geben wird - bei dem ein selbst gewählter Benutzername plus Passwort die Anmeldung erlaubt. Leider bleibt die Kontonummer immer noch als paralleler Zugangsweg erhalten - also nur ein sehr kleines Trostpflaster :-(





20 March 2013

how simple things can go awfully wrong

You know programming languages? At least one or two?

A two-liner, without any regular expression, should not be a too-great adventure...

Try the following in your favorite language:

i = 1
i += ++i + ++i

A simple assignment to an integer variable, some forms of add-operators.

They're evil - believe me. Things go wrong from here:

Let's analyse the expression in a functional way:

  • With i set to 1, the first ++i should yield 2.
  • Calculate the two of them one-after-the other, the second one yields 3.
  • Calculate the two of them in parallel, both yield 2.

So - the result should be something between 5 and 6.

Let's try Ruby first:


Slightly off any sensible calculation. Consider it "failed".

Move on with Java:

java funny expression

Believe me, C# and JavaScript and some other JVM languages come to the same conclusion.

But we're not finished here. Fire up your command line and type:

awk 'BEGIN {i=1; i+= ++i + ++i; printf i}'

Puuh - yields 8. Eight. Seems a bit off for me, but awk might have reasons.

We'll check that with php in a second:




Eight again. So many commercial websites are build with php - and they all calculate like that? re-consider your e-commerce behaviour...

Now, if you happen to have one of those wonderful GNU-C compilers installed - try out the objective-C variant of this expression: You will see eight again. Two more than with Java.


Finally, the mother of all programming languages, the common ground of all platforms, the C programming language:

#include <stdio.h>
int main(int argc, const char* argv[]) {
int i = 1;
i += ++i + ++i;
printf("i+= ++i + ++i liefert %i\n", i);
return 0;
==> 9

I have to declare it the winner of this informal competition. At least numerically the winner: Nine. 9. Three times three.

Three times what Ruby calculates. 30% more than Java and C#. Btw, compiled with the same GNU compiler that found 8 to be the answer for Objective-C. 

 If you check that with Perl, fine: Nine again:

$i += ++$i + ++$i;
print "i = ".$i."\n";
print "\n\n";
==> 9

I personally stopped laughing here: If we stumble upon two-liners, what about real programs, with memory, sync/async, concurrency and UI issues? With changing requirements?


Eventually, thinking (!) about your software might help, so instead of "test driven" or "behavior driven" or "nerd driven", what about "thought driven development" (as Rich Hickey pointed out in his famous speech "Hammmock Driven Development"


As a sidenote: Cobol outputs 6. I did not find any solution less than 3, nor one greater than 9.

PS: Thanx to Franz Antesberger for this nice riddle!

19 March 2013

Herr Rösler und die Dummheit...

… sagte unser junger Herr Rösler und zZt Vizekanzler bezüglich der Diskussion um das Verbot
der rechtsradikalen NPD: Dummheit kann man nicht verbieten.

Für mich gehören die Unterstützung von Terroranschlägen, die Verbreitung rechtsradikaler
Gedanken und Gebräuche, Diffamierung und Bedrohung von Minderheiten und weitere NPD Untaten keinesfalls in die Kategorie Dummheiten, sondern Untragbarkeiten.

Und die müssen wir meiner Meinung nach verbieten - mit allen Mitteln unseres Rechtsstaates.

Dummheit hingegen sollten wir nach dem Motto shit happens tolerieren, aber bei Bedarf abwählen. Oder die Betroffenen sollten aus ihrer Dummheit lernen - aber das scheint in der Politik selten zu geschehen.

16 March 2013

Locking your Mac with YubiKey and TokenLock

Sometimes I need to securely "lock" my Mac at work - and one geeky way is the combination of a YubiKey (an awesome tiny USB crypto device) and TokenLock (a *very* useful Mac-OS utility).

These two allow for:

  • locking the Mac if the Yubikey is removed
  • unlocking it, if the Yubikey is inserted again

Configure Yubikey

Start the YubiKey personalisation tool and edit the following settings:


Now write that configuration to "configuration slot 2" of your Yubikey.

Configure TokenLock

Second, you need to configure TokenLock to accept the Yubikey only, if it has the correct serial number.

Enter the TokenLock settings dialog:


Great. You're nearly done, one little thing…

Make your Yubikey your primary USB device for TokenLock

Select the USB tab and make sure, your Yubikey is marked "Has serial number".

Select a USB Device.jpg

You're done!

Btw: The guys from Map-Pin software provide GREAT support for TokenLock - which can monitor
bluetooth devices to lock/unlock your Mac… give it a try :-)

18 February 2013

pragmatic Enterprise-Architect(™) template for arc42

I just released a slender version of the arc42 template in Enterprise-Architect(™) format.

Deliberately the template contains only four packages, although the full arc42 template contains several others:

SHORT arc42 EA template.jpg

Use it to model (construct, design or document) all structural aspects of your system, and use any other (text-oriented) tool for non-graphical information.

As with all arc42 artifacts, the template is absolutely free to use, no hidden fees or restrictions. It'd be nice though if you mentioned arc42...


Download the template (with a very brief documentation) here.


Even newcomers to Enterprise-Architect will be able to use the template within EA - nevertheless we provide a brief documentation for it within the arc42-confluence.


The template does contain a report generator, therefore it is currently not suited for complete software or system architecture documentation - just for the graphical information.


You are allowed to use this template in all situations you like – but we do not provide any (ANY!) kind of guarantee for it. It might crash your EA, or inflict your mind – we cannot possibly exclude such incidents. So please give us feedback, but please don’t blame us for any issues with EA, the template or your project.


Thanx to my colleagues from innoQ Deutschland for supporting this work, thanx to Axel-N for productive discussion about modeling in general and especially applying EA.

06 February 2013

Parallels, Windows, Enterprise-Architect and Retina

in principle, a great combo. With Win-7, Parallels works like a charm, nicely integrated with my Mac, no issues with the high Retina display resolution.

When I used EnterpriseArchitect for some UML modeling, I encountered serious display
issues: diagrams were suddenly scattered with overly large fonts and became utterly unreadable.

So back to virtual machine configuration: Shutdown the VM instance and open the Parallels configuration "graphics" tab. Choose "optimized for retina" mode, as shown below:


Not that difficult... boot Windows again.

Open the "display preferences" page and try the following screen resolution:

Windows Screen Resolution Config (Win 7).jpg

That completely solved the issue for me.

15 January 2013

Camp mit zwei Trainern

Vorsicht: Der nachfolgende Post enthält einen (kleinen) Anteil Eigenwerbung:

Für 2013 bieten mein geschätzter innoQ-Kollege Phillip Ghadir und ich einige interaktive Schulungen (a.k.a. Camps) zu Softwarearchitektur an, bei denen wir gleichzeitig unterrichten: Über die gesamten vier Tage werden wir beide immer dabeisein - um dem jeweils Anderen scham- und schonungslos ins Wort zu fallen und dessen Ausführungen durch unsere eigene Erfahrung zu ergänzen, abzurunden oder zu kontrastieren.

Wir sind der Meinung, dass die "War Stories", also die (anonymisierten) Berichte aus realen Projekten die wahre Würze der Schulungssuppe ausmachen - und dass wir wesentlichen Lerneffekt besser durch Beispiele denn durch theoretische Konzepte erreichen. Solche realen Erfahrungen können wir zu zweit intensiver und vielseitiger vermitteln, als das ein einzelner Trainer alleine vermag!

Für uns (und die Entwickler-Akademie als Veranstalter) bedeuten zwei Trainer erheblichen Mehraufwand - Koordination, Abstimmung, Vereinheitlichung der Unterlagen und so weiter... All das nehmen wir aber gerne in Kauf, weil wir (Phillip und ich) fundamental von dem Konzept "Ein Camp, zwei Trainer" überzeugt sind!

Vom 19.-22. Februar finden Sie uns in München, im Mai dann in Berlin. Sie können im Anschluss die iSAQB e.V. Zertifizierungsprüfung zum "Certified Professional for Software Architecture - Foundation Level" ablegen. Dafür (und noch wichtiger, für Ihr weiteres Leben als Softwarearchitekt) machen wir Sie fit - versprochen!

Apropos - das Konzept verfolgen Peter Hruschka und ich mit den arc42-Workshops "Mastering Software Architectures" schon seit einigen Jahren mit großem Erfolg.


Update (nach dem Workshop) - einige Stimmen von Teilnehmern, aus Kommentaren
in Phillip Ghadir's Blog.

28 November 2012

Beispiele für Qualitätsanforderungen

Ich habe begonnen, beispielhafte Qualitätsanforderungen an Software zu sammeln - und eine erste Version davon (als docx-Dokument) online gestellt.

Eingeteilt habe ich nach den Qualitätsmerkmalen:

  • Änderbarkeit

  • Benutzbarkeit

  • Effizienz (Performance)

  • Sicherheit

  • Skalierbarkeit

  • Zuverlässigkeit

  • Betreibbarkeit

  • Sonstige

Die Liste ist momentan ein Draft - enthält aber immerhin mal > 30 typische Szenarien. Mehr sind unterwegs...

Sie wird in naher Zukunft Bestandteil von arc42.

20 November 2012

arc42 Template available as confluence-space

Yesterday, motivated by a friendly client, I finally managed to export the English (EN) and German (DE) versions of the arc42 software architecture template directly from their confluence spaces (at confluence.arc42.org).

In case you're using the Atlassian Confluence Wiki in version 4.2.x, you may grap the zipped xml files from the arc42.org download section.

Experience reports are highly welcome :-)

Update Nov 25th 2012: The current arc42.org template has been exported with our production version (4.2.x). In 2013 we accidently have no capacity to upgrade our confluence instance to 4.3.x. We apologize - but we therefore cannot provide a template export for the confluence 4.3.x branch. Hopefully this issue will be solved in early 2013.

15 November 2012

Neue Bücher zur iSAQB Foundation-Level Zertifizierung

Mehrere gute Nachrichten für Interessenten am iSAQB Foundation-Level Zertifikat:

Im November 2012 erscheinen gleich zwei neue Bücher zum Thema:
(disclaimer: an beiden habe ich mitgeschrieben!)

  • Gemeinsam mit Peter Hruschka habe ich einen kleinen Wegweiser zur erfolgreichen Zertifizierungsprüfung geschrieben - der aktuell bei Entwickler.Press als E-Book erscheint. Der genaue Titel lautet: Zertifizierung für Softwarearchitekten - Ihr Weg zur iSAQB CPSA-F Prüfung. Inhaltlich stellen wir dort genau die Themen des Foundation-Level Lehrplans vor. Dieser shortcut ist eine Auffrischung für alle, die einen kompakten Überblick über die behandelten Themen und einen leicht lesbaren Einstieg suchen.
    (update, 19.Nov 2012: Hier gibt's die Kindle-Version.


  • In der Viererbande mit Mahbouba Gharbi, Arne Koschel und Andreas Rausch haben wir nach zwei Jahren Arbeit endlich das "Basiswissen für Softwarearchitekten fertiggestellt. Dieses Buch eignet sich prima als Prüfungsvorbereitung - aufgrund seiner Kürze mussten allerdings viele für die praktische Architekturarbeit relevante Themen aussen vorbleiben (aber dafür gibt's ja den praktischen Leitfaden für effektive Software-Architekturen)

Basiswissen für Softwarearchitekten

10 November 2012

Solution to "MacBook takes too long to wake up issue"


After I upgraded to Mac OS Mountain Lion: My MacBook suddenly took much longer to become operational again after I opened its lid...


In terminal or iTerm enter the following:

sudo pmset -a standbydelay 50000


This sets the delay from the default 4200 seconds up to 50.000 (more than 13 hours)

The OS has two different hibernation / sleep modes: one preserves the whole RAM content during sleep (which makes wakeup a breeze), the other stores RAM content on disk or SSD (which, in case of several GByte RAM, will need 10 secs and more to wake).


Thanx to some discussion on apple.stackexchange

In case you want to learn more about hibernation and power management - consult the reference documentation.

25 October 2012

VirtualBox: Cannot register (hdd/dvd ..) because UUID already exists

just in case you're using VirtualBox for virtualisation and you run into this issue
(might happen if you copy or clone your vm's):

Strategy is quite simple:

  1. Write down the problematic uuid!

  2. generate new uuid for the problematic device

  3. manually replace old uuid by new in vbox file

Now for the details:

1.) copy the problematic uuid from virtualbox error message

2.) Bradley Schacht published the first steps of a solution on his blog:

He wrote the solution for windows, in MacOS you have to cd into the Contents of the Virtualbox.app directory:


Now issue the magic command:

VBoxManage internalcommands sethduuid PathOfYourHD

  • On MacOS, watch for lower- and uppercase.

  • The PathOfYourHD should be your existing VDI-file.

Output of the vboxmanage tool should be:
UUID changed to: 3518e10a-64f2-405a-afa7-437643af08f4

3.) Open the corresponding vbox-file (which contains the xml-definition of your vm) in any decent text editor and search for the problematic uuid (for example HardDisk uuid="{3518e10a-64f2-405a-afa7-437643af08f4})

Manually change ALL occurances of the OLD uid to the newly generated one.

That's it.

24 September 2012

two reasons to run for the iPhone-5

my (old) iPhone 4 still works like a charm, battery life is ok, no scratches, reliable.

So - what reasons did I come up with to convince my wife (aka Ministress of Finance) that I really need the new model? None, obviously.

So I ordered it without any particular reason, signed up for somewhat cheaper monthly plan (save approx 5 Euro/month) and got the fancy gizmo on Friday, premier-day here in Germany.

After using it for two days now, I found two reasons for *really* loving it:

1.) the new form factor, its slender and lighter design feels perfect for me!

2.) the panorama camera - (available in options menu when taking a picture), automagically stitches together images to terrific results - without the slightest manual step required.

See this 180 degrees example, taken in our (small!) garden:

imho this is great - deformed perspective, but what do you expect from 180 degree images?

THIS has high addiction potential!

23 September 2012

screenshots with skitch - but beware of 2.0 version!

I'm very (!) fond of the free screenshot utility Skitch - it helps me to capture nearly everything, convenently annotate it with text and light graphic elements. See example below:

screenshots with skitch - but beware of 2.0 version!

Creating crosshair shots by hitting the hotkey is quick and easy. Uploading to Flickr or Evernote works great.

Now - what am I whining about: The just-released Version 2 of Skitch breaks nearly everything: It does not sit in the menubar any longer, hotkey doesn't work, upload is havoc.

Please- fellow Skitch users: help me to convince the skitch guys to give us the fancy features back…

16 August 2012

Architektur auf Tour

Ich bin sehr froh, bei der kleinen, aber feinen Jax-on-Tour 2012 mitwirken zu dürfen.
Die Veranstalter hat einen guten Themenmix und klasse Sprecher zusammengestellt, unter anderem Ted Neward, Stefan Tilkov, Wolfgang Keller, Phillip Ghadir und Matthias Bohlen… Erwarten Sie geballte Erfahrung und spannende Vorträge.

Disclaimer: Ich spreche auch…


05 June 2012

Architektur mit Nachdruck

hah - der Titel dieses Eintrags ist miss- bis unverständlich… in voller Absicht:

Es handelt sich um (schamlose) Eigenwerbung - nämlich für mein Buch "Effektive Software-Architekturen", das ja seit letztem Jahr in der fünften Auflage vorliegt.

Nun - diese Auflage ist praktisch ausverkauft, darum hat der Hanser-Verlag das Buch jetzt nachgedruckt (cool - second printing) - und dabei gleich einige Fehlerchen beseitigt, insbesondere im Index.

Es eignet sich hervorragend zur Vorbereitung auf die Zertifizierungsprüfung des iSAQB e.V. zum Certified Professional for Software Architecture (Foundation Level).


30 March 2012

Großartiges Beispiel für Architektur und ihre Dokumentation

Stefan Zörner hat seine Open-Source Schach-Engine DokChess bei Sourceforge veröffentlicht und die aus meiner Sicht beste Architekturdokumentation aller OpenSource Projekte überhaupt geschaffen - Chapeau! Er verwendet dazu übrigens arc42 - freiwillig!

(lang andauernder Beifall meinerseits…)

Und wo ich schon beim Lob bin: Sein Buch (in dem er unter anderem das coole DokChess-Beispiel erklärt) durfte ich schon vorab lesen und möchte es jedem Software-Architekten empfehlen!

29 March 2012

Subversion 1.7 centralized metadata format loosely resembles git's

so - when the subversion guys finally adopted the great idea of centralized metadata instead of the year-long .svn-hell… they came a great leap closer to the DVCS like git or mercurial.

Just in case you use Enterprise Architect for modeling purposes, make sure you update ALL of your subversion clients at once, otherwise EA will likely start screaming at you in full voice.

And try to append "git" to "subversion" and shorten the (spoken, not written) result to your favorite 4-letter word :-)

happy versioning (alas - I still use mercurial for my private and out-of-client stuff).

04 March 2012

Herr Wulff - Sie sind mir XXL-peinlich !

in der Regel verzichte ich in meinem IT-orientierten Blog ja auf politische Stellungnahmen - aber der aus meiner Sicht peinlichste Politiker der letzten Jahre lässt mir keine Ruhe.

Nach seiner peinlichen Ich-gebe-nur-zu-was-bereits-herausgekommen-ist Taktik, seiner krassen Bürger- und Menschenferne und seines an alte Adelszeiten erinnerndes Herrschaftsgehabe fordert (und erhält leider auch) er einen *Ehrensold*. Für welche Ehre denn? Die peinliche Ehre, der schlechteste, skandalöseste Präsident überhaupt gewesen zu sein? Welch eine peinliche Fehlbesetzung. Was für ein schlechter Witz der Politik.

Und nun, krasser kann's kaum kommen, fordert Herr bevorteile-mich-vor-allen-anderen-Wulff auch noch ein bezahltes Büro mit Angestellten auf Lebenszeit.

Ich gönne meinen Mitmenschen wirklich nichts Schlechtes. Herrn Wulff gönne ich weder seinen Sold noch sein Büro. Möge irgendwer gegen diese schreiende Ungerechtigkeit klagen - sie wird der ohnehin grassierenden Politikverdrossenheit Wasser auf die Mühlen sein.

Vielleicht sollten wir das Exil wieder einführen. Sibirien, jetzt frisch unter Putins Herrschaft, wäre ein schöner Ort für Herrn Wulff, finde ich. Da würde Herr Wulff mit seiner Erfahrung in Halbwahrheit, Verdrehung und Verblendung sicher gut ankommen.

25 February 2012

Artikel zu "Quality Driven Software Architecture"

Mein Artikel zu QDSA ist im Business&Technologie Magazin erschienen.

Demnächst gibt's den auch als pdf - bis dahin finden Sie einige der Kernthesen auch unter qdsa.org.

16 February 2012

Knigge für Softwarearchitekten...

ist erschienen!

Wir erläutern darin typische Verhaltensmuster von Softwarearchitekten, gute und schlechte. Sie finden Erfolgsmuster und erfahren Abhilfen gegen schlechte Architekturmanieren (Anti-Patterns).

Aus dem Inhalt:

Der VielsehendeDer Diktator
Strukturierte FaulheitEntwurf mit Scheuklappen
Blick in den RückspiegelNotationskrieger
Die JongleuseDer Perfektionist
Der VereinfachungskoboldDer Prozessprediger
Die LektorinHauptsache, es läuft
Ständig lernenToolistan
Der VermarkterDer Verschätzer

Gibt's bei Amazon und direkt beim Verlag (entwickler.press)

07 February 2012

Major Update von "Patterns kompakt"

Karl Eilebrecht hat mit heldenhaftem Einsatz unsere Website von "Patterns-kompakt" erweitert und grundsätzlich überarbeitet - sie lohnt einen Blick!

02 February 2012

Leseprobe von "Knigge für Softwarearchitekten"

Knigge für Softwarearchitekten - Leseprobe

Knigge für Softwarearchitekten: nette Ankündigung

Sebastian Burkart hat eine nette Ankündigung für unseren Knigge geschrieben

korrigiertes Stichwortverzeichnis für mein ESA-5 Buch

Für meine 5. Auflage von Effektive Software-Architekturen gibt's einen neuen, korrigierten Index als pdf-Download.

Mehrere Leser hatten sich berechtigt über Indexfehler in der gedruckten Fassung beschwert… mit dem pdf ist hoffentlich Abhilfe geschaffen. Danke an das Hanser-Team :-)

10 December 2011

Meine Autorenseite bei Amazon

Amazon hat meine Bücher auf dieser Seite zusammengefasst…

23 June 2011

Apple-TV: Set Favorite Radio Stations...

To set any internet radio station as favorite, just press the middle-button for a few seconds (see image below) while this station is playing... and a menu appears!

On the iPad Remote app it's even simpler - in the lower left corner you find a "favorite" button...


05 May 2011

Preisausschreiben (von der JAX 2011)

Auf der JAX 2011 habe ich folgendes "Preisausschreiben" ausgelobt:

  • Sie senden mir (an info@arc42.de) in 3-5 Sätzen Ihre Erfahrungen mit arc42

  • Bedingung: Wir dürfen diese Sätze (ganz oder teilweise) auf arc42.de zitieren.

  • Die ersten 10 20 Einsender erhalten einen coolen arc42-USB-Stick :-)

also - positive wie negative Kritik willkommen... danke für's mitmachen!

still in love with IntelliJ

I used their Easter-Sales offer (40% off regular prices) to upgrade my 9.03 Ultimate license
to the current 10.0x version, plus I took some time to play around with the updated

Usually I used plain-IDLE to experiment with simple Python scripts and classes - but
IntelliJ really makes a difference. For example, you can configure a missing docstring
to issue a warning (or hint, if you don't want to be offended...)

The editor feels just right and project support greatly benefits from its established

Having one single IDE for both Java (ok, and Grails, Groovy and Griffon) and Python is worth the few bucks you need to invest in the Ultimate license...

17 April 2011

Macht Dueck zum Kanzler - endlich!

Warum hat kaum ein Politiker oder Politikerin nur halb so viel Verstand und gute Ideen wie Gunther Dueck - Chief Scientist von IBM...

Er bringt unser Bildungsdilemma (oder soll ich -desaster schreiben?) auf den Punkt - her mit der Könnens-Gesellschaft und freiem Internet - mit Steinkohle und Auswendiglernen können unsere Kinder nichts mehr werden in der modernen Welt.

Schauen Sie mal rein - seine tolle Rede auf der re:publica. bei YouTube.

Find Stencils in OmniGraffle!

Did you note the cool new stencil-search in OmniGraffle 5:

Instead of restricting the search to the locally installed stencils, you can now search Graffletopia, the online stencil-collection.

Imho another proof that the OmniGuys are more than mere mortals!

Thanx, OmniGroup!

06 January 2011


Seit längerer Zeit haben wir mit dem Gedanken gespielt - jetzt endlich haben wir's
unter Dach und Fach: Seit Anfang Januar bin ich, begleitend zu meiner selbständigen Tätigkeit, zum innoQ-Fellow berufen worden.

Natürlich gab's seitens innoQ dazu eine Pressemitteilung:

Zum 1. Januar 2011 bekommt die innoQ prominente Verstärkung: Dr. Gernot Starke, renommierter Experte für das Thema Softwarearchitektur, ergänzt das Team in der Rolle eines "innoQ Fellow". Er unterstützt innoQ dabei in der strategische Entwicklung und stellt seine Expertise für gemeinsame Projekte zur Verfügung. Kunden können zukünftig aus einer Hand sowohl auf die persönlichen Expertise von Dr. Starke als auch auf das Know-How der anderen innoQ-Experten zurückgreifen.

Eine Verbindung zwischen Dr. Starke und innoQ gibt es schon lange: Neben der Zusammenarbeit in Kundenprojekten hat Dr. Starke zusammen mit innoQ Deutschland-Geschäftsführer Stefan Tilkov diverse Vorträge bei Konferenzen gehalten und das Buch "SOA-Expertenwissen" herausgegeben, an dem neben Gernot Starke und Stefan Tilkov auch diverse andere innoQ-Autoren beteiligt waren. Darüber hinaus sind Phillip Ghadir, Stefan Tilkov und Gernot Starke Gründungsmitglieder des iSAQB (International Software Architecture Qualification Board) und arbeiten dort gemeinsam an der Definition verbindlicher Standards zur Ausbildung von Software-Architekten mit.

03 December 2010

Werbung für die Werbung

Ich arbeite ja manchmal als Trainer für die Entwickler-Akademie, das nächste Mal im Februar 2011 in Köln ("Software Architecture Camp" mit iSAQB-Prüfung).

Nun haben die eine für meinen Geschmack sehr coole Anzeige für dieses Camp entworfen, die ich Ihnen gerne vorstelle (also Werbung für die Werbung).

Der jubelnde Mensch auf dem Gipfel vor farbenfrohem Himmel: So fühlen sich meine Kursteilnehmer, wenn Sie 'ne Übungsaufgabe gelöst haben :-)


06 November 2010

again, Lisp...

Although I'm currently not actively involved in anything close to Lisp, I try to follow every pair of round parenthesis I can find...

A very cool clip (and book)...

(I've not yet read the book, sigh, way too much {work} to do...)

14 October 2010

(Baum-)Klettern in der südlichen Türkei

Wer mal die Gelegenheit hat, in Side, Manavgat oder Sorgun Urlaub zu genießen, dem empfehle ich einen Abstecher in den wunderschönen Kletterpark am Stausee in Oymapinar (Nähe Manavgat).

Schön gelegen, interessante Parcours (für Kinder ab 1.20m Körpergröße schaffbar, für Erwachsene balancetechnisch teilweise anspruchsvoll!), technisch super-sicher gemacht.

Klettern in Manavgat am Oymapinar Stausee

Die Veranstalter fotografieren auf Wunsch - und brennen dann >200 (!!) Schnappschüsse auf CD - für einen ganz geringen Kostenbeitrag (bei uns 12€).

Insgesamt ein wunderschöner Ausflug - tolles Kontrastprogramm zum Strand!

10 August 2010

42 rules - even in climateprediction

I participate in a distributed climate prediction project
(using the cool BOINC software infrastructure) - and recently looked up my rank. The result astonished even me - a hardcore 42-enthusiast:


01 July 2010

Neue Kolumne im Javamagazin: Knigge....

Gemeinsam mit Peter Hruschka veröffentliche ich im Javamagazin
eine Kolumne über Verhaltensmuster von Softwarearchitekten.

Ihr Titel lautet "Knigge für Softwarearchitekten - Verhaltensmuster zwischen Vorbild und Desaster"

Netterweise steht die auf jaxenter online!

Die Folgen:

Folge 1a) Verhaltensspektrum zwischen Sonne und Finsternis

Folge 1b) Der Proaktive

Folge 2) Der Elfenbeinturm

Folge 3) Der Vielsehende

Folge 4) Strukturierte Faulheit

Folge 5) Der Diktator

Folge 6) Blick in den Rückspiegel

Folge 7) Anti-Muster: Zuviel des Guten

Folge 8) Der Multilinguist

Folge 9) Der Notationskrieger

Folge 10) Der Code-Held

Folge 11) Die Jongleuse

Folge 12) Der Vereinfachungskobold

Folge 13) Der Perfektionist

14) Der technische Risikomanager

Und damit wäre DIESE Staffel erstmal beendet. Ab Oktober 2011 geht's weiter - also lesen Sie fleissig das JavaMagazin, denn dort werden die weiteren Folgen zuerst veröffentlicht.

31 May 2010

Dropbox and Cactuses or Cacti?

I really like Dropbox and their fantastic sync service - a serious and valuable software, highly reliable, stable and efficient.

Once in a while I even read some of their forum discussions - you get quick responses and no-nonsense discussions.

But today they (aahm - some users) talked about Caci or Cactuses. Yes - the plants with spikes or stings. Made me laugh...

24 May 2010

Glaskugel: Architektur in 2020

Die Zeitschrift dotnetpro hat mich zur Zukunft von Software-Architekten befragt - und das Ergebnis im Rahmen eines gemeinsamen Glaskugel Artikels veröffentlicht (in dem auch noch Stefan Edlich und Michael Wiedeking ihre Meinungen zu Non-SQL beziehungsweise Programmiersprachen darlegen).

In Kurzform meine Thesen für die Zukunft von Software-Architekten:

  1. Standardisierung von Aufgaben und Ausbildung: Hier gibt es vielversprechende Ansätze (beispielsweise iSAQB und der sehr enterprise-lastige TOGAF).

  2. Anforderungsanalyse wird von Software-Architekten wahrgenommen. Im Bauwesen und großen Teilen der Ingenieurdisziplinen gibt es kein Requirements Engineering, sondern Konstrukteure. Das wird bei Software zukünftig ebenfalls so sein!

  3. Projektmanager werden zu organisatorischen Erfüllungsgehilfen von Software-Architekten. Wer kennt schon den Projektleiter des genialen Kuppelbaus auf dem Berliner Reichstages? Niemand. Die meisten haben von Sir Norman Foster, dem Architekten, aber schon gehört!

  4. Nichtfunktionale Merkmale als wesentliches Erfolgskriterium. Von der Einstellung Hauptsache es funktioniert... müssen wir uns ganz schnell verabschieden. Es geht um Qualität und Langlebigkeit!

  5. Um Größenordnungen verbesserte und komplexere Werkzeuge. Nur noch wenige Eingeweihte werden die Interna zukünftiger Entwicklungswerkzeuge verstehen. Sie werden ungeheuer viele Details vor uns Normalbürgern wegabstrahieren - einen Vorgeschmack gibt das für Kinder entwickelte Programmiertool Scratch - das beispielsweise das komplexe Thema Threading verbirgt - und zwar perfekt!

Als Software-Architekten haben wir eine wirklich spannende Zukunft vor uns!

17 May 2010

Patterns-kompakt: Neue Website...

Zu Karl Eilebrechts und meinem Buch (besser: Büchlein) Patterns-kompakt hat Karl in intensiver Fleissarbeit die Website aktualisiert und für neue Probekapitel gesorgt - danke!

iSAQB Certified Architecture Professional Training...

Das nächste öffentliche Software Architecture Bootcamp, mit
der Möglichkeit zur Zertifizierungsprüfung zum iSAQB-CAP
findet vom 20.-23. September 2010 in Mainz statt...

Es gibt nur 12 Plätze - prima für intensive Arbeit, viele praktische Übungen und Erfahrungsaustausch.

Nähere Infos bei der Entwickler-Akademie!

Feindbild Realität: Was Entwickler nicht gerne hören...

In diesem Vortrag habe ich einiges Material von Wolfgang Keller verarbeitet und um freche Thesen zur aktuellen und zukünftigen Tätigkeit von Software-Entwicklern ergänzt... Wolfgang hat netterweise eine pdf-Version davon online gestellt, danke!

03 May 2010

Firefox 3.6: Buildin Tab-Preview

Like ALT-TAB let's you quickly switch between your running apps, a pretty cool Firefox (V 3.6) feature enables tab-switching with preview!

I tend to keep my Firefox running for days without restarting, collecting numerous tabs...

Then I found this short post describing the setup - quite simple:

Just enter
in the address line and change two settings:


With Firefox 3.6.3 I only needed to toggle the first of these,
the second changed automatically...

Thanx, Timbob!

24 March 2010

ANTLR plugin on IntelliJ abandoned

too bad - one more plugin that doesn't work properly with my beloved IntelliJ: ANTLR works grammar development.

I inquired with Terence Parr, the definitive source for all ANTLR infos - and he admitted that the ANTLR plugin for IntelliJ has been abandoned, as it was "too difficult to get it to run properly".

Rescue is on its way - ANTLRv3IDE for Eclipse (3.5 onwards). Great plugin, great docu.

Math on Macs as it should be...

great idea - implement a calculator without those ugly buttons:


I bought the iPhone version - best calculating experience
since the old HP RPN times. Enter your queries in the left pane,
immediately see your results on the right.

UI designers - take a deep breath and a good look! Just in case you care: Mac OS only.

Update (March 25th): The guys from SpeedCrunch notified me of their
(free and open source) alternative, running on a plethora of platforms (aah, it's Qt).

Thanx, I'm impressed. It makes me double my effort to find myself some free time to fiddle around with Qt...

06 March 2010

Readable websites - no ads, no junk

The German magazin "Die Zeit" featured a very useful bookmarklet
in their March 4th edition, from lab.arc90.com, called "readability".

Try for yourself - works like a charm!

Watch the 1:13min video...

(btw: it's open source, code available here)

10 January 2010

[OOP 2010] Und wieder: IT'ler lernen kommunizieren...

Wie bereits im vergangenen Jahr findet auch auf der OOP 2010 wieder mal
ein echtes Highlight für die Kommunikationsfähigkeit von IT'lern statt:

Alice Heiliger, Rody Shaw und Andreas Goerlich präsentieren ihren
ganztägigen Workshop:

Wie dirigiere ich (m)ein Team?

Am Montag den 25. Januar erleben, lernen und üben Sie dabei Teamdynamik und Führung "live". Die Trainer arbeiten mit professionellen Musikern, und Sie schlüpfen in die Dirigentenrolle.

Aus dieser Analogie (Dirigent = Team-/Projektleiter) leiten die drei
wertvolle und zeitlose Tipps und Praktiken für den täglichen Umgang
von Menschen miteinander ab - interessant, spannend und für uns IT'ler
sehr nützlich.

Ich durfte diesen Workshop in einer Kurzform im letzten Jahr genießen - und möchte ihn wirklich weiterempfehlen!!

15 October 2009

See Climate Change happening...

On the great TED conference, I saw this video on retreating ice glaciers... what are we humans doing to Mother Earth?

The photographer, James Balog, has been working for ExtremeIceSurvey. Seeing is believing...

Very impressive, well worth watching.

03 October 2009

improve iTunes metadata...

I always tried (manually..) to keep my iTunes library organized, including cover images, album names and genres...

Via lifehacker I recently found Pollux - a neat and free (!) application which analyses given songs and fetches all required metadata from the internet. Version 1.1.2 did not work great, since the new version 1.1.5 it's perfect...

If you work on a mac, go get it here... (don't forget to donate if you like it!)

Update (Oct 2009): Pollux has been such an overhelming success that they cannot handle requests any longer... hope they'll be back online soon!)

Update again (March-Mai 2010): They are live again - better than ever. Great tool, way better than all the other crap I tested...

old - but still great'n true: How NOT to wrap your product...

I've seen it in different flavors - but this video made me really laugh:

(if the embedded video does not work, try the URL here!)

13 September 2009

Airplane Security and Explosives...

BBC had a brief coverage on the effect of a small amount of liquid explosive on a commercial airplane (found via Bruce Schneier).

After viewing that, I'm pretty happy the EU and other countries do not allow unidentified liquids on board....

Geniales Rockerlebnis: Queen Kings

Im malerisch gelegenen Waldschwimmbad (!) hatten wir ein Konzerterlebnis der besonderen Art: The Queen Kings rockten unglaublich nahe am genialen Original, frisch und musikalisch aufregend gut. Knapp drei Stunden Musik für 16 Euro Eintrittspreis (und Kinder hatten freien EIntritt) - das nenn' ich value-for-money.

Selten habe ich ein Bass-Solo derart genossen wie die kurzweilige Darbietung von Rolf Sander, der nahtlos Passagen von Smoke-on-the-Water in sein Cover von Another-one-bites-the-Dust: Umwerfend, Kompliment!

Die Stimmen von Mirko und der Backstage-Dame Susann gehen unter die Haut,
die Gitarrensoli klingen meisterlich, und der Schlagzeugpart von Matti Schmidt war begeisternd gut, ein instesamt überzeugendes Erlebnis.

Wir gehen wieder hin - keine Frage!

07 September 2009

"Escheresque" 404...

I admire the folks from Dropbox for their unobtrusive, reliable, high-performance and well-supported service...

While researching some dict.cc updates for my MacBook, I found a link
to the Dropbox-404-Not-Found-Site :-)

Well done...

02 September 2009

I stopped using Eclipse...

Ever had hassle with your numerous Eclipse plugins? With update-manager complaining about missing dependencies, which nobody ever could resolve?

With re-installing your (free) development environment every now and then?

After giving the latest Eclipse ("Galileo") a try, I just dumped it: After configuring Spring, Scala, webservice, subversion and a few other plugins, the whole app did not even bother to start...

Having been Eclipse user for several years, I am really grateful for their contribution to (Java) software development. But it has become an overly complex monster in my (humble) opinion.

I lighthearted moved over to IntelliJ-IDEA - their slogan "develop with pleasure" became true within the first hour of using IDEA (I tried both 8.1.3 and their early-access version 9). Grails and Groovy support is excellent, Scala plugin working fine, subversion support the best I ever had, even Clojure working (ok - that one can definitely be improved, but true lisp programmers should stick to Emacs)

Proud user ofThe best Java IDE

die "Vierte"...


Gestern ist bei Hanser die vierte Auflage meines Buches "Effektive Software-Architekturen" erschienen. Die aktuelle Version hat um 30 Seiten auf 435 Seiten zugelegt.

Darin finden Sie jetzt über 50 Seiten Beispielarchitekturen (ich beschreibe ein System zur Datenmigration und eine CRM-Produktfamilie, beides real existierende Systeme). Dieses Kapitel können Sie beim Verlag kostenfrei herunterladen, als Appetithappen...

In einem weiteren neuen Kapitel erläutere ich den standardisierten Lehrplan für Software-Architekten des ISAQB in Kurzform.

Weitere Neuerungen finden sich under-the-cover. In praktisch allen Kapiteln habe ich aufgeräumt, korrigiert und aktualisiert.

Falls Ihnen Fehler, Versäumnisse oder Ungereimtheiten auffallen, freue ich mich über Ihre Rückmeldung!

26 August 2009


My favorite technical podcast, Security Now by Steve Gibson, recently had an episode titled Vitamin-D.

At first I expected a story on some clever new computer virus or one of his precise wrapups of some-clever-new-technology.

But this time Steve went for something completely different: Health. Human health - which is something most of us should be concerned about.

He presented some interesting research results about vitamin-D, showing a significant correlation between Vitamin-D levels and health. His short summary - which he proves : Vitamin D promotes health.

I followed a few of his links, bought and read a (German) book - and now
I'm pretty convinced Steve has a point!

09 July 2009

Zehnkämpfer der IT...

Softwarearchitekten tragen - wenn sie ihre Aufgabe ernst nehmen - eine Menge Verantwortung im Projekt
und benötigen dazu eine Menge an Fähigkeiten. Lesen Sie den Artikel Zehnkämpfer der IT, den Peter Hruschka und ich gemeinsam geschrieben haben.

(Update September 2010: Link aktualisiert!)

27 June 2009

Kandidat für "Nutzloseste Website"...

Ich spende seit einigen für das Rote Kreuz Blut - und bin immer wieder
positiv von der Motivation der vielen ehrenamtlichen Mitarbeiter
dieser Organisation überrascht. Blutspenden hilft, Leben zu retten. Eine gute Sache also...

 blutspender.net - die DRK Blutspender-Community

Nun aber hat die Marketing-Abteilung des DRK (Deutsches Rotes Kreuz) aus meiner Sicht eine der nutzlosesten Websites der letzten Monate gebaut: Eine Online-Community für Blutspender... Wer soll die denn bitte nutzen? Aus der Werbung für diese Site:

  • "Lege deine eigenen Fotoalben an" (ok - höflicher wäre es, "Deine" zu schreiben). Schon was von flickr gehört? Oder Facebook? MySpace? Die können auch Fotoalben. Und sie haben massig Besucher...
  • "Verabrede dich online mit anderen Spendern". Toll. Wozu denn das? Ist das "Dating für Single-Blutspender"?
  • "Verwalte Deine Termine einfach online im Kalender": hust hust... auch das gibt's bereits im Dutzend - und zwar in ziemlich cool.

    Meiner Meinung nach hätte das DRK das (wahrscheinlich viele) Geld für diese Community-Website besser in Informationsflyer für Schüler und Studenten gesteckt... die durch die tausendunderste Möchtegern-Community mitnichten zu überzeugten Blutspendern werden. Es aber durch vernünftige Information werden könnten.

    Also, DRK: Entsorge den oder die Berater, die diesen Unfug empfohlen haben. Und informiere lieber - statt ohnehin vorhandene Services zweitklassig zu kopieren. Schade um das Geld!

    Ich komme übrigens weiterhin Blut spenden :-)