Was lange währt wird endlich gut …

05. April 2010

Der Internetauftritt der Firma ZeQ AG präsentiert sich seit Ostern in neuem Gewand. Das Design entstand in Zusammenarbeit mit und nach den Anforderungen von ZeQ und passt mit seinem leichten Grün ziemlich gut in die Jahreszeit.

ZeQ AG

Erneuerter Internetauftritt der ZeQ AG

Unter der Haube verbirgt sich technisch das Typo3 Content Management System mit diversen Extensions, unter anderem Media (dam), RealURL (realurl), Google Sitemap for Pages and Contents (mc_googlesitemap), Meta tags (metatags), Drop-Down Site Map (dropdown_sitemap) MailformPlus (th_mailformplus), News (tt_news), T3 Mootools (t3mootools) und TemplaVoila (templavoila). Außerdem kam das CSS-Framework YAML zum Einsatz.

JAX2010 - ich komme

25. März 2010

Im Mai findet die diesjährige JAX statt und ich habe das Vergnügen einen Workshop-Tag und einen, evtl. sogar zwei Hauptkonferenztage besuchen zu dürfen. Wer die JAX nicht kennt, sei mit folgender Wikipedia-Erläuterung aufgeklärt:

Die JAX ist eine Fachkonferenz für Softwareentwicklung und zusammen mit der OOP eine der größten Informationsveranstaltungen der IT-Branche zu diesem Thema in Deutschland. Sie findet aktuell in Mainz statt. Veranstalter der Konferenz ist der Software & Support Verlag. Der Name JAX ist ein Akronym für Java, Apache und XML.

 Auf meiner Agenda stehen:

Ich weiß, das ist für einen Tag Hauptkonferenz ein sehr ambitioniertes Programm, aber solange die Vorträge interessant sind … :)

Auf jeden Fall werde ich einen zusammenfassenden Artikel zu meinem JAX2010-Besuch verfassen und vielleicht ist auch der ein oder andere Vortrag einen eigenen Artikel wert.

JBoss5 und Apache Webserver erfolgreich verheiratet

24. März 2010

Wie schon in meinem letzten Artikel angekündigt, habe ich die Anbindung meines JBoss AS über mod_proxy_ajp an den Apache2 Webserver eingerichtet. Die Anleitung, die ich ebenfalls in meinem letzten Artikel erwähnt hatte, war mir dabei eine große Hilfe. Außerdem bin ich auf einige hilfreiche Seiten gestoßen, die ich euch nicht vorenthalten möchte:

Anleitung zur Installation eines JBoss AS 5.1.0 GA auf Debian 5

19. März 2010

Nachdem ich einen Debian 5 Server aufgesetzt und dort webmin, sun-java6-jdk, subversion, apach2 webserver, … installiert hatte, wollte ich einen JBoss AS installieren und wie immer zunächst einmal ein wenig gegoogelt …

Ich war dabei auch erfolgreich und habe eine gute Anleitung zur Installation eines JBoss AS 5 GA auf einem Debian Linux Server gefunden. Bis auf ein/zwei nicht erwähnenswerte Kleinigkeiten konnte ich alle Schritte wie beschrieben befolgen und bin sehr schnell zum Ziel gekommen.

Der nächste Schritt ist nun, den JBoss mit dem Apach2 Webserver via mod_proxy_ajp zu verheiraten, aber genug für heute, es ist Wochenende :)

Ein Status kommt selten allein …

24. Februar 2010

Als Anwendungsentwickler oder Software-Architekt kommt man immer wieder mit UML Statechart-Diagrammen in Berührung. Immer wieder spricht man in diesem Zusammenhang vom Status eines Objekts und stolpert dabei auch immer wieder über die Mehrzahl des Status. Doch wie lautet diese eigentlich? “Stati” hört man häufig, doch das ist leider falsch. Hier ein kleiner Artikel von duden.de, der alle (Un-)Klarheiten beseitigt ;-)

Was Sie schon immer wissen wollten

Ein Status kommt selten allein …

… und wie nennt man nun mehrere davon? Vielleicht „Stati”, Staten oder gar „Statusse”? Viele der Fremdwörter auf -us, die aus dem Lateinischen oder Griechischen übernommen wurden, bilden den Plural mit der deutschen Endung -e[n], so z. B. „Virus – Viren”, „Zyklus – Zyklen” oder „Globus – Globen/Globusse” (beides ist möglich!). Einige tanzen jedoch aus der Reihe und behalten ihre ursprüngliche Pluralform bei. Auch der Status konnte sich von seinen lateinischen Wurzeln nicht trennen und bildet seinen Plural nach wie vor mit der Endung -us (mit lang gesprochenem u!), also „die Status”. Genauso verhält es sich übrigens auch bei „(der) Passus – (die) Passus” und „(der) Kasus – (die) Kasus”.

Jetzt können sie kommen, die Status!

Plesk und Ruby on Rails

18. September 2009

Ich habe gerade ein paar Infos zu Plesk und Ruby on Rails gefunden. Allerdings kann ich noch nicht bestätigen, ob die beschriebene Anleitungauf funktioniert …

Go to your domain that you want to adjust, and click Setup. Make sure the CGI and FastCGI options are enabled. Pick a name for your application and make the directory for your application in the httpdocs directory. Upload your files to that directory.

Once you’ve done that, create an .htaccess file in the httpdocs directory with the following text inside:

RewriteEngine On
RewriteRule ^$ /public/index.html [L]
RewriteCond % !^/railsapp/public
RewriteRule ^(.*)$ /public/$1 [L]
RewriteCond % !-f
RewriteRule ^(.*)$ public/dispatch.fcgi/$1 [QSA,L]

Remove the .htaccess file within the public directory of your application and add a file called dispatch.fcgi to that directory which contains:

#!/usr/bin/ruby

You should be able to access your application at http://domain.com/railsapp/

Thx Major Hayden 4 the information :)

rubber uses deprecated md5 module

19. August 2009

Auf dieses Problem bin ich nun mehrfach gestoßen, nachdem ich das gedit-latex-plugin aus den repositories installiert habe. Um nicht immer wieder nach dem Bugfix suchen zu müssen, hier der Link:

https://bugs.launchpad.net/ubuntu/+source/rubber/+bug/338285

Einfach den Patch, der dort verlinkt ist herunterladen und dann …

You just need to download the patch file to somewhere convenient (let’s say a folder called ~/rubberpatch) and then run the patch tool:

cd ~/rubberpatch
sudo patch /usr/share/rubber/rubber/util.py util.py.diff

Dat wars :)

Impressionen aus Arès/Frankreich

10. August 2009

Viecher

16. Juni 2009

-ohne Worte- ;)

UUIDs im EMF-Modell verwenden

07. April 2009

Die Referenzierung erfolgt in der XML/XMI-Repräsentation eines EMF-generierten Modells standardmäßig über XPath Ausdrücke (hm, stimmt das? wo hab ich das denn gelesen?).
<packagedElement xsi:type="KobrA2SUM.Structure:K2ComponentClass" name="TravelBookingSystem">
<generalization general="#//BookingSystem"/>
<!-- ... -->
</packagedElement>
<packagedElement xsi:type="KobrA2SUM.Structure:K2ComponentClass" name="TravelBookingSystem">
<!-- ... -->
</packagedElement>

Hieraus ergibt sich der Nachteil, dass ein SUM-View-Mapping der Modellelemente nur zu Programmlaufzeit sichergestellt werden kann. Ändert man zum Beispiel den Namen der Komponente “BookingSystem” in der View “offline” und möchte dann die Änderung in das SUM importieren, ist die nicht mehr korrekt möglich, da kein passendes Mapping mehr erfolgen kann. Vor allem hinsichtlich einer kollaborativen Entwicklung ergeben sich Schwierigkeiten, die ohne künstliche IDs nicht zu umgehen sind.

Aus diesem Grund gibt es die Möglichkeit UUIDs zu verwenden. Da diese bei EMF-generierten Modellen standardmäßig nicht vorgesehen sind, ist ein kleiner Eingriff des Programmierers in den erzeugten Code notwendig. Wie das funktioniert habe ich vor allem durch einen Artikel von Seweryn Niemiec erfahren: How To Enable UUID In EMF Generated Model [...]

Folgende Änderungen brachten mich zum Ziel:

  1. Die Klasse KobrA2SUMResourceFactoryImpl erweitert org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl
  2. Die Klasse KobrA2SUMResourceImpl erweitert org.eclipse.emf.ecore.xmi.impl.XMIResourceImpl
  3. Außerdem wurde die Methode useUUIDs() der Klasse KobrA2SUMResourceImpl überschrieben:
    /* (non-Javadoc)
    * @see org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl#useUUIDs()
    */
    @Override
    protected boolean useUUIDs() {
    return true;
    }

Schließlich erhielt ich ein Modell, das UUIDs verwendet und auch über diese referenziert.
<packagedElement xsi:type="KobrA2SUM.Structure:K2ComponentClass" xmi:id="_5F2l0CKuEd654_10FfizxA" name="TravelBookingSystem">
<generalization xmi:id="_5F96kCKuEd654_10FfizxA" general="#_5H7CYSKuEd654_10FfizxA"/>
<!-- ... -->
</packagedElement>
<packagedElement xsi:type="KobrA2SUM.Structure:K2Class" xmi:id="_5H7CYSKuEd654_10FfizxA" name="BookingSystem">
<!-- ... -->
</packagedElement>

Bei der View-Erzeugung werden dann die UUIDs der Elemente “kopiert”, d.h. die UUID des Elements des SUM per eObject.eResource().getURIFragment(eObject) ausgelesen und dann beim Element der View manuell per UMLResource.setID(eObject) gesetzt.

Um dies herauszufinden war das durchstöbern der Newsgroup [news.eclipse.modeling.mdt.uml2] sehr hilfreich, denn dort fand ich den entsprechenden Hinweis.