<?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>Ajaxschmiede.de</title>
	<atom:link href="http://www.ajaxschmiede.de/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ajaxschmiede.de</link>
	<description>rund um das Thema Ajax und Web2.0</description>
	<lastBuildDate>Tue, 29 Jun 2010 17:15:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>LESS.js &#8211; CSS mit Variablen und Funktionen</title>
		<link>http://www.ajaxschmiede.de/jquery/less-js-css-mit-variablen-und-funktionen/</link>
		<comments>http://www.ajaxschmiede.de/jquery/less-js-css-mit-variablen-und-funktionen/#comments</comments>
		<pubDate>Tue, 29 Jun 2010 17:15:48 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://www.ajaxschmiede.de/?p=498</guid>
		<description><![CDATA[LESS ist eine Erweiterung der bestehenden CSS-Definitionen und beinhaltete alle existierenden Formatierungen. Im Unterschied zu CSS beherrscht LESS jedoch den Umgang mit Variablen, erweiterten Klassen, Funktionen und eingebetteten Regeln. Und das ist echt cool. Hier gleich ein paar Anwendungsbeispiele: Um LESS zu nutzen bedarf es einer Anwendung, die den LESS-Code in normales CSS umwandelt. Dies [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://lesscss.org/">LESS</a> ist eine Erweiterung der bestehenden CSS-Definitionen und beinhaltete alle existierenden Formatierungen. Im Unterschied zu CSS beherrscht LESS jedoch den Umgang mit Variablen, erweiterten Klassen, Funktionen und eingebetteten Regeln. Und das ist echt cool.</p>
<p>Hier gleich ein paar Anwendungsbeispiele:</p>
<pre class="brush: jscript; title: ; notranslate">
//Variablen
@main_color: #2266bb;

h1 {
 color: @main_color;
}

// erweiterte Klassen
.rounded_corners (@radius: 5px) {
 -moz-border-radius: @radius;
 -webkit-border-radius: @radius;
 border-radius: @radius;
}

#header {
 .rounded_corners;
}

.main_table {
 .rounded_corners(10px);
}

// eingebettete Regeln
#header {
 color: red;
 a {
 font-weight: bold;
 text-decoration: none;
 }
}

// Funktionen
@border-width: 1px;
@base-color: #333333;

#header {
 color: @base-color * 3;
 border-left: @border-width;
 border-right: @border-width * 2;
}

