<?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>Jethwa.de &#187; Tutorial</title>
	<atom:link href="http://www.jethwa.de/weblog/schlagwort/tutorial/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jethwa.de</link>
	<description>Jay Allan Jethwa</description>
	<lastBuildDate>Mon, 12 Jul 2010 20:55:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Tutorial: Einstieg in das Adobe Flex 3 SDK</title>
		<link>http://www.jethwa.de/weblog/tutorial-einstieg-in-das-adobe-flex-sdk/</link>
		<comments>http://www.jethwa.de/weblog/tutorial-einstieg-in-das-adobe-flex-sdk/#comments</comments>
		<pubDate>Wed, 28 May 2008 13:39:17 +0000</pubDate>
		<dc:creator>Jay Allan Jethwa</dc:creator>
				<category><![CDATA[Webentwicklung]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[swf]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.jethwa.de/?p=5165</guid>
		<description><![CDATA[Hinweis: Dieser Artikel behandelt den Umgang mit dem alten Flex 3 SDK. Mit der Veröffentlichung des Flex SDK als Open Source ermöglicht es Adobe Webentwicklern endlich von offizieller Seite aus, SWF-Dateien ohne die Anschaffung des teuren Adobe Flash oder die Verwendung von Dritthersteller-Tools zu erstellen. Die Entwicklungsumgebung Adobe Flex Builder bleibt jedoch kommerziell, so dass [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-5125" title="Flex" src="http://www.jethwa.de/wp-content/uploads/2008/03/flex.jpg" alt="" width="490" height="120" /></p>
<p><strong>Hinweis: Dieser Artikel behandelt den Umgang mit dem alten Flex 3 SDK.</strong></p>
<p>Mit der Veröffentlichung des Flex SDK als Open Source ermöglicht es Adobe Webentwicklern endlich von offizieller Seite aus, SWF-Dateien ohne die Anschaffung des teuren Adobe Flash oder die <a href="http://http://www.jethwa.de/weblog/swf-ohne-flash-actionscript-compiler/">Verwendung von Dritthersteller-Tools</a> zu erstellen. Die Entwicklungsumgebung Adobe Flex Builder bleibt jedoch kommerziell, so dass man bei Verwendung des Flex SDKs auf die Kommandozeile angewiesen ist.</p>
<p>Da Adobe als kommerzieller Anbieter bewusst seine IDE pushen möchte, findet man in den Adobe-Tutorials keine wirklich brauchbare Starthilfe, die von 0 anfängt - und das schon gar nicht auf Deutsch. Das möchte ich also mit diesem Artikel versuchen zu ändern.</p>
<p><strong>Download und Installation des Flex SDK</strong></p>
<p>Das Flex SDK ist auf der Adobe-Website zum Download erhältlich [1]. Auf der Download-Seite ist nicht der Eintrag "Flex Builder Professional" einzuwählen, sondern weiter unten der Eintrag "Flex SDK". Dort das Häkchen neben dem License Agreement setzen und den Download der etwa 40 MB großen Datei starten.</p>
<p>Das ZIP-Archiv sollte an zentraler und gut erreichbarer Stelle extrahiert werden - ich habe für solche Zwecke eine eigene Partition für den Bereich Software- und Web-Entwicklung auf meinem Rechner. In meinem Beispiel also entpacke ich das Archiv nach D:\FlexSDK.</p>
<p>Das SDK enthält neben dem eigentlichen Flex Framework eine Fülle an Beispielen, Vorlagen und Bibliotheken. Für uns ist jedoch primär der eigentliche Flex Compiler interessant, welcher im Unterverzeichnis 'bin' zu finden ist.</p>
<p><strong>Bedienung des Flex Compilers</strong></p>
<p>Die Handhabung des Flex Compilers mxmlc mit seinen Standard-Einstellungen ist auf Kommandozeilen-Ebene recht einfach, da er lediglich zwei Parameter benötigt: Die Quelltextdatei und die Ausgabedatei.</p>

<div class="wp_syntax"><div class="code"><pre class="batch" style="font-family:monospace;">mxmlc -file-specs=Quelltextdatei -output=SWF-Datei</pre></div></div>

<p>Ich habe für meine Zwecke eine Batch-Datei geschrieben, die den Aufruf des Compilers vereinfacht und zudem die Kommandozeile nach Aufruf durch den Windows Explorer offen hält, falls es Fehlermeldungen beim Kompilieren gab:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="dos" style="font-family:monospace;"><span style="color: #33cc33;">@</span><span style="color: #b1b100; font-weight: bold;">echo</span> off
\FlexSDK\bin\mxmlc.exe -file-specs=<span style="color: #33cc33;">%</span><span style="color: #448888;">1</span> -output=<span style="color: #33cc33;">%</span><span style="color: #448888;">2</span>
<span style="color: #b1b100; font-weight: bold;">pause</span>
<span style="color: #00b100; font-weight: bold;">exit</span></pre></td></tr></table></div>

<p>Nun kann ich mit einer Verknüpfung zur compile.bat mit dem Namen der Quelltext und der SWF-Datei als Parameter für jedes Projekt bequem die Kompilierung anstoßen.</p>
<p><strong>Hallo, Welt!</strong></p>
<p>Das Kerngerüst für das einfaches Oberflächen-Layout sind auf XML basierende Dateien mit einem eigenen Namespace von Adobe. Ein einfaches "Hallo, Welt!"-Programm sieht hier folgendermaßen aus:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;utf-8&quot;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mx:Application</span> <span style="color: #000066;">xmlns:mx</span>=<span style="color: #ff0000;">&quot;http://www.adobe.com/2006/mxml&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mx:Label</span> <span style="color: #000066;">text</span>=<span style="color: #ff0000;">&quot;Hallo, Welt!&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/mx:Application<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<p>Dies erzeugt eine leere Oberfläche mit einem einzigen Bezeichnungsfeld mit dem Inhalt "Hallo, Welt!".<br />
Nach der Speicherung der Datei als hallo.mxml erzeugen wir also direkt unsere erste eigene Flex-Anwendung mittels unserer compile.bat durch den Aufruf:</p>

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;">compile hallo.mxml hallo.swf</pre></div></div>

<p>Der Flex Compiler meldet nach kurzer Zeit die erfolgreiche Kompilierung und die hallo.swf kann im Browser aufgerufen werden - voraussetzung ist natürlich ein aktuelles Flash Plugin.</p>
<p><span id="more-5165"></span></p>
<p><strong>Beispiel-Anwendung: Überblenden von Bildern</strong></p>
<p>Doch grau ist alle Theorie, fahren wir daher mit einer kleinen, sinnvollen Applikation fort, die auf vielen aktuellen Websites ihre Anwendung findet: Das Überblenden von Bildern.</p>
<p>Unser Programm wird grob gesehen aus zwei Teilen bestehen. Zum einen die MXML-Definitionen und zum anderen einem ActionScript-Teil zur Steuerung der Überblendung.</p>
<p>Wir beginnen also zunächst mit der Definition eines Canvas-Objekts, welches die darzustellenden Bilder enthält. Dieses Zeichenflächen-Objekt erlaubt uns, die Bilder pixelgenau übereinander zu positionieren ohne uns weiter mit dem automatisierten Layout von Flex beschäftigen zu müssen:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mx:Canvas<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mx:Image</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;p1&quot;</span> <span style="color: #000066;">source</span>=<span style="color: #ff0000;">&quot;bild1.jpg&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mx:Image</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;p2&quot;</span> <span style="color: #000066;">alpha</span>=<span style="color: #ff0000;">&quot;0.0&quot;</span> <span style="color: #000066;">source</span>=<span style="color: #ff0000;">&quot;bild2.jpg&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/mx:Canvas<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<p>Unsere Bilder werden mit dieser Art und Weise zur Laufzeit aus dem Dateisystem geladen. Es ist jedoch auch möglich, Bilder direkt in die SWF-Datei einzubetten. Ein Beispiel für so eine Einbettung wäre:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mx:Image</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;p1&quot;</span> <span style="color: #000066;">source</span>=<span style="color: #ff0000;">&quot;@Embed('bild1.jpg')&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span></pre></div></div>

<p>Jedes Bild erhält von uns eine eindeutige Identifikation (p1, p2) und eine Bildquelle, ausserdem wird der Alphakanal-Wert des zweiten Bildes direkt auf 0 gesetzt, damit zu Beginn nur das erste Bild zu sehen ist.</p>
<p>Als nächstes machen wir uns die State-Engine des Flex-Frameworks zu nutze: Mit ihrer Hilfe lassen sich Zustände innerhalb einer Flex-Applikation definieren. In unserem Beispiel wären dies zwei Endzustände:</p>
<ol>
<li>Bild 1 wird angezeigt, Bild 2 wird nicht angezeigt</li>
<li>Bild 1 wird nicht angezeigt, Bild 2 wird angezeigt</li>
</ol>
<p>Da Zustand 1 bereits oben von uns als Ausgangsposition (Bezeichnung '*' in Flex) definiert ist, müssen wir lediglich noch Zustand 2 zusätzlich definieren:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mx:states<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mx:State</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;Two&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mx:SetProperty</span> <span style="color: #000066;">target</span>=<span style="color: #ff0000;">&quot;{p1}&quot;</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;alpha&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;0.0&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mx:SetProperty</span> <span style="color: #000066;">target</span>=<span style="color: #ff0000;">&quot;{p2}&quot;</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;alpha&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/mx:State<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/mx:states<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<p>Hier nützen wir den SetProperty-Befehl, um einfach die Alphakanal-Werte beider Bilder zu vertauschen.</p>
<p>Um nun den Wechsel zwischen beiden Zuständen zu steuern, benötigen wir einen Timer mit ein wenig ActionScript:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
</pre></td><td class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mx:script<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #339933;">&lt;![CDATA[</span>
<span style="color: #339933;">        import flash.utils.Timer;</span>
<span style="color: #339933;">        import flash.events.TimerEvent;</span>
&nbsp;
<span style="color: #339933;">        private var t: Timer;</span>
&nbsp;
<span style="color: #339933;">        private function init(): void</span>
<span style="color: #339933;">        {</span>
<span style="color: #339933;">            t = new Timer(5000);</span>
<span style="color: #339933;">            t.addEventListener(TimerEvent.TIMER, changeImage);</span>
<span style="color: #339933;">            t.start();</span>
<span style="color: #339933;">        }</span>
&nbsp;
<span style="color: #339933;">        private function changeImage(evt: TimerEvent): void</span>
<span style="color: #339933;">        {</span>
<span style="color: #339933;">            currentState = currentState == 'Two' ? '' : 'Two';</span>
<span style="color: #339933;">        }</span>
<span style="color: #339933;">    ]]&gt;</span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/mx:script<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<p>Dieser Code-Schnipsel sollte größtenteils selbsterklärend sein: Die 5000 steht für das Zeitintervall in Millisekunden, bis der Timer ausgelöst wird und über addEventListener() wird dem Timer mitgeteilt, welche Funktion er überhaupt aufrufen soll, wenn er auslöst. Dies ist in unserem Fall die Funktion changeImage(), welche den aktuellen Status der Flex-Applikation über die globale Variable des Flex Frameworks 'currentState' neu setzt.</p>
<p>Damit unser Code auch ausgeführt wird, ist eine Anpassung des Wurzelknotens mx:Application unserer MXML-Datei notwendig:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mx:Application</span> <span style="color: #000066;">xmlns:mx</span>=<span style="color: #ff0000;">&quot;http://www.adobe.com/2006/mxml&quot;</span> <span style="color: #000066;">creationComplete</span>=<span style="color: #ff0000;">&quot;init()&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span></pre></div></div>

<p>Die im Parameter creationComplete übergebene Methode wird aufgerufen, nachdem unsere Flex-Applikation vom Flex Framework fertig geladen wurde.</p>
<p>Fehlt zum Abschluss nur noch die eigentliche Überblende-Animation, denn momentan ist noch ein harter Übergang beim Wechsel der Bilder zu sehen. Dieser Übergang ist dank der eingebauten Effekte in Flex sehr einfach, schnell und ohne eine weitere Zeile ActionScript zu realisieren:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
</pre></td><td class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mx:transitions<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mx:Transition</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;toTwo&quot;</span> <span style="color: #000066;">fromState</span>=<span style="color: #ff0000;">&quot;*&quot;</span> <span style="color: #000066;">toState</span>=<span style="color: #ff0000;">&quot;Two&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mx:Parallel<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mx:Fade</span> <span style="color: #000066;">target</span>=<span style="color: #ff0000;">&quot;{p1}&quot;</span> <span style="color: #000066;">duration</span>=<span style="color: #ff0000;">&quot;2500&quot;</span> <span style="color: #000066;">alphaFrom</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">alphaTo</span>=<span style="color: #ff0000;">&quot;0.0&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mx:Fade</span> <span style="color: #000066;">target</span>=<span style="color: #ff0000;">&quot;{p2}&quot;</span> <span style="color: #000066;">duration</span>=<span style="color: #ff0000;">&quot;2500&quot;</span> <span style="color: #000066;">alphaFrom</span>=<span style="color: #ff0000;">&quot;0.0&quot;</span> <span style="color: #000066;">alphaTo</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/mx:Parallel<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/mx:Transition<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mx:Transition</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;toOne&quot;</span> <span style="color: #000066;">fromState</span>=<span style="color: #ff0000;">&quot;Two&quot;</span> <span style="color: #000066;">toState</span>=<span style="color: #ff0000;">&quot;*&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mx:Parallel<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mx:Fade</span> <span style="color: #000066;">target</span>=<span style="color: #ff0000;">&quot;{p1}&quot;</span> <span style="color: #000066;">duration</span>=<span style="color: #ff0000;">&quot;2500&quot;</span> <span style="color: #000066;">alphaFrom</span>=<span style="color: #ff0000;">&quot;0.0&quot;</span> <span style="color: #000066;">alphaTo</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mx:Fade</span> <span style="color: #000066;">target</span>=<span style="color: #ff0000;">&quot;{p2}&quot;</span> <span style="color: #000066;">duration</span>=<span style="color: #ff0000;">&quot;2500&quot;</span> <span style="color: #000066;">alphaFrom</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">alphaTo</span>=<span style="color: #ff0000;">&quot;0.0&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/mx:Parallel<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/mx:Transition<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>        
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/mx:transitions<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<p>Hier machen wir uns die Transition-Engine zu nutze, indem wir für beide Zustände einen Übergang definieren: Übergang 'toTwo' führt vom Zustand * in den Zustand 'Two', den wir weiter oben definiert haben, während Übergang 'toOne' dies umkehrt. Mit Hilfe von mx:Parallel wird ein paralleler Effekt erzeugt - also ein Effekt, der für mehrere Objekte gleichzeitig durchgeführt wird. mx:Fade wiederum ist der eigentliche Effekt, welcher den Alphakanal-Wert eines Bildes von einem Start- zu einem Zielwert überführt.</p>
<p>Das war es dann auch schon: Nach dem Kompilieren sehen wir auf dem Bildschirm zunächst unser erstes Bild, welches dann nach 5 Sekunden weich in das zweite Bild überblendet.</p>
<p>Ich hoffe, ich konnte mit diesem kleinen Tutorial die Einstiegshürde in den Umgang mit dem Flex SDK ein wenig senken und möchte zum Schluss noch auf die überlebenswichtige Flex Sprachreferenz [2] sowie die Flex Hilfe [3] verweisen, an der sich entlangzuhangeln nun kein Problem mehr sein sollte.</p>
<p>Ich wünsche viel Erfolg!</p>
<p>Links:</p>
<p>[1] <a href="http://www.adobe.com/go/flex_trial">Adobe Flex SDK Download</a> (Englisch)<br />
[2] <a href="http://livedocs.adobe.com/flex/3/langref/index.html">Adobe Flex 3 Language Reference</a> (Englisch)<br />
[3] <a href="http://livedocs.adobe.com/flex/3/html/">Adobe Flex 3 Help</a> (Englisch)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jethwa.de/weblog/tutorial-einstieg-in-das-adobe-flex-sdk/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Farbgestaltung in f&#252;nf einfachen Schritten</title>
		<link>http://www.jethwa.de/weblog/farbgestaltung-in-fuenf-einfachen-schritten/</link>
		<comments>http://www.jethwa.de/weblog/farbgestaltung-in-fuenf-einfachen-schritten/#comments</comments>
		<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate>
		<dc:creator>Jay Allan Jethwa</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Webdesign]]></category>
		<category><![CDATA[Farben]]></category>
		<category><![CDATA[farbharmonie]]></category>
		<category><![CDATA[farblehre]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Mark Boulton hat in seinem Weblog eine neue Serie gestartet in der er seinen Lesern in f&#252;nf einfachen Schritten einen Crashkurs in Farbharmonielehre anhand einfacher Beispiele vermitteln m&#246;chte. Link: Five Simple Steps to designing with color (auf Englisch)]]></description>
			<content:encoded><![CDATA[<p>Mark Boulton hat in seinem Weblog eine neue Serie gestartet in der er seinen Lesern in f&uuml;nf einfachen Schritten einen Crashkurs in Farbharmonielehre anhand einfacher Beispiele vermitteln m&ouml;chte.</p>
<p>Link:<br />
<a href='http://www.markboulton.co.uk/journal/comments/five_simple_steps_to_designing_with_colour/'>Five Simple Steps to designing with color (auf Englisch)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jethwa.de/weblog/farbgestaltung-in-fuenf-einfachen-schritten/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AJAX Applikationen zug&#228;nglicher machen</title>
		<link>http://www.jethwa.de/weblog/ajax-applikationen-zugaenglicher-machen/</link>
		<comments>http://www.jethwa.de/weblog/ajax-applikationen-zugaenglicher-machen/#comments</comments>
		<pubDate>Wed, 26 Jul 2006 08:32:17 +0000</pubDate>
		<dc:creator>Jay Allan Jethwa</dc:creator>
				<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[accessible]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[zugänglich]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Die tollen neuen Effekte und Features, die Technologien wie AJAX erm&#246;glichen, halten Einzug in immer mehr Websites - doch gerade hier kann man sich viel verbauen sofern man alternative Browser und/oder Plattformen (wie beispielsweise die immer popul&#228;rer werdenden PocketPCs) nicht ber&#252;cksichtigt - prominentes Beispiel ist die von mir erst vorgestern an den Pranger gestellte neue [...]]]></description>
			<content:encoded><![CDATA[<p>Die tollen neuen Effekte und Features, die Technologien wie AJAX erm&ouml;glichen, halten Einzug in immer mehr Websites - doch gerade hier kann man sich viel verbauen sofern man alternative Browser und/oder Plattformen (wie beispielsweise die immer popul&auml;rer werdenden PocketPCs) nicht ber&uuml;cksichtigt - prominentes Beispiel ist die von mir erst vorgestern <a href='http://www.jethwa.de/aktuell,microsofts-neue-website,118.html'>an den Pranger gestellte neue Microsoft-Website</a>.</p>
<p>Eine ausf&uuml;hrliche Liste mit Artikeln und Tutorials zu genau diesem Thema findet man bei Max Kiesler.</p>
<p>Link:<br />
<a href='http://www.maxkiesler.com/index.php/weblog/comments/how_to_make_your_ajax_applications_accessible/'>Max Kiesler - How to Make Your AJAX Applications Accessible (auf Englisch)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jethwa.de/weblog/ajax-applikationen-zugaenglicher-machen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OpenSSH mit Public Key Authentication einrichten</title>
		<link>http://www.jethwa.de/weblog/openssh-mit-public-key-authentication-einrichten/</link>
		<comments>http://www.jethwa.de/weblog/openssh-mit-public-key-authentication-einrichten/#comments</comments>
		<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate>
		<dc:creator>Jay Allan Jethwa</dc:creator>
				<category><![CDATA[Netzwerk]]></category>
		<category><![CDATA[auth]]></category>
		<category><![CDATA[einrichten]]></category>
		<category><![CDATA[key]]></category>
		<category><![CDATA[openssh]]></category>
		<category><![CDATA[pubkey]]></category>
		<category><![CDATA[public]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[&#34;Quick and Dirty&#34;-Guide zur Einrichtung von OpenSSH mit Public Key Authentication unter Windows (damit ich es mir selber beim n&#228;chsten Mal nicht wieder von verschiedenen Quellen zusammensuchen muss): Server 1. Binary Installer von OpenSSH for Windows downloaden 2. OpenSSH for Windows installieren, m&#246;glichst in einem Pfad ohne Leerzeichen 3. Unter Start &#62; Systemsteuerung &#62; Benutzerkonten [...]]]></description>
			<content:encoded><![CDATA[<p>&quot;Quick and Dirty&quot;-Guide zur Einrichtung von OpenSSH mit Public Key Authentication unter Windows (damit ich es mir selber beim n&auml;chsten Mal nicht wieder von verschiedenen Quellen zusammensuchen muss):</p>
<p>Server</p>
<p>1. Binary Installer von OpenSSH for Windows downloaden<br />
2. OpenSSH for Windows installieren, m&ouml;glichst in einem Pfad ohne Leerzeichen<br />
3. Unter Start &gt; Systemsteuerung &gt; Benutzerkonten einen neuen kennwortgesch&uuml;tzten Benutzer mit eingeschr&auml;nkten Rechten erstellen<br />
4. In der Eingabeaufforderung in das Installationsverzeichnis von OpenSSH in den Unterorder \bin wechseln<br />
5. mkgroup -l &gt;&gt; ..\\etc\\group<br />
6. mkpasswd -l -u %benutzername% &gt;&gt; ..\\etc\\passwd<br />
7. ssh-keygen -t rsa<br />
8. Alle Standardwerte mit Enter &uuml;bernehmen, sichere Passphrase (Kennwort) setzen!<br />
9. Erzeugte id_rsa.pub (Public Key) aus Verzeichnis Eigene Dateien\.ssh in OpenSSH-Unterverzeichnis \etc kopieren und in authorized_keys umbenennen<br />
10. Erzeugte id_rsa (Private Key) auf USB-Stick zur Weitergabe an Client kopieren<br />
11. .ssh-Verzeichnis unter Eigene Dateien l&ouml;schen und den Inhalt an sicherer Stelle aufbewahren<br />
12. Im OpenSSH-Unterverzeichnis \etc\sshd_config mit folgenden Werten f&uuml;llen:<br />
PermitRootLogin no<br />
StrictModes no<br />
RSAAuthentication no<br />
PubkeyAuthentication yes<br />
AuthorizedKeysFile /etc/authorized_keys<br />
IgnoreUserKnownHosts yes<br />
PasswordAuthentication no<br />
PermitEmptyPasswords no<br />
13. OpenSSH Service starten: net start opensshd</p>
<p>Client</p>
<p>1. PuTTY und PuTTYgen downloaden<br />
2. id_rsa in ein Verzeichnis auf dem Client kopieren (am besten in ein verschl&uuml;sseltes)<br />
3. PuTTYgen starten, Conversions &gt; Import Key w&auml;hlen und festgelegte Passphrase eingeben<br />
4. Sicherstellen, dass im Hauptfenster unter Parameters SSH-2 RSA gew&auml;hlt ist<br />
5. Save Private Key w&auml;hlen und Key im selben Verzeichnis mit Endung .ppk abspeichern</p>
<p>Wer bisher noch nichts von OpenSSH geh&ouml;rt hat und sich nun nach dem Nutzen dieser kryptischen (da aus der *NIX-Welt stammenden) Konfigurationsanleitung fragt, findet in den weiterf&uuml;hrenden Links zwei ausf&uuml;hrliche Quellen.</p>
<p>Links:<br />
<a href='http://sshwindows.sourceforge.net/download/'>Binary Installer OpenSSH for Windows</a><br />
<a href='http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html'>PuTTY Download Page</a><br />
<a href='http://www.online-tutorials.net/security/secure-ssh-tutorial-part-1-host-key/tutorials-t-69-201.html.html'>Online-Tutorials: Secure SSH Tutorial</a><br />
<a href='http://www.tecchannel.de/telko/daten/401973/index2.html'>Sicherer Datenaustauch via OpenSSH</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jethwa.de/weblog/openssh-mit-public-key-authentication-einrichten/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>AJAX Tutorial: Aktualisierung per XmlHttpRequest</title>
		<link>http://www.jethwa.de/weblog/ajax-tutorial-aktualisierung-per-xmlhttprequest/</link>
		<comments>http://www.jethwa.de/weblog/ajax-tutorial-aktualisierung-per-xmlhttprequest/#comments</comments>
		<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate>
		<dc:creator>Jay Allan Jethwa</dc:creator>
				<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[aktualisierung]]></category>
		<category><![CDATA[dynamisch]]></category>
		<category><![CDATA[Laufzeit]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[XMLHttpRequest]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Vielleicht haben Sie in der letzten Zeit auch schon &#252;ber Eingabefelder auf manchen Internetseiten gestaunt, die sich zur Laufzeit aktualisieren k&#246;nnen ohne dabei die Seite neu laden zu m&#252;ssen. Diese Webseiten verwenden die AJAX Technik (Asynchronous JavaScript and XML), ein prominentes Beispiel ist das sich noch der Beta-Phase befindliche Google Suggest. AJAX beruht auf der [...]]]></description>
			<content:encoded><![CDATA[<p>Vielleicht haben Sie in der letzten Zeit auch schon &uuml;ber Eingabefelder auf manchen Internetseiten gestaunt, die sich zur Laufzeit aktualisieren k&ouml;nnen ohne dabei die Seite neu laden zu m&uuml;ssen. </p>
<p>Diese Webseiten verwenden die AJAX Technik (Asynchronous JavaScript and XML), ein prominentes Beispiel ist das sich noch der Beta-Phase befindliche Google Suggest.</p>
<p>AJAX beruht auf der Verwendung des XMLHttpRequest-Objekts, welches zur Zeit von Internet Explorer, Firefox und Safari unterst&uuml;tzt wird. Eine Implementierung f&uuml;r den Opera-Browser soll demn&auml;chst folgen.</p>
<p>Bill Bercik hat ein ausf&uuml;hrliches und lesenswertes Beispiel-Tutorial zur einfachen Verwendung selbigen Objekts geschrieben. </p>
<p>Eine umfassende Liste mit weiteren Tutorials, diversen Bibliotheken sowie Foren zum Thema AJAX ist auch im Dr. Web Weblog zu finden.</p>
<p>Weiterf&uuml;hrende Links:<br />
<a href='http://suggest.google.com'>Google Suggest (auf Englisch)</a><br />
<a href='http://www.webpasties.com/xmlHttpRequest/'>Guide to Using XMLHttpRequest (auf Englisch)</a><br />
<a href='http://www.drweb.de/weblog/weblog/?p=454'>Dr. Web Weblog: Ajax Quellensammlung</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jethwa.de/weblog/ajax-tutorial-aktualisierung-per-xmlhttprequest/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS Tutorials: List, Float und Select</title>
		<link>http://www.jethwa.de/weblog/css-tutorials-list-float-und-select/</link>
		<comments>http://www.jethwa.de/weblog/css-tutorials-list-float-und-select/#comments</comments>
		<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate>
		<dc:creator>Jay Allan Jethwa</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Webdesign]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Auf der Website von Maxdesign aus Australien sind einige sehr gute CSS Tutorials, unter anderem zur Darstellung von Men&#252;s und zum Umflie&#223;en von Bildern. Link: css.maxdesign (auf Englisch)]]></description>
			<content:encoded><![CDATA[<p>Auf der Website von Maxdesign aus Australien sind einige sehr gute CSS Tutorials, unter anderem zur Darstellung von Men&uuml;s und zum Umflie&szlig;en von Bildern.</p>
<p>Link:<br />
<a href='http://css.maxdesign.com.au/'>css.maxdesign</a>  (auf Englisch)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jethwa.de/weblog/css-tutorials-list-float-und-select/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

