Eclipse Modeling Day

29. October, 2010
Figure 4-3: Data Modelling Today

Image via Wikipedia

Yesterday was Eclipse Modeling Day here in Zürich. There were a couple of talks from people who were using modeling for projects and talks from project leaders of modeling projects like EMF and CDO.

Eclipse Modeling Platform for Enterprise Modeling

If you’ve used the Eclipse modeling projects, you’ll know the pain: Where to start? Which project is worth to spend time with? Caveats? Things like that. It seems that’s not a superficial problem. Eclipse Modeling is a big, unsolved jigsaw puzzle. The new project “Eclipse Modeling Platform” sets out to close the major gaps in the next two years. On the road map are things like authentication, large scale models, comparing models, etc.

For me, the list of topics looked more like an MBA’s wish-list than something that will make life easier for software developers. Their standpoint was that the funders call the shots. My standpoint is that the we need tools to help us solve the basic issues like good editors for (meta-)models and a useful debugging framework for code generators.

Interesting projects: Sphinx and Papyrus.

User Story: Models as First Class Citizens in the Enterprise

Since many people didn’t seem to be aware that modeling can do, Robert Blust (UBS AG) showed an example. Like most banks, the UBS has tons of legacy code. And tons of rules. Rules like: Any application A must access data of another application B via a well-defined interface. Their product would collect a couple of gigabytes of data from old COBOL code and use that to determine dependencies (like the DB tables it uses).

The next step would be to define which tables belong to which application and the end result is an application which can show and track you rule violations. Or which can show a Java developer which tables he must care for if he has to replace an old COBOL application.

There was the question of authentication: Who can see what of the model? This is going to be some work to solve in a way that it’s still manageable. For example, a part of the model could be accessible via a roles-based model. A software developer should be able to see all the data which is relevant to his project. But what about bug reports? Should a reporter be allowed to see all of them? What about the security related ones?

If we go to fraud tracking, individual instances in the model might be visible to just a very few people. So authentication is something which needs to scale extremely well. It must be as coarse of fine-grained as needed, sometimes the whole range in a single model.

Eclipse Modeling Framework for Data Modeling

Ed Merks introduced EMF. Not much new here for me. I tried to talk to him during the coffee break but he was occupied by Benjamin Ginsberg. Benjamin was interested to get a first rough view on modeling. Apparently, I made some impression on him, because he came back later to see me.

Textual Modeling with Xtext

Sven Efftinge showed some magic using Xtext: He had his meta-model open in two editors, a textual and a graphical one. When he changed something in the graphical view, it would show up in the text editor after save. Nice. I couldn’t ask him how much code it took to implement this.

Under the hood, Xtext uses Guice for dependency injection.

Graphical Modeling with Graphiti

Michael Wenz from SAP showcased Graphiti. It’s a graphical editor framework for models like GMF but I guess there is a reason why SAP invented the wheel again. Several people at the event mentioned GMF unfavorably. I’m not sure why that is but I remember that EMF generated huge, non-reusable blobs of Java code when I asked it to generate an editor for my models. Ed wasn’t exactly excited when I asked to change that.

Graphiti itself looks really promising. The current 0.8 is pretty stable and has a graphical editor for JPA models which allow to define relations between instances via drag-and-drop. No more wondering which side is the “opposite.” It also creates all the fields, gives them the right types, etc. From the back of the room, it looked like a great time-saver.

User Story: The Usage of Models in an Embedded Automotive IDE

A guy from Bosch showed some real-life problems with modeling, especially with performance. They have huge models. Since they didn’t look at CDO, their editors had to load the whole model into RAM. Since Java can only allocate 1.5GB of RAM on a 32-bit hardware, they are at the limit of what they can handle (some projects have 400MB sources).

It’s a good example how an existing technology could have made their lives easier if they only knew about it. Or maybe EMF is too simple a solution (as in “A scientific theory should be as simple as possible, but no simpler.” — AlbertEinstein).

Modeling Repository with CDO

