Aug 102017
 10th August 2017  Posted by at 7:51 pm No Responses »

Another day, another “proposal” from a training organisation. 🙄

Over the years I’ve received quite a few “proposals” relating to Archi. They’re usually some variant of:

  • Hey Phil, why don’t you advertise my (money-making) site for free, and I’ll promote Archi!
  • Hey Phil, we use Archi to make loads of money training people in ArchiMate and have come to rely on it. We’d love to donate to Archi but….[fill in crummy reason here] and, by the way, could you just add this feature?
  • Hey Phil, when are you releasing the next version of Archi so we can continue to make money off the back of it? We’d love to donate to Archi but….[fill in another crummy reason here]
  • Hey Phil, why don’t you…
  • Etc, etc, etc.

Well, guess what? I’ve got my own proposal for you:

  • Why don’t I put the whole lot of you out of business by providing our own online training? 🙂

Oh, and another thing. ArchiMate training is way over-priced. I consider that a bug that needs to be fixed. And I already have a fix for it.

Aug 012017
 1st August 2017  Posted by at 8:18 pm Comments Off on Executable Standards

This post follows on from my previous post where I said:

Overpriced “enterprise” software that can only be accessed from behind a paywall may as well not exist.

I want to talk about the concept of “Executable Standards”, something that the curators of ArchiMate are keen to promote.

The difference between a “Paper Standard” and an “Executable Standard” is probably obvious – it’s the difference between an open standard existing in theory and it manifesting in practice. I can easily give you an example of a Paper Standard – IMS Learning Design. All bark and no bite. No one implemented it properly and now it’s dead.

But surely the same is not true of the ArchiMate standard? Well, yes and no. Let’s state the following maxim:

If an Open Standard does not manifest in an Open Implementation it is not an Executable Standard.

And furthermore:

Archi is the manifestation of the Open Implementation of ArchiMate.


Archi has made ArchiMate an Executable Standard

Now, this is fortunate. But if Archi had not come about, we might be in a situation where ArchiMate was only implemented by the members of The Cartel, resulting in closed, overly expensive, proprietary software which, in turn, may have eventually killed off the standard or, at least, relegated it to a niche market. In other words, not an Executable Standard, as it is defined above. In fact, The Cartel would have preferred that ArchiMate had remained a niche standard implemented only by them. In my personal experience, The Cartel have demonstrated an alarming ignorance of, and utter contempt for, open source. Readers might consider why they have little or no interest in the ArchiMate Open Exchange Format (the clue is in the words “open” and “exchange”).

But Archi, being free and open source, has provided the Executable Standard that may otherwise have not existed. And this is why an Open Implementation such as Archi requires, let’s call it, “Executable Support”.

Jul 302017
 30th July 2017  Posted by at 8:14 pm Comments Off on The Demise of Enterprise Tooling

I was reading this post on Quora, “Why did Borland fail” again today and re-thinking the whole Borland Business. The post rightly asserts that Borland failed because they tried to appeal to the “Enterprise” market instead of sticking with the successful market that they were catering to at the time (late 1990s, early 2000s).

The company was founded on the idea of making mass-market software – products that can be used by a large number of people in a variety of different scenarios, and at reasonable prices.


In the height of the enterprise transformation, I asked Del Yocam, one of many interim CEOs after Kahn, “Are you saying you want to trade a million loyal $100 customers for a hundred $1 million customers?”  Yocam replied without hesitation “Absolutely.”

I agree, because I was there at the time and I was one of Borland’s customers. I was using Borland’s Turbo C Compiler in the early 1990s and then, when I got into Java a bit later, I used Borland JBuilder. Yes, I was a big Borland fanboi. I loved Borland products, they were reasonably priced, well-written, and accessible. And then Borland fucked up.

The executive team decided to take a talented development team with lots of experience building innovative consumer products and retask them to build enterprise software.

From my perspective, they blew me out. I was paying a reasonable and acceptable price for a very nice product (JBuilder) and overnight I was no longer a developer that they wanted. They wanted to cater to big companies who had $$$ to waste on bloated “Enterprise” subscription models. I could no longer afford to continue with their products, nor did I want to since the smell of phoney corporate bullshit became too strong.

I’m not sure if it was around 2002 or 2003 that I discovered Eclipse. What I do remember was that it was (a) free, (b) open source, and (c) intriguing. The Eclipse IDE at that time had a quite basic feature set, at least compared with JBuilder, but I felt that it had potential and, more importantly, I felt welcome. I was no longer a JBuilder customer.

Borland had, at that time, a newsgroup of which I was a member. I wrote a message on the newsgroup, asking what people thought about Eclipse and whether Borland saw this as a threat. A Borland employee replied to the effect that no, they didn’t see Eclipse as a threat, and dismissed my idea and Eclipse itself disparagingly.

Borland are now dead.

What has this got to do with Archi?

Quite simply, I hate corporate bullshit and bloated software that purports to implement open standards and that is not open itself.


Overpriced “enterprise” software that can only be accessed from behind a paywall may as well not exist.

This is my own personal driver, I guess – to produce open, elegant, non bloated software that users want and can use. No phoney “sign up here for our white paper” lies, no press-ganging into expensive subscription models, no vendor lock-in, no crappy proprietary data formats (why do you think The Cartel so vehemently oppose the ArchiMate Exchange Format?). Just open, accessible software. I like to believe that Archi is on the way to fulfilling that goal. It’s still relatively early days but, with an average of 1,000 downloads of Archi every week, I think we’re getting there.

I look forward to the day when this bogus “enterprise” software model goes the way of the dinosaur Borland.

Jul 282017
 28th July 2017  Posted by at 10:51 am 3 Responses »

As I outlined in the Archi Roadmap, one of the things I’m working on is the Archi Command Line Interface (ACLI). This has been requested by users for some time, it’s just that I never got around to figuring out a good way to implement it. I’ve now got the bare bones of it coded.

Here’s how it will work. You’ll be able to invoke and launch Archi (probably installed on a server) in “headless” mode via a command line with various aguments to perform certain tasks. For example, to load a *.archimate file and generate a HTML report in a given folder:

Archi -consoleLog -console -nosplash -application -HTMLReport_InputFile "~/pathtofile/test.archimate" -HTMLReport_OutputFolder "~/ouputfolder"

So this could be part of a bigger batch job triggered by a certain action hosted on a server.

I’m also working on another “Acling” that can be invoked whenever a new version of an Archi model is published using the Archi Collaboration plug-in. This can be triggered from a git hook so that the repository is then cloned or pulled, the model assembled and loaded into Archi, and a new report generated and uploaded to a given location.

How does this work under the hood?

The command line launches a new application,, which, in turn, hands over to a controller class, the CentralScrutinizer. This avoids loading the UI and other bloat. From here the CentralScrutinizer dispatches the command line arguments to any registered command line providers who can then scan the list of arguments for anything of interest and act accordingly.

If you have any use cases for the ACLI that you would like to see, leave them in the comments below.

Jul 262017
 26th July 2017  Posted by at 11:03 am Comments Off on The Software That Dare Not Speak Its Name

Since The Cartel threw their toys out of the pram, and started turning the screws and threatening The Organ Grinder, I notice that TOG are not allowed to mention the dreaded name “Archi” on Twitter and suchlike. So, to help them out, I had the great idea of dropping the name “Archi” and just using the logo , you know like Prince did with his symbol . But Prince grew tired of that and he eventually dropped it and adopted the moniker, “The Artist Formerly Known as Prince”. But that was a mouthful, so it was reduced simply to “The Artist”. And then he probably thought “screw this” and reverted back to “Prince” again.

So maybe I should rename Archi to “The Software That Dare Not Speak Its Name”, or “TSTDNSIN” to keep things simple? Suggestions in the box below, please.