.main_table {
 color: (@base-color + #111) * 1.5;
}
</pre>
<p>Um LESS zu nutzen bedarf es einer Anwendung, die den LESS-Code in normales CSS umwandelt. Dies kann man beispielsweise über die PHP-Klasse <a href="http://leafo.net/lessphp/">lessphp</a> tun, die ich persönlich auch einsetze. Dies sieht dann in etwa so aus:</p>
<pre class="brush: php; title: ; notranslate">
require 'lessc.inc.php';

try {
lessc::ccompile('input.less', 'out.css');
} catch (exception $ex) {
exit('lessc fatal error:&lt;br /&gt;'.$ex-&gt;getMessage());
}
</pre>
<p>Doch <a href="http://cloudhead.io/">Alexis</a>, der Entwickler von LESS, hat noch etwas viel genialeres vor. Derzeit arbeitet er an einer Javascript-Implementierung von LESS, die LESS-Code zur Laufzeit im Browser im normales CSS konvertiert &#8211; und dies in beeindruckender Geschwindigkeit. Damit entfällt das vorherige Parsen weg. Der Browser generiert selbst den CSS-Code. Dabei nutzt Alexis alle Möglichkeiten moderner Browser wie HTML5 und Local Storage voll aus.</p>
<p>Noch befindet sich LESS.js in Arbeit und wurde noch nicht freigegeben. Einen Eindruck der Arbeit kann man sich aber bereits jetzt beim Testen der <a href="http://github.com/cloudhead/less.js">Entwicklerversion</a> holen.</p>
<p>Zum Einbinden von LESS.js ist folgender HTML-Code nötig (main.less stellt die LESS-Datei da):</p>
<pre class="brush: xml; title: ; notranslate">
&lt;link rel=&quot;stylesheet/less&quot; href=&quot;/stylesheets/main.less&quot; type=&quot;text/css&quot; /&gt;
&lt;script src=&quot;http://lesscss.googlecode.com/files/less-1.0.21.min.js&quot;&gt;&lt;/script&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.ajaxschmiede.de/jquery/less-js-css-mit-variablen-und-funktionen/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>XMLHttpRequest bald Webstandard?</title>
		<link>http://www.ajaxschmiede.de/ajax-allgemein/xmlhttprequest-bald-webstandard/</link>
		<comments>http://www.ajaxschmiede.de/ajax-allgemein/xmlhttprequest-bald-webstandard/#comments</comments>
		<pubDate>Fri, 20 Nov 2009 19:52:53 +0000</pubDate>
		<dc:creator>Tobi</dc:creator>
				<category><![CDATA[Ajax Allgemein]]></category>

		<guid isPermaLink="false">http://www.ajaxschmiede.de/?p=491</guid>
		<description><![CDATA[Jeder der mit der Entwicklung von Ajax-Anwendungen zu tun hat, kennt sicher auch das XMLHttpRequest-Objekt. Es dient zum Transfer von beliebigen Daten über das HTTP-Protokoll. Mittels XMLHttpRequest kann ein Skript einer Webseite Daten dynamisch vom Webserver abrufen, ohne die Seite neu laden zu müssen. Das ist die Grundlage aller modernen ajaxbasierten Webapplikationen. Das W3C Konsortium [...]]]></description>
			<content:encoded><![CDATA[<p>Jeder der mit der Entwicklung von Ajax-Anwendungen zu tun hat, kennt sicher auch das XMLHttpRequest-Objekt. Es dient zum Transfer von beliebigen Daten über das HTTP-Protokoll. Mittels XMLHttpRequest kann ein Skript einer Webseite Daten dynamisch vom Webserver abrufen, ohne die Seite neu laden zu müssen. Das ist die Grundlage aller modernen ajaxbasierten Webapplikationen.</p>
<p>Das W3C Konsortium hat nun einen einheitliche Definition für das XMLHttpRequest-Objekt zur Standardisierung vorgeschlagen. Des Weiteren wird eine Spezifikation in Betracht gezogen, die die Domain-übergreifende Abfragen erlauben soll.</p>
<p>Lassen wir uns überraschen ob und wann die Standardisierung kommt und wie sie aussehen wird. Ich befürworte diesen Schritt jedoch grundsätzlich.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ajaxschmiede.de/ajax-allgemein/xmlhttprequest-bald-webstandard/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Den richtigen Internetanbieter finden</title>
		<link>http://www.ajaxschmiede.de/allgemeines/den-richtigen-internetanbieter-finden/</link>
		<comments>http://www.ajaxschmiede.de/allgemeines/den-richtigen-internetanbieter-finden/#comments</comments>
		<pubDate>Tue, 15 Sep 2009 22:52:12 +0000</pubDate>
		<dc:creator>Tobi</dc:creator>
				<category><![CDATA[Allgemeines]]></category>

		<guid isPermaLink="false">http://www.ajaxschmiede.de/?p=485</guid>
		<description><![CDATA[Was wären Technologien wie Ajax, wenn man keinen Zugang zum Internet hat, um die Webseiten, die diese Techniken einsetzen, überhaupt aufrufen zu können? Doch es ist gar nicht so leicht, im heutigen Tarif-Dschungel den für sich passenden Anbieter mit dem richtigen Tarif zu finden. Nicht immer ist ein anfangs günstiger monatlicher Preis auch der beste [...]]]></description>
			<content:encoded><![CDATA[<p>Was wären Technologien wie Ajax, wenn man keinen Zugang zum Internet hat, um die Webseiten, die diese Techniken einsetzen, überhaupt aufrufen zu können?</p>
<p>Doch es ist gar nicht so leicht, im heutigen Tarif-Dschungel den für sich passenden Anbieter mit dem richtigen Tarif zu finden. Nicht immer ist ein anfangs günstiger monatlicher Preis auch der beste Preis über die gesamte Laufzeit. Auf <a class="previewlink" href="http://www.internetanbieter-tarife.de/" target="_blank">internetanbieter-tarife.de</a> findet man aber eine nette Übersicht, bei der nicht nur der monatliche Preis für jeden Internetanbieter angezeigt wird, sondern über eine Laufzeit von 24 Monaten der durchschnittliche effektive Preis berechnet wird. Dabei sind aktuelle Sonderkonditionen und einmalige Einrichtungspreise berücksichtigt, z. B. die <a class="previewlink" href="http://www.internetanbieter-tarife.de/vodafone/" target="_blank">7 Monate kostenlos von Vodafone</a>.</p>
<p>Interessant für die meisten dürfte die Übersicht auf der Startseite sein, da man dort in Sekundenschnelle auswählen kann, welche Bandbreite man haben möchte, ob eine Telefonflatrate enthalten sein soll und ob man einen eventuell bereits bestehenden Telekomanschluss weiterhin nutzen möchte (für die Sortierung wird übrigens <a href="http://www.ajaxschmiede.de/jquery/jquery-ein-machtiges-und-effizientes-werkzeug/" target="_blank">jQuery</a> genutzt).</p>
<p>Wenn man sich die Übersicht anschaut, könnte man es schon fast schade finden, nicht in Baden Württemberg zu wohnen. Der <a class="previewlink" href="http://www.internetanbieter-tarife.de/kabel-bw/" target="_blank">Internetanbieter Kabel BW</a> bietet nämlich Bandbreiten bis 100 MBit/s an. Der Upload könnte mit 2.500 kBit/s schneller ausfallen, ist aber letztlich doch mehr als der Downstream vieler DSL Kunden, wenn sie zu weit vom Verteiler entfernt wohnen.</p>
<p>Insgesamt eine empfehlenswerte und übersichtliche Seite, wenn man sich über aktuelle DSL-Tarife oder Sonderangebote der Internetanbieter informieren will. Aktuell scheint der Trend in Richtung VDSL zu gehen, wobei die Kabelanschlüsse immer leistungsfähiger werden und eine ernsthafte Konkurrenz zu den herkömmlichen DSL-Anbietern darstellen (zumindest in den Gebieten, in denen der Kabelanschluss auch geschaltet werden darf bzw. kann).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ajaxschmiede.de/allgemeines/den-richtigen-internetanbieter-finden/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Neues aus der Mozilla-Welt</title>
		<link>http://www.ajaxschmiede.de/trends/neues-aus-der-mozilla-welt/</link>
		<comments>http://www.ajaxschmiede.de/trends/neues-aus-der-mozilla-welt/#comments</comments>
		<pubDate>Tue, 18 Aug 2009 07:37:12 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[Trends]]></category>

		<guid isPermaLink="false">http://www.ajaxschmiede.de/?p=479</guid>
		<description><![CDATA[Nachdem Mozilla vor Monaten Version 3.5 ihres Firefox-Browsers veröffentlichten, gibt es bereits heute erste Ideen und Vorschläge für die Releases 3.6, 3.7 und gar 4.0. Firefox 3.5 bietet gegenüber den Vorgängern einen &#8220;private surf&#8221;-Modus, eine überarbeitete Chronik und eine verbesserte Tab-Bedienung. Die neue TraceMonkey-Javascriptengine beschleunigt die Ausführung von JS-Code imens. Weitere Infos sind in einem [...]]]></description>
			<content:encoded><![CDATA[<p>Nachdem Mozilla vor Monaten Version 3.5 ihres Firefox-Browsers veröffentlichten, gibt es bereits heute erste Ideen und Vorschläge für die Releases 3.6, 3.7 und gar 4.0.</p>
<p>Firefox 3.5 bietet gegenüber den Vorgängern einen &#8220;private surf&#8221;-Modus, eine überarbeitete Chronik und eine verbesserte Tab-Bedienung. Die neue TraceMonkey-Javascriptengine beschleunigt die Ausführung von JS-Code imens. Weitere Infos sind in einem <a href="http://www.ajaxschmiede.de/trends/offizielle-beta-1-von-firefox-31-erschienen/">älteren AS-Beitrag</a> bereits aufgelistet.</p>
<p>Im Frühjahr 2010 soll dann die Version 3.6 des Mozilla-Browsers erscheinen. Die Entwickler haben sich vorgenommen, die Programmoberfläche samt Menüleiste nochmals schlanker und übersichtlicher zu gestalten. Es soll sogar möglich sein, die Menüleiste automatisch ganz abzuschalten. Allgemein soll FF schneller starten und auf Benutzereingaben flotter reagieren.</p>
<p>Im Inneres des Browsers werkelt dann die Gecko-Engine in Version 1.9.2, die es ermöglicht Töne bei festgelegten Ereignissen auszugeben. Zudem kann die GeolocationAPI nun neben Breiten- und Längenangaben auch mit für Menschen lesbare Ortangaben zurückgehen.</p>
<p>TraceMonkey wurde nochmals optimiert und arbeitet nun noch ein Stückchen schneller. Einige weitere CSS3-Eigenenschaften werden unterstützt. So können nun mehrere Hintergrundbilder für eine Element definiert werden, als Hintergrund dürfen nun auch Farbverläufe angegeben werden und die Hintergrundgröße seperat festgelegt werden.</p>
<p>Die erste <a href="https://developer.mozilla.org/devnews/index.php/2009/08/07/firefox-3-6-alpha-1-now-available-for-download/">Alpha-Vorversion von 3.6</a> steht zu Testzwecken zum Download zur Verfügung.</p>
<p>Inzwischen existiert bereits eine erste Entwicklerversion von <a href="http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-trunk/">Firefox 3.7</a>. Über technische Neuerungen schweigt Mozilla sich noch aus. Bekannt wurde jedoch, dass man verstärkt Glass-Effete ala Windows Vista/7 verstärkt einsetzen will.</p>
<p>Aber auch am nächsten Hauptrelease FF4 wird schon getüftelt. Dabei setzt man wie in bei FF3.7 auf Glass-Efekte. Unter den Entwicklern diskutiert man derzeit, ob man, wie bei Googles Chrome, die Tableiste anstelle der Titelleiste in den Fensterkopf verschiebt um so vertikalen Platz zu schaffen. Zudem denkt man darüber nach, die Lesezeichen-Leiste ganz zu entfernen und diese durch ein Widget zu ersetzen.</p>
<p>Hier ein paar visuelle Eindrücke der zukünftigen Versionen, an denen derzeit gearbeitet wird.</p>
<p><a title="Firefox 3.7" rel="lightbox[firefoxnews0]" href="http://www.ajaxschmiede.de/wp-content/uploads/2009/08/firefox37.png"><img class="alignnone size-medium wp-image-480" title="Firefox 3.7" src="http://www.ajaxschmiede.de/wp-content/uploads/2009/08/firefox37-300x41.png" alt="Firefox 3.7" /></a> <a title="Firefox 4.0" rel="lightbox[firefoxnews0]" href="http://www.ajaxschmiede.de/wp-content/uploads/2009/08/firefox40.png"><img class="alignnone size-medium wp-image-481" title="Firefox 4.0" src="http://www.ajaxschmiede.de/wp-content/uploads/2009/08/firefox40-300x31.png" alt="Firefox 4.0" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ajaxschmiede.de/trends/neues-aus-der-mozilla-welt/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Bewegte Canvas-Bilder mit CakeJS</title>
		<link>http://www.ajaxschmiede.de/canvas/bewegte-canvas-bilder-mit-cakejs/</link>
		<comments>http://www.ajaxschmiede.de/canvas/bewegte-canvas-bilder-mit-cakejs/#comments</comments>
		<pubDate>Mon, 17 Aug 2009 13:18:44 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[Canvas]]></category>
		<category><![CDATA[Spiele]]></category>

		<guid isPermaLink="false">http://www.ajaxschmiede.de/?p=465</guid>
		<description><![CDATA[Bewegte Bilder, sprich Animationen, sind seit jeher ein Hingucker auf jeder Homepage. In der Vergangenheit griffen Webentwickler bei einfachen Animationen auf bewegte GIF-Dateien zurück, die Einzelbilder beinhalten und zeitversetzt wiedergeben. Für aufwendigere Szenen musste auf das Adobes (ehemals Macromedia) Flash-Format auswischen werden. Flash bietet sehr vielseitige Möglichkeiten und gilt seit jeher de facto als Standard [...]]]></description>
			<content:encoded><![CDATA[<p>Bewegte Bilder, sprich Animationen, sind seit jeher ein Hingucker auf jeder Homepage. In der Vergangenheit griffen Webentwickler bei einfachen Animationen auf bewegte GIF-Dateien zurück, die Einzelbilder beinhalten und zeitversetzt wiedergeben. Für aufwendigere Szenen musste auf das <a class="previewlink" href="http://de.wikipedia.org/wiki/Adobe_Flash">Adobes (ehemals Macromedia) Flash</a>-Format auswischen werden.</p>
<p>Flash bietet sehr vielseitige Möglichkeiten und gilt seit jeher de facto als Standard für Webanimationen. Die Wiedergabe geschieht über den kostenfreien Flash-Player, der mittels Plugin in den Browser eingebunden wird. Jedoch handelt es sich bei Flash um eine proprietäre Software. Sie muss also durch teure Lizenzgebühren erworben werden um eigene Anwendungen in Flash zu erstellen.</p>
<p>Genau hier fehlte es bisher an geeigneten Alternativen.</p>
<p>Bereits vor über einem Jahr veröffentlichte Ilmari Heikkinen &#8211; wohl weitestgehend unbemerkt &#8211; seine Javascript-Bibliothek <a class="previewlink" href="http://code.google.com/p/cakejs/">CakeJS</a> (Canvas Animation Kit Experiment). CakeJS orientiert sich im Groben am &#8220;großen Bruder&#8221; Flash.</p>
<p>Auf der <a href="http://glimr.rubyforge.org/cake/canvas.html#Circles">Demo-Seite</a> des Projekts finden sich zahlreiche kleine Beispielanimationen, die einen Vorgeschmack darauf geben, was mit CakeJS möglich ist. Das Highlight sind die beiden mit CakeJS erstellten Spiele <a href="http://glimr.rubyforge.org/cake/missile_fleet.html">Missle Fleet</a> und <a href="http://jeko.free.fr/megapong/">Web Mega Pong</a>. Beide Spiele lassen sich leicht per Tastatur steuern und machen ziemlich Spaß.</p>
<p>In der <a class="previewlink" href="http://glimr.rubyforge.org/cake/jsdoc/">umfangreichen Dokumentation</a> findet man eine gute Übersicht aller zur Verfügung stehenden Funktionen und Methoden samt Erklärungen.</p>
<p>CakeJS ist für Browser entwickelt wurden, die von Haus aus Canvas unterstützen und funktioniert mit Firefox (2+), Safari (3+) und Opera (9.6+). Grundsätzlich sollte es zwar möglich sein, dass CakeJS auch in Microsofts Internet Explorer mittels <a href="http://www.ajaxschmiede.de/javascript/explorercanvas-erfaehrt-ie8-update/">ExplorerCanvas</a> läuft, jedoch scheint die Ausführungsgeschwindigkeit zu langsam und der Resourcenverbrauch zu hoch zu sein um die Animationen ordentlich darstellen zu können.</p>
<p>Vorgenommen hatte sich Heikkinen viel: Physikengine, Kollisionsabfrage und das Senken der CPU-Last, doch seit mehreren Monaten steht die Entwicklung still. Vielleicht kommt demnächst ja doch noch eine neuere Version&#8230;</p>
<p><a title="CakeJS Game Missle Fleet" rel="lightbox[cakejs]" href="http://www.ajaxschmiede.de/wp-content/uploads/2009/08/cakejsdemo2.png"><img class="alignnone size-thumbnail wp-image-471" title="CakeJS Game Missle Fleet" src="http://www.ajaxschmiede.de/wp-content/uploads/2009/08/cakejsdemo2-150x150.png" alt="CakeJS Game Missle Fleet" width="150" height="150" /></a> <a title="CakeJS Game Web Mega Pong" rel="lightbox[cakejs]" href="http://www.ajaxschmiede.de/wp-content/uploads/2009/08/cakejsdemo.png"><img class="alignnone size-thumbnail wp-image-470" title="CakeJS Game Web Mega Pong" src="http://www.ajaxschmiede.de/wp-content/uploads/2009/08/cakejsdemo-150x150.png" alt="CakeJS Game Web Mega Pong" width="150" height="150" /></a> <a title="CakeJS Beispiel" rel="lightbox[cakejs]" href="http://www.ajaxschmiede.de/wp-content/uploads/2009/08/cakejs.png"><img class="alignnone size-thumbnail wp-image-468" title="CakeJS Beispiel" src="http://www.ajaxschmiede.de/wp-content/uploads/2009/08/cakejs-150x150.png" alt="CakeJS Beispiel" width="150" height="150" /></a> <a title="CakeJS Beispiel" rel="lightbox[cakejs]" href="http://www.ajaxschmiede.de/wp-content/uploads/2009/08/cakejs2.png"><img class="alignnone size-thumbnail wp-image-469" title="CakeJS Beispiel" src="http://www.ajaxschmiede.de/wp-content/uploads/2009/08/cakejs2-150x150.png" alt="CakeJS Beispiel" width="150" height="150" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ajaxschmiede.de/canvas/bewegte-canvas-bilder-mit-cakejs/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Interaktives Datendarstellungsprojekt InfoVis 1.1 erschienen</title>
		<link>http://www.ajaxschmiede.de/javascript/interaktives-datendarstellungsprojekt-infovis-11-erschienen/</link>
		<comments>http://www.ajaxschmiede.de/javascript/interaktives-datendarstellungsprojekt-infovis-11-erschienen/#comments</comments>
		<pubDate>Mon, 15 Jun 2009 20:00:27 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://www.ajaxschmiede.de/?p=460</guid>
		<description><![CDATA[Das Visualisierungprojekt InfoVis bietet wirklich großartige Möglichkeiten um Daten im Internet darzustellen. Vor wenigen Tagen präsentierten die InfoVis-Entwickler die Hauptversion 1.1 ihres Tools. InfoVis ermöglicht das Darstellen interaktiver, dynamischer Graphen und Baumdiagramme. Das hört sich genial an und sieht in der Praxis noch viel besser aus. In der nun vorliegenden Version 1.1. wurde die Bibliothek [...]]]></description>
			<content:encoded><![CDATA[<p>Das Visualisierungprojekt InfoVis bietet wirklich großartige Möglichkeiten um Daten im Internet darzustellen. Vor wenigen Tagen präsentierten die InfoVis-Entwickler die <a class="previewlink" href="http://blog.thejit.org/2009/06/02/the-javascript-infovis-toolkit-11-is-out/">Hauptversion 1.1</a> ihres Tools.</p>
<p>InfoVis ermöglicht das Darstellen interaktiver, dynamischer Graphen und Baumdiagramme. Das hört sich genial an und sieht in der Praxis noch viel besser aus.</p>
<p>In der nun vorliegenden Version 1.1. wurde die Bibliothek in einzelne Module unterteilt um die Wiederverwendbarkeit des Quellcodes zu erhöhen.</p>
<p>Zudem kann man nun mehrfache Instanzen einer jeden Animation erzeugen. Dadurch können nun die Darstellungsformen kombiniert und hintereinander ausgeführt werden.</p>
<p>InfoVis arbeitet mit jeder Javascript-Bibliothek zusammen, egal ob jQuery, Prototype, YUI, MooTools usw, InfoVis lässt sich zusammen mit allen nutzen.</p>
<p>Vorhandere Klasse können leicht verändert und erweiteret werden, außerdem lassen sich eigene Animation erstellen. Die Möglichkeiten sind grenzenlos.</p>
<p>Eine erstklassige <a class="previewlink" href="http://thejit.org/docs/files/Core-js.html">Dokumentation</a> und viele <a class="previewlink" href="http://thejit.org/demos/">Beispiele</a> sind auf der Entwickler-Seite für jedermann zugänglich.</p>
<p><a title="Animiertes Baumdiagramm mit InfoVis" rel="lightbox[infovis]" href="http://www.ajaxschmiede.de/wp-content/uploads/2009/06/infovis.png"><img class="alignnone size-thumbnail wp-image-461" title="Animiertes Baumdiagramm mit InfoVis" src="http://www.ajaxschmiede.de/wp-content/uploads/2009/06/infovis-150x150.png" alt="infovis" width="150" height="150" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ajaxschmiede.de/javascript/interaktives-datendarstellungsprojekt-infovis-11-erschienen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adobe BrowserLab macht Microsoft SuperPreview Konkurrenz</title>
		<link>http://www.ajaxschmiede.de/tools/adobe-browserlab-macht-microsoft-superpreview-konkurrenz/</link>
		<comments>http://www.ajaxschmiede.de/tools/adobe-browserlab-macht-microsoft-superpreview-konkurrenz/#comments</comments>
		<pubDate>Thu, 04 Jun 2009 13:20:10 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.ajaxschmiede.de/?p=449</guid>
		<description><![CDATA[Im März berichtete ich bereits über ein Microsoft-Programm namens SuperPreview, dass sich derzeit in der Entwicklung befindet und Web-Designern und -Entwicklern beim Erstellen von Homepages Darstellungsunterschiede der einzelnen Browser aufzeigen soll. Am gestrigen Mittwoch stellte Adobe mit dem eigenen BrowserLab ein von der Funktionalität her ähnliches Tool zur Verfügung, das ebenso die Website-Gestaltung in bezug [...]]]></description>
			<content:encoded><![CDATA[<p>Im März berichtete ich bereits über ein Microsoft-Programm namens <a href="http://www.ajaxschmiede.de/tools/microsoft-superpreview-soll-browsertests-revolutionieren/">SuperPreview</a>, dass sich derzeit in der Entwicklung befindet und Web-Designern und -Entwicklern beim Erstellen von Homepages Darstellungsunterschiede der einzelnen Browser aufzeigen soll.</p>
<p>Am gestrigen Mittwoch stellte Adobe mit dem eigenen BrowserLab ein von der Funktionalität her ähnliches Tool zur Verfügung, das ebenso die Website-Gestaltung in bezug auf Browserprobleme vereinfachen soll.</p>
<p>Im Gegensatz zu Microsofts Anwendung wird <a href="http://labs.adobe.com/technologies/browserlab/">Adobe BrowserLab</a> als Online-Dienst angeboten. Vorerst wird dieser sogar kostenlos verfügbar sein. Adobe möchte sein Tool jedoch später zu einem kostenpflichtigen Dienst umstellen. Wann dies geschehen soll, ist noch offen.</p>
<p>Im BrowserLab ist es zum einen möglich eine Homepage auf zwei verschiedenen Browsern oder sogar Betriebssystem nebeneinander oder überlagend darzustellen, wodurch es recht einfach ist, Unterschiede der einzelnen Renderer auszumachen.</p>
<p>Bisher werden folgende Browser unterstützt (weitere folgen):</p>
<ul>
<li style="text-align: justify;">Internet Explorer 6 (Windows XP)</li>
<li style="text-align: justify;">Internet Explorer 7 (Windows XP)</li>
<li style="text-align: justify;">Firefox 2 (Windows XP)</li>
<li style="text-align: justify;">Firefox 3 (Windows XP)</li>
<li style="text-align: justify;">Firefox 2 OS X</li>
<li style="text-align: justify;">Firefox 3 OS X</li>
<li style="text-align: justify;">Safari 3 OS X</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.ajaxschmiede.de/tools/adobe-browserlab-macht-microsoft-superpreview-konkurrenz/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Regelmäßige Vielecke mit Canvas</title>
		<link>http://www.ajaxschmiede.de/canvas/regelmaessige-vielecke-mit-canvas/</link>
		<comments>http://www.ajaxschmiede.de/canvas/regelmaessige-vielecke-mit-canvas/#comments</comments>
		<pubDate>Wed, 03 Jun 2009 22:00:32 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[Canvas]]></category>

		<guid isPermaLink="false">http://www.ajaxschmiede.de/?p=442</guid>
		<description><![CDATA[In letzter Zeit habe ich mich verstärkt wieder mal mit Canvas beschäftigt. Dabei ging es mir vor allem um regelmäßige Vielecke (englisch: regular polygons). Von Haus bietet Canvas in keiner Implementierung eine Funktion zum schnellen und einfachen Erzeugen von regelmäßigen Vielecken. Daher setzte ich mich hin und programmierte angeregt durch canvas.quaese.de zwei entsprechenende canvas-Objekterweiterungen. Außerdem [...]]]></description>
			<content:encoded><![CDATA[<p>In letzter Zeit habe ich mich verstärkt wieder mal mit Canvas beschäftigt. Dabei ging es mir vor allem um regelmäßige Vielecke (englisch: regular polygons).</p>
<p>Von Haus bietet Canvas in keiner Implementierung eine Funktion zum schnellen und einfachen Erzeugen von regelmäßigen Vielecken. Daher setzte ich mich hin und programmierte angeregt durch <a class="previewlink" href="http://canvas.quaese.de/index.php?nav=4,31&amp;doc_id=18">canvas.quaese.de</a> zwei entsprechenende canvas-Objekterweiterungen.</p>
<p>Außerdem wollte ich gern gezackte Figuren wie Sterne und Sonnen mit einem Funktionsaufruf erzeugen können. Also nahm ich meinen bisherigen Code her und überarbeitete ihn.</p>
<p>Das Ergebnis all des Codens kann sich meines Erachtens sehen lassen. Vor allem bei Mehrfachaufrufen ergeben sich sehr schicke Muster.</p>
<p>Die Methoden selbst sind nach einem simplen Prinzip aufgebaut. Man gibt die Position des Vieleckmittelpunktes, die Anzahl der Ecken, den Radius (Mittelpunkt-&gt;Ecke) und Anfangswinkel (meist 0) an.</p>
<p>Den Quelltext der Objekterweitungen kann ich nachfolgend sehen:</p>
<pre class="brush: jscript; title: ; notranslate">
canvas.drawPoly = function(x,y,n,r,phi) {
this.translate(x,y);
this.rotate(phi);
this.beginPath();
this.moveTo(0,r);

for( var i=0; i&lt;=n; i++){
this.save();
this.rotate(2*i*Math.PI/n);
this.lineTo(0,r);
this.restore();
}
this.stroke();
this.rotate(-phi);
this.translate(-x,-y);
}

canvas.fillPoly = function(x,y,n,r,phi) {
this.translate(x,y);
this.rotate(phi);
this.beginPath();
this.moveTo(0,r);

for( var i=0; i&lt;=n; i++){
this.save();
this.rotate(2*i*Math.PI/n);
this.lineTo(0,r);
this.restore();
}
this.fill();
this.rotate(-phi);
this.translate(-x,-y);
}

canvas.drawZickzack = function(x,y,n,r1,r2,phi) {
this.translate(x,y);
this.rotate(phi);
this.beginPath();
this.moveTo(0,r1);

for( var i=0; i&lt;=n; i++){
this.save();
this.rotate(2*i*Math.PI/n);
this.lineTo(0,r1);
this.restore();
this.save();
this.rotate(2*i*Math.PI/n+(2*Math.PI/n)/2);
this.lineTo(0,r2);
this.restore();
}

this.stroke();
this.rotate(-phi);
this.translate(-x,-y);
}

canvas.fillZickzack = function(x,y,n,r1,r2,phi) {
this.translate(x,y);
this.rotate(phi);
this.beginPath();
this.moveTo(0,r1);

for( var i=0; i&lt;=n; i++){
this.save();
this.rotate(2*i*Math.PI/n);
this.lineTo(0,r1);
this.restore();
this.save();
this.rotate(2*i*Math.PI/n+(2*Math.PI/n)/2);
this.lineTo(0,r2);
this.restore();
}

this.fill();
this.rotate(-phi);
this.translate(-x,-y);
}

// Anwendungsbeispiel:
canvas.fillStyle = &quot;#009&quot;;
canvas.strokeStyle = &quot;rgb(0,0,0)&quot;;
canvas.lineWidth = 2;
// Sechseck
canvas.drawPoly(60,60,6,40,0);
</pre>
<p>Im <a href="http://www.ajaxschmiede.de/canvas/einfuehrung-in-canvas/">Grundlagenbeitrag</a> zu Canvas kann man sich genauere Informationen zum Einbau holen. Auch ein Blick in den Quellcode meiner <a href="http://www.ajaxschmiede.de/demos/vieleck/index.html">angefertigen Demo</a> hilft sich dem ein oder anderen und zeigt die Möglichkeiten der Methoden auf.</p>
<p><a title="Vielecke und gezackte Muster mit Canvas" rel="lightbox[canvaspoly]" href="http://www.ajaxschmiede.de/wp-content/uploads/2009/06/vielecke.png"><img class="size-thumbnail wp-image-433" title="Vielecke und gezackte Muster mit Canvas" src="http://www.ajaxschmiede.de/wp-content/uploads/2009/06/vielecke-150x150.png" alt="Vielecke und gezackte Muster mit Canvas" width="150" height="150" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ajaxschmiede.de/canvas/regelmaessige-vielecke-mit-canvas/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>DeepLeap &#8211; tolles Wörterpuzzle zum Zeit tot schlagen</title>
		<link>http://www.ajaxschmiede.de/spiele/deepleap-tolles-woerterpuzzle-zum-zeit-tot-schlagen/</link>
		<comments>http://www.ajaxschmiede.de/spiele/deepleap-tolles-woerterpuzzle-zum-zeit-tot-schlagen/#comments</comments>
		<pubDate>Tue, 05 May 2009 21:23:50 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[Spiele]]></category>

		<guid isPermaLink="false">http://www.ajaxschmiede.de/?p=436</guid>
		<description><![CDATA[Findige Internetnutzer haben ein neues Javascript-Spiel des jQuery-Gurus John Resig namens DeepLeap entdeckt. Ziel des Spiels ist es, aus den zur Verfügung stehenden Buchstaben (englische) Wörter zu bilden, für die Punkte gibt. Manche Buchstaben bringen mehr, andere weniger Punkte. Bei längeren Wörter (mehr als 3 Buchstaben) kommen noch verschiedene Multiplikatoren hinzu, die zu einem gehörigen [...]]]></description>
			<content:encoded><![CDATA[<p>Findige Internetnutzer haben ein neues Javascript-Spiel des <a href="http://www.ajaxschmiede.de/category/jquery/">jQuery</a>-Gurus John Resig namens <a class="previewlink" href="http://deepleap.org/">DeepLeap</a> entdeckt.</p>
<p>Ziel des Spiels ist es, aus den zur Verfügung stehenden Buchstaben (englische) Wörter zu bilden, für die Punkte gibt. Manche Buchstaben bringen mehr, andere weniger Punkte. Bei längeren Wörter (mehr als 3 Buchstaben) kommen noch verschiedene Multiplikatoren hinzu, die zu einem gehörigen Punktezuwachs sorgen.</p>
<p>Das noch unfertige Spiel ist im Groben ein Mix aus Tetris und Scrabble. So fern man dem Englischen mächtig ist, macht das Spiel auch richtig Spaß. Achtung: Suchtgefahr!</p>
<p><a title="DeepLeap" rel="lightbox[deepleap]" href="http://www.ajaxschmiede.de/wp-content/uploads/2009/05/deepleap.png"><img class="size-thumbnail wp-image-437" title="DeepLeap" src="http://www.ajaxschmiede.de/wp-content/uploads/2009/05/deepleap-150x150.png" alt="DeepLeap" width="150" height="150" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ajaxschmiede.de/spiele/deepleap-tolles-woerterpuzzle-zum-zeit-tot-schlagen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>canvas.text für jeden Browser</title>
		<link>http://www.ajaxschmiede.de/canvas/canvastext-fuer-jeden-browser/</link>
		<comments>http://www.ajaxschmiede.de/canvas/canvastext-fuer-jeden-browser/#comments</comments>
		<pubDate>Wed, 29 Apr 2009 21:16:53 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[Canvas]]></category>

		<guid isPermaLink="false">http://www.ajaxschmiede.de/?p=432</guid>
		<description><![CDATA[In den vergangenen Monaten habe ich schon viel über Canvas geschrieben. Doch etwas fehlte mir um damit umfassendere, grapfische Projekte umzusetzen: Die Möglichkeit Text zu integrieren. Methoden zum Darstellen von Text sind in den (vorläufigen) Spezifikationen des Canvas-Elementes bereits vorgesehen. Aktuelle Versionen von Webkit, Safari4 (Beta), Chrome 2 (Beta) und Firefox 3.5 (Beta) implementieren die [...]]]></description>
			<content:encoded><![CDATA[<p>In den vergangenen Monaten habe ich schon viel über Canvas geschrieben. Doch etwas fehlte mir um damit umfassendere, grapfische Projekte umzusetzen: Die Möglichkeit Text zu integrieren.</p>
<p>Methoden zum Darstellen von Text sind in den (vorläufigen) <a class="previewlink" href="http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#text">Spezifikationen des Canvas-Elementes</a> bereits vorgesehen.</p>
<p>Aktuelle Versionen von Webkit, Safari4 (Beta), Chrome 2 (Beta) und <a class="previewlink" href="https://developer.mozilla.org/En/Firefox_3.5_for_developers#New_Canvas_features">Firefox 3.5</a> (Beta) implementieren die Canvas-Text-Methoden, doch für die breite Masse eingesetzter Browser gilt dies nicht.</p>
<p>Die Lösung liefert ein Javascript-Bibliothek mit dem einfachen und treffenden Namen <a class="previewlink" href="http://code.google.com/p/canvas-text/">canvas-text.</a></p>
<p>Diese Bibliothek fügt die drei HTML5-Methoden zum Zeichnen von Text in Canvas (<em>strokeText</em>, <em>fillText</em> und <em>measureText</em>) den Browsers hinzu, die diese Funktionen nicht von Haus aus beherrschen (Firefox 2/3.0, Internet Explorer 6+, Opera 9+, Safari 3 und Chrome 1.0).</p>
<p>Canvas-text wurde so umgesetzt, dass es die Richtlinien des W3C und des WHATWG für das canvas-Elemente nach HTML5 erfüllt. Außer der <a href="http://www.ajaxschmiede.de/javascript/explorercanvas-erfaehrt-ie8-update/">ExCanvas</a>-Bibliothek für den Internet Explorer und der canvas.text.js-Datei werden keine anderen Dateien benötigt.</p>
<p>Vorhandene browser-spezifische Implementierungen werden nicht überschrieben, es sei denn, man gibt dies explizit an.</p>
<p>Der Einbau sieht wie folgt aus:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;!--[if IE]&gt;&lt;script type=&quot;text/javascript&quot; src=&quot;excanvas.js&quot; /&gt;&lt;![endif]--&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;canvas.text.js&quot; /&gt;
</pre>
<p>Um canvas.text auch zu nutzen,benötigt man nun noch Schriftarten. <a class="previewlink" href="http://typeface.neocracy.org/fonts.html">Typeface.js</a> bietet einige Font-Files an. Eine größere Auswahl gibt es bei <a class="previewlink" href="http://www.madasplayground.com/fonts/">Mada&#8217;s Playground</a>. Diese müssen unbedingt in einem Ordner mit dem Namen <strong>faces</strong> abgelegt werden, der sich im selben Verzeichnis wie die Datei canvas.text.js befindet.</p>
<p>Zudem gilt es zu beachten:</p>
<p>Der Dateiname canvas.text.js darf NICHT geändert werden!</p>
<p>Die Schriftartendateien müssen klein geschrieben werden und dem Format family-weight-style.js entsprechen. Family gibt den Namen der Schriftart an wie Arial oder Times new roman, weight steht für die Stärke (bold [=fett] oder normal) und style für den Stil (italic [=kursiv] oder normal).</p>
<p>Bei Schriften mit mehreren Wörtern werden die Leerzeichen durch Unterstriche ( _ ) ersetzt.</p>
<p>Hier ein korrektes Beispiel: optimer-normal-normal.js</p>
<p>Die Schriftarten-Dateien müssen nicht explizit eingebunden werden. Dies geschieht per Ajax zur Laufzeit.</p>
<p>Die browsereigenen canvas.text-Umsetzungen lassen sich per Schalter deaktivieren. Dafür ist folgender Aufruf geeignet:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;script type=&quot;text/javascript&quot; src=&quot;canvas.text.js?reimplement=true&quot; /&gt;
</pre>
<p>Auf der Projektseite von canvas.text finden sich 5 <a href="http://canvas-text.googlecode.com/svn/trunk/examples/index.html">Live-Demos</a>, die die Möglichkeiten aufzeigen. Ein Blick in den Quellcode zeigt auch einige Kniffe zur Umsetzung.</p>
<p>Zu guter letzt noch ein Codeschnipsel, wie man in Canvas dann damit umgeht:</p>
<pre class="brush: jscript; title: ; notranslate">
canvas.font = &quot;20px 'optimer'&quot;;
canvas.strokeStyle = &quot;rgb(0,0,200)&quot;;
canvas.textAlign = 'left';
canvas.textBaseline = 'middle';
canvas.fillText('Ein normaler Beispieltext ...', 150, 100);
canvas.font = &quot;bold 25px 'optimer'&quot;;
canvas.strokeText('... und noch ein fetter Beispieltext', 150, 200);
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.ajaxschmiede.de/canvas/canvastext-fuer-jeden-browser/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

