<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>Division durch Null</title>
	<atom:link href="http://blog.division-durch-null.de/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.division-durch-null.de</link>
	<description>Visualisierung / Rich-Internet / Informatik und Gesellschaft</description>
	<pubDate>Mon, 15 Aug 2011 13:52:58 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
	<language>en</language>
			<item>
		<title>Good Food, Bad Food</title>
		<link>http://blog.division-durch-null.de/2011/01/good-food-bad-food/</link>
		<comments>http://blog.division-durch-null.de/2011/01/good-food-bad-food/#comments</comments>
		<pubDate>Sat, 22 Jan 2011 21:47:22 +0000</pubDate>
		<dc:creator>Mathias</dc:creator>
		
		<category><![CDATA[Allgemein]]></category>

		<category><![CDATA[Medien]]></category>

		<category><![CDATA[Technologie &amp; Gesellschaft]]></category>

		<category><![CDATA[Dumping-Exporte]]></category>

		<category><![CDATA[Gentechnik]]></category>

		<category><![CDATA[Movie]]></category>

		<category><![CDATA[Tierfabriken]]></category>

		<guid isPermaLink="false">http://blog.division-durch-null.de/?p=369</guid>
		<description><![CDATA[Wir haben es satt! Heute waren 22.000 Menschen in Berlin für ökologisch nachhaltig erzeugte Lebensmittel und gegen die weitere Industrialisierung der Landwirtschaft, Tierfabriken, Gentechnik, sowie Dumping-Exporte auf der Straße - Und die Medien brechen das ganze Thema total auf den aktuellen Dioxin-Skandal runter. Dabei ging es um so viel mehr! Der Film zur Demo &#8220;Good [...]]]></description>
			<content:encoded><![CDATA[<p><a title="Demo: Wir haben es satt!" href="http://www.wir-haben-es-satt.de" target="_blank">Wir haben es satt!</a> Heute waren 22.000 Menschen in Berlin für ökologisch nachhaltig erzeugte Lebensmittel und gegen die weitere <span style="font-weight: normal;">Industrialisierung der</span> Landwirtschaft, Tierfabriken, Gentechnik, sowie Dumping-Exporte auf der Straße - Und die Medien brechen das ganze Thema total auf den aktuellen Dioxin-Skandal runter. Dabei ging es um so viel mehr! Der Film zur Demo &#8220;<a title="Doku: GOOD FOOD - BAD FOOD" href="http://www.goodfood-badfood.de/" target="_blank">Good Food, Bad Food</a>&#8221; (aktuell in den Kinos) dokumentiert nicht nur, dass Chemie in den Lebensmitteln krank macht, sondern auch wie die konventionelle Art der Landwirtschaft die Böden zerstört, wie Großkonzerne Bauern in ihre Abhängigkeit bringen und auf diese Weise Hungersnöte auslösen. Ein radikales Umdenken ist nötig - mit oder ohne Dioxin im Essen!</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="264" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/0gYG51zxODE?fs=1&amp;hl=de_DE&amp;rel=0" /><embed type="application/x-shockwave-flash" width="425" height="264" src="http://www.youtube.com/v/0gYG51zxODE?fs=1&amp;hl=de_DE&amp;rel=0" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.division-durch-null.de/2011/01/good-food-bad-food/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Filmtipp: Banksy - Exit Through The Gift Shop</title>
		<link>http://blog.division-durch-null.de/2010/11/filmtipp-banksy-exit-through-the-gift-shop/</link>
		<comments>http://blog.division-durch-null.de/2010/11/filmtipp-banksy-exit-through-the-gift-shop/#comments</comments>
		<pubDate>Wed, 03 Nov 2010 11:58:16 +0000</pubDate>
		<dc:creator>Mathias</dc:creator>
		
		<category><![CDATA[Medien]]></category>

		<category><![CDATA[Movie]]></category>

		<category><![CDATA[Streetart]]></category>

		<guid isPermaLink="false">http://blog.division-durch-null.de/?p=367</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="343" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/a0b90YppquE?fs=1&amp;hl=de_DE&amp;rel=0" /><embed type="application/x-shockwave-flash" width="425" height="343" src="http://www.youtube.com/v/a0b90YppquE?fs=1&amp;hl=de_DE&amp;rel=0" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.division-durch-null.de/2010/11/filmtipp-banksy-exit-through-the-gift-shop/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Use PureMVC - Drink Mate: Zwei Flex-Frameworks im Vergleich</title>
		<link>http://blog.division-durch-null.de/2010/04/flex-frameworks-puremvc-vs-mate/</link>
		<comments>http://blog.division-durch-null.de/2010/04/flex-frameworks-puremvc-vs-mate/#comments</comments>
		<pubDate>Mon, 26 Apr 2010 18:04:34 +0000</pubDate>
		<dc:creator>Mathias</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[ActionScript]]></category>

		<category><![CDATA[Design-Pattern]]></category>

		<category><![CDATA[Flash]]></category>

		<category><![CDATA[Flex]]></category>

		<category><![CDATA[Mate]]></category>

		<category><![CDATA[MVC]]></category>

		<category><![CDATA[OOP]]></category>

		<category><![CDATA[PureMVC]]></category>

		<category><![CDATA[RIA]]></category>

		<guid isPermaLink="false">http://blog.division-durch-null.de/?p=327</guid>
		<description><![CDATA[
Zugegeben: Dies wird jetzt kein fairer Vergleich! Von PureMVC bin ich begeistert - vom MATE-Framework halte ich nicht viel, außer &#8220;mal ganz Interessant einen anderen Weg zu sehen&#8221;. Leider bin ich zur Zeit in einem langfristigen Projekt an MATE gebunden. Einen Weg dieses Framework einzusetzen habe ich bereits in einem anderen Artikel in diesem Blog [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone" title="PureMVC vs. Mate" src="http://blog.division-durch-null.de/wp-content/uploads/2010/04/puremvc_vs_mate.gif" alt="" width="450" height="87" /></p>
<p>Zugegeben: Dies wird jetzt kein fairer Vergleich! Von <a title="HOME: Framework PureMVC" href="http://puremvc.org/" target="_blank">PureMVC</a> bin ich begeistert - vom <a title="HOME: Mate-Framework" href="http://mate.asfusion.com/" target="_blank">MATE-Framework</a> halte ich nicht viel, außer &#8220;mal ganz Interessant einen anderen Weg zu sehen&#8221;. Leider bin ich zur Zeit in einem langfristigen Projekt an MATE gebunden. Einen Weg dieses Framework einzusetzen habe ich bereits <a title="Mate-Framework best practice - Ein Vorschlag zur Diskussion" href="http://blog.division-durch-null.de/2010/02/mate-framework-best-practice/  ">in einem anderen Artikel</a> in diesem Blog zusammengefasst und dabei einen ersten Vergleich zwischen MATE und PureMVC gewagt. Nun, knapp 3 Monate später hat sich mein erster Eindruck des MATE-Framework bestätigt: Es ist ein experimenteller Weg und für große Kundenprojekte einfach nicht sinnvoll! Hier eine Zusammenfassung, warum ich PureMVC immer vorziehen würde.<span id="more-327"></span></p>
<p>1. PureMVC gibt einen schlanken, sauberen Software-Entwurf vor. Dieser beruht auf bewährten Entwurfsmustern der <a title="Wikipedia: Gang Of Four" href="http://de.wikipedia.org/wiki/Viererbande_%28Softwareentwicklung%29" target="_blank">GoF</a>, die 1zu1 umgestzt werden. Viele Entwickler kennen diese Entwurfsmuster und können schnell in das Framework eingearbeitet werden. Zudem hat PureMVC selbst bereits eine weite Verbreitung und kann als Quasi-Standard in der professionellen Flash/Flex-Entwicklung angesehen werden. PureMVC macht Software-Entwicklung effizent! MATE hat dies alles nicht. Es gibt keine Struktur vor und jeder Entwickler bringt seinen eigenen Entwurf mit. Das Software-Design wächst so mit der Anwendung und ewig lange Einarbeitungszeiten für neue Entwickler werden notwendig. Man kann noch so viel dokumentieren, die Struktur wird garantiert nicht einheitlich.</p>
<p>2. PureMVC ist supergut und mehrsprachig dokumentiert - dazu kommen die unzähligen Bücher der <a title="Wikipedia: Gang Of Four" href="http://de.wikipedia.org/wiki/Viererbande_%28Softwareentwicklung%29" target="_blank">GoF</a> über die Grundlagen, auf denen das Framework beruht. Die Dokumentation von MATE ist noch nicht mal in Englisch akzeptabel (wobei sich dies ja ändern kann).</p>
<p>3. PureMVC ist übersichtlich und schlank. Bei MATE verliert man durch die MXML-Event-Map leicht den Überblick welche Instanz wann und wo zur Verfügung steht. Das MATE-Framework vollständig zu verstehen und sinnvoll einzusetzen ist möglich, aber nicht einfach - und das macht es in Kundenprojekten unprofitabel!</p>
<p>4. MATE referenziert Funktionen und Eigenschaften über Strings. Das hat zur Folge, dass Laufzeitfehler fliegen, die eigentlich zur Compilezeit gefunden werden sollten. Auch im Hinblick auf die Performance ist das kein guter Weg.</p>
<p>5. Die MATE-Kommunikation beruht auf bubbelnden Flex-Events. Aus Performance-Sicht ist das teuer. PureMVC benutzt eine vereinfachte Notification-Variante auf Basis des Observer-Pattern. Flex Events werden nur zur Kommunikation von Flex-Komponenten verwendet. Die verwendeten Flex-Komponenten sind dabei absolut lose gekoppelt und vom Framewok unabhängig.</p>
<p>6. Weiterhin beruht die MATE-Kommunikation auf Flex-Databinding. Flex-Databinding ist toll und praktisch, kann aber auch unübersichtlich werden, wenn alles mit allem gebunden ist. Aus Performance-Sicht ist das teuer, vor allem beim Initalisieren! PureMVC informiert das System mit Hilfe von Notifications über Zustandsänderungen.</p>
<p>7. Es geht schnell in MATE Objekte zu verknüpfen: Tag-basiert in MXML. Jedoch die Event-Maps so aufzubauen, dass Objekte zum richtigen Zeitpunkt bereit stehen und auch im richtigen Moment wieder den Speicher räumen, dass kostet Zeit und Nerven!</p>
<p>Mein Tipp: Mate trinken - PureMVC benutzen!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.division-durch-null.de/2010/04/flex-frameworks-puremvc-vs-mate/feed/</wfw:commentRss>
		</item>
		<item>
		<title>RubyAMF-Checklist</title>
		<link>http://blog.division-durch-null.de/2010/04/rubyamf-checklist/</link>
		<comments>http://blog.division-durch-null.de/2010/04/rubyamf-checklist/#comments</comments>
		<pubDate>Sat, 24 Apr 2010 21:52:37 +0000</pubDate>
		<dc:creator>Mathias</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[Flash]]></category>

		<category><![CDATA[Flex]]></category>

		<category><![CDATA[OOP]]></category>

		<category><![CDATA[RIA]]></category>

		<category><![CDATA[Ruby On Rails]]></category>

		<category><![CDATA[Web-Entwicklung]]></category>

		<category><![CDATA[Webservice]]></category>

		<guid isPermaLink="false">http://blog.division-durch-null.de/?p=335</guid>
		<description><![CDATA[AMF ermöglicht es, einen besonders performanten Datenaustausch zwischen einer clientseitigen Flash- und einer Server-Anwendung zu realisieren. Die AMF-Datenpakete sind sehr klein und garantieren auf diese Weise eine geringe Übertragungszeit. Weiterhin wird das Format vom Flash-Player standardmäßig unterstützt, sodass die Serialisierung und Deserialisierung der Datenobjekte schnell und vor allem automatisch vorgenommen wird. Die Konvertierung in das [...]]]></description>
			<content:encoded><![CDATA[<p>AMF ermöglicht es, einen besonders performanten Datenaustausch zwischen einer clientseitigen Flash- und einer Server-Anwendung zu realisieren. Die AMF-Datenpakete sind sehr klein und garantieren auf diese Weise eine geringe Übertragungszeit. Weiterhin wird das Format vom Flash-Player standardmäßig unterstützt, sodass die Serialisierung und Deserialisierung der Datenobjekte schnell und vor allem automatisch vorgenommen wird. Die Konvertierung in das Nachrichtenformat (und zurück zum Objekt) wird vom Flash-Player übernommen und erfordert keine zusätzliche Implementierungen oder Bibliotheken. Serverseitig nimmt ein AMF-Gateway die Client-Anfragen entgegen, konvertiert den Datenstrom in die entsprechenden Datenobjekte und delegiert diese zur gewünschten serverseitigen Objekt-Funktion (im Fall von Rails zu einer Action eines Controllers). RubyAMF ist ein solcher Gateway. Durch die Installation des entsprechenden Plugin in ein Rails-Projekt kann der Gateway eingerichtet werden. Das so genannte Class-Mapping ermöglicht es, dass die Objekte auf der entsprechenden Gegenseite richtig typisiert ankommen. In dem Fall, dass der Datenaustausch funktioniert jedoch das Class-Mapping fehlschlägt, kommen die Daten-Objekte als anonyme Objekte vom Typ Object in der Flash-Anwendung an. Zur Erleichterung der Fehlersuche, hier eine kleine Checkliste.</p>
<p>1. Die Klassen müssen in der RubyAMF-Config-Datei (config/rubyamf_config.rb) für das Mapping registriert werden.</p>
<p>2. Die Datenobjekte in Rails und Flash müssen die gleichen Attribute besitzen. Die Schreibweise in snake_case oder camelCase kann variieren, jedoch muss RubyAMF dazu entsprechend konfiguriert werden.</p>
<p>3. Bei ActiveRecord-Objekten muss die Datenbank-Migration ausgeführt worden sein.</p>
<p>4. Die ActionScript-Klassen der Datenobjekte müssen als RemoteClass registriert sein. Bei der Metatag-Variante ist darauf zu achten, dass [RemoteClass(alias="ObjectAlias")] direkt vor oder über der Klassen-Deklaration steht.</p>
<p>5. Die ActionScript-Klassen der Datenobjekte müssen in das Flash/Flex-Projekt importiert werden.</p>
<p>6. Die Klassen müssen in den ActionScript-Code importiert werden (!!!).</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.division-durch-null.de/2010/04/rubyamf-checklist/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Und Uni lohnt sich doch&#8230;</title>
		<link>http://blog.division-durch-null.de/2010/03/und-uni-lohnt-sich-doch/</link>
		<comments>http://blog.division-durch-null.de/2010/03/und-uni-lohnt-sich-doch/#comments</comments>
		<pubDate>Sun, 21 Mar 2010 17:16:17 +0000</pubDate>
		<dc:creator>Mathias</dc:creator>
		
		<category><![CDATA[Allgemein]]></category>

		<category><![CDATA[WeTab]]></category>

		<guid isPermaLink="false">http://blog.division-durch-null.de/?p=321</guid>
		<description><![CDATA[Zum Abschied an der Beuth Hochschule für Technik Berlin gab es einen iPod-Touch. Da fällt einem der Abschied doch leicht  Oder läd ein zum Weitermachen: Denn wer weiß was es zum Master gibt&#8230; vielleicht ein iPad? Oder doch eher das WeTab, um für die Absolventen/innen durch Stärkung der regionalen Unternehmen auch gleich die Jobs zu [...]]]></description>
			<content:encoded><![CDATA[<p>Zum Abschied an der <a title="Beuth Hochschule für Technik Berlin" href="http://www.beuth-hochschule.de" target="_blank">Beuth Hochschule für Technik Berlin</a> gab es einen iPod-Touch. Da fällt einem der Abschied doch leicht <img src='http://blog.division-durch-null.de/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> Oder läd ein zum Weitermachen: Denn wer weiß was es zum Master gibt&#8230; vielleicht ein iPad? Oder doch eher das <a title="WeTab Webseite" href="http://wetab.mobi/" target="_blank">WeTab</a>, um für die Absolventen/innen durch Stärkung der regionalen Unternehmen auch gleich die Jobs zu sichern&#8230;? Und ich dachte immer Berliner (Hoch-)Schulen sind pleite.</p>
<p><img class="alignnone" title="Abschlussfeier Beuth Hochschule 2010" src="http://blog.division-durch-null.de/wp-content/uploads/2010/03/img_0379.jpg" alt="" width="450" height="230" /></p>
<p><img class="alignnone" title="Abschlussfeier Beuth Hochschule 2010" src="http://blog.division-durch-null.de/wp-content/uploads/2010/03/img_0403.jpg" alt="" width="450" height="385" /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.division-durch-null.de/2010/03/und-uni-lohnt-sich-doch/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Mate-Framework best practice - Ein Vorschlag zur Diskussion</title>
		<link>http://blog.division-durch-null.de/2010/02/mate-framework-best-practice/</link>
		<comments>http://blog.division-durch-null.de/2010/02/mate-framework-best-practice/#comments</comments>
		<pubDate>Sat, 13 Feb 2010 18:37:04 +0000</pubDate>
		<dc:creator>Mathias</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[ActionScript]]></category>

		<category><![CDATA[Design-Pattern]]></category>

		<category><![CDATA[Flex]]></category>

		<category><![CDATA[Mate]]></category>

		<category><![CDATA[MVC]]></category>

		<category><![CDATA[OOP]]></category>

		<category><![CDATA[PureMVC]]></category>

		<category><![CDATA[Web-Entwicklung]]></category>

		<guid isPermaLink="false">http://blog.division-durch-null.de/?p=265</guid>
		<description><![CDATA[
Das MATE-Framework soll in Flex-Anwendungen eine lose Kopplung zwischen den einzelnen Programmteilen ermöglichen. Wesentlicher Bestandteil ist eine eine so genannte Event-Map. In der Event-Map werden Flash-Events abgefangen und auf entsprechende Funktionen gemappt. Weiterhin macht sich das Framework das Prinzip der Data-Injection zunutze. Dabei werden Datenobjekte auf Basis der Flex-Datenbindung &#8220;von außen&#8221; in ein beliebiges Objekt [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone" title="Mate Flex Framework" src="http://blog.division-durch-null.de/wp-content/uploads/2010/01/flex_mate_logo.jpg" alt="" width="450" height="87" /></p>
<p>Das MATE-Framework soll in Flex-Anwendungen eine lose Kopplung zwischen den einzelnen Programmteilen ermöglichen. Wesentlicher Bestandteil ist eine eine so genannte Event-Map. In der Event-Map werden Flash-Events abgefangen und auf entsprechende Funktionen gemappt. Weiterhin macht sich das Framework das Prinzip der Data-Injection zunutze. Dabei werden Datenobjekte auf Basis der Flex-Datenbindung &#8220;von außen&#8221; in ein beliebiges Objekt injiziert. <strong>Unterschiedliche Objekte können auf diese Weise Daten austauschen, ohne das eine Abhängigkeit zwischen ihnen besteht.</strong> Eine weitere Besonderheit von Mate ist, dass die Event-Map ausschließlich Tag-basiert ist und mit MXML implementiert wird. Mehr Informationen zur grundsätzlichen Arbeitsweise, sowie Code-Beispiele findet man auf der MATE-Homepage unter: <a title="Mate Flex Framework" href="http://mate.asfusion.com/" target="_blank">http://mate.asfusion.com/</a>.</p>
<p>Leider ist die Dokumentation des Framework sehr lückenhaft. Besonders der &#8220;Best Practice&#8221;-Teil kommt aktuell viel zu kurz (<a title="Mate Flex-Framework Best Practice" href="http://mate.asfusion.com/page/documentation/best-practices" target="_blank">http://mate.asfusion.com/page/documentation/best-practices</a>), ist allerdings dringend notwendig, da Mate sehr wenig Struktur vorgibt. <strong>Das Framework unterstützt zwar eine lose Kopplung zwischen den Objekten, garantiert jedoch nicht einen sinnvollen Software-Entwurf!</strong> Da ich aktuell in einem Projekt an Mate gebunden bin, habe ich anhand einiger Beispiele auf der Mate-Webseite eine &#8220;Best Practice&#8221; herausgearbeitet, die ich nachfolgend Dokumentieren werden. Diese &#8220;Practice&#8221; orientiert sich am MVVM-Designpattern (bekannt aus MS Silverlight) und ist nur eine Möglichkeit, wie das Framework zum Einsatz kommen kann.</p>
<p><span id="more-265"></span><strong>Noch eines Vorweg:</strong> So ganz kann ich mich mit dem Mate-Framework nicht anfreunden und auch diese &#8220;Best Practice&#8221; halte ich nicht für den Königsweg. Wer aktuell auf der Suche nach einem guten Flex-Framework ist und die freie Wahl hat, dem empfehle ich <a title="PureMVC Homepage" href="http://puremvc.org/" target="_blank">PureMVC</a>. PureMVC gibt (nach meiner Ansicht) einen sauberen und schlanken Software-Entwurf vor. <strong>Gerade in größeren Projektteams mit wechselnden Leuten kann es vorkommen, dass beim Mate-Framework jeder Entwickler seinen eigenen Software-Entwurf mitbringt</strong> (wie gesagt: Mate unterstützt eine lose Kopplung zwischen Objekten, gibt jedoch keine einheitliche Struktur vor). PureMVC (mit einer sehr guten Dokumenation) hingegen garantiert bei richtiger Anwendung eine konsistente Umsetzung und reduziert (zwar mitunter intessante - aber zeitaufwendige) Entwurfsdiskussionen. Auch empfinde ich das Handling mit der Mate-Event-Map als unübersichtlich, was jedoch eine reine Geschmackssache sein kann. Veranschaulicht würde ich sagen: PureMVC verhält wie ein gut gewartetes Mietauto mit Navigationssystem - man steigt ein, fährt los und kommt mehr oder weniger entspannt am Ziel an. Mate ist eher der expirimentelle Weg, vielleicht wie eine weite Reise auf einem Mofa mit unvollständigen Landkarten - sicherlich sehr interessant - hin und wieder muss man mal basteln - hier und da einige Teile mit Gaffa befestigen - und immer wieder kommt der eigene Orientierungssinn zum Einsatz, der einen auch zeitweise täuschen kann.</p>
<p>Wie bereits erwähnt, gibt es viele Möglichkeiten mit dem Mate-Framework ans Ziel zu kommen. Eine ist die Orientierung am <strong>Model-View-ViewModel-Pattern</strong>, eine Mutation der MVC-Architektur. Der View-Teil enthält dabei eine Sammlung logikloser UI-Komponenten, die genau eine Referenz auf ein dazugehöriges ViewModel besitzen. Dieses Model sollte beim Erzeugen einer UI-Komponente über die Mate-Map in die Komponente injiziert werden. Das ViewModel enthält die Daten, die in der entsprechenden UI-Komponente dargestellt werden sollen, sowie dessen Zustände. Über Flex-Datenbindung wird die View nach einer Veränderung dieser Daten aktualisiert. Bei einer Benutzeraktion wird eine Funktion im ViewModel aufgerufen, in der die Handhabung dieser Aktion implementiert ist. Das ViewModel kann direkt reagieren und den Zustand der dazugehörigen UI-Komponente ändern (ausschließlich über Datenbindung, ohne dirkete Referenz auf die UI-Komponente). Sollte die Benutzerinteraktion weitreichendere Auswirkungen auf das gesamte System haben, kann das ViewModel ein Event senden und das System auf diese Weise informieren. In Mate werden Events in der Event-Map gefangen und auf unterschiedliche Funktionen in unterschiedlichen Objekten gemappt. Auf diese Weise kann die Event-Map Funktionen in anderen ViewModels aufrufen, die ihrerseits ein Update der dazugehörigen UI-Komponenten erwirken. Weiterhin können auch Funktionen in den Manager-Ojekten (die zum Model-Teil gehören) aufgerufen werden, die global genutzte Datenobjekte manipulieren und einen neuen Zustand der Gesamtanwendung herbeiführen. Über das Mate-Framework können diese globalen Datenobjekte in die ViewModels injiziert werden, um die View dem Anwendungszustand anzupassen. Eine Visualisierung dieses Prinzips steht als <a title="Mate Flex-Framework Best Practice PDF-DOWNLOAD" href="http://download.division-durch-null.de/mate_best_practice.pdf" target="_blank">PDF zum Download</a> bereit.</p>
<p><a title="Mate Flex-Framework Best Practice PDF-DOWNLOAD" href="http://download.division-durch-null.de/mate_best_practice.pdf" target="_blank"><img class="alignnone" title="Mate Flex Framework Best Practice" src="http://blog.division-durch-null.de/wp-content/uploads/2010/01/mate_best_practice_small.gif" alt="" width="450" height="645" /></a></p>
<p>Die Besonderheit dieser Architektur stellen die zwei Arten von Model dar. Die eine Art agiert Anwendungsweit und managt global benötigte Daten und Zustände. Die andere Art hält und manipuliert die Daten und Zustände jeweils einer bestimmten UI-Komponente. Der Begriff Model umfasst in diesem Zusammenhang nicht die reinen Datenobjekte (VOs), sondern auch Fachlogik zur Manipulation dieser Daten. Der entfallende Controller aus der MVC-Architektur verteilt sich also auf die Manager(Model)- und ViewModel-Klassen. <strong>Das Mate-Framework sorgt für das Zusammenspiel der Bestandteile unter Einsatz von Events und Datenbindung (Prinzip: Data-Injection). </strong>Auf diese Weise gibt es keine Abhängigkeiten zwischen den unterschiedlichen Model-Objekten.</p>
<p>Um noch einmal expliziert darauf hinzuweisen: <strong>Die UI-Komponenten haben nach diesem Software-Design eine Referenz auf ihre ViewModel!</strong> Der Vorteil dabei ist, dass die UI-Komponenten leicht austauschbar sind, etwa gegen Unit-Test-Klassen. Benutzeraktionen können einfach simmuliert werden, indem Test-Routinen die Funktionen im ViewModel aufrufen und anschließend die gebundenen Daten auswerten. Der großen Nachteil ist, dass die UI-Komponenten auf diese Weise nicht universal in beliebigen Projekten genutzt werden können, sondern nur in solchen, in denen auch ViewModels zum Einsatz kommen.  Eine echte Schwachstelle(!) - sind doch gerade UI-Komponenten die Bestandteile einer Anwendung, die sich tatsächlich am ehsten zum Wiederverwenden eignen.</p>
<p><strong>Zum Vergleich noch einmal PureMVC:</strong> Hier werden die UI-Komponenten völlig unabhängig vom System mit einer eigenen API entwickelt und in Mediator-Klassen verwaltet. Bei einer Benutzerinteraktion werden Events geworfen, die in Mediators gefangen werden. Die Mediators benachrichtigen das restliche System und reagieren auf Benachrichtigungen, dass sich die View verändern soll. Auf diese Weise können UI-Komponenten entwickelt werden, ohne das die Entwickler etwas über das System wissen müssen in dem ihre Komponenten zum Einsatz kommen. Für mich der bessere Weg zum Ziel.</p>
<p>Über andere Meinungen zum Mate-Framework, Praxiserfahrungen, THE VERY BEST PRACTICE oder Bestätigungen zu meiner Kritik als Kommentar würde ich mich freuen!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.division-durch-null.de/2010/02/mate-framework-best-practice/feed/</wfw:commentRss>
		</item>
		<item>
		<title>VideoDocs auf vimeo</title>
		<link>http://blog.division-durch-null.de/2009/12/videodocs-auf-vimeo/</link>
		<comments>http://blog.division-durch-null.de/2009/12/videodocs-auf-vimeo/#comments</comments>
		<pubDate>Sun, 27 Dec 2009 09:23:59 +0000</pubDate>
		<dc:creator>Mathias</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[Medien]]></category>

		<category><![CDATA[Movie]]></category>

		<category><![CDATA[Topic-Map]]></category>

		<category><![CDATA[Usability]]></category>

		<category><![CDATA[Web 2.0]]></category>

		<category><![CDATA[Web-Entwicklung]]></category>

		<category><![CDATA[Wissensmanagement]]></category>

		<guid isPermaLink="false">http://blog.division-durch-null.de/?p=256</guid>
		<description><![CDATA[Für die beiden Hochschulprojekte SemKingPeng und Caterpillar Garden, die 2008 und 2009 an der Beuth Hochschule für Technik entstanden, sind jetzt für alle Interessierten die Video-Dokumentationen auf Vimeo verfügbar. Der direkte Link zu meinem Profil lautet: http://www.vimeo.com/divisiondurch0
Die Projekte beschäftigen sich mit alternativen Navigationsstrukturen in Softwareprojekten. SemKingPeng ist ein Besucherinformationssystem für den Berliner Zoo, mit dessen [...]]]></description>
			<content:encoded><![CDATA[<p>Für die beiden Hochschulprojekte <em>SemKingPeng </em>und <em>Caterpillar Garden</em>, die 2008 und 2009 an der Beuth Hochschule für Technik entstanden, sind jetzt für alle Interessierten die Video-Dokumentationen auf Vimeo verfügbar. Der direkte Link zu meinem Profil lautet: <a title="Vimeo - Profil Division Durch Null" href="http://www.vimeo.com/divisiondurch0" target="_blank">http://www.vimeo.com/divisiondurch0</a></p>
<p>Die Projekte beschäftigen sich mit alternativen Navigationsstrukturen in Softwareprojekten. <em>SemKingPeng </em>ist ein Besucherinformationssystem für den Berliner Zoo, mit dessen Hilfe sich die BesucherInnen über ein Touch-Display über die Tiere informieren können. <em>Caterpillar Garden</em> ist eine Online-Community zur Registrierung der Population von Wanderfaltern. Die Besonderheit der beiden Projekte ist die grafische Navigation anhand der Bedeutungszusammenhänge (Semantik). Beide Projekte orientieren sich am Topic-Map-Standard. Viel Spass beim Schauen!</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="450" height="253" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=8352913&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00adef&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="450" height="253" src="http://vimeo.com/moogaloop.swf?clip_id=8352913&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00adef&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="450" height="338" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=8352387&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00adef&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="450" height="338" src="http://vimeo.com/moogaloop.swf?clip_id=8352387&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00adef&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>Übrigens bin ich begeistert von der Video-Plattform <a title="Vimeo is a respectful community of creative people who are passionate about sharing the videos they make." href="http://www.vimeo.com" target="_blank">vimeo.com</a>!!! Die Seite sieht einfach gut aus und fühlt sich auch so an. Die Usability zum Video-Upload finde ich sehr gelungen, AJAX wird sinnvoll eingesetzt und die Community-Features scheinen gut durchdacht. Auch HD-Videos werden unterstützt.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.division-durch-null.de/2009/12/videodocs-auf-vimeo/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Raider heißt jetzt Twix: Über die erschreckend hohe Halbwertszeit blöder Werbesprüche</title>
		<link>http://blog.division-durch-null.de/2009/12/raider-heisst-jetzt-twix/</link>
		<comments>http://blog.division-durch-null.de/2009/12/raider-heisst-jetzt-twix/#comments</comments>
		<pubDate>Wed, 23 Dec 2009 19:15:36 +0000</pubDate>
		<dc:creator>Mathias</dc:creator>
		
		<category><![CDATA[Medien]]></category>

		<guid isPermaLink="false">http://blog.division-durch-null.de/?p=236</guid>
		<description><![CDATA[Da lagen sie, in der Snackbox im Büro, im Jahr 9 nach der Jahrtausendwende: Schokoriegel mit der Aufschrift RAIDER. So ziemlich alle, die diese Riegel erblickten, sagten den bekannten Spruch aus der TV-Werung zur Namensänderung Anfang der 90er Jahre auf: &#8220;Aus Raider wird jetzt Twix. Sonst ändert sich nix&#8220;. Erschreckend! Dieser Slogen hat sich so [...]]]></description>
			<content:encoded><![CDATA[<p>Da lagen sie, in der Snackbox im Büro, im Jahr 9 nach der Jahrtausendwende: Schokoriegel mit der Aufschrift <em>RAIDER</em>. So ziemlich alle, die diese Riegel erblickten, sagten den bekannten Spruch aus der TV-Werung zur Namensänderung Anfang der 90er Jahre auf: &#8220;<em>Aus Raider wird jetzt Twix. Sonst ändert sich nix</em>&#8220;. Erschreckend! Dieser Slogen hat sich so in unsere Köpfe gebrannt, dass er selbst nach fast 20 Jahren bei den meisten noch präsent ist, während andere (wohl wichtigere) Erinnerungen verschwunden sind. Vielleicht ist das der Grund, warum <em>Twix</em> (zumindest nach meinem Empfinden) aktuell eher wenig wirbt. Die Kampage von damals hält für immer. Und mit der aktuellen Special-Edition von <em>Twix</em>, die unter dem alten Namen <em>RAIDER </em>vertrieben wird, wird unser Werbegedächnis wieder aufgefrischt. Für die nächsten 20 Jahre - für die nächste Generation, die aktuell wohl verwirrt vor dem Süßigkeitenautomaten steht und sich fragt, warum dieser Riegel im Retro-Look <em>Twix</em> so ähnlich ist. Um so mehr wundert es, dass der Spot zum Slogen eigentlich nicht wirklich gut war, wie YouTube beweist. Wie konnte dieses Branding also geschehen???</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/OP84_ajwbCc&amp;hl=de_DE&amp;fs=1&amp;rel=0" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/OP84_ajwbCc&amp;hl=de_DE&amp;fs=1&amp;rel=0" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.division-durch-null.de/2009/12/raider-heisst-jetzt-twix/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Man hab ich Gigabytes&#8230;</title>
		<link>http://blog.division-durch-null.de/2009/11/man-hab-ich-gigabytes/</link>
		<comments>http://blog.division-durch-null.de/2009/11/man-hab-ich-gigabytes/#comments</comments>
		<pubDate>Sat, 07 Nov 2009 16:18:26 +0000</pubDate>
		<dc:creator>Mathias</dc:creator>
		
		<category><![CDATA[Allgemein]]></category>

		<category><![CDATA[Medien]]></category>

		<category><![CDATA[Movie]]></category>

		<guid isPermaLink="false">http://blog.division-durch-null.de/?p=233</guid>
		<description><![CDATA[&#8230; ey, glaubste nich. Alles voll. Kennste Internet?

]]></description>
			<content:encoded><![CDATA[<p>&#8230; ey, glaubste nich. Alles voll. Kennste Internet?</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/QPF8Q86HHY8&amp;hl=de&amp;fs=1&amp;rel=0" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/QPF8Q86HHY8&amp;hl=de&amp;fs=1&amp;rel=0" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.division-durch-null.de/2009/11/man-hab-ich-gigabytes/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Blitzschneller Rails-Flash-Datenaustausch via AMF</title>
		<link>http://blog.division-durch-null.de/2009/10/blitzschneller-rails-flash-datenaustausch-via-amf/</link>
		<comments>http://blog.division-durch-null.de/2009/10/blitzschneller-rails-flash-datenaustausch-via-amf/#comments</comments>
		<pubDate>Sun, 25 Oct 2009 16:52:16 +0000</pubDate>
		<dc:creator>Mathias</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[Medien]]></category>

		<category><![CDATA[ActionScript]]></category>

		<category><![CDATA[Flash]]></category>

		<category><![CDATA[Flex]]></category>

		<category><![CDATA[RIA]]></category>

		<category><![CDATA[Ruby On Rails]]></category>

		<category><![CDATA[Web-Entwicklung]]></category>

		<guid isPermaLink="false">http://blog.division-durch-null.de/?p=229</guid>
		<description><![CDATA[AMF steht für Action Message Format und bezeichnet ein Binärformat zur Serialisierung von ActionScript-Objekten. Das Format wird nativ vom Flash-Player unterstützt und ermöglicht einen besonders performaten Remote-Datenaustausch zwischen einer Flash- und einer Backendanwendung. Serverseitig wird ein AMF-Gateway benötigt, der sie Serialisierung und Deserialisierung des Datenstroms vornimmt und die entsprechende Objektfunktion aufruft. Um diese Art der [...]]]></description>
			<content:encoded><![CDATA[<p>AMF steht für Action Message Format und bezeichnet ein Binärformat zur Serialisierung von ActionScript-Objekten. Das Format wird nativ vom Flash-Player unterstützt und ermöglicht einen besonders performaten Remote-Datenaustausch zwischen einer Flash- und einer Backendanwendung. Serverseitig wird ein AMF-Gateway benötigt, der sie Serialisierung und Deserialisierung des Datenstroms vornimmt und die entsprechende Objektfunktion aufruft. Um diese Art der Datenübertragung mit einem RubyOnRails-Backend nutzen zu können, steht <a title="RubyAMF Project Hosting" href="http://code.google.com/p/rubyamf/" target="_blank">RubyAMF</a> unter einer leicht modifizierten MIT-Lizenz als Gateway-Plugin zur Verfügung.</p>
<p><img class="alignnone" title="Railsway 06.2009" src="http://blog.division-durch-null.de/wp-content/uploads/2009/10/railsway_06_2009.jpg" alt="" width="400" height="400" /></p>
<p>Im aktuellen <a title="Railsway - Das Magazin für Ruby On Rails" href="http://www.railsway.de" target="_blank">Railsway-Magazin</a> (Ausgabe 06.2009) habe ich einen Artikel veröffentlicht, in dem der praktische Einsatz von RubyAMF beschrieben wird. Insbesondere wird auf das Class-Mapping eingegangen. Durch das Class-Mapping-Verfahren ist es möglich, dass Flash-Datenobjekte direkt als ActiveRecord-Objekte im Rails-Backend zur Verfügung stehen und weggespeichert oder aktualisiert werden können.<span id="more-229"></span></p>
<p>Railsway ist ein deutschsprachiges Magazin für RubyOnRails und ist Ende 2008 erstmals erschienen. Es wird durch den Software&amp;Support Verlag verlegt und ist an den meisten (größeren) Bahnhofskiosken erhältlich. Alternativ kann das Heft auch unter <a title="Railsway - Das Magazin für Ruby On Rails" href="http://www.railsway.de" target="_blank">www.railsway.de</a> bestellt werden.</p>
<p>Viel Spaß beim Lesen. Über Feedback unten als Kommentar würde ich mich freuen!</p>
<p><strong>Mehr zum Thema:</strong></p>
<p>Buch-Tipp: <a title="Google Books" href="http://books.google.de/books?id=uy9zPQAACAAJ&amp;dq=flexible+rails" target="_blank">Peter Armstrong, <span dir="ltr">Flexible Rails: Flex 3 on Rails 2</span></a></p>
<p><a title=" Using RubyAmf for creating a CRUD application in Rails" rel="bookmark" href="http://allyourcodearebelongto.me/blog/2008/11/12/using-rubyamf-for-creating-a-crud-application-in-rails/" target="_blank">Using RubyAmf for creating a CRUD application in Rails</a></p>
<p><a title="Using rubyamf with associations" rel="bookmark" href="http://stardev.kreativgut.de/?p=4" target="_blank">Using rubyamf with associations</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.division-durch-null.de/2009/10/blitzschneller-rails-flash-datenaustausch-via-amf/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Deep-Linking in Flash- und AJAX-Anwendungen</title>
		<link>http://blog.division-durch-null.de/2009/10/deep-linking-in-flash-und-ajax-anwendungen/</link>
		<comments>http://blog.division-durch-null.de/2009/10/deep-linking-in-flash-und-ajax-anwendungen/#comments</comments>
		<pubDate>Tue, 06 Oct 2009 17:40:40 +0000</pubDate>
		<dc:creator>Mathias</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[ActionScript]]></category>

		<category><![CDATA[Flash]]></category>

		<category><![CDATA[Flex]]></category>

		<category><![CDATA[JavaScript]]></category>

		<category><![CDATA[RIA]]></category>

		<category><![CDATA[Web 2.0]]></category>

		<category><![CDATA[Web-Entwicklung]]></category>

		<guid isPermaLink="false">http://blog.division-durch-null.de/?p=121</guid>
		<description><![CDATA[
Seitenmetaphern im WWW sind eine Verkettung einzelner Webseiten, die jeweils genau einen Zustand darstellen. Auf traditionellen Internetseiten wird bei einer Nutzeraktivität eine neue Webseite geladen, die einen neuen Zustand repräsentiert. Jede Seite und damit jeder Zustand kann durch eine URL adressiert werden. Durch den Einsatz von Flash- und AJAX-Anwendungen werden diese Seitenmetaphern durchbrochen, da die [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone" title="SWFAddress Logo" src="http://blog.division-durch-null.de/wp-content/uploads/2009/10/swfaddress_logo.gif" alt="" width="200" height="200" /></p>
<p>Seitenmetaphern im WWW sind eine Verkettung einzelner Webseiten, die jeweils genau einen Zustand darstellen. Auf traditionellen Internetseiten wird bei einer Nutzeraktivität eine neue Webseite geladen, die einen neuen Zustand repräsentiert. Jede Seite und damit jeder Zustand kann durch eine URL adressiert werden. Durch den Einsatz von Flash- und AJAX-Anwendungen werden diese Seitenmetaphern durchbrochen, da die Client-Anwendungen unterschiedliche Zustände annehmen können. In solchen Anwendungen kann eine Kommunikation mit dem Server stattfinden, ohne dass die Seiten-URL wechselt. Durch diesen Umstand werden die typischen Browser-Funktionen &#8220;Seite vor&#8221; und &#8220;Seite zurück&#8221;, sowie die History-Anzeige außer Kraft gesetzt. Weiterhin können die Zustände der Anwendung nicht über eine URL adressiert oder als Bookmark gespeichert werden.<span id="more-121"></span></p>
<p>Die Adressierung unterschiedlicher Zustände kann durch die Übergabe von Parametern an die Client-Anwendung realisiert werden und wird als Deep-Linking bezeichnet. Das Open-Source-Projekt <a title="SWFAddress" href="http://www.asual.com/swfaddress/" target="_blank">SWFAddress </a>unterstützt durch eine JavaScript- und ActionScript-Bibliothek das Implementieren von Deep-Linking in Flash- und AJAX-Anwendungen. Durch den Einsatz von SWFAdress kann die Anwendung in die Lage versetzt werden, aufgrund von Änderungen in der URL-Leiste des Browsers den Zustand zu wechseln. Weiterhin besteht die Möglichkeit die URL durch die Anwendung zu manipulieren, sodass der jeweils aktuelle Zustand als Bookmark gespeichert werden kann.</p>
<p>Realisiert ist das Deep-Linking in SWFAddress mit Hilfe von HTML-Sprungmarken. Bei der Verwendung von HTML-Sprungmarken werden Änderungen in der URL durch ein #-Zeichen abgetrennt. Dies ermöglicht es die URL zu ändern, ohne einen Request zum Server zu senden und ohne einen neuen Seitenaufbau im Browser zu erwirken. Die Manipulation der URL durch die Anwendung, sowie das Reagieren auf eine URL-Veränderung übernimmt SWFAddress. Um das Framework nutzen zu können, muss es zunächst initialisiert werden. Die Initialisierung erfolgt mit Hilfe von JavaScript. Dabei wird ein Flash-Objekt angegeben, welches für die Nutzung von SWFAddress registriert wird. Weiterhin können durch JavaScript Event-Listener registirert werden, die auf Veränderungen der URL reagieren.</p>
<p>Für die Interaktion der Flash-Anwendung mit SWFAddress wird die ActionScript-Bibliothek des Framework als SWC-Datei in die Anwendung eingebunden. Im Anschluss steht die ActionScript-<br />
Klasse SWFAddress zur Verfügung, über die auf die API des Framework zugegriffen werden kann. Damit die Flash-Anwendung auf Veränderungen der URL reagieren kann, können auch im Flash-Teil EventListener registriert werden. Für die Manipulation der URL steht die Funktion <em>setValue(path:String):void</em> zur Verfügung. Der Parameter gibt den neuen Pfad der URL nach dem #-Zeichen an, das die Sprungmarke von der restlichen URL trennt.</p>
<p>Auf der Webseite von <a title="SWFAddress" href="http://www.asual.com/swfaddress/" target="_blank">SWFAddress</a> kann man die aktuelle Version kostenlos downloaden und es ist eine ausführliche Dokumentation der API zu finden,</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.division-durch-null.de/2009/10/deep-linking-in-flash-und-ajax-anwendungen/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Was soll das Command-Pattern?</title>
		<link>http://blog.division-durch-null.de/2009/09/was-soll-das-command-pattern/</link>
		<comments>http://blog.division-durch-null.de/2009/09/was-soll-das-command-pattern/#comments</comments>
		<pubDate>Thu, 03 Sep 2009 10:29:55 +0000</pubDate>
		<dc:creator>Mathias</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[ActionScript]]></category>

		<category><![CDATA[Design-Pattern]]></category>

		<category><![CDATA[Flash]]></category>

		<category><![CDATA[Flex]]></category>

		<category><![CDATA[MVC]]></category>

		<category><![CDATA[OOP]]></category>

		<category><![CDATA[PureMVC]]></category>

		<category><![CDATA[Web-Entwicklung]]></category>

		<guid isPermaLink="false">http://blog.division-durch-null.de/?p=170</guid>
		<description><![CDATA[Wenn man lernt objektorientiert zu Programmieren, bekommt man eine einfache Faustregel an die Hand: Objekte sollen die Realwelt abbilden. Zur Klassen wird alles was ein Nomen ist. Attribute legen die Eigenschaften dieser Nomen fest, sind also in der Regel die Adjektive. Und Funktionen stellen die Verben da, die eine Handlung beschreiben.
Sobald man jedoch das Verständnis [...]]]></description>
			<content:encoded><![CDATA[<p>Wenn man lernt objektorientiert zu Programmieren, bekommt man eine einfache Faustregel an die Hand: Objekte sollen die Realwelt abbilden. Zur Klassen wird alles was ein Nomen ist. Attribute legen die Eigenschaften dieser Nomen fest, sind also in der Regel die Adjektive. Und Funktionen stellen die Verben da, die eine Handlung beschreiben.</p>
<p>Sobald man jedoch das Verständnis für OOP erworben hat, rückt diese Regel stark in den Hintergrund. Man beschäftigt sich mit &#8220;sauberer&#8221; Programmierung und einer Trennung der Zuständigkeiten zwischen Darstellung, Daten und Logik (MVC-Architektur), sowie einer losen Kopplung zwischen diesen Programmteilen. Besonders merkwürdig kommt einem das Command-Pattern vor, ein durch die <a title="Gang of Four" href="http://de.wikipedia.org/wiki/Viererbande_%28Softwareentwicklung%29" target="_blank">GoF</a> beschriebenes Verhaltensmuster.<span id="more-170"></span></p>
<p class="title" dir="ltr">Das Command-Pattern (Befehls-Muster, Kommando-Muster) kapselt EINEN Befehl in ein Objekt. Bei der Umsetzung wird für jeden konkreten Befehl eine Klasse erstellt, die eine abstrakte Command-Klasse implementiert. Dabei wird genau eine Methode erstellt, die den Programmcode für den entsprechenden Befehl beinhaltet. Weitere Methoden und Attribute sind nicht vorgesehen. Eine Instanz dieser Klasse wird erzeugt, sobald der Befehl aufgerufen wird. Nach Beendigung wird diese Instanz wieder gelöscht.</p>
<p class="title" dir="ltr">Diese Vorgehensweise ermöglicht es Kommandos aus einem Programmteil aufzurufen, der keine Referenz zum restlichen System besitzt. Beispielsweise kann ein Ereignis, das auf der Benutzeroberfläche durch eine Benutzerinteraktion auftritt (z.B. Klick auf einen Button), ein solches Kommando aufrufen. Die Benutzeroberfläche benötigt auf diese Weise keine Information darüber, was durch den Aufruf genau passiert oder welche Objekte angespochen werden. Darüber hinaus ermöglicht das Command-Pattern, Befehle in einer Warteschlange abzulegen und seriell abzuarbeiten.</p>
<p class="title" dir="ltr">Eine gelungende Umsetzung dieses Entwurfsmuster findet man im Framework PureMVC. PureMVC ist ein leichtgewichtiges Framework auf Basis einer Model-View-Controller-Architektur, in dem unterschiedliche Entwurfsmuster zum Einsatz kommen. Es steht open-source als ActionScript 2+3 für Flash- und Flex-Anwendungen zur Verfügung. Weiterhin wird das Framework nach und nach in anderen Sprachen umgesetzt (Java, JavaScript, Ruby, Phyton, PHP, C#, &#8230;).</p>
<p class="title" dir="ltr"><img class="alignnone" title="PureMVC" src="http://blog.division-durch-null.de/wp-content/uploads/2009/09/puremvc_aufbau.gif" alt="" width="450" height="318" /></p>
<p class="title" dir="ltr">Im Framework PureMVC wird der Controller (also die Fachlogik der Software) vollständig über das Command-Pattern implementiert. Dabei wird in Simple-Commands und Macro-Commands unterschieden, wobei Macro-Commands in der Lage sind weitere Commands auszuführen. Die Kommunikation der Programmteile (M, V und C) wird über Notifications (also ein Nachrichtensystem, Observer-Pattern) realisiert. Auf diese Notifications kann ein Command gemappt werden. Dies bedeutet, sobald ein Programmteil eine Nachricht versendet, wird die Fachlogik des entsprechenden Command abgearbeitet. Auf diese Weise gibt es eine absolut lose Kopplung zwischen der Benutzerschnittstelle (GUI) und dem Model (Datenhaltung).</p>
<p class="title" dir="ltr"><a href="http://books.google.de/books?id=-GXxUV0L6XsC&amp;printsec=frontcover&amp;dq=entwurfsmuster&amp;client=firefox-a#v=onepage&amp;q=&amp;f=false" target="_blank">GoogleBooks - Entwurfsmuster: Elemente wiederverwendbarer objektorientierter Software (Gang of Four)</a></p>
<p class="title" dir="ltr"><a href="http://www.puremvc.org/" target="_blank">Homepage PureMVC</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.division-durch-null.de/2009/09/was-soll-das-command-pattern/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Überwachung abwählen!</title>
		<link>http://blog.division-durch-null.de/2009/08/uberwachung-abwahlen/</link>
		<comments>http://blog.division-durch-null.de/2009/08/uberwachung-abwahlen/#comments</comments>
		<pubDate>Sat, 29 Aug 2009 07:42:19 +0000</pubDate>
		<dc:creator>Mathias</dc:creator>
		
		<category><![CDATA[Privacy Protection]]></category>

		<category><![CDATA[Datenschutz]]></category>

		<guid isPermaLink="false">http://blog.division-durch-null.de/?p=130</guid>
		<description><![CDATA[Bürgerrechtlerinnen und Bürgerrechtler rufen bundesweit zur Teilnahme an einer Demonstration gegen die ausufernde Überwachung durch Wirtschaft und  Staat auf. Am Samstag, den 12. September 2009 werden sie unter dem Motto &#8220;Freiheit statt Angst - Stoppt den Überwachungswahn!&#8221; auf die Straße gehen. Treffpunkt ist um 15.00 Uhr am Potsdamer Platz in Berlin. Die  Demonstration ist Teil [...]]]></description>
			<content:encoded><![CDATA[<p>Bürgerrechtlerinnen und Bürgerrechtler rufen bundesweit zur Teilnahme an einer Demonstration gegen die ausufernde Überwachung durch Wirtschaft und  Staat auf. Am Samstag, den 12. September 2009 werden sie unter dem Motto &#8220;Freiheit statt Angst - Stoppt den Überwachungswahn!&#8221; auf die Straße gehen. Treffpunkt ist um 15.00 Uhr am Potsdamer Platz in Berlin. Die  Demonstration ist Teil des europaweiten Aktionstages &#8220;Freedom not Fear - Freiheit statt Angst&#8221;, zu dem länderübergreifend Proteste gegen die Überwachung der Bürgerinnen und Bürger stattfinden. Mehr Infos unter <a href="http://www.freiheit-statt-angst.de" target="_blank">www.freiheit-statt-angst.de</a></p>
<p><img class="alignnone" title="Stasi 2.0" src="http://blog.division-durch-null.de/wp-content/uploads/2009/08/stasi-20.jpg" alt="" width="400" height="269" /></p>
<p>Und am 27.10.2009: Wählen Sie überwachungswütige Politiker ab und geben Sie denjenigen Ihre Stimme, die sich glaubwürdig für Freiheit statt Angst einsetzen. Die Internetseite <a href="http://www.buergerrechte-waehlen.de/" target="_blank">buergerrechte-waehlen.de</a> gibt einen Überblick  darüber, wie die einzelnen Parteien mit Freiheit und Grundrechten umgehen.</p>
<p>Die Notwendigkeit von informationeller Selbstbestimmung habe ich im Blog-Eintrag &#8220;<a href="http://blog.division-durch-null.de/2008/09/informationelle-selbstbestimmung-und-warum-doch-jeder-etwas-zu-verbergen-hat/" target="_self">Informationelle Selbstbestimmung und warum doch jeder etwas zu Verbergen hat</a>&#8221; kurz zusammengefasst!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.division-durch-null.de/2009/08/uberwachung-abwahlen/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Die Welt von oben</title>
		<link>http://blog.division-durch-null.de/2009/06/die-welt-von-oben/</link>
		<comments>http://blog.division-durch-null.de/2009/06/die-welt-von-oben/#comments</comments>
		<pubDate>Fri, 05 Jun 2009 14:56:00 +0000</pubDate>
		<dc:creator>Mathias</dc:creator>
		
		<category><![CDATA[Medien]]></category>

		<category><![CDATA[Movie]]></category>

		<guid isPermaLink="false">http://blog.division-durch-null.de/?p=100</guid>
		<description><![CDATA[Beeindruckende Bilder gibt es derzeit kostenlos, in Spielfilmlänge und HD-Qualität auf YouTube: HOME. Der Film von Yann Arthus-Bertrand zeigt die Erde aus der Vogelperspektive und macht auf deren massive Zerstörung aufmerksam. Zum YouTube-Channel von HOME


]]></description>
			<content:encoded><![CDATA[<p>Beeindruckende Bilder gibt es derzeit kostenlos, in Spielfilmlänge und HD-Qualität auf YouTube: HOME. Der Film von Yann Arthus-Bertrand zeigt die Erde aus der Vogelperspektive und macht auf deren massive Zerstörung aufmerksam. <a title="HOME (Film)" href="http://www.youtube.com/homeprojectDE" target="_blank">Zum YouTube-Channel von HOME<br />
</a></p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/b38GerDI-jE&amp;hl=de&amp;fs=1&amp;rel=0" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/b38GerDI-jE&amp;hl=de&amp;fs=1&amp;rel=0" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.division-durch-null.de/2009/06/die-welt-von-oben/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Hoffnungsvoller TV-Spot zur Europawahl</title>
		<link>http://blog.division-durch-null.de/2009/05/hoffnungsvoller-tv-spot-zur-europawahl/</link>
		<comments>http://blog.division-durch-null.de/2009/05/hoffnungsvoller-tv-spot-zur-europawahl/#comments</comments>
		<pubDate>Mon, 11 May 2009 16:26:03 +0000</pubDate>
		<dc:creator>Mathias</dc:creator>
		
		<category><![CDATA[Medien]]></category>

		<category><![CDATA[Movie]]></category>

		<guid isPermaLink="false">http://blog.division-durch-null.de/?p=90</guid>
		<description><![CDATA[Parteiprogramme neigen ja schnell dazu langweilig zu werden und die Politikerköpfe auf den Großplakaten reißen auch eher niemanden vom Hocker. Sobald jedoch Parteien versuchen etwas Entertainment in ihren Wahlkampf zu bringen, bleiben meist die eigenen Inhalte auf der Strecke. Als besonderes Negativbeispiel sei an die 18-Kampagne der FDP vor einigen Jahren erinnert. Und im aktuellen [...]]]></description>
			<content:encoded><![CDATA[<p>Parteiprogramme neigen ja schnell dazu langweilig zu werden und die Politikerköpfe auf den Großplakaten reißen auch eher niemanden vom Hocker. Sobald jedoch Parteien versuchen etwas Entertainment in ihren Wahlkampf zu bringen, bleiben meist die eigenen Inhalte auf der Strecke. Als besonderes Negativbeispiel sei an die 18-Kampagne der FDP vor einigen Jahren erinnert. Und im aktuellen Europawahlkampf zeigt die SPD medienwirksam, wie man mit lustigen Plakaten wenig Inhalte transportiert. Politik als Marke, weit ab von Ideologie?</p>
<p>Hoffnung machen die Grünen. In einem TV-Spot zeigen sie, wie es geht ihre Inhalte durch Unterhaltung zu vermitteln. Schon klar&#8230; Details zur Umsetzung und klare politische Forderungen kommen auch hier nicht vor, aber die Kernthemen grüner Politik werden zumindest dargestellt. Und vielleicht ermutigt ja dieser Spot den einen oder anderen die Hintergründe in langweiliger, old-school Manier in textlicher Form zu recherchieren.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/0KJMj9nsPjg&amp;hl=de&amp;fs=1&amp;rel=0" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/0KJMj9nsPjg&amp;hl=de&amp;fs=1&amp;rel=0" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><strong>Bleibt nur abschließend eine grundsätzliche Frage: Wieviel Marketingexperten und Werbestrategen in der Politik sind gut für eine Demokratie?</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.division-durch-null.de/2009/05/hoffnungsvoller-tv-spot-zur-europawahl/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>

