<?xml version="1.0" encoding="UTF-8"?>
<feed xml:lang="en-US" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns="http://www.w3.org/2005/Atom">
  <title>Viele Köche: Category AJAX</title>
  <subtitle type="html">verfärben das Ei</subtitle>
  <id>tag:www.viele-koeche.org,2005:Typo</id>
  <generator version="4.0" uri="http://typo.leetsoft.com">Typo</generator>
  <link href="http://www.viele-koeche.org:8086/xml/atom10/category/ajax/feed.xml" rel="self" type="application/xml+atom"/>
  <link href="http://www.viele-koeche.org:8086/articles/category/ajax" rel="alternate" type="text/html"/>
  <updated>2007-11-16T03:35:40+00:00</updated>
  <entry>
    <author>
      <name>cabo</name>
    </author>
    <id>urn:uuid:c8e3db08-8c5c-4dd5-a7bf-e2302c2804e4</id>
    <published>2006-02-23T10:38:00+00:00</published>
    <updated>2007-11-16T03:35:40+00:00</updated>
    <title>7,000,180 U-Boote</title>
    <link href="http://www.viele-koeche.org:8086/articles/2006/02/23/7-000-180-u-boote" rel="alternate" type="text/html"/>
    <dc:subject>AJAX</dc:subject>
    <content type="html">&lt;p&gt;Es gibt jetzt ein &lt;a href="http://patft.uspto.gov/netacgi/nph-Parser?u=/netahtml/srchnum.htm&amp;amp;Sect1=PTO1&amp;amp;Sect2=HITOFF&amp;amp;p=1&amp;amp;r=1&amp;amp;l=50&amp;amp;f=G&amp;amp;d=PALL&amp;amp;s1=7000180.WKU.&amp;amp;OS=PN/7000180&amp;amp;RS=PN/7000180" title="United States Patent: 7,000,180"&gt;Patent&lt;/a&gt; zu AJAX (genauer: &lt;em&gt;rich-media applications via the internet&lt;/em&gt;).&lt;/p&gt;