Eike Stepper was glad, though. It gave him a perfect opportunity to present CDO which solves exactly this problem. CDO connects a client to a repository server. Any change to the model in the client is sent to the server, applied and then confirmed for all connected clients. So things like scalability, remote access and multi-client support come for free.

Over the years, CDO has collected a big number of connection modes like replication and an off-line mode. They even solve problems like processing lists with millions of elements. Promising.

One problem Eike mentioned are the default EMF editors. Not reusable, not exactly user-friendly. Since that didn’t change for the last four years, it’s probably something the modeling community doesn’t deem “important.” For some people, XML is apparently good enough.

Project Dawn is trying to improve the situation.

User Story: Successful Use of MDSD in the Energy Industry

RWE (one of the largest European energy companies) showed how they used model driven software development (MDSD) to create software to automatically handle all the use cases of their energy network. He stressed the fact that without strict rules and their application, MDSD will fail just like any other methodology. Do I hear moaning out of the agile corner? 😉

Anyway. My impression was that these guys don’t come up with stup…great new ideas every five minutes and expect that they are already implemented. Delivering electricity isn’t something that you entrust just on anybody. These people are careful to start with. So I see it that there are in fact industries where strict rules work. Anyway, MDSD is another arrow in the quiver. Use it wisely.

User Story: Nord/LB – Modeling of Banking Applications with Xtext and GMF

The last speaker was from Nord/LB, a German bank. He dropped a couple of remarks about GMF. Seems like he hit some of the gaps mentioned earlier.

Their solution included several DSLs which allowed them to describe the model, the UIs, the page flow in the web browser, etc. Having seen Enthought Traits, I’m wondering which approach is better: Keep everything in a separate model (well, Xtext can track cross-references between models just like the Java editor can) or put all the information in a single place.

If you keep everything in a single place (i.e. every part of the model also knows what to tell the UI framework when it wants to generate the editors), that makes the description of the model quite big and confusing. The information you want to see is drowned in a dozen lines. If you keep the information separate, you must store that in your memory when you switch editors.

I guess the solution is to create an editor which can display that part of the information which you need right now.

The Reception

After the talks, I had a long talk with Eike Stepper and Ed Merks. One of my main issues is that models are pretty static. You can’t add properties and methods to it at runtime. At least not to Ecore-based models. Or maybe you could but you shouldn’t. Which seems odd to me. We have plug-in based architectures like Eclipse. We have XML which stands for Extensible Markup Language. Why does modeling have to start in the stone age again without support for model life-cycle, migration, evolution?

When I presented my use case to Eike, he said “never heard that before.” So either the modeling community is going for the long hanging fruit or my use cases are exceptional. All I’m asking is a model which I can attribute with additional information at runtime. Oh, yes, I could use EMF annotations for this. Which EMF default editor supports that? Hm. So if my users want to extend the EClass “Person” with a middle name? Something that HyperCard could do, hands down, in 1987?

 


I write like…

26. October, 2010

According to I Write Like, I write like Cory Doctorow:

I write like
Cory Doctorow

I Write Like by Mémoires, Mac journal software. Analyze your writing!

My German posts are more like Ildiko von Kürthy:

Ildiko von Kürthy

Does that mean the publishers will soon kill each other to hire me?

Nah! 🙂


Need to put Flash on a leash?

25. October, 2010

 

Adobe Flash Player icon

Image via Wikipedia

 

Yeah, you can go to the online config tool for flash and play around with the options and hope.

Or you can use the config file (PDF file; what did you expect from Adobe?).

Try this for starters. It will stop anyone from dumping stuff on your computer to recognize you:

LocalStorageLimit = 1
AssetCacheSize = 0
ThirdPartyStorage = 0
AssetCacheSize = 0
AutoUpdateInterval = 1
LegacyDomainMatching = 0
LocalFileLegacyAction = 0

Kudos go to: Adobe Flash, The Spy in Your Computer – Part 2


Finished single player SC2

24. October, 2010

I just finished the single player missions of Starcraft 2SC2 Trailer – Wings of Liberty. Except for the video sequences and the end scroller (which both stuttered badly – a coder on the C=64 would have been shamed to death), it was a very nice game and story.

