<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>The Fudgy Blog &#187; Software Engineering</title>
	<atom:link href="http://fudgy.de/category/se/feed/" rel="self" type="application/rss+xml" />
	<link>http://fudgy.de</link>
	<description>Johannes Lechner - Mobile Developer &#38; Consultant</description>
	<lastBuildDate>Fri, 28 Oct 2011 14:45:05 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Marble Sequencer</title>
		<link>http://fudgy.de/2011/04/marble-sequencer/</link>
		<comments>http://fudgy.de/2011/04/marble-sequencer/#comments</comments>
		<pubDate>Wed, 06 Apr 2011 22:58:09 +0000</pubDate>
		<dc:creator>master</dc:creator>
				<category><![CDATA[Music]]></category>
		<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[808]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[CDTM]]></category>
		<category><![CDATA[Drum Sequencer]]></category>

		<guid isPermaLink="false">http://fudgy.de/?p=94</guid>
		<description><![CDATA[We (not as in royal we, but Diana &#8211; of Bon-App design fame &#8211; and yours truly) spend our last two weekends busy at the new &#8220;Sketching with Hardware&#8221; course at the CDTM. Goal was to have some hacking fun with the Arduino platform and create working prototypes in the field of playful interaction. We [...]]]></description>
			<content:encoded><![CDATA[<p>We (not as in royal we, but Diana &#8211; of <a href="http://bon-app.de">Bon-App</a> design fame &#8211; and yours truly) spend our last two weekends busy at the new &#8220;Sketching with Hardware&#8221; course at the <a href="http://cdtm.de">CDTM</a>. Goal was to have some hacking fun with the <a href="http://arduino.cc/">Arduino</a> platform and create working prototypes in the field of playful interaction. We created the Corkscrew Controller &#8211; a steering wheel for Super Mario Kart &#8211; and the Marble Sequencer -  a beat box for drum beat production &#8211; and to keep it short, this was the probably the most fun I&#8217;ve ever had in a university course setting.</p>
<p style="text-align: center;"><a href="http://fudgy.de/content/2011/04/5564775431_9290594c03_b1.jpg"><img class="size-full wp-image-138 aligncenter" title="Marble Sequencer" src="http://fudgy.de/content/2011/04/5564775431_9290594c03_b1.jpg" alt="Marble Sequencer" width="680" height="454" /></a></p>
<p style="text-align: center;">
<p>But let&#8217;s start from the beginning&#8230;<span id="more-94"></span></p>
<h2>Warm-up: The Corkscrew Controller</h2>
<p>The first weekend we were in for a crash course on electrical circuitry and we also got into keyboard hacking briefly (i.e. ripping out the USB controller of cheap keyboard and rewiring the inputs). Our first challenge was to create a new kind of interaction device for a game we like. The choice fell (obviously) on SNES Mario Kart and after some strolling through the CDTM we found a corkscrew somewhat resembling a steering wheel. We put a magnet on its rotating axis and two magnetic switches left and right besides the axis. After we soldered the wires to the keyboard controller our steering wheel was ready to go.</p>
<p style="text-align: center;"><a href="http://fudgy.de/content/2011/04/DSC_0147.JPG"><img class="size-full wp-image-139 aligncenter" title="Corkscrew Controller" src="http://fudgy.de/content/2011/04/DSC_0147.JPG" alt="Corkscrew Controller" width="680" height="438" /></a></p>
<p style="text-align: center;">
<h2>Concept: Music Creation</h2>
<p>Jazzed from this quick hack, we went brainstorming about what kind of  project we wanted work on the next weekend. We circled in on doing  something with music creation and since I always enjoyed playing with  drum computers (such as DrumTrack8 on the iPhone) we decided to create a  tangible interface for a drum sequencer. We wanted to offer eight beats  on three tracks and some sliders for BPM and volume control. Next to  the actual hardware controller we also needed something to playback the  drum samples, so while Diana was responsible for the design of the hardware, I took over the software development.</p>
<h2>Software: Cocoa on OS X and some good old 808 samples</h2>
<p>The development of the sequencer software itself was pretty straightforward: I went with a NSTimer driven approach and triggered the playback of preloaded NSSounds. The communication with the Arduino controller was somewhat more difficult. Luckily the <a href="http://www.ghearing.com/Arduino%20Serial%20Example.zip">sample project</a> on the Arduino <a href="http://www.arduino.cc/playground/Interfacing/Cocoa">Cocoa page</a> helped out a lot. As for the drum samples, I&#8217;ve stumbled upon some great Roland TR-808 <a href="http://surachai.org/thedeepelement/tr808.html">samples</a>. Next to marbles (blue means that the sample will be played on this beat) the UI also features a gray rectangle that indicates the current beat.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-109" title="Marble Sequencer Desktop Software" src="http://fudgy.de/content/2011/04/mseq.png" alt="Marble Sequencer Desktop Software" width="653" height="469" /></p>
<h2>Hardware: Arduino, breadboards, aluminum foil and tons of hot glue</h2>
<p>We used the <a href="http://www.ar.tum.de/einrichtungen/technisches_zentrum/">workshop</a> of the TU München to work on the hardware. Diana designed the case out of medium density fiberboard material and spray painted it black. For the marbles there are 24 holes, each with two wires. One of the wires goes into a common 5V power supply, while the other wire (24 of them in total) goes into a <a href="http://www.arduino.cc/playground/Learning/4051">4051 multiplexer cascade</a>. To indicate the current beat just like in the software, we decided to let a blue LED shine through the three holes of a beat. The bottom plate therefore features seven separators to ensure that the LED just glows for one beat at a time. The eight LEDs are also controlled through a 4051 multiplexer. Due to time constraints, the whole electronics were laid out on a breadboard. The software running on the Arduino basically just reads out the current state of the 24 marble holes and updates the LEDs according to the OS X desktop software. Since our budget was limited, we couldn&#8217;t afford (conducting) steel marbles, so we had to go with wooden onces, which we wrapped with conducting aluminum foil.</p>
<p style="text-align: center;"><a href="http://fudgy.de/content/2011/04/DSC_03081.JPG"><img class="size-full wp-image-141 aligncenter" title="Near final wiring and soldering" src="http://fudgy.de/content/2011/04/DSC_03081.JPG" alt="Near final wiring and soldering" width="680" height="452" /></a></p>
<p style="text-align: center;">
<p style="text-align: center;">
<h2>Wrap up</h2>
<p style="text-align: left; ">So after three full days of work (I&#8217;m still amazed about what one can achieve in such short time, when really focused) we had a working beat box. Our study backgrounds (Industrial Design and Computer Science) really fit together perfectly and among other projects, we will present our controller at one of the CDTM <a href="http://www.facebook.com/cdtm.munich?v=app_2344061033">Inspire&amp;Dine sessions</a>.</p>

<a href='http://fudgy.de/2011/04/marble-sequencer/dsc_0164/' title='Playing Mario Kart'><img width="150" height="150" src="http://fudgy.de/content/2011/04/DSC_0164-150x150.jpg" class="attachment-thumbnail" alt="Playing Mario Kart" title="Playing Mario Kart" /></a>
<a href='http://fudgy.de/2011/04/marble-sequencer/dsc_0202/' title='Connecting the marble holes'><img width="150" height="150" src="http://fudgy.de/content/2011/04/DSC_0202-150x150.jpg" class="attachment-thumbnail" alt="Connecting the marble holes" title="Connecting the marble holes" /></a>
<a href='http://fudgy.de/2011/04/marble-sequencer/dsc_0276/' title='First wiring test'><img width="150" height="150" src="http://fudgy.de/content/2011/04/DSC_0276-150x150.jpg" class="attachment-thumbnail" alt="First wiring test" title="First wiring test" /></a>
<a href='http://fudgy.de/2011/04/marble-sequencer/dsc_0246/' title='4051 Multiplexer cascade'><img width="150" height="150" src="http://fudgy.de/content/2011/04/DSC_0246-150x150.jpg" class="attachment-thumbnail" alt="4051 Multiplexer cascade" title="4051 Multiplexer cascade" /></a>
<a href='http://fudgy.de/2011/04/marble-sequencer/5564700601_2d0e40effd_b/' title='Collaborative Beat Creation'><img width="150" height="150" src="http://fudgy.de/content/2011/04/5564700601_2d0e40effd_b-150x150.jpg" class="attachment-thumbnail" alt="Collaborative Beat Creation" title="Collaborative Beat Creation" /></a>
<a href='http://fudgy.de/2011/04/marble-sequencer/5564768859_2052da8c50_b/' title='Software &amp; Hardware'><img width="150" height="150" src="http://fudgy.de/content/2011/04/5564768859_2052da8c50_b-150x150.jpg" class="attachment-thumbnail" alt="Software &amp; Hardware" title="Software &amp; Hardware" /></a>
<a href='http://fudgy.de/2011/04/marble-sequencer/5564775431_9290594c03_b-2/' title='Marble Sequencer'><img width="150" height="150" src="http://fudgy.de/content/2011/04/5564775431_9290594c03_b1-150x150.jpg" class="attachment-thumbnail" alt="Marble Sequencer" title="Marble Sequencer" /></a>
<a href='http://fudgy.de/2011/04/marble-sequencer/dsc_0147/' title='Corkscrew Controller'><img width="150" height="150" src="http://fudgy.de/content/2011/04/DSC_0147-150x150.jpg" class="attachment-thumbnail" alt="Corkscrew Controller" title="Corkscrew Controller" /></a>
<a href='http://fudgy.de/2011/04/marble-sequencer/mseq/' title='Desktop Software'><img width="150" height="150" src="http://fudgy.de/content/2011/04/mseq-150x150.png" class="attachment-thumbnail" alt="Desktop Software" title="Desktop Software" /></a>
<a href='http://fudgy.de/2011/04/marble-sequencer/dsc_0308-2/' title='Near final wiring and soldering'><img width="150" height="150" src="http://fudgy.de/content/2011/04/DSC_03081-150x150.jpg" class="attachment-thumbnail" alt="Near final wiring and soldering" title="Near final wiring and soldering" /></a>

<p style="text-align: left; ">
<p style="text-align: left; ">
<p style="text-align: left; ">
]]></content:encoded>
			<wfw:commentRss>http://fudgy.de/2011/04/marble-sequencer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Anonyme UI-Missbraucher @ iPhoneDevCamp</title>
		<link>http://fudgy.de/2009/08/anonyme-ui-missbraucher-iphonedevcamp/</link>
		<comments>http://fudgy.de/2009/08/anonyme-ui-missbraucher-iphonedevcamp/#comments</comments>
		<pubDate>Wed, 05 Aug 2009 10:51:26 +0000</pubDate>
		<dc:creator>The Fudgy Beaver</dc:creator>
				<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[Fudgy Software]]></category>
		<category><![CDATA[iPhoneDevCamp]]></category>
		<category><![CDATA[Munich]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://fudgy.de/?p=71</guid>
		<description><![CDATA[This post is about the usability talk I gave at the Munich satellite of iPhoneDevCamp on 2009-08-01. Since the language at the camp was german, so was my talk and so is the rest of this post.
Ich bin immer noch sehr begeistert vom Camp und den vielen interessanten Personen und Vorträgen die ich dort kennenlernen [...]]]></description>
			<content:encoded><![CDATA[<p>This post is about the usability talk I gave at the Munich satellite of iPhoneDevCamp on 2009-08-01. Since the language at the camp was german, so was my talk and so is the rest of this post.</p>
<p>Ich bin immer noch sehr begeistert vom Camp und den vielen interessanten Personen und Vorträgen die ich dort kennenlernen durfte. Insbesondere der Vortag von <a title="Cultured Code" href="http://culturedcode.com/">Cultured Code&#8217;s</a> Andreas Linde zu &#8220;Mehr Effektivität im Entwicklungs-Prozess&#8221; hat mir direkt weitergeholfen den Betaprozess meiner eigenen iPhone App zu verbessern. Ich hoffe die Folien dazu gehen bald online. Die Videos vom ersten Block der Präsentationen (App Records, iOutBank und Holger Frank) sind bereits <a title="iPhone Dev Camp 2009" href="http://barcamp.org/iPhone-Dev-Camp-2009-Munich">online</a>, der Rest sollte in den nächsten Tagen folgen.</p>
<p>Nach den Jungs von Cultured Code, trat ich deren (große) Fussstapfen und hielt meinen Vortrag zu Usability und rief die Selbsthilfegruppe der anonymen UI-Missbraucher ins Leben. Die Folien dazu gibt es übrigens (zunächst einmal) <a title="Anonyme UI-Missbraucher Slides" href="http://fudgy.de/talks/iPhoneDevCamp2009.pdf">hier</a>.</p>
<p>Neben dem vielen Lob für das Thema und den Vortrag an sich (vielen Dank!), gab es auch fast genauso viel Tadel an der Gestaltung der Folien selbst. Zu meiner Verteidigung: Ich musste sie in (wirklich) kurzer Zeit erstellen. Trotzdem empfand ich sie selbst bei weitem nicht so schlimm. Für mich zeigt das vor allem mal wieder sehr schön, wie schwer es wirklich ist, die Qualität seiner eigenen Arbeit zu beurteilen. Das gleiche Problem plagt einem beim Entwickeln von UIs und deren Interaktion. Da der Entwickler (oft) als einziger die ganzen Annahmen und Entscheidungen hinter seinem Werk kennt, ist die UI aus seiner Sicht natürlich intuitiv und nahezu perfekt. Deshalb ist Feedback von &#8220;außen&#8221; meiner Meinung nach einfach unersetzlich und ein wichtiger Punkt im UI-Designprozess. Dabei heißt das nicht, bei jeder Kritik sofort in Panik zu geraten und schlagartig die ganze UI umzuwerfen. Aber wenn mehrere Personen über die gleichen Fallen stolpern, kann man stark davon ausgehen, dass dies in Zukunft auch weiteren Personen widerfahren wird.</p>
<p>Jedenfalls, sollte es ein iPhoneDev Camp 2010 geben, bin ich definitiv wieder dabei! Außerdem möchte mich noch mal bei App Records und <a title="Boinx Software" href="http://boinx.com/">Boinx Software</a> für die professionelle Organisation bedanken!</p>
]]></content:encoded>
			<wfw:commentRss>http://fudgy.de/2009/08/anonyme-ui-missbraucher-iphonedevcamp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>280 Slides samt Cappuccino &#8211; Cocoa fürs Web?</title>
		<link>http://fudgy.de/2008/07/280-slides-samt-cappuccino-cocoa-furs-web/</link>
		<comments>http://fudgy.de/2008/07/280-slides-samt-cappuccino-cocoa-furs-web/#comments</comments>
		<pubDate>Thu, 03 Jul 2008 14:28:42 +0000</pubDate>
		<dc:creator>The Fudgy Beaver</dc:creator>
				<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[280 North]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Web 2.0]]></category>

		<guid isPermaLink="false">http://fudgy.j-lechner.de/?p=4</guid>
		<description><![CDATA[Das Echo bezüglich des Launch von 280 Slides, einer neuen Online Präsentationssoftware ist ziemlich eindeutig:

Wow, ist ja wie Apple Keynote fürs Web!
Die Anwendung setzt Maßstäbe in Sachen Usability!
Die Grenzen zwischen Web und Desktop Anwendungen verschwimmen immer mehr!

Nur: Braucht die Welt wirklich noch 5000 weitere Online Office Anwendungen?

Nein! Zumindest nein, wenn die Entwickler das Ziel haben langfristig [...]]]></description>
			<content:encoded><![CDATA[<p>Das Echo bezüglich des Launch von 280 Slides, einer neuen Online Präsentationssoftware ist ziemlich eindeutig:</p>
<ul>
<li>Wow, ist ja wie Apple Keynote fürs Web!</li>
<li>Die Anwendung setzt Maßstäbe in Sachen Usability!</li>
<li>Die Grenzen zwischen Web und Desktop Anwendungen verschwimmen immer mehr!</li>
</ul>
<h2>Nur: Braucht die Welt wirklich noch <a href="http://docs.google.com" target="_blank">5000</a> <a href="http://www.zoho.com/" target="_blank">weitere</a> <a href="http://www.sliderocket.com/index.html">Online</a> <a href="http://member.thinkfree.com/" target="_blank">Office</a> <a href="http://www.peepel.com/" target="_self">Anwendungen</a>?</h2>
<p><span id="more-4"></span><br />
<strong><span style="font-weight: normal;">Nein! Zumindest nein, wenn die Entwickler das Ziel haben langfristig mit der Anwendung selbst Geld zu verdienen. Und Venture Capital sammeln zählt nicht als Geld verdienen.</span></strong></p>
<p><strong><span style="font-weight: normal;">Zu den Nutzern von Präsentationssoftware gehören vor allem Unternehmen und deren Akzeptanz wird gering sein, solange nicht absehbar ist ob der Software Anbieter (samt den bei ihm gespeicherten Daten) in einem Jahr überhaupt noch existiert. Ein wunderschönes Beispiel dafür ist <a href="http://web.archive.org/web/20000301065026/www.iamaze.com/Home" target="_self">iAmaze,</a> die diese Idee schon im Jahr 2000(!) verfolgt haben und inzwischen vom AOL Moloch absorbiert wurden.</span></strong></p>
<p><strong><span style="font-weight: normal;">Die gern zitierte Erkenntnis, das vom großen Vorbild Microsoft Office 80% der User nur 20% der Features nützen rechtfertigt zudem die beschränkte Funktionalität dieser Anwendungen nur auf den ersten Blick. Wenn nämlich jeder Benutzer andere 20% braucht und verwendet (persönliche Killer-Features für mich: PDF-Export, Presenter-Modus, Masterslides), dann wundert man sich recht schnell warum man nicht gleich Microsoft Office oder OpenOffice verwendet. </span></strong></p>
<p>Gerade im Unternehmenseinsatz kommen dann noch ganze andere Aspekte hinzu: Die Tatsache, das man nicht mal eben ein Management Briefing mit vielen bunten und vertraulichen Zahlen auf dem Server irgendeines Startups liegen haben will klopft dann auch noch leise an der Tür der IT-Security Abteilung. Dieses Henne-Ei Problem, nämlich das ein Softwareanbieter erst einmal bis zu einem gewissen Punkt wachsen muss um Stabilität (im Sinn von Bestehen am Markt) und Vertrauenswürdigkeit vermitteln können, für dieses Wachstum aber erst mal diese beiden Faktoren sicherstellen muss wird sich nicht durch ein weiteres Web Office me-too Produkt aufbrechen lassen.</p>
<h2>Die verdammte Lernkurve</h2>
<p>Man übersieht aber bei diesem sehr wirtschaftlichen und kurzfristigen Blick leicht, wie das Web als Gesamtes von solchen Entwicklungen profitiert. Auf die gleiche Art wie der Zweite Weltkrieg und der Kalte Krieg ein technologische Wettrüsten ausgelöst haben, ohne das wir heute (so pervers es klingt) wahrscheinlich keinen Computer auf jedem Schreibtisch hätten, treibt die Blase um Web-basierte Anwendungen und Software-as-a-service Geschichten natürlich die Etablierung des Browsers als ernstzunehmendes Entwicklungsziel weiter voran.</p>
<p>Im Laufe der Zeit wird dadurch ein enormer Erfahrungsschatz in Sachen Web-basierte Clients aufgebaut, schon allein weil viele Fehler der Desktop Client Entwicklung wieder gemacht werden und viele Probleme wieder auftauchen. Als Lösung entstehen immer bessere Web-Frameworks und somit Abstraktionen von den darunter liegenden Technologien (HTML/CSS/JavaScript).</p>
<h2><span style="font-weight: normal; ">W</span>arum 280 Slides wichtig und interessant ist</h2>
<p>Abstraktion ist genau der Begriff für das was 280 Slides interessant macht. Man mag ja durchaus Zweifel am Geschäftsmodell einer Präsentationssoftware haben, aber aus technischer Sicht haben die Entwickler <a href="http://280north.com/" target="_blank">280 North</a> wirklich Neuland betreten:</p>
<p>Die drei Entwickler von 280 North waren wohl von Apple&#8217;s Cocoa Framework zur Desktop Entwicklung sehr begeistert. Denn 280 Slides wurde mit einem neuen Framework names Cappuccino realisiert, das nichts anderes ist als 280 North&#8217;s Versuch ist ein Cocoa ähnliches Framework für Web-basierte Clients zu entwickeln.</p>
<p>Wenn man einen Blick in den <a href="http://280slides.com/Editor/1212695713/Document.j" target="_blank">Quellcode</a> wirft, wird man sich dann als Cocoa Entwickler sofort heimisch fühlen:</p>
<blockquote>
<pre>- (void)newDocument:(id)aSender
{
    if (!_applicationHasFinishedLaunching)
        return [super newDocument:aSender];

    [[ThemePanel sharedThemePanel]
        beginWithInitialSelectedSlideMaster:SaganThemeSlideMaster
                              modalDelegate:self
                             didEndSelector:@selector(themePanel:didEndWithReturnCode:)
                                contextInfo:YES];
}</pre>
</blockquote>
<p>Wie man sieht haben 280 North zudem eine Objective-C nicht unähnliche Sprache names Objective-J entwickelt. <a href="http://280slides.com/Editor/1212695713/Frameworks/Objective-J/Objective-J.js" target="_blank">Samt Javascript Interpreter</a>.</p>
<p>Die Idee Cocoa fürs Web klingt sehr verlockend, loben doch viele Entwickler (samt mir) die hohe Produktivität die man mit Cocoa erreichen kann. Als Beispiele seien nur Key-Value-Coding/Binding, Undo Manager und Delegates genannt. Wenn es jetzt 280 North schafft ihre Vision weiter zu verwirklichen, sind Mac Entwickler in der einmaligen Position mit der gleichen Sprache (Objective-C), gleichen Grundkonzepten und sehr ähnlichen Frameworks für den Mac (Cocoa), das iPhone (Cocoa Touch) und das Web (Cappuccino) entwickeln zu können. Haben Mac Entwickler schon jetzt den Vorteil mit einer gewissen Vorerfahrung an das Thema iPhone Entwicklung heran gehen zu können, könnte Cappuccino es schaffen diesen Vorsprung auch noch aufs Web auszuweiten.</p>
<p>Für den Entwickler bedeutet das, sich auf eine solide Technologiebasis verlassen zu können mit der sich Ideen schnell in Produkte umsetzen lassen. Der Anwender profitiert von Web-Clients die in Sachen Interaktivität, Funktionalität und Look-and-Feel gestandenen Desktop-Anwendungen kaum mehr nachstehen. Ich bin gespannt wann wir Lieblinge wie <a href="http://www.delicious-monster.com/" target="_blank">Delicious Library</a> als Web-App sehen.</p>
<h2>Abschied von der Web-Assembler Entwicklung</h2>
<p>Cappuccino ist ein weiterer Nagel in den Sarg von etwas das ich Web-Assembler Entwicklung nenne. Damit meine ich das in Zukunft Web-basierte Anwendungen immer weniger in den Assembler-Sprachen des Webs (wie HTML/CSS/Javascript) geschrieben werden, sondern vermehrt Frameworks zum Einsatz die diese zum Teil unangenehmen Technologie abstrahieren.</p>
<p>Damit hat der Entwickler den Kopf frei für das eigentliche Problem und muss nicht mehr darüber nachdenken ob seine Text Felder jetzt in allen aktuellen Browsern richtig dargestellt werden. Das schöne daran ist, dass der Output fürs Web nur ein Implementierungsdetail ist und unter diesen Frameworks genauso gut Flash, SVG, Silverlight oder was auch immer stecken kann.</p>
<p>Dieser Ansatz wird zum Beispiel von der <a href="http://www.eclipse.org/rap/" target="_blank">Eclipse RAP</a> (Rich Ajax Plattform) schon verfolgt. Das Programmiermodell von RAP ähnelt sehr stark dem der Eclipse Rich Client Plattform. Damit können RCP Desktop-Anwendungen mit geringen Änderungen als Ajax Web-App verfügbar gemacht werden &#8211; ohne das der Programmierer auch nur eine Zeile Javascript oder HTML tippen muss.</p>
<p>Auch bringen Frameworks wie RAP und Cappuccino Standardisierte GUI-Komponenten mit, was natürlich die Usability verbessert.</p>
<h2>Von Serverseitigen, über Gleichberechtigte hin zu Clientseitigen Anwendungen</h2>
<p>Cappuccino unterscheidet sich aber von Eclipse RAP dadurch, dass das komplette Framework im Browser läuft.</p>
<p>In der Anfangszeit von Web-basieren Anwendungen lief die komplette Logik auf dem Server, der Browser war schlicht für die Anzeige der fertigen Seiten zuständig. Mit der Entdeckung von Ajax, wurden die Aufgaben zwischen Server und Client etwas mehr aufgeteilt. Der Browser dürfte selbstständig Eingaben (Vor-)validieren, Daten nachladen und Änderungen vom Server pollen.</p>
<p>Aktuell geht die Entwicklung dahin, komplette Anwendungen für den Browser zu entwickeln, die einmal geladen, komplett selbstständig im Browser laufen. 280 Slides zum Beispiel kommuniziert nur mit dem Server wenn es speichern will oder Daten (Bilder,etc) aus dem Web einfügt.</p>
<p>Der Vorteil darin liegt neben der höheren Interaktivität, dass es einfacher wird Web-Apps auch offline zur Verfügung zustellen. Auch kann sich der Softwareanbieter über eine geringere Serverlast freuen, wenn so gut wie alles auf dem Client abläuft.</p>
<p>Natürlich ist dieses Clientlastige Entwicklungsmodell vor allen bei Produktivitätsanwendungen wie Office Pakete oder Bildbearbeitung sinnvoll. Bei datenbanklastigen Anwendungen (z.B. Bücherladen) kommt man um eine häuftigere Kommunikation mit dem Server nicht herum.</p>
<h2>Nur wie will 280 North jetzt Geld verdienen?</h2>
<p>Bleibt noch die Frage warum 280 North überhaupt <a href="http://www.techcrunch.com/2008/06/05/280-north-launches-its-online-keynote-280-slides/" target="_blank">Funding erhalten haben</a>. Meine Vermutung: 280 Slides ist für mich vor allem eine sehr gelungene Techdemo, mit dem 280 North einen idealen, medienwirksamen Showcase für ihr Cappuccino-Framework gefunden haben. Das große Geld kann dann über die Beratung und Umsetzung von individuellen Kundenprojekten mit ihrer eigenen Technologie kommen &#8211; aber das sind natürlich nur wilde Theorien aus meiner Feder.</p>
]]></content:encoded>
			<wfw:commentRss>http://fudgy.de/2008/07/280-slides-samt-cappuccino-cocoa-furs-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