&lt;p&gt;Das wird in den Blogs noch genug diskutiert werden, ich spare mir das hier.
Eines ist sicher: Die Welt braucht Erfinder wie &lt;a href="http://www.informationweek.com/story/showArticle.jhtml?articleID=180206472&amp;amp;cid=RSSfeed_IWK_News" title="InformationWeek | Pateents | U.S. Grants Patent For Broad Range Of Internet Rich Applications | February 22, 2006"&gt;Neil Balthaser&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;Zum Glück gibt es in Europa (&lt;a href="http://www.nosoftwarepatents.com/" title="No Software Patents!"&gt;noch&lt;/a&gt;) keine Softwarepatente.
(Wenn nur die Patentämter das auch wüßten&amp;#8230;)&lt;/p&gt;</content>
  </entry>
  <entry>
    <author>
      <name>cabo</name>
    </author>
    <id>urn:uuid:a915304e-e0db-4f2e-a3a7-0c0e1c98e065</id>
    <published>2006-02-20T22:44:00+00:00</published>
    <updated>2008-05-27T13:48:09+00:00</updated>
    <title>prototype wunderschön</title>
    <link href="http://www.viele-koeche.org:8086/articles/2006/02/20/prototype-wundersch%C3%B6n" rel="alternate" type="text/html"/>
    <dc:subject>AJAX</dc:subject>
    <content type="html">&lt;p&gt;Einen Klick wert:
Übersichtliche &lt;a href="http://www.snook.ca/archives/000531.php" title="Prototype Dissected - snook.ca"&gt;Spickzettel&lt;/a&gt; für das Arbeiten mit der JavaScript-Bibliothek &lt;a href="http://prototype.conio.net/" title="Prototype JavaScript Framework: Class-style OO, Ajax, and more"&gt;prototype&lt;/a&gt;.&lt;/p&gt;</content>
  </entry>
  <entry>
    <author>
      <name>bergmann</name>
    </author>
    <id>urn:uuid:ddf48649-50e4-4ce2-a24c-439b9151b8f2</id>
    <published>2006-01-25T17:40:00+00:00</published>
    <updated>2007-06-27T19:38:01+00:00</updated>
    <title>AJAX ohne ActiveX: Ist irgendetwas passiert?</title>
    <link href="http://www.viele-koeche.org:8086/articles/2006/01/25/ajax-ohne-activex-ist-irgendetwas-passiert" rel="alternate" type="text/html"/>
    <dc:subject>AJAX</dc:subject>
    <content type="html">&lt;p&gt;Gerade noch wurden die Autoren des &lt;a href="http://www.viele-koeche.org/pages/ajax-buch"&gt;AJAX-Buchs&lt;/a&gt; &lt;a href="http://www.amazon.de/exec/obidos/tg/cm/member-reviews/-/A4V5E6274BJKH/1/"&gt;geschmäht&lt;/a&gt;, weil sie ein Grundlagenwerk verfaßt haben, das auch über die rasante Entwicklung neuer Technologien hinaus bestehen soll (ob das wirklich so ist, wird sich natürlich erst mit der Zeit zeigen), da kündet die Software-Schmiede in Redmond von einer wesentlichen Vereinfachung für Entwickler von Anwendungen mit AJAX-Funktionalität. Wie kurze Zeit später auch in allen deutschsprachigen IT-Newstickern, Blogs und &lt;a href="http://www.ajax-community.de/ftopic56.html"&gt;Foren&lt;/a&gt; zu lesen, wird der Internet Explorer ab Version 7 über ein &lt;a href="http://blogs.msdn.com/ie/archive/2006/01/23/516393.aspx"&gt;natives XMLHttpRequest-Objekt&lt;/a&gt; verfügen. Das ist insofern nützlich, da AJAX-basierte Anwendungen nunmehr ohne das Einschalten von ActiveX im Internet Explorer auskommen könnten &amp;#8211; wenn da nicht die große Nutzerbasis der früheren Versionen wäre. Wie auch das Code-Fragment im MSDN-Blog zeigt (s. o.), wird die Entwicklergemeinde auch in Zukunft nicht ohne Feature-Sniffing auskommen. Profitieren werden von dieser Entwicklung in erste Linie die Nutzer, die über einen Browser mit moderneren Eigenschaften verfügen werden und ein kleines Stück Sicherheit gewinnen, wenn sie ActiveX wieder deaktivieren.&lt;/p&gt;

&lt;p&gt;Wer heute also behauptet, die (Quasi-)Standardisierung von AJAX-Technologien sei in dem letzten halben Jahr vorangeschritten, der übersieht eine wesentliche Anforderung, die das Web 2.0 mit sich bringt: Usability. Wie schon zu Zeiten von HTML 3.2 interessieren sich Nutzer überhaupt nicht dafür, welchen tollen Eigenschaften die unterliegenden Technologien mit sich bringen &amp;#8211; sie möchten vor allem eine funktionierende Anwendung, die ihr Problem löst. Trotz aller Euphorie über neue AJAX-Frameworks und neue Features in manchen Browsern bleibt es also dabei, daß Web-Entwickler vor allem &lt;em&gt;verstehen&lt;/em&gt; müssen, was in ihrer Anwendung passiert. Das Wasser, mit dem dabei gekocht wird, hat sich in dem letzten halben Jahr aber nicht geändert.&lt;/p&gt;</content>
  </entry>
  <entry>
    <author>
      <name>cabo</name>
    </author>
    <id>urn:uuid:05e34cc5-dee8-4701-b2c7-a21fd9fd809b</id>
    <published>2005-12-19T20:26:00+00:00</published>
    <updated>2007-01-30T11:23:18+00:00</updated>
    <title>Web 2.0 findet statt!</title>
    <link href="http://www.viele-koeche.org:8086/articles/2005/12/19/web-2-0-findet-statt" rel="alternate" type="text/html"/>
    <dc:subject>AJAX</dc:subject>
    <content type="html">&lt;p&gt;Es ist die Zeit der Jahresrückblicke.  Hier ein kleiner Beitrag.&lt;/p&gt;

&lt;p&gt;Oktober 2005 war der Monat der &lt;a href="http://www.25hoursaday.com/weblog/PermaLink.aspx?guid=de6cdd75-81f1-4c1a-978e-e78509b814df" title="Dare Obasanjo aka Carnage4Life - Web 2.0 Bozo Bit Reflipped"&gt;Haßtiraden&lt;/a&gt;.  Ein &lt;a href="http://de.wikipedia.org/wiki/Mem" title="Mem - Wikipedia"&gt;Mem&lt;/a&gt;, ein sich
unaufhaltsam durchsetzender neuer Begriff mußte zerstört werden.
Selbst sonst als kühle Denker bekannte Autoren wie &lt;a href="http://www.joelonsoftware.com/" title="Joel on Software"&gt;Joel Spolsky&lt;/a&gt;
verstiegen sich in &lt;a href="http://www.joelonsoftware.com/items/2005/10/21.html" title="Joel on Software: Architecture Astronauts Are Back"&gt;heilige Schwüre&lt;/a&gt;, nie wieder über &lt;a href="http://www.viele-koeche.org/static/web20.html" title="Meine Vortragsfolien zu Web 2.0"&gt;Web 2.0&lt;/a&gt; zu schreiben.&lt;/p&gt;

&lt;p&gt;Muss man ja auch nicht, aber warum dann erst einmal darüber schreiben
und dann versprechen, dass man es nie wieder tun wird?&lt;/p&gt;

&lt;p&gt;Weil „&lt;a href="http://www.squidoo.com/introtoweb20/"&gt;Web 2.0&lt;/a&gt;“ ein mächtiger Gedanke ist.
(Mächtig genug, um bei Microsoft ein weiteres &lt;a href="http://www.nytimes.com/packages/pdf/business/11microsoft.gates.pdf" title="Gates Memo (PDF)"&gt;„Sea-Change“-Memo&lt;/a&gt; samt &lt;a href="http://www.nytimes.com/packages/pdf/business/11microsoft.ozzie.pdf" title="Ozzie Memo (PDF)"&gt;Produkt-Vorankündigungs-FUD&lt;/a&gt; auszulösen — das gibt es nur alle fünf Jahre.)&lt;/p&gt;

&lt;p&gt;„Web 2.0“ war zunächst nichts anderes als der Name einer erfolgreichen Konferenz von O&amp;#8217;Reilly.
Marketing also.
(Wie bei AJAX ärgern sich natürlich viele darüber, daß nicht sie es waren, die den gängigen Begriff für etwas geprägt haben, was sie vielleicht schon vorher gedacht haben.)&lt;/p&gt;

&lt;p&gt;Es ist aber noch mehr dahinter:
Die nackte Angst vor Bubble 2.0.
Nicht schon wieder inhaltsleere Buzzwords, bei denen Millionen ihre Ersparnisse verlieren und wenige reich werden.
(Die Bubble 1.0 ist allerdings noch genug im Gedächtnis, daß das schon nicht passieren wird.)&lt;/p&gt;

&lt;p&gt;Wir Techniker haben natürlich eine klare Abneigung gegen unscharfe Begriffe.
Niemand kann heute definieren, was Web 2.0 eigentlich genau ist.&lt;/p&gt;

&lt;p&gt;Ist das schlimm?
Schnell antworten: Wann begann nach dem Mittelalter die &lt;a href="http://de.wikipedia.org/wiki/Neuzeit" title="Neuzeit - Wikipedia"&gt;Neuzeit&lt;/a&gt;?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;1492, mit der „Entdeckung“ Amerikas?&lt;/li&gt;
&lt;li&gt;1517, mit dem Beginn der Reformation Luthers?&lt;/li&gt;
&lt;li&gt;~ 1450, mit der Innovation des Buchdrucks durch bewegliche Lettern?&lt;/li&gt;
&lt;li&gt;1453, mit dem Fall Konstantinopels?&lt;/li&gt;
&lt;li&gt;oder doch erst im 17. Jahrhundert, mit der modernen Wissenschaft?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ähnlich wie die „Neuzeit“ ist auch Web 2.0 ein (kleiner) Epochenübergang, oder zumindest die Kombination aus &lt;a href="http://de.wikipedia.org/wiki/Renaissance" title="Renaissance - Wikipedia"&gt;Renaissance&lt;/a&gt; und Innovation, mit der er beginnt.
Keine einzelne Entwicklung &lt;em&gt;ist&lt;/em&gt; Web 2.0 — es geht um die Kombination mehrerer Entwicklungen, die teils voneinander unabhängig sind, sich teils gegenseitig bedingen und verstärken.
Insgesamt kommt eine (Web-)Welt heraus, die sich einfach deutlich von der davor unterscheidet.&lt;/p&gt;

&lt;p&gt;Selbst &lt;a href="http://www.paulgraham.com/web20.html" title="Paul Graham über Web 2.0"&gt;Paul Graham&lt;/a&gt;, seines Zeichens querdenkender Web-Pionier und einer der Buzzword-resistenteren Autoren dieser Welt, sieht inzwischen, &lt;a href="http://www.paulgraham.com/web20.html" title="Paul Graham über Web 2.0"&gt;daß da etwas ist&lt;/a&gt;.
In seinem äußerst lesenswerten Artikel reduziert er Web 2.0 auf drei Dinge:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;AJAX (das Web als Plattform für Anwendungen);&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Demokratie (und damit meint er wohl primär, die gesammelte Intelligenz der Menschen auch zu &lt;a href="http://www.thelongtail.com/the_long_tail/2005/12/the_probabilist.html" title="The Long Tail: The Probabilistic Age"&gt;nutzen&lt;/a&gt;);&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Benutzer nicht mehr mißhandeln.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Oh, und dieser Tage haben wir sie &lt;a href="http://blogs.zdnet.com/ip-telephony/?p=805" title="Web 2.0? It doesn't exist | IP Telephony, VoIP, Broadband | ZDNet.com"&gt;noch&lt;/a&gt; &lt;a href="http://www.readwriteweb.com/archives/web_20_is_dead.php" title="Read/WriteWeb: Web 2.0 is dead. R.I.P."&gt;einmal&lt;/a&gt; &lt;a href="http://iblog.typepad.com/iblog_eng/2005/12/web_20_does_act.html" title="Ray CHOW : Web 2.0 does actually exist!"&gt;wieder&lt;/a&gt;, die &lt;a href="http://www.connected-web.com/2005/12/web_20_schon_tot.html" title="Connected Web: Web 2.0 - schon tot?"&gt;Diskussion&lt;/a&gt;.
(Die Zeit der Jahresrückblicke und der guten Vorsätze für 2006, halt.)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Web 2.0 findet statt&lt;/strong&gt;.  Vielleicht nicht nachhaltig unter diesem
Namen, aber das ist nicht so wichtig.  Wir wissen auch noch nicht ganz
genau, wie es einmal aussehen wird, aber klar ist schon, dass AJAX
eine wichtige Rolle dabei spielen wird.&lt;/p&gt;</content>
  </entry>
  <entry>
    <author>
      <name>cabo</name>
    </author>
    <id>urn:uuid:19173bb5-39cc-4d62-bbf6-3f560762271c</id>
    <published>2005-12-14T12:36:00+00:00</published>
    <updated>2007-12-14T21:27:21+00:00</updated>
    <title>Rails: 1.0</title>
    <link href="http://www.viele-koeche.org:8086/articles/2005/12/14/rails-1-0" rel="alternate" type="text/html"/>
    <dc:subject>AJAX</dc:subject>
    <dc:subject>rails</dc:subject>
    <content type="html">&lt;p&gt;Vor ein paar Stunden hat die viel beachtete neue Web-Entwicklungsumgebung &lt;strong&gt;Ruby on Rails&lt;/strong&gt; die
&lt;a href="http://weblog.rubyonrails.com/articles/2005/12/13/rails-1-0-party-like-its-one-oh-oh"&gt;Version 1.0&lt;/a&gt; erreicht.
1.0 wie in „Firefox 1.0“, nicht wie in „Windows 1.0“.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.rubyonrails.org/"&gt;Rails&lt;/a&gt; demontiert gerade mit erstaunlicher Geschwindigkeit die Vormachtstellung der bisherigen Alpha-Tiere der
Web-Entwicklung — mindestens in &lt;a href="http://jroller.com/page/dgeary?entry=ruby_on_rails_koolaid_redux" title="David Geary's Weblog : Weblog"&gt;den&lt;/a&gt; &lt;a href="http://www.intertwingly.net/blog/2005/11/01/Beyond-Java" title="Sam Ruby: Beyond Java"&gt;Köpfen&lt;/a&gt;,
aber zunehmend auch in &lt;a href="http://www.oreillynet.com/pub/wlg/8274"&gt;großen&lt;/a&gt; &lt;a href="http://article.gmane.org/gmane.comp.lang.ruby.rails/24863" title="long An Enterprise Rails story and a help with nested transaction support"&gt;missionskritischen&lt;/a&gt; &lt;a href="http://rewrite.rickbradley.com/pages/moving_to_rails/" title="Evaluation: moving from Java to Ruby on Rails for the CenterNet rewrite"&gt;Umgebungen&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Was hat die Freigabe von Rails 1.0 mit AJAX zu tun?
Rails war das erste große Web-Framework, das AJAX als selbstverständlichen Aspekt mit unterstützte.
Mit Rails 1.0 sind insbesondere aber auch die JavaScript-Bibliotheken &lt;a href="http://prototype.conio.net/" title="Prototype JavaScript Framework: Class-style OO, Ajax, and more"&gt;Prototype 1.4&lt;/a&gt; und
&lt;a href="http://script.aculo.us/" title="script.aculo.us - web 2.0 javascript"&gt;Scriptaculous 1.5&lt;/a&gt; freigegeben worden.
Diese Bibliotheken haben jetzt eine Menge fokussiertes Bug-Fixing hinter sich;
zu erwarten ist eine recht stabile Basis für fortgeschrittene AJAX-Anwendungen — auch für
solche, bei denen die Serverseite (noch?) nicht Rails heißt.&lt;/p&gt;

&lt;p&gt;Zurück zu Rails:
&lt;code&gt;gem install rails --include-dependencies&lt;/code&gt; ist angesagt.
Studierende an der Universität Bremen können sich übrigens
schon mal auf meine Lehrveranstaltung „Produktive Web-Entwicklung“ im
Februar freuen.  (Als nächstes auf der Agenda: Kurse, die
auch außerhalb der Universität zur Verfügung stehen.)&lt;/p&gt;</content>
  </entry>
  <entry>
    <author>
      <name>cabo</name>
    </author>
    <id>urn:uuid:2a43a82a-f2a9-4856-b16b-f2eb830dfff0</id>
    <published>2005-11-29T08:06:00+00:00</published>
    <updated>2007-06-27T19:50:34+00:00</updated>
    <title>Durchbruch für Echtzeit-AJAX: XMLHttpRequest mit verschiedenen Servern</title>
    <link href="http://www.viele-koeche.org:8086/articles/2005/11/29/durchbruch-f%C3%BCr-echtzeit-ajax-xmlhttprequest-mit-verschiedenen-servern" rel="alternate" type="text/html"/>
    <dc:subject>AJAX</dc:subject>
    <content type="html">&lt;p&gt;Will man AJAX für die Echtzeit-Darstellung von Informationen benutzen,
so möchte man, daß der Client vom Server über jede relevante Zustandsänderung &lt;a href="http://www.viele-koeche.org/articles/2005/10/18/s6-folienpr%C3%A4sentationen-mit-echtzeitsynchronisation"&gt;sofort&lt;/a&gt;
informiert wird.
Dafür eignet sich am besten eine HTTP-Verbindung, die vom Browser
offengehalten wird, und in die der Server neue Daten einspeist, sobald
diese verfügbar sind.&lt;/p&gt;

&lt;p&gt;Dabei gibt es jedoch zwei Klassen von Problemen:&lt;/p&gt;

&lt;h2&gt;Serverseite&lt;/h2&gt;

&lt;p&gt;Die heute üblichen Web-Server wie Apache sind nicht sehr gut darin,
viele gleichzeitig offene Verbindungen zu verwalten.  Man möchte
eigentlich die Echtzeit-Verbindungen trennen von den
HTTP-Verbindungen, über die große Datenmengen geschaufelt werden.
So verwendet &lt;a href="http://www.viele-koeche.org/articles/2005/10/18/s6-folienpr%C3%A4sentationen-mit-echtzeitsynchronisation"&gt;S6&lt;/a&gt; einen Synchronisationsserver, der mitteilt, wann
ein neuer Zustand vorliegt — der Client kann dann (über eine separate
Verbindung) Daten nachfordern.
(Bei S6 ist dieses Nachfordern noch nicht in Benutzung, weil das
zugrundeliegende System &lt;a href="http://meyerweb.com/eric/tools/s5/" title="S5: A Simple Standards-Based Slide Show System"&gt;S5&lt;/a&gt; die Präsentation vorweg als ganzes lädt, aber man
kann sich S6 durchaus auch mit mehr AJAX-Funktionalität vorstellen.)&lt;/p&gt;

&lt;p&gt;XMLHttpRequest läßt aber aus Sicherheitsgründen nur Zugriffe auf
dieselbe Domain zu, von der auch die Seite selbst stammt — eine
sinnvolle Erweiterung der &lt;a href="http://www.mozilla.org/projects/security/components/same-origin.html"&gt;same origin policy&lt;/a&gt;, der wichtigsten Grundlage
der JavaScript-Sicherheit.
Bei S6 bedeutet das, daß die inhaltsschweren HTTP-Zugriffe vom selben
Server beantwortet werden müssen wie die Synchronisations-Zugriffe.
Das ist auch der Grund für den etwas instabilen Aufbau des
Demo-Servers:&lt;/p&gt;

&lt;p&gt;Ein &lt;a href="http://www.webrick.org/" title="WEBrick - an HTTP server toolkit"&gt;Webrick&lt;/a&gt;-Server unter &lt;a href="http://tzi.org:2000/s6.html"&gt;http://tzi.org:2000/s6.html&lt;/a&gt; liefert sowohl
Inhalte als auch Synchronisation.  Webrick ist aber als Server für
Inhalte nicht besonders effizient (außerdem belegt der Apache-Server
den Port 80 auf tzi.org, so daß Webrick auf den wenig
Firewall-freundlichen Port 2000 ausweichen mußte).&lt;/p&gt;

&lt;p&gt;Als Alternative wird die S6-Demo deswegen unter
&lt;a href="http://www.tzi.org/~cabo/s6/s6.html"&gt;http://www.tzi.org/~cabo/s6/s6.html&lt;/a&gt; auch über Apache angeboten.
Im Proxy-Modus werden die Synchronisationsanfragen an den
Webrick-Server weitergeleitet.  Das bedeutet aber, daß jeder
S6-Follower eine andauernde Verbindung zum Apache-Server
aufrechterhält (was unser Webmaster zum Glück noch nicht recht
wahrgenommen hat :-).
Nicht skalierbar.&lt;/p&gt;

&lt;h2&gt;Clientseite&lt;/h2&gt;

&lt;p&gt;Selbst wenn bessere Proxy-Server das serverseitige Problem mit der
durch die XMLHttpRequest-Sicherheit geforderten Serverbindung lösen
würden, gibt es noch einen anderen Grund, Synchronisationsanfragen von
Inhaltsanfragen trennen zu wollen:&lt;/p&gt;

&lt;p&gt;Um die Web-Server nicht zu überlasten, haben Browser meist eine
Begrenzung für die Anzahl der HTTP-Verbindungen, die gleichzeitig zu
einem Server geöffnet werden — dieses Maximum liegt heute im
allgemeinen bei zwei.  Wird davon eine für Synchronisationsanfragen
dauerhaft belegt, wird die andere zum Flaschenhals.  (Und hat ein
Client erst einmal zwei Echtzeit-Anwendungen vom selben Server offen,
geht für den Client auf diesem Server gar nichts mehr.)&lt;/p&gt;

&lt;p&gt;Auch hier wäre es also höchst sinnvoll, XMLHttpRequest-Anfragen auf
mehrere Domänen verteilen zu können:  Inhalte von &lt;code&gt;www.tzi.org&lt;/code&gt;,
Synchronisationsanfragen von &lt;code&gt;sync.tzi.org&lt;/code&gt;.
XMLHttpRequest weigert sich aber
(aus guten Gründen) hartnäckig, Domain-übergreifende Anfragen
zuzulassen.  (Eine etwas offenere Sicherheitspolitik wird zwar
gelegentlich diskutiert, aber das nützt natürlich nichts für die
nächsten ein, zwei Jahre.)&lt;/p&gt;

&lt;h2&gt;Der Durchbruch&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://fettig.net/" title="fettig.net: Abe Fettig's Website"&gt;Abe Fettig&lt;/a&gt;, seines Zeichens Entwickler der interessanten Plattform
&lt;a href="http://jotlive.com/"&gt;JotSpot Live&lt;/a&gt; (mehr dazu in einem anderen Blogpost),
&lt;a href="http://fettig.net/weblog/2005/11/28/how-to-make-xmlhttprequest-connections-to-another-server-in-your-domain/" title="Abe Fettig's Weblog — How to make XmlHttpRequest calls to another server in your domain"&gt;beschrieb gestern abend&lt;/a&gt; seinen Ansatz, mit der
JavaScript-Eigenschaft &lt;a href="http://msdn.microsoft.com/workshop/author/dhtml/reference/properties/domain.asp" title="domain Property (document) (Internet Explorer)"&gt;document.domain&lt;/a&gt; die beschriebenen
Sicherheitseinschränkungen von XMLHttpRequest teilweise zu umgehen.&lt;/p&gt;

&lt;p&gt;Die Eigenschaft &lt;code&gt;document.domain&lt;/code&gt; stellt seit NetScape Navigator 2.0
eine Möglichkeit zur Verfügung, die &lt;a href="http://www.mozilla.org/projects/security/components/same-origin.html"&gt;same origin policy&lt;/a&gt; auf mehrere
Server mit einer gemeinsamen Haupt-Domain auszudehnen: In unserem Fall
(&lt;code&gt;www.tzi.org&lt;/code&gt; und &lt;code&gt;sync.tzi.org&lt;/code&gt;) würde man also &lt;code&gt;document.domain&lt;/code&gt;
auf &lt;code&gt;tzi.org&lt;/code&gt; stellen, und dann sind Cross-Domain-Zugriffe möglich.
Ganz so einfach ist es bei XMLHttpRequest allerdings nicht: Die Domain
muß genau übereinstimmen!&lt;/p&gt;

&lt;p&gt;Die grobe Idee von Fettig:  Der JavaScript-Code mit dem XMLHttpRequest für den zweiten Server wird in
einen iframe verfrachtet, der im Gegensatz zum Hauptdokument von
dieser zweiten Domain (z.B. &lt;code&gt;sync.tzi.org&lt;/code&gt;) geladen wird.
Das Problem ist damit darauf reduziert, eine Kommunikation zwischen
iframe und Hauptdokument (geladen z.B. von &lt;code&gt;www.tzi.org&lt;/code&gt;) zu
ermöglichen — und hier kommt uns &lt;code&gt;document.domain&lt;/code&gt; zu Hilfe.&lt;/p&gt;

&lt;p&gt;Der naheliegende Ansatz ist es, im iframe zunächst den XMLHttpRequest
durchzuführen, dann &lt;code&gt;document.domain&lt;/code&gt; auf die gleiche übergeordnete
Domain zu stellen, die man vorher schon im Hauptdokument eingestellt
hat (in unserem Fall wäre das &lt;code&gt;tzi.org&lt;/code&gt;).
Nach dieser Änderung kann man vom iframe aus auf das
Hauptdokument zugreifen, um das Ergebnis mitzuteilen.&lt;/p&gt;

&lt;p&gt;Problem: nachdem im iframe &lt;code&gt;document.domain&lt;/code&gt; auf den Wert &lt;code&gt;tzi.org&lt;/code&gt; umgesetzt ist,
funktioniert natürlich kein weiteres XMLHttpRequest zu &lt;code&gt;sync.tzi.org&lt;/code&gt;
mehr.  Mein Ansatz wäre nun wohl gewesen, für weitere Anfragen dann eben
weitere iframes zu erzeugen.&lt;/p&gt;

&lt;p&gt;Fettig hat hingegen einfach probiert,
&lt;code&gt;document.domain&lt;/code&gt; wieder auf den alten Wert (in unserem Beispiel wäre
das &lt;code&gt;sync.tzi.org&lt;/code&gt;) zurückzusetzen.  Siehe da: In IE und
Safari/Konqueror funktioniert das auch.  In Mozilla/Firefox und Opera leider
nicht (was ich für eine valide Interpretation der
&lt;a href="http://www.mozilla.org/projects/security/components/same-origin.html"&gt;same origin policy&lt;/a&gt; halte), und da kommt schon der nächste Trick: Fettig
hebelt die Kommunikationsbeschränkungen zwischen Hauptdokument und
iframe einfach ein bißchen aus, indem er ein weiteres iframe
dazwischenschiebt (ebenfalls aus &lt;code&gt;sync.tzi.org&lt;/code&gt; geladen), das das eigentliche
Kommunikations-iframe erzeugt, dort eine Variable installiert, die auf
eine im Zwischen-iframe definierte Closure (JavaScript-Funktion)
verweist.
Im Zwischen-iframe kann dann  &lt;code&gt;document.domain&lt;/code&gt; auf &lt;code&gt;tzi.org&lt;/code&gt; gesetzt
werden, um mit dem Hauptdokument zu kommunizieren; das
Kommunikations-iframe verbleibt in der Domain &lt;code&gt;sync.tzi.org&lt;/code&gt;.
Mozilla/Firefox (und nur dieser)
hat nichts dagegen, und die Kommunikation flutscht über diesen kleinen
Umweg.  (Fettig hat noch keine Lösung für Opera, aber das ist ihm
nicht so wichtig.)  Jetzt brauchen wir nur noch eine Methode, um
zwischen den beiden Lösungen umzuschalten: die erste wirft ja bei
Mozilla/Firefox eine Ausnahme; die wird abgefangen und es wird auf die Mozilla-Alternative umgeschaltet.&lt;/p&gt;

&lt;p&gt;Was für ein Hack, aber:
&lt;a href="http://blog.dojotoolkit.org/2005/11/28/cross-domain-xmlhttp" title="planet::dojo — Blog Archive — Cross-Domain XMLHTTP"&gt;Today’s “hack&amp;#8221; is tomorrow’s “standard&amp;#8221;.&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;Ein Durchbruch im doppelten Sinne&lt;/h2&gt;

&lt;p&gt;Ich würde mich bei der ganzen Sache wesentlich wohler fühlen, wenn die
für Mozilla/Firefox erforderliche Kommunikation über die
Zwischeninstanz mit dem Kommunikationskanal Closure sich nicht so sehr
wie ein Sicherheitsloch anfühlen würde, das auch für bösere Zwecke
genutzt werden kann und deswegen in zukünftigen
Mozilla/Firefox-Versionen wieder geschlossen wird.  Als nächster
Schritt ist jetzt wohl eine Runde vernünftiger Security-Analysen
angesagt.&lt;/p&gt;</content>
  </entry>
  <entry>
    <author>
      <name>cabo</name>
    </author>
    <id>urn:uuid:8499b600-5cc1-40b3-86ef-71fc6417e90d</id>
    <published>2005-11-27T15:29:00+00:00</published>
    <updated>2007-12-16T04:06:40+00:00</updated>
    <title>Wenn es nicht in Firefox funktioniert, ist es kein AJAX</title>
    <link href="http://www.viele-koeche.org:8086/articles/2005/11/27/wenn-es-nicht-in-firefox-funktioniert-ist-es-kein-ajax" rel="alternate" type="text/html"/>
    <dc:subject>AJAX</dc:subject>
    <content type="html">&lt;p&gt;&lt;a href="http://www.pcworld.com/news/article/0,aid,123616,00.asp" title="PCWorld.com - New Web Mail: More Polished, Powerful"&gt;Viel Gerede&lt;/a&gt; um &lt;a href="http://spaces.msn.com/members/mailcall/" title="Windows Live Mail Blog"&gt;Windows Live Mail&lt;/a&gt;.
Am häufigsten genanntes Feature: AJAX.
Endlich wie &lt;a href="http://mail.google.com"&gt;Gmail&lt;/a&gt;&amp;#x203D;&lt;/p&gt;

&lt;p&gt;Einspruch, Euer Ehren: Windows Live Mail funktioniert offenbar nur mit Internet Explorer.
&lt;strong&gt;Was nicht in Firefox funktioniert, ist aber kein AJAX.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.viele-koeche.org/pages/ajax-buch"&gt;Erinnern wir uns&lt;/a&gt;: Die wichtigste Neuerung des AJAX-Ansatzes gegenüber
bisherigen Versuchen, &lt;a href="http://www.macromedia.com/devnet/ria/"&gt;Rich Internet Applications&lt;/a&gt; zu bauen, war
ja, standardbasiert vorzugehen.  &lt;em&gt;Keine neuen Plugins, keine neuen Browser&lt;/em&gt;.  Standardbasierter als Firefox wird ein Browser wohl kaum &amp;#x21D2;
was in Firefox nicht geht, ist vielleicht interessant, aber jedenfalls
kein AJAX.&lt;/p&gt;

&lt;p&gt;Hoffen wir, daß Microsoft bei der Ankündigung „Firefox support is
coming soon“ in Wirklichkeit gemeint hat: „Web support is coming
soon“&amp;#8230;&lt;/p&gt;</content>
  </entry>
  <entry>
    <author>
      <name>cabo</name>
    </author>
    <id>urn:uuid:b37c5efe-6435-4132-8a55-3fe1c497c676</id>
    <published>2005-10-22T18:46:00+00:00</published>
    <updated>2007-11-30T22:01:22+00:00</updated>
    <title>AJAX schon angekommen?</title>
    <link href="http://www.viele-koeche.org:8086/articles/2005/10/22/ajax-schon-angekommen" rel="alternate" type="text/html"/>
    <dc:subject>AJAX</dc:subject>
    <content type="html">&lt;p&gt;Schlußfolgerungen aus Web-basierten Umfragen sind stets mit besonderer
Vorsicht zu behandeln.  Nichtsdestoweniger finde ich die &lt;a href="http://www.surveymonkey.com/DisplaySummary.asp?SID=1427046&amp;amp;U=142704624114"&gt;Ergebnisse
einer Web-Umfrage&lt;/a&gt;  eines Burton-Group-Mitarbeiters unter
AJAX-Entwicklern (&lt;a href="http://www.ajaxian.com/archives/2005/10/ajax_survey_bur.html"&gt;angekündigt vor ein paar Tagen im &lt;em&gt;Ajaxian
Blog&lt;/em&gt;&lt;/a&gt;) beeindruckend.&lt;/p&gt;

&lt;p&gt;Knapp ein Drittel der Teilnehmer berichten, sie hätten
AJAX-Anwendungen bereits im &lt;strong&gt;Produktionsbetrieb&lt;/strong&gt;.  Ein weiteres Drittel
entwickelt schon; ein weiteres Viertel probiert offenbar noch
(und ein paar denken noch nach).&lt;/p&gt;

&lt;p&gt;Was sind nun die Serverumgebungen, mit denen AJAX-Techniken umgesetzt
werden?  Die größte Gruppe benutzt PHP (über 40 %), dicht gefolgt von
Java (35 %).  Wer gedacht hätte, AJAX würde nur in hypermodernen
Entwicklungs-Umgebungen wie &lt;a href="http://www.rubyonrails.org"&gt;Ruby on Rails&lt;/a&gt; eingesetzt (15 %), wird
überrascht, selbst die .NET-Gruppe hatte mit 18 % mehr Antworten.&lt;/p&gt;

&lt;p&gt;Schließlich war noch die Frage nach dem Client-seitigen Toolkit von
Interesse.  Die größte Gruppe (40 %) tinkert direkt mit
&lt;code&gt;XMLHttpRequest&lt;/code&gt;, eine Vorgehensweise, die wir im &lt;a href="http://www.viele-koeche.org/pages/ajax-buch"&gt;AJAX-Buch&lt;/a&gt;
&lt;strong&gt;&lt;em&gt;nicht&lt;/strong&gt;&lt;/em&gt; empfehlen.  Die zweitgrößte Gruppe (23 %) benutzt
&lt;em&gt;&lt;a href="http://prototype.conio.net"&gt;prototype&lt;/a&gt;&lt;/em&gt;, was gegenwärtig auch unsere Empfehlung ist, nicht
zuletzt wegen &lt;em&gt;&lt;a href="http://script.aculo.us"&gt;script.aculo.us&lt;/a&gt;&lt;/em&gt;, der wunderbaren Zusatzbibliothek
von &lt;a href="http://mir.aculo.us"&gt;Thomas Fuchs&lt;/a&gt;, die 18 % weitere Nennungen bekommen hat (ebenso
wie &lt;a href="http://www.rubyonrails.org"&gt;Rails&lt;/a&gt; mit 10 %, was aber ja auch nichts anderes als &lt;em&gt;prototype&lt;/em&gt; und &lt;em&gt;script.aculo.us&lt;/em&gt;
heißt).  Auf über 10 % kamen auch noch die beiden Toolkits &lt;em&gt;&lt;a href="http://getahead.ltd.uk/dwr/" title="DWR - Easy AJAX for JAVA | Getahead"&gt;DWR&lt;/a&gt;&lt;/em&gt;
(Java-Umgebung) und &lt;em&gt;&lt;a href="http://dojotoolkit.org/" title="Dojo - DojoToolkit.org"&gt;Dojo&lt;/a&gt;&lt;/em&gt;.  Einen Ehrenpreis bekommt mit 8 %
schließlich die deutsche Entwicklung &lt;em&gt;&lt;a href="http://ajax.schwarz-interactive.de/"&gt;Ajax.NET&lt;/a&gt;&lt;/em&gt;; danach kommt der &lt;em&gt;&lt;a href="http://en.wikipedia.org/wiki/Long_Tail"&gt;long tail&lt;/a&gt;&lt;/em&gt; der anderen Toolkits.&lt;/p&gt;

&lt;p&gt;Gibt es, wie im &lt;a href="http://www.viele-koeche.org/pages/ajax-buch"&gt;Buch&lt;/a&gt; vorhergesagt, schon so etwas wie eine Konsolidierung der Toolkits?&lt;/p&gt;</content>
  </entry>
  <entry>
    <author>
      <name>bergmann</name>
    </author>
    <id>urn:uuid:ca11ff46-afc4-4b8c-88fb-e6113b2c1d3a</id>
    <published>2005-10-21T02:31:00+00:00</published>
    <updated>2007-06-27T16:56:28+00:00</updated>
    <title>Aus Alt mach Neu mit AJAX: Instant Messaging und Presence</title>
    <link href="http://www.viele-koeche.org:8086/articles/2005/10/21/aus-alt-mach-neu-mit-ajax-instant-messaing-und-presence" rel="alternate" type="text/html"/>
    <dc:subject>AJAX</dc:subject>
    <content type="html">&lt;p&gt;Anfang Oktober fand in San Francisco zum zweiten Mal die
&lt;a href="http://www.web2con.com"&gt;internationale Konferenz zum Web 2.0&lt;/a&gt; statt. Wie bei
Konferenzen zu aktuellen Modethemen üblich, waren unter den
Ausstellern auch viele neu gegründete Unternehmen, die den Markt mit
frischen Ansätzen bereichern. Beispiele für Startups, die auf
AJAX-Technologie auf der Clientseite webbasierter Anwendungen setzen,
sind &lt;a href="http://www.meebo.com"&gt;Meebo&lt;/a&gt; und &lt;a href="http://www.zimbra.com"&gt;Zimbra&lt;/a&gt;. Beide Unternehmen haben sich
im weitesten Sinne auf Messaging-Anwendungen mit Web-Interface
spezialisiert, ein Feld, das auch &lt;a href="http://www.google.com/talk/"&gt;Google Talk&lt;/a&gt;
besetzen möchte.&lt;/p&gt;

&lt;p&gt;Mit &lt;em&gt;Instant&lt;/em&gt; &lt;em&gt;Messaging&lt;/em&gt; (IM) wird ein Modethema der vergangenen
Jahre aufgegriffen und ajaxifiziert. Ein wesentliches Merkmal von
klassischen IM-Anwendungen ist der eingebaute &lt;em&gt;Presence-Dienst&lt;/em&gt;, der
Auskunft über die Verfügbarkeit von eingetragenen Nutzern
erteilt. Für jeden Kontakt im Adreßbuch der IM-Anwendung
(oft &lt;em&gt;Roster&lt;/em&gt; oder &lt;em&gt;Buddy-List&lt;/em&gt; genannt) kann man sofort sehen, ob
diejenige Person gerade erreichbar ist oder nicht gestört werden
möchte.&lt;/p&gt;

&lt;p&gt;Klassische IM-Protokolle wie &lt;a href="http://www.jabber.org/about/overview.shtml"&gt;Jabber&lt;/a&gt;/&lt;a href="http://www.xmpp.org"&gt;XMPP&lt;/a&gt; oder &lt;a href="http://www.softarmor.com/simple/"&gt;SIMPLE&lt;/a&gt;
unterscheiden sich von webbasierten Ansätzen durch ihre push-basierte
Architektur; da jeder Teilnehmer einen eigenen Serverprozeß aufsetzt,
können Nachrichten bei Bedarf an den betreffenden Teilnehmer gesendet
werden. In einer Client/Server-Architektur hingegen müssen die Clients
regelmäßig Anfragen stellen, um neue Informationen zu erhalten.&lt;/p&gt;

&lt;p&gt;Dies ist auch der Ansatz, der im &lt;a href="/pages/ajax-buch"&gt;AJAX-Buch&lt;/a&gt; angedeutet
wird. Mit dem &lt;code&gt;Ajax.PeriodicalUpdater&lt;/code&gt; aus der Bibliothek
&lt;a href="http://prototype.conion.net"&gt;Prototype&lt;/a&gt; lässt sich eine Buddy-List sehr einfach
aktualisieren. Alternativ ließe sich auch der &lt;code&gt;PeriodicalExecuter&lt;/code&gt;
dafür einsetzen, allerdings lässt sich dieser nicht so ohne weiteres
stoppen, wenn er erst einmal läuft &amp;#8211; der Browser wird dann sehr
schnell zum Speicherfresser.&lt;/p&gt;

&lt;p&gt;Auf den ersten Blick erscheint das Polling gegenüber den
push-basierten Lösungen nicht sehr attraktiv. Doch die
Ende-zu-Ende-Kommunikation hat einen großen Nachteil: Sie harmoniert
nicht gut mit &lt;em&gt;Middleboxes&lt;/em&gt;, also Geräten, die sich zwischen Sender
und Empfänger einer Kommunikationsbeziehung befinden und den normalen
Protokollablauf beeinflussen können. Die bekanntesten Vertreter dieser
Art sind NATs und Firewalls. Beide haben ihre Berechtigung, machen
eine reibungslose Kommunikation aber sehr schwer. Das Ergebnis
sind Keep-Alive-Mechanismen und Verrenkungen wie &lt;a href="http://www.ietf.org/rfc/rfc3489.txt"&gt;STUN&lt;/a&gt;, um von
außerhalb erreichbar zu sein.&lt;/p&gt;

&lt;p&gt;Webbasierte Anwendungen können dieses Problem getrost
vernachlässigen: Sobald Web-Traffic durch die Firewall gelassen wird,
was selbst in den meisten Unternehmen heutzutage übliche Praxis ist,
kann die bidirektionale Kommunikation über TCP beginnen. Bereits vor
einigen Jahren haben Web-Services diese asymmetrische
Kommunkationsbeziehung genutzt, um Schwierigkeiten mit Firewalls und
NATs zu umgehen. Und das ist auch der Grund, warum SOAP fast
ausschließlich über HTTP transportiert wird&amp;#8230;&lt;/p&gt;

&lt;p&gt;Keine Frage, Polling über HTTP gibt es schon lange und wird es immer
geben. Das &lt;code&gt;XMLHttpRequest&lt;/code&gt;-Objekt wird diesen Aspekt aber wieder
stärker in den Vordergrund rücken. Mit welchen Lasten muss ein
Server-Betreiber nun plötzlich rechnen? Wie viele Filedeskriptoren
sind gleichzeitig offen zu halten? Welche Bandbreite erfordern die
Antworten? Wie unterscheidet man das erwünschte Polling von einer
DOS-Attacke?&lt;/p&gt;</content>
  </entry>
  <entry>
    <author>
      <name>cabo</name>
    </author>
    <id>urn:uuid:e67aa220-4fc4-428a-b8fe-1e3c99fb53e5</id>
    <published>2005-10-18T07:05:00+00:00</published>
    <updated>2007-11-30T00:07:12+00:00</updated>
    <title>S6: Folienpräsentationen mit Echtzeitsynchronisation</title>
    <link href="http://www.viele-koeche.org:8086/articles/2005/10/18/s6-folienpr%C3%A4sentationen-mit-echtzeitsynchronisation" rel="alternate" type="text/html"/>
    <dc:subject>AJAX</dc:subject>
    <content type="html">&lt;p&gt;Wer kennt das Problem nicht: Man telefoniert mit jemandem (oder gleich
mit einer ganzen Telefonkonferenz) und möchte seine Ausführungen mit
ein paar Folien untermalen.  Wie bekommt man es hin, daß die
Gesprächspartner im Laufe der Präsentation immer jeweils dieselbe
Folie sehen wie man selbst?&lt;/p&gt;

&lt;p&gt;Einsatz für AJAX.&lt;/p&gt;

&lt;p&gt;Man nehme:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://meyerweb.com/eric/tools/s5/" title="S5: A Simple Standards-Based Slide Show System"&gt;S5&lt;/a&gt;, die Web-Präsentationslösung von &lt;a href="http://www.meyerweb.com/eric/" title="Eric Meyer"&gt;Eric Meyer&lt;/a&gt;
(ja, der bekannte CSS-Guru);&lt;/li&gt;
&lt;li&gt;etwas &lt;a href="http://tzi.org:2000/ui/default/s6.js"&gt;AJAX-Code&lt;/a&gt; (natürlich unter Benutzung einer
AJAX-Bibliothek wie &lt;a href="http://prototype.conio.net"&gt;prototype&lt;/a&gt;), und&lt;/li&gt;
&lt;li&gt;75 Zeilen Ruby als &lt;a href="http://tzi.org:2000/server-rb.txt"&gt;Server&lt;/a&gt; für die Synchronisation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ergebnis: &lt;a href="http://tzi.org:2000/s6.html" title="S6: Synchronized Simple Standards-based Slide Show System"&gt;S6&lt;/a&gt;, Synchronized Simple Standards-based Slide Show System.&lt;/p&gt;

&lt;p&gt;Die Benutzungsschnittstelle folgt der bewährten Alternative:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Führe (Lead)&lt;/p&gt;

&lt;p&gt;Der Browser des Vortragenden teilt dem Synchronisationsserver jeden
Folienwechsel mit.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Folge (Follow)&lt;/p&gt;

&lt;p&gt;Browser von Zuhörern werden vom Synchronisationsserver sofort
benachrichtigt, sobald der Vortragende auf eine andere Folie schaut
als sie selbst, und schalten dann ebenfalls auf diese Folie um.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Geh aus dem Weg (Get out of the way)&lt;/p&gt;

&lt;p&gt;Will man unabhängig vom Vortragenden blättern, kann man „aus dem
Weg gehen“ — die Aktionen des Vortragenden haben dann keinen
Einfluß mehr auf den Browser.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Lädt man eine S6-Präsentation in den Browser, ist man zunächst in
letzterem Modus (das ist aber mit einer Zeile JavaScript
konfigurierbar).
Tippt man ein „L“, dann betritt man den Führungsmodus, mit „F“ kommt
man in den Folgemodus (meine Folien haben diese Information als
Hilfetext auf der ersten Seite).  Mit „G“ geht man (wieder) aus dem
Weg.
(Das ganze probiert man am besten vor der Telefonkonferenz mit ein
paar Browserfenstern aus. Getestet in IE6, Firefox, Safari.  Opera hat
seinen eigenen merkwürdigen Slideshow-Modus, mit dem ich noch nicht
ganz klar komme.)&lt;/p&gt;

&lt;p&gt;Der Synchronisationsserver kann mehrere Folienpräsentationen
gleichzeitig synchronisieren — der URI der Präsentation dient als
eindeutiger Bezeichner einer Gruppe (notfalls kann man mit
unterschiedlichen Fragmentbezeichnern, die von S5 im allgemeinen
ignoriert werden, mehrere Sitzungen mit demselben Foliensatz
voneinander trennen).&lt;/p&gt;

&lt;p&gt;Die Idee, S5 um Synchronisation zu erweitern, ist übrigens so gut, daß
auch &lt;a href="http://www.downes.ca/cgi-bin/page.cgi?post=21699" title="Stephen's Web ~ by Stephen Downes ~ E-Learning 2.0 In Brief"&gt;jemand anders&lt;/a&gt; sie inzwischen gehabt hat.  Im Vergleich
zu S6 fehlt der Echtzeitaspekt (der Server wird einfach alle 2.5
Sekunden angefragt), das Multiplexing über den URI, und die klare
Trennung der verschiedenen Betriebsarten.  Dafür hat &lt;a href="http://tarina.blogging.fi/2005/10/13/elearning-finland/" title="eLearning Finland"&gt;Teemu
Arina&lt;/a&gt; auch den inkrementellen Aufbau der Folien in S5
adressiert, wozu ich noch nicht gekommen bin, und seine Version läuft
auch in einem normalen Web-Server wie Apache.&lt;/p&gt;

&lt;p&gt;Eric, Teemu und ich sind jetzt dabei, das alles zu sortieren.
Vielleicht kann ich demnächst über eine Release berichten&amp;#8230;&lt;/p&gt;

&lt;p&gt;(Update: Die Links auf den experimentellen Web-Server stimmen jetzt.  Danke, Oliver.  Mental note: Niemals 10 Minuten vor einer Vorlesung bloggen :-)&lt;/p&gt;</content>
  </entry>
</feed>