Since I’m not the typical PvP guy, I’ll now wait eagerly for the second part. Until then, I’ll collect my points for the other two modes of each level.


Making system administration easier

22. October, 2010

I you ever wondered what a file looked like before you edited it, this script is for you:

#!/bin/bash

dir=$(pwd)

for f ; do
        if [[ -e "$f" ]]; then
                path=$(cd $(dirname "$f") ; pwd)
                mkdir -p "/root/vibak/$path"
                cp -p "$f" "/root/vibak/$path/$(basename "$f")-$(date +"%Y%m%d-%H%M%S")"
        fi
done

exec /usr/bin/$(basename $0) "$@"

Then create links to it from $HOME/bin/vi, vim, gvim, edit, nano, ...

Remember: Never remember anything your computer can remember for you.


Feeling like Hercules?

21. October, 2010

In the ancient mythology, Hercules slew the Hydra, a monster which could grow a new head for each one cut off. Does that remind you of your programming job? The punchline is: Hercules didn’t conquer his opponent with brute force but with brains.

So if your product sprouts two new bugs for each you fix, it’s time to take the fingers away from the keyboard and start rubbing your head.

The solution? Unit tests. Each test makes sure that a piece of code works as it should. Even if each tests looks dump and futile, in a mass, they make sure that all the code which you didn’t change still behaves as you expect.

Kudos to Thomas E. Deutsch for the idea of the Hydra.


Maven 3.0 is here

18. October, 2010

Maven 3.0 has been released.Maven Logo


The Psychology of Dictators

17. October, 2010

I just found this interesting blog post: A look into the Psychology of Dictators

If you’re interested in real psychopaths (i.e. not the movie type), then this is for you.


Terrorists won

16. October, 2010

In one of my (non-published) stories, a young man is badly beaten up. When asked whether he wants revenge, he says “No.” They ask why. “Because I already gave them enough of my life.”

That’s what America needs to learn. Otherwise, they have already lost the war on terrorism. Like in “The terrorists win a comic victory.”

PS: My favorite Non Sequitur comic is the table top catapult. Anyone got a link?


Tatort Internet

11. October, 2010

Aus aktuellem Anlass mal ein Post auf Deutsch. Wie ihr vielleicht schon bemerkt habt, beschäftigen mich menschliche Grenzen und Grenzerfahrungen. In diesem Fall: Pädophile. RTL 2 hat zu diesem wichtigen Thema eine Sendereihe angefangen.

An diesem Beispiel kann man sehr schön sehen, warum man so etwas Experten überlassen sollte. arte hat vor einer Weile auch ein Special zu dem Thema gebracht. Der Unterschied: Bei arte hatte die Sendung einen Informationsgehalt. Nach der Sendung wusste man als betroffener (Opfer oder Täter), an wen man sich wenden kann.

RTL2 dagegen drückt fröhlich auf die Tränendrüse. Statt auf Information wird auf Manipulation gesetzt. Wenn mal eine Information zu sehen ist (z.B. mit welchen Tricks sich Pädosexuelle an ihre Opfer ranmachen), wird schnell ausgeblendet. Opfer sind keine zu sehen, auch wird verschwiegen was die Opfer so sehr traumatisiert. Täter werden lächerlich gemacht. Am besten fand ich heute den Satz “Auch dieser Mann geht weiter seiner Tätigkeit als Leiter eines Kinderdorfes nach.”

Klar, wenn man sein Beweismaterial nicht der Polizei übergibt, dann bleibt der Verbrecher weiter auf freiem Fuss.  Ich glaube ich muss mir überlegen RTL2 mal anzuzeigen. Da gibt es doch einen Tatbestand, wenn man Informationen über einen Täter zurückhält … wenn mir nur der Name einfallen würde.

Oder man könnte den Tätern zumindest einen Psychiater oder eine Einrichtung zur Behandlung nennen. Aber stattdessen steht die engagierte Journalistin (und Mutter) Beate Krafft-Schöning einfach auf und geht weg. Ist das schon Mittäterschaft? Beihilfe? Unterlassene Hilfeleistung?

