<?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>Incloud - Mobile Apps und Web Anwendungen aus Darmstadt</title>
	<atom:link href="http://www.incloud.de/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.incloud.de</link>
	<description></description>
	<lastBuildDate>Thu, 25 Apr 2013 16:21:46 +0000</lastBuildDate>
	<language>de-DE</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Wir stellen ein: Symfony Entwickler gesucht!</title>
		<link>http://www.incloud.de/2013/04/wir-stellen-ein-symfony-entwickler-gesucht/</link>
		<comments>http://www.incloud.de/2013/04/wir-stellen-ein-symfony-entwickler-gesucht/#comments</comments>
		<pubDate>Thu, 25 Apr 2013 16:19:07 +0000</pubDate>
		<dc:creator>Steffen Müller</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://www.incloud.de/?p=1080</guid>
		<description><![CDATA[Wir suchen einen Symfony PHP Entwickler zur Festanstellung!<div><a href="http://www.incloud.de/2013/04/wir-stellen-ein-symfony-entwickler-gesucht/"><img width="150" height="150" src="http://www.incloud.de/wordpress/wp-content/uploads/2012/04/iStock_000004749484Small2-e1335440339293-150x150.jpg" class="attachment-thumbnail wp-post-image" alt="iStock_000004749484Small2" /></a></div>]]></description>
				<content:encoded><![CDATA[<p>Es ist an der Zeit, unser Team weiter zu vergrößern: wir suchen ab sofort zur Vollzeit-Festanstellung einen begabten Symfony PHP Entwickler, der unser Darmstädter Entwicklerteam verstärkt.</p>
<p>Wenn Sie zu uns passen oder jemanden kennen, der zu uns passt: rufen Sie an oder schreiben Sie eine E-Mail an jobs@incloud.de &#8211; vielen Dank!</p>
<h2>Stellenbeschreibung</h2>
<p><strong>Hallo! Wir sind Incloud. Wir entwickeln Apps, Web Anwendungen und SaaS-Lösungen.</strong></p>
<p>Werde Teil unseres jungen Teams und arbeite an außergewöhnlichen Projekten mit modernsten Technologien.</p>
<p><strong>Deine Aufgaben:</strong></p>
<ul>
<li>Entwickle modernste Web Anwendungen mit Symfony 2 und weiteren modernen Technologien</li>
<li>Kommuniziere, plane und erfinde zusammen mit deinen Teamkollegen und Kunden</li>
<li><em>(Optional, wenn es dir liegt) Übernimm Verantwortung für dein Team und betreue selbstverantwortlich Projekte und Kunden</em></li>
</ul>
<p>Dies ist deine Chance, in einem internationalen Team zu arbeiten und dabei die besten verfügbaren Werkzeuge einzusetzen (Scrum, Jira, Confluence, &#8230;). Wir sind ständig am wachsen &#8211; deine Kreativität, Meinungen und Ideen werden gebraucht!</p>
<h2>Erforderliche Kenntnisse und Qualifikationen</h2>
<div>Du liebst es, gute Software zu entwickeln. Erfüllende Aufgaben und eine gute Work-Life Balance sind Dir wichtiger als ein Firmenwagen. Du willst mitgestalten und mitentscheiden und nicht nur Jobs erledigen. Du hast als Webentwickler Erfahrungen gesammelt und kennst Dein Handwerk. <strong><br />
</strong><strong><br />
</strong><strong>Deine Skills:</strong> <strong><br />
</strong></p>
<ul>
<li>Gute bis sehr gute Kenntnisse in Symfony</li>
<li>Sehr gute Kenntnisse mit dem klassischen LAMP Stack</li>
<li>Wünschenswert: Javascript, jQuery, Node.js</li>
<li>Optional: Kenntnisse in App Entwicklung, Xamarin, C#</li>
</ul>
</div>
<h2>Über Incloud GmbH</h2>
<div>
<p>Wir sind ein junges Team exzellenter Informatiker. Wir arbeiten agil nach SCRUM und glauben, dass Arbeit einen Sinn haben muss, um Spaß zu machen. Unsere Kunden sind Mittelständler, Konzerne, Verbände und Banken, die wir mit Qualität und Innovation beeindrucken.</p>
<p>Wir bilden uns weiter, zelebrieren unser gemeinsames Mittagessen und wollen immer besser werden.</p>
</div>
<h2>Weitere Informationen</h2>
<p><a href="http://www.incloud.de/wordpress/wp-content/uploads/2013/04/201304-Stellenanzeige.pdf" target="_blank" class="button small blue"><span>Die Stellenausschreibung als PDF</span></a></p>
<p><a href="http://careers.stackoverflow.com/de/jobs/33759/symfony-php-entwickler-loud" target="_blank" class="button small orange"><span>Die Stellenausschreibung bei Stack Overflow Careers</span></a></p>
<p>&nbsp;</p>
<div><a href="http://www.incloud.de/2013/04/wir-stellen-ein-symfony-entwickler-gesucht/"><img width="150" height="150" src="http://www.incloud.de/wordpress/wp-content/uploads/2012/04/iStock_000004749484Small2-e1335440339293-150x150.jpg" class="attachment-thumbnail wp-post-image" alt="iStock_000004749484Small2" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.incloud.de/2013/04/wir-stellen-ein-symfony-entwickler-gesucht/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Incloud veröffentlicht momentum &#8211; die Zukunft der Zeitaufnahmen</title>
		<link>http://www.incloud.de/2013/01/incloud-veroffentlicht-momentum-die-zukunft-der-zeitaufnahme/</link>
		<comments>http://www.incloud.de/2013/01/incloud-veroffentlicht-momentum-die-zukunft-der-zeitaufnahme/#comments</comments>
		<pubDate>Tue, 29 Jan 2013 04:00:44 +0000</pubDate>
		<dc:creator>Peter E. Müller</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Incloud]]></category>
		<category><![CDATA[momentum]]></category>
		<category><![CDATA[zeitaufnahme]]></category>
		<category><![CDATA[zeitstudie]]></category>

		<guid isPermaLink="false">http://www.incloud.de/?p=1017</guid>
		<description><![CDATA[Nach 9-monatiger Entwicklungsarbeit ist es soweit: Incloud veröffentlicht momentum - die Zukunft der Zeitaufnahmen.<div><a href="http://www.incloud.de/2013/01/incloud-veroffentlicht-momentum-die-zukunft-der-zeitaufnahme/"><img width="150" height="150" src="http://www.incloud.de/wordpress/wp-content/uploads/2013/01/SS_momentum_Header_Blog-150x150.png" class="attachment-thumbnail wp-post-image" alt="SS_momentum_Header_Blog" /></a></div>]]></description>
				<content:encoded><![CDATA[<p>Nach 9-monatiger Entwicklungsarbeit ist es soweit: Incloud veröffentlicht im Januar 2013 momentum &#8211; die Zukunft der Zeitaufnahmen.</p>
<p>momentum steht für Innovation, Wirtschaftlichkeit und Professionalität in der Zeitwirtschaft. Anstelle teurer Spezialhardware werden Zeitaufnahmen mit handelsüblichen Tablets durchgeführt. Die Datenauswertung und -verwaltung erfolgt einfach im Web Browser.</p>
<p>momentum wurde gemeinsam von Incloud und REFA entwickelt. Know-how in der Entwicklung von Apps und Weblösungen trifft auf jahrzehntelange, in Industrie und Verwaltung anerkannter Methodik in der Erstellung von Zeitaufnahmen.</p>
<p>Alle Details und Vorteile von momentum finden Sie auf der <a title="momentum Zeitaufnahmen" href="http://www.momentum-zeit.de" target="_blank">momentum-Website</a>.</p>
<div><a href="http://www.incloud.de/2013/01/incloud-veroffentlicht-momentum-die-zukunft-der-zeitaufnahme/"><img width="150" height="150" src="http://www.incloud.de/wordpress/wp-content/uploads/2013/01/SS_momentum_Header_Blog-150x150.png" class="attachment-thumbnail wp-post-image" alt="SS_momentum_Header_Blog" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.incloud.de/2013/01/incloud-veroffentlicht-momentum-die-zukunft-der-zeitaufnahme/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wir stellen ein: Web &amp; App Magier gesucht!</title>
		<link>http://www.incloud.de/2012/11/wir-stellen-ein-web-app-magier-gesucht/</link>
		<comments>http://www.incloud.de/2012/11/wir-stellen-ein-web-app-magier-gesucht/#comments</comments>
		<pubDate>Wed, 21 Nov 2012 10:38:36 +0000</pubDate>
		<dc:creator>Steffen Müller</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://www.incloud.de/?p=1007</guid>
		<description><![CDATA[Zur Verstärkung unseres Teams suchen wir einen Web &#038; App Magier!<div><a href="http://www.incloud.de/2012/11/wir-stellen-ein-web-app-magier-gesucht/"><img width="150" height="150" src="http://www.incloud.de/wordpress/wp-content/uploads/2012/03/Christopher-und-Bernhard-150x150.jpg" class="attachment-thumbnail wp-post-image" alt="Christopher und Bernhard" /></a></div>]]></description>
				<content:encoded><![CDATA[<p>Es ist an der Zeit, unser Team weiter zu vergrößern: wir suchen ab sofort zur Vollzeit-Festanstellung einen vielseitigen Vollblut-Informatiker, der uns bei der App Entwicklung als auch bei der Web Entwicklung kräftig unterstützen kann.</p>
<p>Wenn Sie zu uns passen oder jemanden kennen, der zu uns passt: rufen Sie an oder schreiben Sie eine E-Mail an jobs@incloud.de &#8211; vielen Dank!</p>
<h2>Weitere Informationen</h2>
<p><a href="http://www.incloud.de/docs/201211-entwickler.pdf" target="_blank" class="button small blue"><span>Die Stellenausschreibung als PDF</span></a></p>
<p><a href="http://careers.stackoverflow.com/jobs/27402/app-and-or-web-magician" target="_blank" class="button small orange"><span>Die Stellenausschreibung bei Stack Overflow Careers</span></a></p>
<div></div>
<div><a href="http://www.incloud.de/2012/11/wir-stellen-ein-web-app-magier-gesucht/"><img width="150" height="150" src="http://www.incloud.de/wordpress/wp-content/uploads/2012/03/Christopher-und-Bernhard-150x150.jpg" class="attachment-thumbnail wp-post-image" alt="Christopher und Bernhard" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.incloud.de/2012/11/wir-stellen-ein-web-app-magier-gesucht/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Incloud proudly presents: Augmented Card</title>
		<link>http://www.incloud.de/2012/10/incloud-proudly-presents-augmented-card/</link>
		<comments>http://www.incloud.de/2012/10/incloud-proudly-presents-augmented-card/#comments</comments>
		<pubDate>Tue, 23 Oct 2012 16:51:32 +0000</pubDate>
		<dc:creator>David Müller</dc:creator>
				<category><![CDATA[Apps]]></category>
		<category><![CDATA[Augmented Reality]]></category>
		<category><![CDATA[Incloud]]></category>

		<guid isPermaLink="false">http://www.incloud.de/?p=993</guid>
		<description><![CDATA[Mit Stolz präsentieren wir eine kleine Revolution der Augmented Reality - Augmented Card!<div><a href="http://www.incloud.de/2012/10/incloud-proudly-presents-augmented-card/"><img width="150" height="150" src="http://www.incloud.de/wordpress/wp-content/uploads/2012/10/IMG_0894-150x150.png" class="attachment-thumbnail wp-post-image" alt="Augmented Card" /></a></div>]]></description>
				<content:encoded><![CDATA[<p>Wir nähern uns der besinnlichen Weihnachtszeit in großen Schritten. Wie jedes Jahr gehören neben Lebkuchen und Glühwein auch wieder die Weihnachtskarten fest mit dazu! Nachdem uns Steffen in seinem <a href="http://www.incloud.de/2012/10/was-augmented-reality-mit-weihnachten-zu-tun-hat">Ignite-Vortrag auf dem Webmontag</a> schon erklärt hat, dass Weihnachten und Augmented Reality unweigerlich zusammengehören, präsentieren wir nun stolz unser neuestes Projekt: <a href="http://www.augmented-card.net/">Augmented Card</a>.</p>
<p><strong>Worum geht&#8217;s?</strong> Ganz im Stil der Zeitungen aus Harry Potter, in denen Bilder zum Leben erwachen, bringt Augmented Card Ihre Print-Materialien (Weihnachtskarten, Einladungen, Poster, &#8230;) ins Zeitalter der Augmented Reality! Mit einem einfachen Assistenten auf der Webseite können Sie Ihre eigenen Augmented Reality Inhalte konfigurieren und dann selbst drucken.</p>
<p>Möglich sind die folgenden AR Inhaltstypen:</p>
<ul>
<li>Eigene Videos (werden auf dem Printmaterial abgespielt)</li>
<li>Bilder (stehen dann senkrecht auf dem Printmaterial)</li>
<li>Animierte 3D Modelle aus unserer Modellkollektion (stehen auf dem Printmaterial)</li>
</ul>
<p><strong>Und so funktionierts:</strong></p>
<p><iframe src="http://www.youtube.com/embed/L7pUZzD_6rU?wmode=opaque" frameborder="0" width="560" height="315"></iframe></p>
<p>Weitere Informationen finden Sie auf <a href="http://www.augmented-card.net">augmented-card.net</a>. Wir freuen uns darauf, von Ihnen zu hören!</p>
<div><a href="http://www.incloud.de/2012/10/incloud-proudly-presents-augmented-card/"><img width="150" height="150" src="http://www.incloud.de/wordpress/wp-content/uploads/2012/10/IMG_0894-150x150.png" class="attachment-thumbnail wp-post-image" alt="Augmented Card" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.incloud.de/2012/10/incloud-proudly-presents-augmented-card/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Was Augmented Reality mit Weihnachten zu tun hat</title>
		<link>http://www.incloud.de/2012/10/was-augmented-reality-mit-weihnachten-zu-tun-hat/</link>
		<comments>http://www.incloud.de/2012/10/was-augmented-reality-mit-weihnachten-zu-tun-hat/#comments</comments>
		<pubDate>Tue, 23 Oct 2012 16:07:51 +0000</pubDate>
		<dc:creator>David Müller</dc:creator>
				<category><![CDATA[Augmented Reality]]></category>
		<category><![CDATA[Incloud]]></category>

		<guid isPermaLink="false">http://www.incloud.de/?p=987</guid>
		<description><![CDATA[Steffen präsentiert auf dem Webmontag in Frankfurt: Thema: Augmented Reality und Weihnachten.<div><a href="http://www.incloud.de/2012/10/was-augmented-reality-mit-weihnachten-zu-tun-hat/"><img width="150" height="150" src="http://www.incloud.de/wordpress/wp-content/uploads/2012/10/Webmontag-150x150.jpg" class="attachment-thumbnail wp-post-image" alt="Webmontag" /></a></div>]]></description>
				<content:encoded><![CDATA[<p>Incloud &#8211; quasi schon Stammgast auf dem Webmontag in Frankfurt &#8211; war durch Steffen auch in der Oktober-Ausgabe wieder vertreten. Die etwa 150 Zuhörer bekamen in knackigen 5 Minuten von Steffen erklärt, wie Augmented Reality und Weihnachten zusammen passen. Dabei geht es übrigens auch um das neuste Projekt von Incloud &#8211; <a href="http://www.augmented-card.net/">Augmented Card</a>. In Kürze mehr!</p>
<p>Besonderes Schmankerl am Vortrag: Es handelt sich hierbei um eine sog. Ignite-Präsentation, die aus genau 20 Folien mit Festeinstellung von 15 Sekunden pro Folie besteht. Mit automatischem Wechsel. Ob Steffen das Timing erwischt hat? Sehen Sie selbst!</p>
<p><iframe src="http://www.youtube.com/embed/x3B7mSQ-IDQ" frameborder="0" width="560" height="315"></iframe></p>
<p>Vielen Dank an Christian Zengel und sysops.tv für die Erstellung des Videos. Lizenz ist <em>Creative Commons Namensnennung-Nicht-kommerziell 3.0 Deutschland (CC BY-NC 3.0)</em>.</p>
<div><a href="http://www.incloud.de/2012/10/was-augmented-reality-mit-weihnachten-zu-tun-hat/"><img width="150" height="150" src="http://www.incloud.de/wordpress/wp-content/uploads/2012/10/Webmontag-150x150.jpg" class="attachment-thumbnail wp-post-image" alt="Webmontag" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.incloud.de/2012/10/was-augmented-reality-mit-weihnachten-zu-tun-hat/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Neue App veröffentlicht: Ignite &amp; Pecha Kucha Timer</title>
		<link>http://www.incloud.de/2012/10/neue-app-veroffentlicht-ignite-pecha-kucha-timer/</link>
		<comments>http://www.incloud.de/2012/10/neue-app-veroffentlicht-ignite-pecha-kucha-timer/#comments</comments>
		<pubDate>Sat, 06 Oct 2012 16:54:53 +0000</pubDate>
		<dc:creator>Steffen Müller</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://www.incloud.de/?p=976</guid>
		<description><![CDATA[Die Incloud Ignite &#038; Pecha Kucha Timer App für Android hilft Ihnen, Ihre Ignite Talks perfekt zu timen.<div><a href="http://www.incloud.de/2012/10/neue-app-veroffentlicht-ignite-pecha-kucha-timer/"><img width="150" height="150" src="http://www.incloud.de/wordpress/wp-content/uploads/2012/10/timer-150x150.jpg" class="attachment-thumbnail wp-post-image" alt="Ignite Timer App Illustration" /></a></div>]]></description>
				<content:encoded><![CDATA[<p>Ignite und Pecha Kucha sind Präsentationstechniken, bei denen eine bestimmte Anzahl Folien in einer bestimmten Zeit gezeigt wird. Die Folien laufen automatisch weiter &#8211; das Motto ist &#8220;Enlighten us, but make it quick&#8221;. Für den Vortragenden eine Herausforderung, denn das eigene Timing muss perfekt zu den Folienwechseln passen, damit die Präsentation gelingt. Für das Publikum eine spannende Sache, denn ein Ignite Vortrag dauert nur 5 Minuten und ist daher eine Art Druckbetankung mit Wissen.</p>
<p>Kein Wunder also, dass sich Ignite Talks immer stärkerer Beliebtheit erfreuen und sich weltweit ausbreiten &#8211; werfen Sie doch mal einen Blick auf <a href="http://igniteshow.com/">http://igniteshow.com/</a>, dort kann man Termine und die besten englischsprachigen Talks finden. Oder man schaut bei unserem geliebten <a href="http://webmontag.de/location/frankfurt/index">Webmontag Frankfurt</a> vorbei, denn dessen Ausgabe #42 am 08. Oktober ist ein reines Ignite Event.</p>
<p>Bei den Vorbereitungen zu meinem Ignite Talk auf dem Webmontag fiel mir auf, dass es keine vernünftige App für Android gibt, mit der sich der Vortrag timen lässt &#8211; ich wollte eine ablenkungsfreie Stoppuhr, die 20 mal 15 Sekunden abzählt und das so anzeigt, dass es nicht vom Reden ablenkt. Das konnte so nicht durchgehen &#8211; deshalb entstand heute kurz entschlossen die <a href="https://play.google.com/store/apps/details?id=de.incloud.ignitetimer">Incloud Ignite &amp; Pecha Kucha Timer App für Android</a>.</p>
<p>Um es mit der App Beschreibung zu sagen:</p>
<blockquote><p><em>Der Incloud Ignite &amp; Pecha Kucha Timer ist ein simples Tool, mit dem Sie Ihre Ignite und Pecha Kucha Talks vorbereiten und perfekt durchführen können (geht auch mit normalen Präsentationen, wenn Sie eine feste Dauer je Folie einsetzen wollen).</em></p>
<p><em>Legen Sie die Anzahl an Zyklen (Folien) fest und wie lange jeder davon in Sekunden dauern soll. Wählen Sie eine von mehreren Vibrationsoptionen. Dann gibt Ihnen eine einfache und schöne Anzeige an, wie viel Zeit Sie noch für Ihre Präsentation haben.</em></p></blockquote>
<p>Ich hoffe, die App hilft noch anderen Ignite Talkern.</p>
<div><a href="http://www.incloud.de/2012/10/neue-app-veroffentlicht-ignite-pecha-kucha-timer/"><img width="150" height="150" src="http://www.incloud.de/wordpress/wp-content/uploads/2012/10/timer-150x150.jpg" class="attachment-thumbnail wp-post-image" alt="Ignite Timer App Illustration" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.incloud.de/2012/10/neue-app-veroffentlicht-ignite-pecha-kucha-timer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unsere AR Apps im Virtual Reality Magazin</title>
		<link>http://www.incloud.de/2012/10/unsere-ar-apps-im-virtual-reality-magazin/</link>
		<comments>http://www.incloud.de/2012/10/unsere-ar-apps-im-virtual-reality-magazin/#comments</comments>
		<pubDate>Tue, 02 Oct 2012 13:43:49 +0000</pubDate>
		<dc:creator>Steffen Müller</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://www.incloud.de/?p=969</guid>
		<description><![CDATA[In der aktuellen Ausgabe des Virtual Reality Magazins sind wir mit einem Artikel zum Thema "Augmented Reality in der Architektur" vertreten.<div><a href="http://www.incloud.de/2012/10/unsere-ar-apps-im-virtual-reality-magazin/"><img width="150" height="150" src="http://www.incloud.de/wordpress/wp-content/uploads/2012/10/AR-VR-Magazin-150x150.jpg" class="attachment-thumbnail wp-post-image" alt="AR-VR-Magazin" /></a></div>]]></description>
				<content:encoded><![CDATA[<p>In der aktuellen Ausgabe des Virtual Reality Magazins, dem Fachmagazin für Visualisierung, Simulation und Interaktion, sind wir mit einem Artikel zum Thema &#8220;Augmented Reality in der Architektur&#8221; vertreten.</p>
<p style="text-align: center;"><a href="http://www.incloud.de/wordpress/wp-content/uploads/2012/03/AR.jpg"><img width="630"  alt="" src="http://www.incloud.de/wordpress/wp-content/themes/striking/cache/images/AR-630x293.jpg" /></a></p>
<p>Wir freuen uns natürlich sehr, dass unsere Augmented Reality Apps derart Interesse erzeugen. Wer Steffen Müllers Artikel im Magazin lesen will, muss sich entweder <a href="http://www.virtual-reality-magazin.de/magazin">die aktuelle Ausgabe kaufen</a> oder noch ein wenig warten, denn die vergangenen Ausgaben  können <a href="http://www.virtual-reality-magazin.de/archiv">kostenlos auf der Website des Magazins</a> ab der vorletzten Ausgabe gelesen werden&#8230;</p>
<p><a href="/leistungen/mobile-apps/augmented-reality-apps/" style="background-color:#42719C" class="button small gray"><span style="color:#FFF;">Erfahren Sie mehr über uns als Dienstleister für Augmented Reality Apps »</span></a></p>
<div><a href="http://www.incloud.de/2012/10/unsere-ar-apps-im-virtual-reality-magazin/"><img width="150" height="150" src="http://www.incloud.de/wordpress/wp-content/uploads/2012/10/AR-VR-Magazin-150x150.jpg" class="attachment-thumbnail wp-post-image" alt="AR-VR-Magazin" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.incloud.de/2012/10/unsere-ar-apps-im-virtual-reality-magazin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Incloud auf dem Webmontag Frankfurt</title>
		<link>http://www.incloud.de/2012/09/incloud-auf-dem-webmontag-frankfurt/</link>
		<comments>http://www.incloud.de/2012/09/incloud-auf-dem-webmontag-frankfurt/#comments</comments>
		<pubDate>Fri, 28 Sep 2012 20:32:46 +0000</pubDate>
		<dc:creator>Steffen Müller</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://www.incloud.de/?p=956</guid>
		<description><![CDATA[Wir waren auf dem Webmontag FFM #41 mit einem Talk zu Windows 8.<div><a href="http://www.incloud.de/2012/09/incloud-auf-dem-webmontag-frankfurt/"><img width="150" height="150" src="http://www.incloud.de/wordpress/wp-content/uploads/2012/09/Webmontag-150x150.png" class="attachment-thumbnail wp-post-image" alt="Webmontag" /></a></div>]]></description>
				<content:encoded><![CDATA[<p>Am 17.09. präsentierte unser David Müller die &#8220;gekachelte Zukunft des Computing&#8221; auf dem Webmontag Frankfurt &#8211; Thema war die anstehende Veröffentlichung von Windows 8, die Auswirkungen und Chancen daraus, und die Perspektiven für App Entwickler.</p>
<p>Nicht da gewesen? Den spannenden Vortrag können Sie sich hier in voller Länge ansehen:</p>
<p style="text-align: center;">
<div class='video_frame'><iframe class='youtube' style='height:380px;width:630px' src='http://www.youtube.com/embed/maY8dG3V7u8?autohide=1&amp;controls=1&amp;disablekb=0&amp;fs=1&amp;hd=0&amp;loop=0&amp;rel=0&amp;showinfo=0&amp;showsearch=0&amp;wmode=transparent' width='630' height='380' frameborder='0'></iframe></div>
</p>
<p style="text-align: left;">Wir finden aktuell großen Gefallen an den Webmontagen &#8211; beim nächsten werden wir auch wieder mit einem Talk dabei sein!</p>
<p>Vielen Dank an Christian Zengel und <a title="sysops.tv" href="http://sysops.tv">sysops.tv</a> für die Erstellung des Videos. Lizenz ist <em>Creative Commons Namensnennung-Nicht-kommerziell 3.0 Deutschland (CC BY-NC 3.0)</em>.</p>
<p>&nbsp;</p>
<div><a href="http://www.incloud.de/2012/09/incloud-auf-dem-webmontag-frankfurt/"><img width="150" height="150" src="http://www.incloud.de/wordpress/wp-content/uploads/2012/09/Webmontag-150x150.png" class="attachment-thumbnail wp-post-image" alt="Webmontag" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.incloud.de/2012/09/incloud-auf-dem-webmontag-frankfurt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows 8 &#8211; Einstieg in die App-Entwicklung für Webdeveloper</title>
		<link>http://www.incloud.de/2012/09/windows-8-app-entwicklung-fuer-webdeveloper/</link>
		<comments>http://www.incloud.de/2012/09/windows-8-app-entwicklung-fuer-webdeveloper/#comments</comments>
		<pubDate>Mon, 03 Sep 2012 10:00:09 +0000</pubDate>
		<dc:creator>David Müller</dc:creator>
				<category><![CDATA[Apps]]></category>

		<guid isPermaLink="false">http://www.incloud.de/?p=913</guid>
		<description><![CDATA[Windows 8 eröffnet gerade für Web-Entwickler ganz neue Möglichkeiten. Ein Überblick über wissenswerte Fakten für den Einstieg.<div><a href="http://www.incloud.de/2012/09/windows-8-app-entwicklung-fuer-webdeveloper/"><img width="150" height="150" src="http://www.incloud.de/wordpress/wp-content/uploads/2012/08/win8-dev-header-150x150.png" class="attachment-thumbnail wp-post-image" alt="win8-dev-header" /></a></div>]]></description>
				<content:encoded><![CDATA[<p>Für Webentwickler ist Windows 8 eine wahre Freude: Mit den ohnehin vertrauten Sprachen Javascript, HTML und CSS lassen sich nun Windows-Anwendungen für die <i>Modern UI</i> entwickeln. Selbiges ist zwar auch mit C# oder VB.net möglich &#8211; da aber ohnehin der <b>Internet Explorer 10</b> die Darstellung der <i>Modern UI</i>-Apps übernimmt, bleiben wir doch besser gleich im gewohnten Umfeld. Besonders erfreulich hierbei: Der Internet Explorer 10 unterstützt CSS3 und kann getrost als vollwertiger, moderner Browser bezeichnet werden. Endlich können Webentwickler aus dem Vollen schöpfen!</p>
<h2>Die Philosophie hinter der Modern UI</h2>
<p>Microsoft hat für das Kachelkonzept der <i>Modern UI</i> eine ganz neue Designsprache entworfen. Alles ist kantig, bunt und stilistisch schlicht. Für einen allgemeinen Überblick über <a href="http://www.incloud.de/2012/08/windows-8-eine-neue-welt/">die neue Welt des Windows 8</a> sei unser Einführungsartikel dazu empfohlen. Dabei hat Microsoft ganz klar ausgearbeitete Guidelines erstellt, an die sich Entwickler zu halten haben. Es gibt auf den Entwicklerseiten zu Windows 8 in jedem Kapitel <b>&#8220;Best practices&#8221;</b> und <a href="http://msdn.microsoft.com/library/windows/apps/hh465424">Designrichtlinien</a>, um Entwicklern die Philosophie der <i>Modern UI</i> näherzubringen. So müssen Apps der <i>Modern UI</i> grundsätzlich per Finger bedienbar sein &#8211; das bedeutet für Entwickler vornehmlich eine Abkehr von <i>:hover</i> und mouseover-Effekten, schließlich gibt es diesen Zustand in der Touch-Welt schlicht nicht. Außerdem sollte auf möglichst große, &#8220;fingerfreundliche&#8221; Schaltflächen Wert gelegt werden.</p>
<p><a href="http://www.incloud.de/wordpress/wp-content/uploads/2012/08/win8-simulator.png"><img width="292" height="190" alt="" src="http://www.incloud.de/wordpress/wp-content/themes/striking/cache/images/win8-simulator-292x190.png" /></a></p>
<h2>Zertifizierungsprozess</h2>
<p>Microsoft verwendet einen mehrstufigen Zertifizierungsprozess, den Apps durchlaufen müssen bevor sie im Windows Store gelistet werden. Dabei wird in erster Linie das <a href="http://msdn.microsoft.com/en-us/library/windows/apps/hh694081.aspx">WACK</a> getaufte &#8220;Windows App Certification Kit verwendet. WACK ist eine Testsuite, die lokal auf dem Entwicklungsrechner mit Visual Studio zusammen installiert wird. Sie prüft u.a. das Antwort- und Startverhalten der App (Microsoft definiert bestimmte Zeitfenster, in denen die App gestartet sein muss). Darüberhinaus nimmt WACK auch noch <b>Usability-Tests</b> vor und warnt etwa bei ungenügendem Kontrast zwischen Textfarbe und Hintergrund sowie bei farblich unpassenden App-Icons. Abschließend generiert WACK im Fehlerfall einen aussagekräftigen Report, der in sattem rot und leuchtendem grün auf Fehler und Validierungserfolge hinweist. Ein erfolgreicher WACK-Test der App ist Grundlage für ein Bestehen des Zertifizierungsprozesses, denn selbiger Test wird nach dem Einreichen der App im Windows Store nochmal auf den Microsoft Servern durchgeführt.</p>
<p><a href="http://www.incloud.de/wordpress/wp-content/uploads/2012/08/Release-Prozess.png"><img width="292" height="190" alt="" src="http://www.incloud.de/wordpress/wp-content/themes/striking/cache/images/Release-Prozess-292x190.png" /></a></p>
<p>Außerdem findet bei Microsoft ähnlich wie bei Apple eine manuelle Prüfung jeder App statt &#8211; &#8220;Content compliance&#8221; genannt. Hier wird überprüft, ob die vergebene Altersbeschränkung für die App korrekt gewählt wurde, Datenschutzbestimmungen bei Apps vorliegen, die mit dem Internet kommunizieren und allgemein alle <a href="http://msdn.microsoft.com/en-us/library/windows/apps/hh694083.aspx">Certification Requirements</a> erfüllt sind.</p>
<p><a href="http://www.incloud.de/wordpress/wp-content/uploads/2012/08/WACK.png"><img width="292" height="190" alt="" src="http://www.incloud.de/wordpress/wp-content/themes/striking/cache/images/WACK-292x190.png" /></a></p>
<h2>Lebenszyklus einer Applikation</h2>
<p>Unter Windows 8 übernimmt das Betriebssystem komplett und alleinig das <a href="http://msdn.microsoft.com/en-us/library/windows/apps/hh464925.aspx">Lifecycle Management</a> der Applikationen &#8211; es gibt keinen Schließen-Knopf mehr. Das bedeutet für Entwickler, dass auf verschiedene Events reagiert werden muss, mit denen das Betriebssystem die App über Zustandsänderungen benachrichtigt. Grundlegend gibt es keine programmatische Möglichkeit, die eigene App zu schließen. Wird eine App vom Nutzer gestartet, befindet sie sich im Zustand <b>Running</b>. Minimiert der Nutzer die App nun per Alt+F4 oder wechselt per Alt+Tab in eine andere App bzw. auf den Desktop, wird abhängig von der Speicherauslastung und der Anzahl weiterer laufender Programme die App &#8220;suspendiert&#8221;. Im <i>suspended</i>-Eventhandler erhält die App die Gelegenheit, alle relevanten Nutzerdaten der aktuellen <b>Session</b> auf die Festplatte zu schreiben. Braucht sie dazu allerdings mehr als 5 Sekunden, wird sie von Windows automatisch <b>terminiert</b> und muss anschließend komplett neu gestartet werden.</p>
<p>Kehrt der Nutzer zu einer &#8220;korrekt suspendierten&#8221; App zurück, wechselt der Zustand wieder zu <b>Running</b> und die vormals archivierten Session-Daten können eingelesen werden, um den Zustand der App wiederherzustellen. Dieses Verhalten erschwert es allerdings Apps, die im Hintergrund Tasks zu erledigen haben: Im <b>Suspended</b>-Zustand kann die App keine Interaktionen mehr ausführen. Hierfür wurde von Microsoft das Konzept der <i>Background Tasks</i> eingeführt, welches in einem späteren Blogpost Thema sein wird.</p>
<p><a href="http://www.incloud.de/wordpress/wp-content/uploads/2012/08/App-Lifecycle.png"><img width="292" height="190" alt="" src="http://www.incloud.de/wordpress/wp-content/themes/striking/cache/images/App-Lifecycle-292x190.png" /></a><br />
<a href="http://msdn.microsoft.com/en-us/library/windows/apps/hh464925.aspx">Quelle</a>, © 2012 Microsoft</p>
<h2>Entwicklungsumgebung und Ressourcen</h2>
<p>Die Anlaufstelle für die Entwicklung von <i>Modern UI</i> Apps ist die <a href="http://msdn.microsoft.com/en-us/windows/apps/br229512.aspx">das Microsoft Dev-Center</a>. Hier gibt es eine <a href="http://msdn.microsoft.com/de-DE/evalcenter/jj554510.aspx">90 Tage Evaluierungsversion</a> von Windows 8 Enterprise, <a href="http://msdn.microsoft.com/de-DE/windows/apps/br229516">Visual Studio 2012 Express</a> sowie Unmengen an <a href="http://code.msdn.microsoft.com/windowsapps/site/search?f%5B0%5D.Type=ProgrammingLanguage&#038;f%5B0%5D.Value=JavaScript&#038;f%5B0%5D.Text=JavaScript">Beispielapps und Projektvorlagen</a>. An dieser Stelle muss man wirklich Microsoft für die <b>Entwicklerfreundlichkeit</b> loben: Die <a href="http://msdn.microsoft.com/en-US/library/windows/apps/br211377">API Referenz</a> ist komplett mit Beispielcode auch für die Verwendung von Javascript bestückt und zu allen relevanten Systemaufrufen gibt es spezielle Musterapps zum Nachschauen und Ausprobieren.</p>
<p>Visual Studio selbst beinhaltet alle benötigen Ressourcen zum Entwickeln von Apps der <i>Modern UI</i> einschließlich der Möglichkeit zum Veröffentlichen im Windows Store. Auch ein Simulator für das parallel zum Marktstart von Windows 8 am 26. Oktober erscheinende <b>Surface-Tablet</b> ist integriert. Hier kann die Auflösung angepasst werden und generell das Verhalten der eigenen App auf &#8220;touchfreundlichkeit&#8221; getestet werden. Außerdem ist ein Screenshot-Tool mit an Bord, um die für den Windows Store benötigten Aufnahmen der App in der erforderlichen Größe erstellen zu können. Weiterhin mit dabei: <b>Microsoft Blend</b> zur visuellen Bearbeitung der Benutzeroberfläche. Hier lässt sich ein Visual Studio Projekt öffnen und anschließend per Drag &#038; Drop mit Komponenten bestücken &#8211; quasi ein visueller Editor mit Zusatzfeatures.</p>
<p><a href="http://www.incloud.de/wordpress/wp-content/uploads/2012/08/Blend.png"><img width="292" height="190" alt="" src="http://www.incloud.de/wordpress/wp-content/themes/striking/cache/images/Blend-292x190.png" /></a>
</p>
<h2>Fazit</h2>
<p>Das war ein kleiner Überblick über wissenswerte Fakten für Webentwickler mit Interesse am Windows 8 App-Development. Aber es geht weiter! Diese Serie wird fortgesetzt und bald um &#8220;technischere&#8221; Themen wie Hintergrund-Tasks, die Verwendung der neuen App-Bar sowie des Windows-Charms ergänzt. Stay tuned!</p>
<div><a href="http://www.incloud.de/2012/09/windows-8-app-entwicklung-fuer-webdeveloper/"><img width="150" height="150" src="http://www.incloud.de/wordpress/wp-content/uploads/2012/08/win8-dev-header-150x150.png" class="attachment-thumbnail wp-post-image" alt="win8-dev-header" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.incloud.de/2012/09/windows-8-app-entwicklung-fuer-webdeveloper/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows 8 &#8211; Using jQuery for app development</title>
		<link>http://www.incloud.de/2012/08/windows-8-using-jquery-for-app-development/</link>
		<comments>http://www.incloud.de/2012/08/windows-8-using-jquery-for-app-development/#comments</comments>
		<pubDate>Tue, 28 Aug 2012 12:35:12 +0000</pubDate>
		<dc:creator>David Müller</dc:creator>
				<category><![CDATA[Apps]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[windows 8]]></category>

		<guid isPermaLink="false">http://www.incloud.de/?p=931</guid>
		<description><![CDATA[jQuery doesn't work together with Windows 8 out of the box very well. This article shows how to change this.<div><a href="http://www.incloud.de/2012/08/windows-8-using-jquery-for-app-development/"><img width="150" height="150" src="http://www.incloud.de/wordpress/wp-content/uploads/2012/08/Unbenannt-150x150.png" class="attachment-thumbnail wp-post-image" alt="jQuery for Windows" /></a></div>]]></description>
				<content:encoded><![CDATA[<p>The incredibly practical Javascript-library <a href="http://jquery.com/">jQuery</a> is the favored tool for lots of web developers. Since Windows 8 supports app development using the standard webtechniques, jQuery immediatly suggests itself. But because Microsoft has integrated a new security model in Windows 8, jQuery has to be modified slightly in order to be usable for app development.</p>
<h2>The background</h2>
<p>Microsofts security model comes into play when one of the standard Javascript functions <i>innerHTML</i>, <i>outerHTML</i> or <i>document.write</i> are used. Try the following code</p>
<div class="codecolorer-container javascript default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br /></div></td><td><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339933;">&lt;</span>div id<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;test&quot;</span><span style="color: #339933;">&gt;&lt;/</span>div<span style="color: #339933;">&gt;</span><br />
<span style="color: #339933;">&lt;</span>script<span style="color: #339933;">&gt;</span><br />
&nbsp; &nbsp; document.<span style="color: #660066;">querySelector</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#test&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">innerHTML</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;&lt;a onclick='document.body.style.backgroundColor=<span style="color: #000099; font-weight: bold;">\&quot;</span>#F00<span style="color: #000099; font-weight: bold;">\&quot;</span>'&gt;Something evil&lt;/a&gt;&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span></div></td></tr></tbody></table></div>
<p>You will see a Javascript runtime error that terminates the app, because dynamic content is injected via Javascript. </p>
<h2>The solution</h2>
<p>Microsoft provides the method <a href="http://msdn.microsoft.com/en-us/library/windows/apps/hh767331.aspx">execUnsafeLocalFunction</a> with which you can explicitly disable the security model and tell Windows &#8220;I know what I&#8217;m doing&#8221;. Of course, this should only be done when <b>you</b> control the executed code and are sure that no security problems could potentially happen. You have to wrap the code within the <i>execUnsafeLocalFunction</i> construct and let it execute for you. The following code works without problems:</p>
<div class="codecolorer-container javascript default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br /></div></td><td><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339933;">&lt;</span>script<span style="color: #339933;">&gt;</span><br />
MSApp.<span style="color: #660066;">execUnsafeLocalFunction</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; document.<span style="color: #660066;">querySelector</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#test&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">innerHTML</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;&lt;a onclick='document.body.style.backgroundColor=<span style="color: #000099; font-weight: bold;">\&quot;</span>#F00<span style="color: #000099; font-weight: bold;">\&quot;</span>'&gt;Something evil&lt;/a&gt;&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span></div></td></tr></tbody></table></div>
<p>When pulling in potentially unsafe content from an external source, you might want to consider using the <a href="http://msdn.microsoft.com/en-us/library/ie/cc848922(v=vs.85).aspx">toStaticHTML</a> method (<a href="http://msdn.microsoft.com/en-us/library/windows/apps/hh465388.aspx">further documentation here</a>) or creating your nodes via DOM &#8211; but this is another topic, we don&#8217;t want to cover in this post.</p>
<h2>The problem with jQuery</h2>
<p>jQuery itself comes with lots of checks for the sake of browser compatibility. These checks contain code, that is considered to be potentially malicious and Visual Studio shows 3 warnings when using jQuery 1.8 (at the time of this post, version 1.8 is the latest).</p>
<p><a href="http://www.incloud.de/wordpress/wp-content/uploads/2012/08/error-jq18.png"><img width="292" height="190" alt="" src="http://www.incloud.de/wordpress/wp-content/themes/striking/cache/images/error-jq18-292x190.png" /></a></p>
<p>Even if these are &#8220;only&#8221; warnings, we are going to get rid of them when using jQuery with Windows 8. </p>
<h2>Making jQuery ready for Windows 8 &#8211; step by step</h2>
<p>We will use the development version of jQuery 1.8 for this blogpost that can <a href="http://code.jquery.com/jquery-1.8.0.zip">be found here</a>. </p>
<p>Starting from the bottom of the file, the first necessary change is to wrap the contents of the <i>assert</i> block starting at <b>line 5025 up to line 5040</b> within a <i>execUnsafeLocalFunction</i> block:</p>
<div class="codecolorer-container javascript default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br /></div></td><td><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">assert<span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span> div <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
<br />
&nbsp; &nbsp; MSApp.<span style="color: #660066;">execUnsafeLocalFunction</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #006600; font-style: italic;">// Opera 10-12/IE9 - ^= $= *= and empty values</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #006600; font-style: italic;">// Should not select anything</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; div.<span style="color: #660066;">innerHTML</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;&lt;p test=''&gt;&lt;/p&gt;&quot;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>div.<span style="color: #660066;">querySelectorAll</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;[test^='']&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">length</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; rbuggyQSA.<span style="color: #660066;">push</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;[*^$]=&quot;</span> <span style="color: #339933;">+</span> whitespace <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;*(?:<span style="color: #000099; font-weight: bold;">\&quot;</span><span style="color: #000099; font-weight: bold;">\&quot;</span>|'')&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #006600; font-style: italic;">// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #006600; font-style: italic;">// IE8 throws error here (do not put tests after this one)</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; div.<span style="color: #660066;">innerHTML</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;&lt;input type='hidden'/&gt;&quot;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>div.<span style="color: #660066;">querySelectorAll</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;:enabled&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">length</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; rbuggyQSA.<span style="color: #660066;">push</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;:enabled&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;:disabled&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>The next target is the <i>assertUsableName</i> function &#8211; same principle as above. Change <b>lines 3808 to 3826</b> to this:</p>
<div class="codecolorer-container javascript default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br /></div></td><td><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">assertUsableName <span style="color: #339933;">=</span> assert<span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span> div <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">return</span> MSApp.<span style="color: #660066;">execUnsafeLocalFunction</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #006600; font-style: italic;">// Inject content</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; div.<span style="color: #660066;">id</span> <span style="color: #339933;">=</span> expando <span style="color: #339933;">+</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; div.<span style="color: #660066;">innerHTML</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;&lt;a name='&quot;</span> <span style="color: #339933;">+</span> expando <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;'&gt;&lt;/a&gt;&lt;div name='&quot;</span> <span style="color: #339933;">+</span> expando <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;'&gt;&lt;/div&gt;&quot;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; docElem.<span style="color: #660066;">insertBefore</span><span style="color: #009900;">&#40;</span>div<span style="color: #339933;">,</span> docElem.<span style="color: #660066;">firstChild</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #006600; font-style: italic;">// Test</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> pass <span style="color: #339933;">=</span> document.<span style="color: #660066;">getElementsByName</span> <span style="color: #339933;">&amp;&amp;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #006600; font-style: italic;">// buggy browsers will return fewer than the correct 2</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; document.<span style="color: #660066;">getElementsByName</span><span style="color: #009900;">&#40;</span>expando<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">length</span> <span style="color: #339933;">===</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #006600; font-style: italic;">// buggy browsers will return more than the correct 0</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #CC0000;">2</span> <span style="color: #339933;">+</span> document.<span style="color: #660066;">getElementsByName</span><span style="color: #009900;">&#40;</span>expando <span style="color: #339933;">+</span> <span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">length</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; assertGetIdNotName <span style="color: #339933;">=</span> <span style="color: #339933;">!</span>document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span>expando<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #006600; font-style: italic;">// Cleanup</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; docElem.<span style="color: #660066;">removeChild</span><span style="color: #009900;">&#40;</span>div<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">return</span> pass<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span></div></td></tr></tbody></table></div>
<p>The next and last necessary change is the <i>jQuery.support</i> function that starts <b>at line 1239 and goes all the way down to line 1507</b>. The stripped down function looks like this:</p>
<div class="codecolorer-container javascript default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br /></div></td><td><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">jQuery.<span style="color: #660066;">support</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #006600; font-style: italic;">//...</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">return</span> support<span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>This self executing function has to be wrapped like this:</p>
<div class="codecolorer-container javascript default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br /></div></td><td><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">jQuery.<span style="color: #660066;">support</span> <span style="color: #339933;">=</span> MSApp.<span style="color: #660066;">execUnsafeLocalFunction</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #006600; font-style: italic;">//...</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">return</span> support<span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>Be sure to remove the last paranthesis because <i>execUnsafeLocalFunction</i> already executes the function for you &#8211; no need for a self executing function any more.</p>
<h2>Further optimization</h2>
<p>When you know what you are doing and can be sure that all the executed code is controlled by you, it makes sense to apply one last change to the core of jQuery which is handling the <i>html()</i> method among some others like <i>append</i>. After having applied the modification, you will be able to execute code like this without an error:</p>
<div class="codecolorer-container javascript default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#test&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">html</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;&lt;a onclick='document.body.style.backgroundColor=<span style="color: #000099; font-weight: bold;">\&quot;</span>#F00<span style="color: #000099; font-weight: bold;">\&quot;</span>'&gt;Something evil&lt;/a&gt;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>Change <b>line 6115</b> from</p>
<div class="codecolorer-container javascript default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">div.<span style="color: #660066;">innerHTML</span> <span style="color: #339933;">=</span> wrap<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">+</span> elem <span style="color: #339933;">+</span> wrap<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>to our new favourite contruct</p>
<div class="codecolorer-container javascript default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br /></div></td><td><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">MSApp.<span style="color: #660066;">execUnsafeLocalFunction</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; div.<span style="color: #660066;">innerHTML</span> <span style="color: #339933;">=</span> wrap<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">+</span> elem <span style="color: #339933;">+</span> wrap<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<h2>$(&#8220;windows8&#8243;).ready();</h2>
<p>All the modifications have been included in <a href="/wordpress/wp-content/uploads/2012/08/jquery-1.8.0-windows8-ready.zip">this modified version of jquery-1.8.0</a>. Download, include in your Windows 8 App and have fun! If a new jQuery version has come out in the meantime, you know where to apply your changes. Watch out for <i>innerHTML</i> and maybe some time, the jQuery team will release a Windows 8 ready version. Let&#8217;s hope together!</p>
<p><b>Update 2012-10-02:</b> Eric pointed out an encoding issue with the original file causing applications with the modified, old jQuery version contained to fail the WACK test. This has now been fixed, the links are updated accordingly. Thanks Eric!</p>
<p><a href="/wordpress/wp-content/uploads/2012/08/jquery-1.8.0-windows8-ready.zip" target="_blank" class="button medium gray alignleft"><span>Download patched version of jQuery 1.8.0 for Windows 8</span></a></p>
<div><a href="http://www.incloud.de/2012/08/windows-8-using-jquery-for-app-development/"><img width="150" height="150" src="http://www.incloud.de/wordpress/wp-content/uploads/2012/08/Unbenannt-150x150.png" class="attachment-thumbnail wp-post-image" alt="jQuery for Windows" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.incloud.de/2012/08/windows-8-using-jquery-for-app-development/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
	</channel>
</rss>