Jul 252017
 25th July 2017  Posted by at 3:09 pm Comments Off on Faster load times – OMG!

With two lines of code I think I’ve improved Archi model load times by about 4000%.

Some users had been complaining of very long load times of several minutes but I’d always assumed that the slow load speed was due to EMF taking its sweet time to load a monolithic XML file, and had resigned myself to the notion that this doesn’t scale with large models. I was then planning on making deep changes to the persistence format to save and load multiple XML files and load them on demand.

Then, while testing the new repository plugin using JB’s “grafico” format, we noticed that large models loaded very quickly. The grafico format uses multiple XML files for each object. I started to think…

So I Googled “EMF slow load” and found this:


So I added:

resource.getDefaultLoadOptions().put(XMLResource.OPTION_DEFER_IDREF_RESOLUTION, Boolean.TRUE);
resource.setIntrinsicIDToEObjectMap(new HashMap());

and made some adjustments elsewhere and bingo!

Now, the thing is, I want to know that if storing the IDs in a separate HashMap has any side effects. So far I don’t think it has, because the Resource is discarded once the model is loaded.

User feedback is encouraging – 17 minutes reduced to 13 seconds.


Jul 242017
 24th July 2017  Posted by at 8:55 pm Comments Off on Last entry was 6 years ago…

Er…the last entry in this dev log was 6 years ago. OK, a lot happened in that time. 😉

I’ll update with some new stuff…

May 162011
 16th May 2011  Posted by at 1:56 pm Comments Off on Business Model Canvas

Added a basic implementation of the Business Model Canvas to Archi. Not sure if this is a good idea or what. An experiment.

May 052011
 5th May 2011  Posted by at 7:17 pm Comments Off on Archi 1.7 Released

Yesterday the cygnets hatched in the nest by the boating pond in the village. I was there to welcome some of them to this world:

An auspicious sign, so Archi 1.7 final was released today. There wasn’t much feedback regarding bugs and any other issues on the forum for the beta versions released over the last two weeks so I went ahead and pushed it out. If any bugs are found now I’ll release a maintenance build, 1.7.1.

But also over the last week or so I’ve been adding new features for version 1.8, due out this summer (probably July). Using Git makes this easy – adding topic branches and then merging (actually cherry-picking) the new features. I added the biggest and main feature this last weekend – allow multiple instances of the same element in a View. This has plagued me since the early versions of Archi. I deliberately chose not to implement this right from the start as I felt that it would complicate things. I came to regret this decision as users found that they needed to reference the same element more than once in a View if the diagram was perhaps large and the element needed to be placed somewhere convenient rather than sprawling connections across to reach it.

And of course this implies circular connections because if you allow element A to be added to a view twice then you can draw a relationship as A <—–> A1, so why not add it once and show the connection as circular? So that was added as well.

It’s a relief to add this now at the beginning of this development cycle and get it out of the way so I can focus on more interesting features, such as transforming a Sketch view to an ArchiMate view. I’ve started work on this…

Apr 272011
 27th April 2011  Posted by at 11:49 pm Comments Off on Setting up Linux and VirtualBox

I gave Archi on Linux some love this week. This involved de-commissioning my VM installation of Ubuntu 10.10 under VMWare Fusion on my MacBook and instead installing VirtualBox and Ubuntu Natty Narwhal (11.04) on my Windows machine (which works quite nicely). This makes it easier to access and flip between Linux and my main Windows development environment. Guess what? The Hints View on Archi doesn’t work. It uses the native Browser component and the very boring reason is that this requires xulrunner-1.9.2 to work properly. See here. Why should the user (or indeed, I) have to care about this stuff? Why can’t it just work? This is the never-ending story of cross-platform development…

…oh and Ubuntu Natty Narwhal fell out of the Ugly Tree big time. When will Linux developers wake up to to the real world and realise that a god-forsaken UI like Unity or Gnome won’t cut it in 2011. It’s not 1981 anymore…