Ich wusste, warum ich solche Leute keine Zensur im Internet aufbauen lassen wollte. Das ist, als würde man einen Pädosexuellen zum Leiter eines Kinderheims machen. Da hat doch das böse, böse Bundesverfassungsgericht die Vorratsdatenspeicherung gekippt. Nur weil sie verfassungswidrig war! Ach, ist das ungerecht. Wir würden ja so gerne etwas tun, sind aber völlig hilflos. Böse Welt.

Wenn man zynisch wäre, könnte man sagen, dass die Sendung alles nur noch schlimmer macht: Opfer finden keine Hilfe, Täter verkriechen sich noch tiefer, schotten sich noch mehr ab.

Damit das hier aber nicht zu einem völlig wertlosen Rant wird, hier noch ein paar Links:

Opfer

Dein Vertrauen in andere Menschen wurde auf subtile oder brutale Weise gestört. Daran bist du nicht Schuld! Du musst mit jemand sprechen, hast aber niemand. Oder traust niemand mehr. Aber es gibt Hilfe: Geh zu einem Pfarrer, Arzt oder Psychologen. Alle unterliegen einer Schweigepflicht. Der Pfarrer kann dir wahrscheinlich nicht so viel helfen, wie der Psychologe, aber er kann dich erstmal auffangen und zuhören.

Oder such im Internet. Hier ein Verzeichnis von Organisationen, die sich auf Opferhilfe spezialisiert haben: Kindesmissbrauch im Google Verzeichnis.

Tu was. Es ist dein Leben. Rache muss nicht sein, aber lass Dir helfen, damit du an den Folgen nicht kaputt gehst.

Täter

Jeder geheilte Täter = weniger Opfer. Und die Täter leiden ebenfalls; anders, ja, aber sie leiden. So lange niemand weiss, wie sexuelle Präferenzen entstehen, ist es zu früh mit dem Finger auf jemand oder etwas zu zeigen.

Guter Einstiegspunkt: Kein-Täter-Werden.de oder der Psychiater ihres Vertrauens. Werden Sie aktiv; setzen Sie ihrem Leid ein Ende, indem sie es überwinden. Man kann mit dieser sexuellen Neigung leben; die meisten Pädophilen machen genau das. Wie viele es genau sind, ist unbekannt. Nur, weil einen der Anblick eines Kindes erregt, heisst das nicht, dass man zum Täter/Täterin werden muss. Aber diese Emotion ist auch extrem stark (zweitmächtigster Treib nach “Essen”). Daher wächst die Gefahr mit der Zeit. Darum: Rechtzeitig handeln.

Zeuge

Du wurdest Zeuge oder vermutest Missbrauch? Knifflig. Allein schon die Andeutung von Missbrauch kann das Leben eines Menschen zerstören. Also: Hirn einschalten und Gefühle erstmal ruhen lassen.

Beim vermuteten Täter/Täterin mal eine Bemerkung fallen lassen. Pädophile sind meist ängstlich, man braucht also keine Angst vor Gewalt zu haben. Sachlich bleiben. Zum Nachdenken anregen. Wenn der Verdacht zutrifft, dann kann das schon reichen, um sich Hilfe zu holen.

Wenn es keine Vermutung mehr ist: Polizei einschalten. Aus folgenden Gründen: 1. ist es deren Aufgabe die Situation angemessen zu behandeln. 2. macht man sich strafbar, wenn man solche Informationen zurückhält. 3. sind Opfer und Täter in einer engen Beziehung verstrickt – es braucht einen Einfluss von Aussen, um das zu beenden. Opfer schämen sich bzw. werden von Täter manipuliert zu schweigen; Täter wären schön blöd, wenn sie nicht die Klappe halten würden.

Also: Auch wenn es schwer fällt: eingreifen. Es lohnt sich.

PS: Gerade hat RTL2 noch kurz einen Link für Opfer eingeblendet! Falls ihr ihn verpasst habt: www.save-me-online.de


%d bloggers like this: