Showing posts with label 42. Show all posts
Showing posts with label 42. Show all posts

07 May 2013

(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

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:

ruby-fails

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:

 

NewImage

 

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:

#!/usr/bin/perl
$i=1;
$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!

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


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

Documentation


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.

Restrictions


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.


Disclaimer:


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


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.

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.

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:

/Applications/VirtualBox.app/Contents/MacOS


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.





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!



17 April 2011

Find Stencils in OmniGraffle!

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


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!

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:

climaprediction.net.august.2010-1