<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<?xml-stylesheet href="http://mailo.twoday.net/rss2html.xsl" type="text/xsl"?>
<rdf:RDF 
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
  xmlns:cc="http://web.resource.org/cc/"
  xmlns="http://purl.org/rss/1.0/"
> 

  <channel rdf:about="http://mailo.twoday.net/">
    <title>mailo : Rubrik:coding</title>
    <link>http://mailo.twoday.net/</link>
    <description></description>
    <dc:publisher>mailo</dc:publisher>
    <dc:creator>mailo</dc:creator>
    <dc:date>2009-08-04T16:08:58Z</dc:date>
    <dc:language>en</dc:language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <sy:updateBase>2000-01-01T00:00:00Z</sy:updateBase>
    
    <image rdf:resource="http://static.twoday.net/mailo/images/icon.gif" />
    <items>
      <rdf:Seq>
            <rdf:li rdf:resource="http://mailo.twoday.net/stories/5859199/" />
            <rdf:li rdf:resource="http://mailo.twoday.net/stories/5640609/" />
            <rdf:li rdf:resource="http://mailo.twoday.net/stories/5638667/" />
            <rdf:li rdf:resource="http://mailo.twoday.net/stories/5598919/" />
            <rdf:li rdf:resource="http://mailo.twoday.net/stories/5504939/" />
            <rdf:li rdf:resource="http://mailo.twoday.net/stories/5500483/" />
            <rdf:li rdf:resource="http://mailo.twoday.net/stories/5493777/" />
            <rdf:li rdf:resource="http://mailo.twoday.net/stories/5387274/" />
            <rdf:li rdf:resource="http://mailo.twoday.net/stories/5292633/" />
            <rdf:li rdf:resource="http://mailo.twoday.net/stories/5205844/" />
            <rdf:li rdf:resource="http://mailo.twoday.net/stories/5195798/" />
            <rdf:li rdf:resource="http://mailo.twoday.net/stories/5180408/" />
            <rdf:li rdf:resource="http://mailo.twoday.net/stories/5173572/" />
            <rdf:li rdf:resource="http://mailo.twoday.net/stories/4925460/" />
            <rdf:li rdf:resource="http://mailo.twoday.net/stories/4905489/" />

      </rdf:Seq>
    </items>
  </channel>

  <image rdf:about="http://static.twoday.net/mailo/images/icon.gif">
    <title>mailo</title>
    <url>http://static.twoday.net/mailo/images/icon.gif</url>
    <link>http://mailo.twoday.net/</link>
  </image>

  <item rdf:about="http://mailo.twoday.net/stories/5859199/">
    <title>inplaceeditor mit autocompleter</title>
    <link>http://mailo.twoday.net/stories/5859199/</link>
    <description>&lt;a href=&quot;http://script.aculo.us/&quot; target=&quot;_blank&quot;&gt;scriptaculous&lt;/a&gt; bietet sowohl einen &lt;a href=&quot;http://wiki.github.com/madrobby/scriptaculous/in-place-editor&quot; target=&quot;_blank&quot;&gt;inplaceeditor&lt;/a&gt; als auch einen &lt;a href=&quot;http://wiki.github.com/madrobby/scriptaculous/ajax-autocompleter&quot; target=&quot;_blank&quot;&gt;autocompleter&lt;/a&gt; an. &lt;b&gt;leider&lt;/b&gt; sind diese beiden &lt;b&gt;jedoch separat&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
falls jemand beide braucht - wie zb ich (von der firma aus) - müssen diese jedoch &lt;b&gt;kombiniert&lt;/b&gt; werden. das ist aber &lt;b&gt;kein problem&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;meine variante&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
zwar könnten die änderungen auch direkt im quellcode von scriptaculous stattfinden, doch das ist &lt;acronym title=&quot;in my humble/honest opinion&quot;&gt;imho&lt;/acronym&gt; eher die unschöne/unsaubere art. da man in javascript alles überschreiben kann, bietet sich diese (= meine) variante sehr gut an.&lt;br /&gt;
&lt;br /&gt;
insgesamt sind &lt;b&gt;3 methoden&lt;/b&gt; davon betroffen, in denen &lt;b&gt;kleine erweiterungen&lt;/b&gt; vorgenommen werden müssen.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;go for it&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
der &lt;b&gt;inplaceeditor&lt;/b&gt; weist den inputfeldern &lt;b&gt;keine id&lt;/b&gt; zu. diese werden aber gebraucht, um &lt;b&gt;vom autocompleter angesprochen&lt;/b&gt; werden zu können.&lt;br /&gt;
&lt;div class=&quot;code&quot;&gt;
Ajax.InPlaceEditor.prototype.createEditField = function() {&lt;br /&gt;
  [...]&lt;br /&gt;
  // mod: add id to the input field&lt;br /&gt;
  if(this.options.acOn) fld.id = this.element.id+&apos;_input&apos;;&lt;br /&gt;
&lt;br /&gt;
  this._form.appendChild(this._controls.editor);&lt;br /&gt;
};&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;

natürlich sollte der autocompleter &lt;b&gt;nur solange wie nötig existieren&lt;/b&gt;, daher wird er nach der erstellung des inputfeldes erzeugt ...&lt;br /&gt;
&lt;div class=&quot;code&quot;&gt;
Ajax.InPlaceEditor.prototype.enterEditMode = function(e) {&lt;br /&gt;
  [...]&lt;br /&gt;
  // mod: store the autocompleter element (for destroying afterwards)&lt;br /&gt;
  if(this.options.acOn) this._acElement = new Ajax.Autocompleter(&lt;br /&gt;
    $(this.element.id+&apos;_input&apos;),&lt;br /&gt;
    this.options.acDiv,&lt;br /&gt;
    this.options.acPath+&apos;?&apos;+this.options.acParam+&apos;=&apos;+this.element.id,&lt;br /&gt;
    this.options.acOptions&lt;br /&gt;
  );&lt;br /&gt;
};&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;

... und nach dem editieren wieder gelöscht.&lt;br /&gt;
&lt;div class=&quot;code&quot;&gt;
Ajax.InPlaceEditor.prototype.leaveEditMode = function() {&lt;br /&gt;
  // mod: destroy the autocompleter element&lt;br /&gt;
  if(this.options.acOn) delete this._acElement;&lt;br /&gt;
  [...]&lt;br /&gt;
};&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;

&lt;b&gt;&lt;u&gt;erklärung&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
insgesamt sind 4 selbstdefinierte variablen aktiv, die alle über die optionen des inplaceeditors mitübergeben werden können (zur konfigurierung des autocompleters).
&lt;ul&gt;
&lt;li&gt;acOn: boolean - zum ein- und ausschalten des autocompleters&lt;/li&gt;
&lt;li&gt;acDiv: string - der div-container für die liste des autocompleters&lt;/li&gt;
&lt;li&gt;acPath: string - pfad zur datei, die die autocompleter-ergebnisse zurückliefert&lt;/li&gt;
&lt;li&gt;acParam: string - zusätzliche parameter, die zur obigen datei mitübergeben werden&lt;/li&gt;
&lt;/ul&gt;

&lt;b&gt;&lt;u&gt;beispiel&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;code (html)&lt;/b&gt;&lt;br /&gt;
&lt;div class=&quot;code&quot;&gt;
&lt;input type=&quot;text&quot; id=&quot;myElement&quot; name=&quot;myElement&quot; /&gt;&lt;br /&gt;
&lt;div id=&quot;inplaceEditorList&quot; style=&quot;display:none;&quot;&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;

&lt;b&gt;code (javascript)&lt;/b&gt;&lt;br /&gt;
&lt;div class=&quot;code&quot;&gt;
&lt;script type=&quot;text/javascript&quot;&gt;&lt;br /&gt;
  new Ajax.InPlaceEditor(&apos;myElement&apos;,&apos;file.php&apos;,{&lt;br /&gt;
    acDiv:&apos;inplaceEditorList&apos;,&lt;br /&gt;
    acPath:&apos;autocompleterList.php&apos;,&lt;br /&gt;
    acParam:&apos;elem&apos;,&lt;br /&gt;
    acOn:1&lt;br /&gt;
  });&lt;br /&gt;
&lt;/script&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;

zum abstellen des (meiner meinung nach) nervigen gelben highlight effekts fügt man diese zeilen hinzu:&lt;br /&gt;
&lt;div class=&quot;code&quot;&gt;
Ajax.InPlaceEditor.DefaultOptions.highlightEndColor = &apos;transparent&apos;;&lt;br /&gt;
Ajax.InPlaceEditor.DefaultOptions.highlightColor = &apos;transparent&apos;;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;

falls es jemand geholfen hat, wäre ich über ein kommentar froh ;)&lt;br /&gt;
&lt;br /&gt;
mfg mailo&lt;br /&gt;
&lt;br /&gt;
ps: es wurde die version 1.8.1 von scriptaculous verwendet!</description>
    <dc:creator>mailo</dc:creator>
    <dc:subject>coding</dc:subject>
    <dc:rights>Copyright &#169; 2009 mailo</dc:rights>
    <dc:date>2009-08-03T19:00:00Z</dc:date>
  </item>
  <item rdf:about="http://mailo.twoday.net/stories/5640609/">
    <title>minesweeper</title>
    <link>http://mailo.twoday.net/stories/5640609/</link>
    <description>was macht man wenn der &lt;b&gt;abgabetermin der diplomarbeitsrohfassung immer näher rückt&lt;/b&gt; und noch &lt;b&gt;viel zu tun&lt;/b&gt; ist?&lt;br /&gt;
&lt;br /&gt;
genau! - man setzt sich hin und programmiert &lt;b&gt;minesweeper in javascript!&lt;/b&gt; :D&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;vorhaben&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;minesweeper in javascript programmieren&lt;/li&gt;
&lt;li&gt;mit purem javascript (ohne irgendwelche libraries oder frameworks)&lt;/li&gt;
&lt;/ul&gt;

&lt;b&gt;dauer&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;gui und basis logik =&gt; 3h&lt;/li&gt;
&lt;li&gt;logik für die 0-felder* =&gt; 1,5h&lt;/li&gt;
&lt;/ul&gt;

&lt;b&gt;anleitung&lt;/b&gt;
&lt;ul&gt;  
&lt;li&gt;aufspüren der 10 minen auf dem 9x9 feld&lt;/li&gt;  
&lt;li&gt;ein feld gibt preis wie viel minen direkt im umfeld liegen&lt;/li&gt;  
&lt;li&gt;marker setzen bzw löschen mit strg+klick&lt;/li&gt;
&lt;/ul&gt;

&lt;b&gt;ergebnis&lt;/b&gt;&lt;br /&gt;
&lt;a href=&quot;http://static.twoday.net/mailo/files/minesweeper.html&quot; target=&quot;_blank&quot;&gt;minesweeper&lt;/a&gt; (html, 4 KB)&lt;br /&gt;
&lt;br /&gt;
enjoy and have fun!&lt;br /&gt;
&lt;br /&gt;
mfg mailo&lt;br /&gt;
&lt;br /&gt;
* wenn auf ein 0-feld geklickt wird, sollen alle benachbarten 0-felder aufgedeckt werden</description>
    <dc:creator>mailo</dc:creator>
    <dc:subject>coding</dc:subject>
    <dc:rights>Copyright &#169; 2009 mailo</dc:rights>
    <dc:date>2009-04-12T20:00:00Z</dc:date>
  </item>
  <item rdf:about="http://mailo.twoday.net/stories/5638667/">
    <title>mach es richtig!</title>
    <link>http://mailo.twoday.net/stories/5638667/</link>
    <description>diesmal ein blogeintrag mit (vor)&lt;b&gt;programmierten wortwitz&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
immer/meistens/oft wird man dazu aufgefordert &lt;b&gt;etwas richtig zu machen&lt;/b&gt;.&lt;br /&gt;
dazu habe ich ein kleines skript bzw einen einzeiler vorbereitet ;)&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;anforderungen&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;&quot;es&quot; (= s)&lt;/li&gt;
&lt;li&gt;richtig (= true) machen&lt;/li&gt;
&lt;/ul&gt;

&lt;b&gt;vorkehrungen&lt;/b&gt;
&lt;ul&gt;  
&lt;li&gt;die variable &lt;span class=&quot;coding&quot;&gt;s&lt;/span&gt; definieren (wertzuweisung egal)&lt;/li&gt;  
&lt;li&gt;beispiel: &lt;span class=&quot;coding&quot;&gt;var s;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;b&gt;ergebnis&lt;/b&gt;
&lt;ul&gt;  
&lt;li&gt;die variable &lt;span class=&quot;coding&quot;&gt;s&lt;/span&gt; wird &lt;span class=&quot;coding&quot;&gt;true&lt;/span&gt; (= richtig)&lt;/li&gt;  
&lt;li&gt;zwar doppelt so lang wie &lt;span class=&quot;coding&quot;&gt;s=true;&lt;/span&gt;  aber nicht so offensichtlich :)&lt;/li&gt;
&lt;/ul&gt;

&lt;b&gt;der &quot;mach es richtig&quot;-einzeiler&lt;/b&gt; (in javascript)&lt;br /&gt;
&lt;div class=&quot;code&quot;&gt;s=!!!s?!s:!!s;&lt;/div&gt;&lt;br /&gt;

falls es jemand nicht verstanden hat - macht nichts, kein weltuntergang ;)&lt;br /&gt;
&lt;br /&gt;
mfg mailo&lt;br /&gt;
&lt;br /&gt;
ps: für die, die &quot;es falsch&quot; machen wollen&lt;br /&gt;
&lt;div class=&quot;code&quot;&gt;s=!!!s?!!s:!s;&lt;/div&gt;</description>
    <dc:creator>mailo</dc:creator>
    <dc:subject>coding</dc:subject>
    <dc:rights>Copyright &#169; 2009 mailo</dc:rights>
    <dc:date>2009-04-11T17:00:00Z</dc:date>
  </item>
  <item rdf:about="http://mailo.twoday.net/stories/5598919/">
    <title>javascript mal anders</title>
    <link>http://mailo.twoday.net/stories/5598919/</link>
    <description>da ich mich im diplomarbeitsschreibstress befinde, hier nur ein kurzer blogeintrag.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;google&apos;s interne und externe entwickler und designer&lt;/b&gt; haben einige beispiele programmiert, was so &lt;b&gt;alles mit javascript möglich&lt;/b&gt; ist.&lt;br /&gt;
&lt;br /&gt;
beispiele zum &lt;b&gt;selbstausprobiern&lt;/b&gt; und inklusive video: &lt;a href=&quot;http://www.chromeexperiments.com/&quot; target=&quot;_blank&quot;&gt;chromeexperiments&lt;/a&gt;&lt;br /&gt;
ich habe zwar erst einige angesehen, aber mein &lt;b&gt;favourite&lt;/b&gt; ist bislang der &lt;a href=&quot;http://experiments.instrum3nt.com/markmahoney/ball/&quot; target=&quot;_blank&quot;&gt;browser ball&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
was haltet ihr davon?&lt;br /&gt;
&lt;br /&gt;
mfg mailo</description>
    <dc:creator>mailo</dc:creator>
    <dc:subject>coding</dc:subject>
    <dc:rights>Copyright &#169; 2009 mailo</dc:rights>
    <dc:date>2009-03-22T11:30:00Z</dc:date>
  </item>
  <item rdf:about="http://mailo.twoday.net/stories/5504939/">
    <title>ein ganz besonderer tag</title>
    <link>http://mailo.twoday.net/stories/5504939/</link>
    <description>ich freue mich schon auf den &lt;b&gt;14. februar 2009&lt;/b&gt; - dieser tag ist ein &lt;b&gt;toller tag&lt;/b&gt;!&lt;br /&gt;
&lt;br /&gt;
wer glaubt, dass meine euphorie diesem tag gilt, weil (zufällig) &quot;valentinstag&quot; ist, der hat sich geschnitten - &lt;b&gt;ich bin informatiker&lt;/b&gt; ;)&lt;br /&gt;
&lt;br /&gt;
am &lt;b&gt;14. februar 2009&lt;/b&gt; um &lt;b&gt;00:31:30 (&lt;/b&gt;&lt;a href=&quot;http://de.wikipedia.org/wiki/Mitteleurop%C3%A4ische_Zeit&quot; target=&quot;_blank&quot;&gt;MEZ&lt;/a&gt;&lt;b&gt;=&lt;/b&gt;&lt;a href=&quot;http://de.wikipedia.org/wiki/UTC&quot; target=&quot;_blank&quot;&gt;UTC&lt;/a&gt;&lt;b&gt;+1)&lt;/b&gt; lautet der &lt;a href=&quot;http://de.wikipedia.org/wiki/Unixzeit&quot; target=&quot;_blank&quot;&gt;unix-timestamp&lt;/a&gt;:&lt;br /&gt;
&lt;div class=&quot;code&quot; style=&quot;align:center;&quot;&gt;&lt;b&gt;1234567890&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;

in &lt;b&gt;php-code&lt;/b&gt; ausgedrückt:&lt;br /&gt;
&lt;div class=&quot;code&quot;&gt;
echo strtotime(&quot;14.02.2009 00:31:30&quot;);  // 1234567890&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;

bzw. anders herum:&lt;br /&gt;
&lt;div class=&quot;code&quot;&gt;
echo date(&quot;d.m.Y H:i:s&quot;,1234567890);  // 14.02.2009 00:31:30&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;

auf &lt;a href=&quot;http://de.wikipedia.org&quot; target=&quot;_blank&quot;&gt;wikipedia&lt;/a&gt; sind &lt;a href=&quot;http://de.wikipedia.org/wiki/Unixzeit#Besondere_Werte&quot; target=&quot;_blank&quot;&gt;weitere besondere tage/werte&lt;/a&gt; aufgelistet.&lt;br /&gt;
&lt;br /&gt;
was meint ihr dazu? - schon ein cooler tag, oder?&lt;br /&gt;
&lt;br /&gt;
mfg mailo&lt;br /&gt;
&lt;br /&gt;
UPDATE: &lt;a href=&quot;http://www.coolepochcountdown.com/&quot; target=&quot;_blank&quot;&gt;countdown&lt;/a&gt;</description>
    <dc:creator>mailo</dc:creator>
    <dc:subject>coding</dc:subject>
    <dc:rights>Copyright &#169; 2009 mailo</dc:rights>
    <dc:date>2009-02-09T19:30:00Z</dc:date>
  </item>
  <item rdf:about="http://mailo.twoday.net/stories/5500483/">
    <title>ajax.request und ajax.updater</title>
    <link>http://mailo.twoday.net/stories/5500483/</link>
    <description>einer der &lt;b&gt;vielen vorteile&lt;/b&gt; bei der verwendung von &lt;a href=&quot;http://prototypejs.org&quot; target=&quot;_blank&quot;&gt;prototype&lt;/a&gt; ist die recht &lt;b&gt;einfache verwendung von ajax requests&lt;/b&gt;. so braucht man sich überhaupt nicht um kümmern, ob nun eine instanz vom &lt;span class=&quot;coding&quot;&gt;XHMHttpRequest()&lt;/span&gt; (firefox, opera, safari) oder vom &lt;span class=&quot;coding&quot;&gt;ActiveXObject(&quot;Msxml2.XMLHTTP&quot;)&lt;/span&gt; bzw &lt;span class=&quot;coding&quot;&gt;ActiveXObject(&quot;Microsoft.XMLHTTP&quot;)&lt;/span&gt; (internet explodierer) erzeugt werden muss.&lt;br /&gt;
&lt;br /&gt;
da sich nun &lt;a href=&quot;http://prototypejs.org/api/ajax/request&quot; target=&quot;_blank&quot;&gt;ajax.request&lt;/a&gt; und &lt;a href=&quot;http://prototypejs.org/api/ajax/updater&quot; target=&quot;_blank&quot;&gt;ajax.updater&lt;/a&gt; recht ähnlich sehen, kann man durch die &lt;b&gt;&quot;macht der gewohnheit&quot;&lt;/b&gt; auch etwas übersehen. ich habe es also geschafft, dass etwas &lt;b&gt;doppelt geladen&lt;/b&gt; wird und wusste zuerst nicht warum, obwohl die &lt;b&gt;lösung doch ganz einfach&lt;/b&gt; ist/war ;)&lt;br /&gt;
&lt;br /&gt;
hier mal die beiden, die das &lt;b&gt;gleiche ergebnis&lt;/b&gt; liefern (farblich gekennzeichnet):&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;code&quot;&gt;
new Ajax.Request(&lt;span style=&quot;color:#00cc00;&quot;&gt;&apos;file.html&apos;&lt;/span&gt;, {&lt;br /&gt;
  method:&apos;post&apos;,&lt;br /&gt;
  evalScripts:true,&lt;br /&gt;
  &lt;span style=&quot;color:#cc0000;&quot;&gt;onComplete:function(transport) {&lt;br /&gt;
    $(&apos;container&apos;).update(transport.responseText);&lt;br /&gt;
  }&lt;/span&gt;&lt;br /&gt;
});&lt;br /&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;code&quot;&gt;
new Ajax.Updater(&lt;span style=&quot;color:#cc0000;&quot;&gt;&apos;container&apos;&lt;/span&gt;,&lt;span style=&quot;color:#00cc00;&quot;&gt;&apos;file.html&apos;&lt;/span&gt;, {&lt;br /&gt;
  method:&apos;post&apos;,&lt;br /&gt;
  evalScripts:true&lt;br /&gt;
});&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;

wie zu sehen ist, &lt;b&gt;erspart&lt;/b&gt; man sich durch den &lt;a href=&quot;http://prototypejs.org/api/ajax/updater&quot; target=&quot;_blank&quot;&gt;ajax.updater&lt;/a&gt; (= die spezielle form des &lt;a href=&quot;http://prototypejs.org/api/ajax/request&quot; target=&quot;_blank&quot;&gt;ajax.request&lt;/a&gt;s) ein &lt;b&gt;bisschen tipparbeit&lt;/b&gt;. vor allem &lt;b&gt;zu empfehlen&lt;/b&gt; ist der &lt;b&gt;updater&lt;/b&gt;, wenn die &lt;b&gt;zu ladende datei ohne weitere verarbeitung&lt;/b&gt; gleich in einen &lt;b&gt;container geladen&lt;/b&gt; werden soll, da dies automatisch geschieht.&lt;br /&gt;
&lt;br /&gt;
aus &lt;b&gt;gründen der interaktion&lt;/b&gt; ist es sinnvoll bei &lt;b&gt;größeren ladezeiten&lt;/b&gt; den benutzer über den &lt;b&gt;ladezustand&lt;/b&gt; zu informieren, dass es nicht den anschein hat, dass sich nichts tut. meist wird hier ein &lt;a href=&quot;http://www.ajaxload.info/&quot; target=&quot;_blank&quot;&gt;ladesymbol&lt;/a&gt; angezeigt (vgl sanduhr bei windows).&lt;br /&gt;
&lt;br /&gt;
bei einem vorhanden &lt;a href=&quot;http://prototypejs.org/api/ajax/request&quot; target=&quot;_blank&quot;&gt;ajax.request&lt;/a&gt; sieht dies möglicherweise so aus (vereinfacht dargestellt):&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;code&quot;&gt;
new Ajax.Request(&apos;file.html&apos;, {&lt;br /&gt;
  method:&apos;post&apos;,&lt;br /&gt;
  evalScripts:true,&lt;br /&gt;
  &lt;span style=&quot;color:#0000cc;&quot;&gt;onCreate:function() {&lt;br /&gt;
    $(&apos;container&apos;).update(&quot;&lt;img src=\&quot;path/to/loading.gif\&quot; /&gt;&quot;);&lt;br /&gt;
  }&lt;/span&gt;,&lt;br /&gt;
  onComplete:function(transport) {&lt;br /&gt;
    $(&apos;container&apos;).update(transport.responseText);&lt;br /&gt;
  }&lt;br /&gt;
});&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;

hier wird beim &lt;b&gt;erzeugen des requests&lt;/b&gt; (&lt;span class=&quot;coding&quot;&gt;onCreate&lt;/span&gt;) das &lt;b&gt;ladesymbol in den container&lt;/b&gt; geladen und wenn die &lt;b&gt;datei fertig geladen&lt;/b&gt; wurde (&lt;span class=&quot;coding&quot;&gt;onComplete&lt;/span&gt;) &lt;b&gt;durch den eigentlichen content ersetzt&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
da aber bereits ein &lt;a href=&quot;http://prototypejs.org/api/ajax/updater&quot; target=&quot;_blank&quot;&gt;ajax.updater&lt;/a&gt; vorhanden war und ich einfach nur die &lt;span class=&quot;coding&quot;&gt;onCreate&lt;/span&gt; und &lt;span class=&quot;coding&quot;&gt;onComplete&lt;/span&gt; funktion kopiert habe (&lt;b&gt;i love copy&amp;paste&lt;/b&gt; although sometimes it&apos;s evil), kam es zum &lt;b&gt;doppelten laden&lt;/b&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;code&quot;&gt;
new Ajax.Updater(&lt;span style=&quot;color:#cc0000;&quot;&gt;&apos;container&apos;&lt;/span&gt;,&apos;file.html&apos;, {&lt;br /&gt;
  method:&apos;post&apos;,&lt;br /&gt;
  evalScripts:true,&lt;br /&gt;
  &lt;b&gt;onCreate:function() {&lt;br /&gt;
    $(&apos;container&apos;).update(&quot;&lt;img src=\&quot;path/to/loading.gif\&quot; /&gt;&quot;);&lt;br /&gt;
  },&lt;br /&gt;
  onComplete:function(transport) {&lt;br /&gt;
    &lt;span style=&quot;color:#cc0000;&quot;&gt;$(&apos;container&apos;).update(transport.responseText);&lt;/span&gt;&lt;br /&gt;
  }&lt;/b&gt;&lt;br /&gt;
});&lt;br /&gt;
&lt;/div&gt; &lt;br /&gt;

glücklicherweise kam ich bei genauerem hinsehen gleich auf die lösung.&lt;br /&gt;
&lt;br /&gt;
mfg mailo</description>
    <dc:creator>mailo</dc:creator>
    <dc:subject>coding</dc:subject>
    <dc:rights>Copyright &#169; 2009 mailo</dc:rights>
    <dc:date>2009-02-07T21:00:00Z</dc:date>
  </item>
  <item rdf:about="http://mailo.twoday.net/stories/5493777/">
    <title>javascript pro</title>
    <link>http://mailo.twoday.net/stories/5493777/</link>
    <description>im zuge einer diplomarbeit liest man sich in das themengebiet (bei mir u.a. javascript, &lt;a href=&quot;http://prototypejs.org/&quot; target=&quot;_blank&quot;&gt;prototype&lt;/a&gt;, &lt;a href=&quot;http://script.aculo.us/&quot; target=&quot;_blank&quot;&gt;script.aculo.us&lt;/a&gt;) recht gut ein. &lt;b&gt;javascript&lt;/b&gt; ist eine skriptsprache, die &lt;b&gt;sehr vielfältig&lt;/b&gt; ist.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;cite&quot;&gt;
Der als ECMAScript (ECMA 262) standardisierte Sprachkern von JavaScript beschreibt eine moderne, schlanke, dynamisch typisierte, objektorientierte aber klassenlose Skriptsprache, die dennoch allen objektorientierten Programmierparadigmen unter anderem auch  aber eben nicht ausschließlich  auf der Basis von Prototypen gerecht wird. Obwohl im Grunde eine funktionale Skriptsprache, lässt sich in JavaScript sowohl prozedural als auch rein funktional bzw. objektorientiert programmieren.&lt;br /&gt;
&lt;/div&gt;
&lt;div align=&quot;right&quot;&gt;&lt;a href=&quot;http://de.wikipedia.org/wiki/Javascript&quot; target=&quot;_blank&quot;&gt;[quelle: wikipedia]&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;

dadurch ist sie für beginner nicht schlecht, da der programmierstil ziemlich flexibel ist. doch aufgrund der vielfältigkeit kann sie auch zur verwirrung führen. bislang habe ich immer gedacht, dass ich sehr viel bezüglich der programmierung von javascript weiß, doch wieder einmal wird der spruch &lt;b&gt;&quot;man lernt nie aus!&quot;&lt;/b&gt; bestätigt.&lt;br /&gt;
&lt;br /&gt;
wer sich nun &lt;b&gt;vom novicen zum professional&lt;/b&gt; in sachen &lt;b&gt;javascript&lt;/b&gt; weiterentwickeln will, dem empfehle ich &lt;b&gt;folgende literatur&lt;/b&gt;:
&lt;ul style=&quot;list-style:none; margin-left:-20px;&quot;&gt;  
&lt;li&gt;» &lt;a href=&quot;http://www.apress.com/book/view/1590597273&quot; target=&quot;_blank&quot;&gt;pro javascript techniques&lt;/a&gt; (john resig)&lt;/li&gt;  
&lt;li&gt;» &lt;a href=&quot;http://www.apress.com/book/view/159059908x&quot; target=&quot;_blank&quot;&gt;pro javascript design patterns&lt;/a&gt; (ross harmes, dustin diaz)&lt;/li&gt;  
&lt;li&gt;» &lt;a href=&quot;http://www.apress.com/book/view/1590599195&quot; target=&quot;_blank&quot;&gt;practical prototype and script.aculo.us&lt;/a&gt; (andrew dupont)&lt;/li&gt;
&lt;/ul&gt;

meiner meinung nach sind diese bücher sehr gut geschrieben (inkl. vieler code-beispiele) und ich habe sehr viel dazugelernt (besonders einige &lt;b&gt;feinheiten&lt;/b&gt;, die beim &lt;b&gt;erstellen eines frameworks&lt;/b&gt; essentiell sind).&lt;br /&gt;
&lt;br /&gt;
mfg mailo&lt;br /&gt;
&lt;br /&gt;
ps: für die hardcore-javascriptler die &lt;a href=&quot;http://www.ecma-international.org/publications/standards/Ecma-262.htm&quot; target=&quot;_blank&quot;&gt;ecma-spezifikation&lt;/a&gt; ;)&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;NOTE:&lt;/b&gt; für alle die es noch nicht wissen: &lt;b&gt;javascript == ecmascript&lt;/b&gt;</description>
    <dc:creator>mailo</dc:creator>
    <dc:subject>coding</dc:subject>
    <dc:rights>Copyright &#169; 2009 mailo</dc:rights>
    <dc:date>2009-02-04T19:00:00Z</dc:date>
  </item>
  <item rdf:about="http://mailo.twoday.net/stories/5387274/">
    <title>true or false</title>
    <link>http://mailo.twoday.net/stories/5387274/</link>
    <description>heute wäre fast das weltbild von einigen von uns (inklusive mir) zerbrochen ;)&lt;br /&gt;
beim &lt;acronym title=&quot;programmierfehler ausbessern&quot;&gt;bug fixing&lt;/acronym&gt; hat sich etwas interessantes herausgestellt:&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span class=&quot;coding&quot;&gt;(0==&apos;string&apos;)&lt;/span&gt; ergibt &lt;span class=&quot;coding&quot;&gt;true&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
viele (auch ich) dachten aber, dass das ergebnis dieses vergleichs &lt;span class=&quot;coding&quot;&gt;false&lt;/span&gt; ist.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;meine logik:&lt;/b&gt;&lt;br /&gt;
-&gt; &lt;span class=&quot;coding&quot;&gt;0&lt;/span&gt; wird als &lt;span class=&quot;coding&quot;&gt;false&lt;/span&gt; behandelt&lt;br /&gt;
-&gt; &lt;span class=&quot;coding&quot;&gt;&apos;string&apos;&lt;/span&gt; ist kein leerstring und daher &lt;span class=&quot;coding&quot;&gt;true&lt;/span&gt;&lt;br /&gt;
-&gt; daraus ergibt sich: &lt;span class=&quot;coding&quot;&gt;(false==true)&lt;/span&gt; ist &lt;span class=&quot;coding&quot;&gt;false&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
diese &lt;b&gt;logik stimmt&lt;/b&gt; auch:&lt;br /&gt;
&lt;div class=&quot;code&quot;&gt;
var_dump((bool)0);         // bool(false)&lt;br /&gt;
var_dump((bool)&apos;string&apos;);  // bool(true)&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;

&lt;b&gt;sonderfall:&lt;/b&gt; beim vergleich von einem &lt;span class=&quot;coding&quot;&gt;string&lt;/span&gt; mit einem &lt;span class=&quot;coding&quot;&gt;integer&lt;/span&gt; wird der &lt;span class=&quot;coding&quot;&gt;string&lt;/span&gt; zuerst in einen &lt;span class=&quot;coding&quot;&gt;integer&lt;/span&gt; umgewandelt und dann erst verglichen &lt;a href=&quot;http://www.php.net/manual/en/language.types.string.php#language.types.string.conversion&quot; target=&quot;_blank&quot;&gt;[string in a numeric context]&lt;/a&gt;:&lt;br /&gt;
&lt;div class=&quot;code&quot;&gt;
var_dump((bool)((int)&apos;string&apos;));  // bool(false)&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;

somit ergibt sich:&lt;br /&gt;
&lt;div class=&quot;code&quot;&gt;
var_dump((bool)0);                // bool(false)&lt;br /&gt;
var_dump((bool)((int)&apos;string&apos;));  // bool(false)&lt;br /&gt;
&lt;/div&gt;
und &lt;span class=&quot;coding&quot;&gt;(false==false)&lt;/span&gt; ist &lt;span class=&quot;coding&quot;&gt;true&lt;/span&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;anmerkung:&lt;/b&gt; wenn ein &lt;span class=&quot;coding&quot;&gt;string&lt;/span&gt; in einen &lt;span class=&quot;coding&quot;&gt;integer&lt;/span&gt; konvertiert wird, ist dieser immer &lt;span class=&quot;coding&quot;&gt;0&lt;/span&gt; außer er beginnt mit einer zahl.&lt;br /&gt;
&lt;div class=&quot;code&quot;&gt;
var_dump((int)&apos;string&apos;);   // int(0)&lt;br /&gt;
var_dump((int)&apos;9string&apos;);  // int(9)&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;

&lt;acronym title=&quot;for your interest&quot;&gt;&lt;b&gt;FYI&lt;/b&gt;&lt;/acronym&gt;&lt;br /&gt;
-&gt; typenvergleich: &lt;a href=&quot;http://www.php.net/manual/en/types.comparisons.php&quot; target=&quot;_blank&quot;&gt;[php.net]&lt;/a&gt; bzw &lt;a href=&quot;http://www.blueshoes.org/en/developer/php_cheat_sheet/&quot; target=&quot;_blank&quot;&gt;[blueshoes.org]&lt;/a&gt;&lt;br /&gt;
-&gt; casting: &lt;a href=&quot;http://www.php.net/manual/en/language.types.boolean.php#language.types.boolean.casting&quot; target=&quot;_blank&quot;&gt;boolean&lt;/a&gt; | &lt;a href=&quot;http://www.php.net/manual/en/language.types.string.php#language.types.string.casting&quot; target=&quot;_blank&quot;&gt;string&lt;/a&gt; | &lt;a href=&quot;http://www.php.net/manual/en/language.types.integer.php#language.types.integer.casting&quot; target=&quot;_blank&quot;&gt;integer&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
mfg mailo</description>
    <dc:creator>mailo</dc:creator>
    <dc:subject>coding</dc:subject>
    <dc:rights>Copyright &#169; 2008 mailo</dc:rights>
    <dc:date>2008-12-11T20:50:00Z</dc:date>
  </item>
  <item rdf:about="http://mailo.twoday.net/stories/5292633/">
    <title>mein geekend</title>
    <link>http://mailo.twoday.net/stories/5292633/</link>
    <description>das ist &lt;b&gt;KEIN tippfehler&lt;/b&gt;!&lt;br /&gt;
&lt;br /&gt;
es ist eine kombination von &lt;b&gt;geek&lt;/b&gt; und &lt;b&gt;weekend&lt;/b&gt;. da ich dieses wochenende wieder recht geekig verbringe, habe ich mir gedacht, dass es passend ist. meine freunde wissen, dass ich ein computer freak und in dieser hinsicht entsprechend abgedreht bin ;)&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;woran erkennt man das an mir?&lt;/b&gt;&lt;br /&gt;
hier ist ein kleiner vereinfachter ausschnitt wie ich denke bzw programmiert bin (javascript-syntax):&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;code&quot;&gt;
var arrIndoorActivities = new Array(&apos;coding&apos;, &apos;reading (a book)&apos;, &apos;watching tv/movie&apos;, &apos;programming&apos;, &apos;i-net surfing&apos;, &apos;computer stuff&apos;);&lt;br /&gt;
var arrOutdoorActivities = new Array(&apos;playing freestyle soccer&apos;, &apos;visiting someone&apos;, &apos;go to the cinema&apos;, &apos;random things&apos;);&lt;br /&gt;
&lt;br /&gt;
if(bolWeekend) {&lt;br /&gt;
  if(bolIll) {&lt;br /&gt;
    if(bolHeavyIllness) {&lt;br /&gt;
      lyingInBedAndGetHealthy();&lt;br /&gt;
    } else {&lt;br /&gt;
      doActivity(&lt;br /&gt;
        arrIndoorActivities[Math.random()*arrIndoorActivities.length]);&lt;br /&gt;
    }&lt;br /&gt;
  } else {&lt;br /&gt;
    if(Math.random()*10&lt;3) {&lt;br /&gt;
      doActivity(&lt;br /&gt;
        arrIndoorActivities[Math.random()*arrIndoorActivities.length]);&lt;br /&gt;
    } else {&lt;br /&gt;
      doActivity(&lt;br /&gt;
        arrOutdoorActivities[Math.random()*arrIndoorActivities.length]);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
} else {&lt;br /&gt;
  doActivity(...);&lt;br /&gt;
}&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;

dieser code kann natürlich noch kürzer gehalten werden, nur dann wird er schwer leserlich (aber so denke ich) :D&lt;br /&gt;
&lt;br /&gt;
aber solange ich mich nicht als klasse darstelle/ausprogrammiere, ist alles noch okay - vielleicht verstehen mich die meisten nicht, da sie keine programmierer sind ;)&lt;br /&gt;
&lt;br /&gt;
so - &lt;b&gt;genug vom unsinn!&lt;/b&gt;&lt;br /&gt;
eigentlich wollte ich nur darauf hinaus, dass ich gestern (an einem freitag!) nach der arbeit irgendwie das bedürfnis verspürte &lt;b&gt;five stones&lt;/b&gt; in javascript zu programmieren ;)&lt;br /&gt;
&lt;br /&gt;
nach obigem schema war ich zu krank, um fort zu gehen und zu gesund, um im bett zu liegen. da auch die einträge &lt;b&gt;coding&lt;/b&gt;, &lt;b&gt;programming&lt;/b&gt; und &lt;b&gt;computer stuff&lt;/b&gt; recht ähnlich sind, war die wahrscheinlichkeit größer, dass eines davon zutrifft.&lt;br /&gt;
&lt;br /&gt;
nach ca 2,5 stunden hatte ich ein &lt;b&gt;lauffähiges programm&lt;/b&gt; und konnte sowohl gegen mich als auch gegen den &lt;b&gt;selbstprogrammierten bot&lt;/b&gt; spielen. natürlich war ich ihm intelligenzmäßig überlegen, da ja ICH IHN programmiert habe - und nicht umgekehrt ;)&lt;br /&gt;
&lt;br /&gt;
er setzt eben nur zufällig seine steine, aber wenn man sich &quot;anstrengt&quot;, kann man ihn auch gewinnen lassen. &lt;b&gt;geplant ist&lt;/b&gt;, dass ich &lt;b&gt;meinem bot&lt;/b&gt; eine &lt;b&gt;höhere intelligenz&lt;/b&gt; verpasse.&lt;br /&gt;
&lt;br /&gt;
weiters habe ich nun meinen &lt;b&gt;clean-up&lt;/b&gt; durchgeführt und ein &lt;b&gt;generelles layout&lt;/b&gt; zusammengebastelt, wo man im browser zwischen den voreingestellten farben mittels stylesheets wechseln kann.&lt;br /&gt;
&lt;br /&gt;
mfg mailo</description>
    <dc:creator>mailo</dc:creator>
    <dc:subject>coding</dc:subject>
    <dc:rights>Copyright &#169; 2008 mailo</dc:rights>
    <dc:date>2008-11-01T15:20:00Z</dc:date>
  </item>
  <item rdf:about="http://mailo.twoday.net/stories/5205844/">
    <title>thecoda/thecrypta</title>
    <link>http://mailo.twoday.net/stories/5205844/</link>
    <description>am freitag nachmittag fing es mit ein bisschen kopfweh an. doch wer hat schon zeit krank zu werden? - ich doch nicht! ;)&lt;br /&gt;
&lt;br /&gt;
also sagte ich sowohl dem fußball spielen als auch dem &quot;friday nightlife&quot; ab und ging zeitig ins bett. am späten vormittag des samstags mehr oder weniger fit aufgestanden, wollte ich mich noch schonen und da es draußen kalt war, entschied ich mich für &lt;b&gt;indoor activities&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
doch was kann man in der wohnung schon treiben? als eingeschweißter informatiker und programmierer fiel ich wieder in mein altes verhaltensmuster und saß vor dem laptop.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;ergebnis:&lt;/b&gt; thecoda/thecrypta&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;frage:&lt;/b&gt; &lt;acronym title=&quot;what the fu**&quot;&gt;wtf&lt;/acronym&gt; ist ein &lt;b&gt;thecoda/thecrypta&lt;/b&gt;?&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;antwort:&lt;/b&gt; eine einfache webapplikation mit der verschiedenes kodiert/dekodiert und ver-/entschlüsselt werden kann.&lt;br /&gt;
&lt;br /&gt;
daher auch die wortspielerei bei der namensgebung: &quot;the coda&quot; (&quot;der kodierer&quot; bzw &quot;dekoder&quot;, was beide funktionen beinhaltet) und das gleiche schema bei &quot;the crypta&quot; ;)&lt;br /&gt;
&lt;br /&gt;
eigentlich ist es eine einfache php-seite, die die nativen funktionen von &lt;a href=&quot;http://de.wikipedia.org/wiki/Php&quot; target=&quot;_blank&quot;&gt;php&lt;/a&gt; verwendet, ein bisschen mit &lt;a href=&quot;http://de.wikipedia.org/wiki/Javascript&quot; target=&quot;_blank&quot;&gt;javascript&lt;/a&gt; für mouseover/mouseout-events gepimpt und natürlich mit &lt;a href=&quot;http://de.wikipedia.org/wiki/Cascading_Style_Sheets&quot; target=&quot;_blank&quot;&gt;css&lt;/a&gt; gestylt ist.&lt;br /&gt;
&lt;br /&gt;
die motivation war einmal eine solche applikation zu schreiben. weiters habe ich irgendwie ein faible für verschleierungen bzw verschiedene repräsentationsarten und wie diese genutzt werden können.&lt;br /&gt;
&lt;br /&gt;
um nun das &lt;b&gt;big picture&lt;/b&gt; der applikation zu sehen, habe ich eines angefertigt: &lt;a href=&quot;http://farm4.static.flickr.com/3223/2875618901_46bb16a4d2_b.jpg&quot; target=&quot;_blank&quot;&gt;[big picture]&lt;/a&gt;&lt;br /&gt;
btw: so groß ist es nicht, ursprünglich 1380 x 1380 pixel, nur hat es flickr auf 1024 x 1024 pixel skaliert - &lt;acronym title=&quot;keine ahnung&quot;&gt;kA&lt;/acronym&gt; warum.&lt;br /&gt;
&lt;br /&gt;
ein bisschen muss ich noch daran feilen (input validation, error handling), aber sonst finde ich es eigentlich recht gelungen (ja, mein innerer kritiker ist auch mal gut aufgelegt ;)&lt;br /&gt;
&lt;br /&gt;
mfg mailo&lt;br /&gt;
&lt;br /&gt;
ps: ich bin noch gesund und habe nicht vor diesen zustand zu ändern ;)</description>
    <dc:creator>mailo</dc:creator>
    <dc:subject>coding</dc:subject>
    <dc:rights>Copyright &#169; 2008 mailo</dc:rights>
    <dc:date>2008-09-21T13:00:00Z</dc:date>
  </item>
  <item rdf:about="http://mailo.twoday.net/stories/5195798/">
    <title>hiding your code</title>
    <link>http://mailo.twoday.net/stories/5195798/</link>
    <description>wenn es um webanwendungen oder auch nur um einzelne html-seiten geht, gibt es oft neugierige leute (mich eingeschlossen), die wissen wollen wie der quelltext dazu aussieht. das ist weiters nicht schlimm, genügt es doch nur eines rechtsklicks und &quot;seitenquelltext anzeigen&quot; (benennung browserabhängig). wirklich verstecken kann man den code nicht, doch komprimieren und sehr schwer leserlich machen schon ;)&lt;br /&gt;
&lt;br /&gt;
ich habe das spiel &lt;b&gt;all lights out&lt;/b&gt; mit javascript nachgebildet und mich ein bisschen mit dem quellcode gespielt. das spiel funktioniert und müsste auf jedem javascript-fähigen browser* laufen. wer will, kann sich natürlich den quellcode dazu ansehen (ist in der datei einzeilig).&lt;br /&gt;
&lt;br /&gt;
für alle, die es nicht erwarten können, gibt es hier einen &lt;a href=&quot;http://farm4.static.flickr.com/3099/2863853098_ca4502710a_b.jpg&quot; target=&quot;_blank&quot;&gt;screenshot &lt;/a&gt; davon.&lt;br /&gt;
&lt;br /&gt;
zum spielen auf folgenden link klicken, zum downloaden &quot;ziel speichern unter&quot; (oder so etwas ähnliches): &lt;a title=&quot;&quot; href=&quot;http://mailo.twoday.net/files/all_lights_out_javascript_edition/&quot;&gt;all_lights_out_javascript_edition&lt;/a&gt; (html, 5 KB)&lt;br /&gt;
&lt;br /&gt;
viel spaß damit ;)&lt;br /&gt;
&lt;br /&gt;
mfg mailo&lt;br /&gt;
&lt;br /&gt;
* getestet auf: firefox 2 &amp; 3, safari 3.12, google chrome, ie7 und opera 9.5 - davon &lt;b&gt;nicht&lt;/b&gt; lauffähig auf ie7 und opera 9.5 (vermutlich css-probleme - werden gefixed wenn ich zeit und lust habe ;)&lt;br /&gt;
&lt;br /&gt;
ps: falls jemand weiß, wie der &lt;a href=&quot;http://de.wikipedia.org/wiki/Cascading_Style_Sheets&quot; target=&quot;_blank&quot;&gt;css&lt;/a&gt;-block verschleiert werden kann oder auch weitere verschleierungstechniken kennt - ich bin ganz ohr ;)&lt;br /&gt;
&lt;br /&gt;
pps: mit &lt;a href=&quot;http://www.tiny.cc/&quot; target=&quot;_blank&quot;&gt;tiny-url&lt;/a&gt; kann man sehr lange links verkürzen und somit verschleiern (und eventuell für &lt;a href=&quot;http://de.wikipedia.org/wiki/Cross-Site_Scripting&quot; target=&quot;_blank&quot;&gt;xss&lt;/a&gt; oder ähnliches nutzen ;)</description>
    <dc:creator>mailo</dc:creator>
    <dc:subject>coding</dc:subject>
    <dc:rights>Copyright &#169; 2008 mailo</dc:rights>
    <dc:date>2008-09-16T21:10:00Z</dc:date>
  </item>
  <item rdf:about="http://mailo.twoday.net/stories/5180408/">
    <title>php, javascript und boolean</title>
    <link>http://mailo.twoday.net/stories/5180408/</link>
    <description>im berufspraktikum habe ich das framework der firma um 2 template engine plugins erweitert, die ich übermorgen im &lt;acronym title=&quot;developer&quot;&gt;dev&lt;/acronym&gt;-meeting präsentieren werde. die verwendeten scriptsprachen sind &lt;a href=&quot;http://www.php.net/&quot; target=&quot;_blank&quot;&gt;php&lt;/a&gt; und &lt;a href=&quot;http://de.wikipedia.org/wiki/JavaScript&quot; target=&quot;_blank&quot;&gt;javascript&lt;/a&gt; (genauer: die &lt;a href=&quot;http://de.wikipedia.org/wiki/Ajax_(Programmierung)&quot; target=&quot;_blank&quot;&gt;ajax&lt;/a&gt;-libraries &lt;a href=&quot;http://prototypejs.org/&quot; target=&quot;_blank&quot;&gt;prototype&lt;/a&gt; und &lt;a href=&quot;http://script.aculo.us/&quot; target=&quot;_blank&quot;&gt;scriptaculous&lt;/a&gt;) und die template engine dazu ist &lt;a href=&quot;http://www.smarty.net/&quot; target=&quot;_blank&quot;&gt;smarty&lt;/a&gt;. die umsetzung ist natürlich nicht ganz reibungslos abgelaufen - wo wäre da denn der lerneffekt? ;)&lt;br /&gt;
&lt;br /&gt;
zuerst dachte ich mir, mein laptop ist einfach nur stur, doch ich weiß ja, dass das problem meist davor sitzt ;)&lt;br /&gt;
&lt;br /&gt;
als php-programmierer bin ich gewohnt boolsche variablen statt durch&lt;br /&gt;
&lt;div class=&quot;code&quot;&gt;
if($bool==true) {&lt;br /&gt;
// some code&lt;br /&gt;
} else {&lt;br /&gt;
// another code&lt;br /&gt;
}&lt;br /&gt;
&lt;/div&gt;
mit der kürzeren schreibweise&lt;br /&gt;
&lt;div class=&quot;code&quot;&gt;
if($bool) {&lt;br /&gt;
// some code&lt;br /&gt;
} else {&lt;br /&gt;
// another code&lt;br /&gt;
}&lt;br /&gt;
&lt;/div&gt;
zu überprüfen.&lt;br /&gt;
&lt;br /&gt;
naja, wenn ich ehrlich bin, tendiere ich eigentlich mehr zu&lt;br /&gt;
&lt;div class=&quot;code&quot;&gt;
($bool?/* some code */:/* another code */);&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;

in javascript ist das nicht anders - außer eben, dass die $-zeichen bei den variablen fehlen. soviel zur syntax. bei den rückgabewerten gibt es jedoch einen unterschied.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;php-code&lt;/b&gt;&lt;br /&gt;
&lt;div class=&quot;code&quot;&gt;
$a = true;&lt;br /&gt;
$b = false;&lt;br /&gt;
&lt;br /&gt;
// in php wird true als 1 ausgegeben und false gar nicht&lt;br /&gt;
echo $a; // 1&lt;br /&gt;
echo $b; //&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;

&lt;b&gt;javascript-code&lt;/b&gt;&lt;br /&gt;
&lt;div class=&quot;code&quot;&gt;
var a = true;&lt;br /&gt;
var b = false;&lt;br /&gt;
&lt;br /&gt;
// in javascript hingegen wird entsprechend true oder false ausgegeben&lt;br /&gt;
document.write(a); // true&lt;br /&gt;
document.write(b); // false&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;

ein boolscher wert kann in javascript auch mittels &lt;span class=&quot;coding&quot;&gt;new Boolean()&lt;/span&gt; gesetzt werden &lt;a href=&quot;http://de.selfhtml.org/javascript/objekte/boolean.htm&quot; target=&quot;_blank&quot;&gt;[beispiele]&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
hierbei ist aber zu beachten, dass die variable dann &lt;b&gt;kein &lt;span class=&quot;coding&quot;&gt;boolean&lt;/span&gt;&lt;/b&gt; sondern &lt;b&gt;ein &lt;span class=&quot;coding&quot;&gt;object&lt;/span&gt;&lt;/b&gt; ist.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;javascript-code&lt;/b&gt;&lt;br /&gt;
&lt;div class=&quot;code&quot;&gt;
var c = new Boolean(true);&lt;br /&gt;
var d = new Boolean(false);&lt;br /&gt;
&lt;br /&gt;
document.write(typeof a); // boolean&lt;br /&gt;
document.write(typeof b); // boolean&lt;br /&gt;
document.write(typeof c); // object&lt;br /&gt;
document.write(typeof d); // object&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;

wenn jetzt die variable mit &lt;span class=&quot;coding&quot;&gt;new Boolean()&lt;/span&gt; gesetzt wurde, liefert die gekürzte schreibweise ein anderes ergebnis als bei der direkten initialisierung mit &lt;span class=&quot;coding&quot;&gt;true&lt;/span&gt; oder &lt;span class=&quot;coding&quot;&gt;false&lt;/span&gt;. bei &lt;span class=&quot;coding&quot;&gt;boolean&lt;/span&gt; wird auf &lt;span class=&quot;coding&quot;&gt;true&lt;/span&gt; oder &lt;span class=&quot;coding&quot;&gt;false&lt;/span&gt; geprüft - bei &lt;span class=&quot;coding&quot;&gt;object&lt;/span&gt;, ob es &lt;span class=&quot;coding&quot;&gt;null&lt;/span&gt; bzw leer ist oder nicht.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;javascript-code&lt;/b&gt;&lt;br /&gt;
&lt;div class=&quot;code&quot;&gt;
(a?document.write(&apos;true&apos;):document.write(&apos;!true&apos;)); // true&lt;br /&gt;
(b?document.write(&apos;true&apos;):document.write(&apos;!true&apos;)); // !true&lt;br /&gt;
(c?document.write(&apos;true&apos;):document.write(&apos;!true&apos;)); // true&lt;br /&gt;
(d?document.write(&apos;true&apos;):document.write(&apos;!true&apos;)); // true	&lt;br /&gt;
&lt;br /&gt;
(a==true?document.write(&apos;true&apos;):document.write(&apos;!true&apos;)); // true&lt;br /&gt;
(b==true?document.write(&apos;true&apos;):document.write(&apos;!true&apos;)); // !true&lt;br /&gt;
(c==true?document.write(&apos;true&apos;):document.write(&apos;!true&apos;)); // true&lt;br /&gt;
(d==true?document.write(&apos;true&apos;):document.write(&apos;!true&apos;)); // !true&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;

durch die template engine ist es mir nicht gelungen einen boolschen wert zu übergeben. dadurch versuchte ich die variable mittels &lt;span class=&quot;coding&quot;&gt;new Boolean(&quot;false&quot;)&lt;/span&gt; zu befüllen. deshalb kam auch &lt;span class=&quot;coding&quot;&gt;true&lt;/span&gt; heraus, wo ich eigentlich ein &lt;span class=&quot;coding&quot;&gt;false&lt;/span&gt; erwartet habe (siehe variable d). sogesehen war es ja richtig, da die variable einen wert hatte und nicht &lt;span class=&quot;coding&quot;&gt;null&lt;/span&gt; oder leer war.&lt;br /&gt;
&lt;br /&gt;
es sind eben solche kleinen feinheiten, die den unterschied zwischen den verschiedenen scriptsprachen machen und auch den aufenthalt vor dem computer verlängern ;)&lt;br /&gt;
&lt;br /&gt;
mfg mailo</description>
    <dc:creator>mailo</dc:creator>
    <dc:subject>coding</dc:subject>
    <dc:rights>Copyright &#169; 2008 mailo</dc:rights>
    <dc:date>2008-09-09T19:00:00Z</dc:date>
  </item>
  <item rdf:about="http://mailo.twoday.net/stories/5173572/">
    <title>neues design</title>
    <link>http://mailo.twoday.net/stories/5173572/</link>
    <description>vor über 500 tagen habe ich aus &lt;a href=&quot;http://mailo.twoday.net/20070416/&quot; target=&quot;_blank&quot;&gt;reiner langeweile diesen blog&lt;/a&gt; begonnen. es ist also höchste zeit endlich mal das design zu wechseln (das alte finde ich eh schon recht langweilig).&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;gesagt - getan!&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
ich habe mich jetzt den nachmittag hingesetzt und das neue design umgesetzt (entworfen hatte ich es ja schon). wenn es jemand nicht gefällt oder er/sie irgendetwas auszusetzen hat, dann soll er/sie doch eine &lt;a href=&quot;mailto:beschwerde@salzamt.at&quot;&gt;mail&lt;/a&gt; schreiben! ;)&lt;br /&gt;
&lt;br /&gt;
wem es gefällt oder wem es egal ist, darf ein kommentar hinterlassen ;)&lt;br /&gt;
&lt;br /&gt;
mfg mailo</description>
    <dc:creator>mailo</dc:creator>
    <dc:subject>coding</dc:subject>
    <dc:rights>Copyright &#169; 2008 mailo</dc:rights>
    <dc:date>2008-09-06T20:30:00Z</dc:date>
  </item>
  <item rdf:about="http://mailo.twoday.net/stories/4925460/">
    <title>&quot;versteckten&quot; fehler gefunden</title>
    <link>http://mailo.twoday.net/stories/4925460/</link>
    <description>ich bin immer wieder froh und glücklich, wenn ich einen &quot;wie-soll-man-bitte-auf-das-kommen-außer-per-zufall&quot;-fehler gefunden und beseitigt habe - wie auch in diesem fall:&lt;br /&gt;
&lt;br /&gt;
im anwendungsprojekt inkludiere ich gerade den &lt;a href=&quot;http://phpmailer.codeworxtech.com/&quot; target=&quot;_blank&quot;&gt;phpmailer&lt;/a&gt; in ein &lt;a href=&quot;http://drupal.org/&quot; target=&quot;_blank&quot;&gt;drupal&lt;/a&gt;-&lt;a href=&quot;http://de.wikipedia.org/wiki/Content-Management-System&quot; target=&quot;_blank&quot;&gt;cms&lt;/a&gt;, um mails verschicken zu können ohne einen smtp-server zu installieren. nun habe ich es schon so weit geschafft, dass die mail rausgeht, nur kam ich dann auf eine leere seite anstatt redirected zu werden. im log wurde folgende meldung eingetragen:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;cite&quot;&gt;Cannot modify header information - headers already sent by (output started at [pfad]\includes\phpmailer.inc:28) in [pfad]\includes\common.inc in Zeile 314.&lt;/div&gt;&lt;br /&gt;

da ich einen editor verwendet habe, der keine zeilennummern anzeigt, fiel es mir nicht auf, dass diese datei aus nur 27 zeilen code bestand. als ich die zeilen zählte und auf 28 kam, war mir alles klar.&lt;br /&gt;
&lt;br /&gt;
die funktion &lt;span style=&quot;font-family: Courier New; font-size: 12px; font-weight: bold;&quot;&gt;header()&lt;/span&gt; wird zum senden von http-headerinfos im rohformat benutzt. da diese infos im header sind, müssen sie vor jeglichen output stehen - nicht einmal ein leerzeichen, eine leerzeile, ein zeilenumbruch noch sonstiges in dieser art darf vor dem aufruf sein. der fehler trat auf, da die &lt;span style=&quot;font-family: Courier New; font-size: 12px; font-weight: bold;&quot;&gt;phpmailer.inc&lt;/span&gt; mittels &lt;span style=&quot;font-family: Courier New; font-size: 12px; font-weight: bold;&quot;&gt;include()&lt;/span&gt; eingelesen wurde und sich ganz zum schluss ein zeilenumbruch nach dem &lt;span style=&quot;font-family: Courier New; font-size: 12px; font-weight: bold;&quot;&gt;?&gt;&lt;/span&gt; eingeschummelt hatte.&lt;br /&gt;
&lt;br /&gt;
zeilennummern sei dank ;)&lt;br /&gt;
&lt;br /&gt;
mfg mailo&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;ps:&lt;/b&gt; hilfreiche quellen: &lt;a href=&quot;http://drupal.org/node/29888&quot; target=&quot;_blank&quot;&gt;quelle 1&lt;/a&gt;, &lt;a href=&quot;http://drupal.org/node/7294&quot; target=&quot;_blank&quot;&gt;quelle 2&lt;/a&gt; und &lt;a href=&quot;http://drupal.org/node/54952&quot; target=&quot;_blank&quot;&gt;quelle 3&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;anmerkung:&lt;/u&gt; lasst euch nicht von den linknamen verwirren ;)</description>
    <dc:creator>mailo</dc:creator>
    <dc:subject>coding</dc:subject>
    <dc:rights>Copyright &#169; 2008 mailo</dc:rights>
    <dc:date>2008-05-14T09:15:00Z</dc:date>
  </item>
  <item rdf:about="http://mailo.twoday.net/stories/4905489/">
    <title>secure (web)applications?</title>
    <link>http://mailo.twoday.net/stories/4905489/</link>
    <description>in der heutigen zeit sprießen programme und webapplikationen wie pilze aus dem boden. sobald die applikation irgendwie funktioniert, wird sie releast - im zeitalter von web 2.0 gibt es die tollen logos mit einem kleinen &quot;beta&quot; dran.&lt;br /&gt;
&lt;br /&gt;
nun ja - es wird uns auch meist so vorgelebt (zb verwendet microsoft seine user ja auch als beta-tester). die heutige zeit ist in diesem bereich so schnell-lebig, dass viele meinen, dass man es sich nicht mehr leisten kann die applikation zb ausreichend zu testen - oder von der anderen sichtweise: wenn die applikation wirklich fertig wäre, dann ist sie schon wieder veraltet.&lt;br /&gt;
&lt;br /&gt;
ich weiß nicht, ob es allgemein so ist, aber in meinem fall trifft es zu: ich habe nie gelernt SICHER zu programmieren! ich habe zwar gelernt zu programmieren, aber der security-aspekt war meiner meinung nach nicht wirklich vorhanden. mein ganzes (noch kleines) security know-how habe ich mir selbst erlernen müssen.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;warum schreibe ich nun diesen blogeintrag?&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
ich bin sehr froh, dass ich nun endlich mein fh-projekt (j2ee, jsp) zum laufen gebracht habe. es ist ein simples programm. man ruft es im browser auf und gibt in das eingabefeld die matrikelnummer ein (und drückt enter oder klickt auf den button). danach wird in der datenbank gesucht und, wenn ein eintrag gefunden wird, dieser angezeigt (also matrikelnummer, name und nickname). falls kein entsprechender eintrag gefunden wird, sieht man die meldung &quot;no student found for [matrikelnummer]&quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;img title=&quot;&quot; height=&quot;90&quot; alt=&quot;studinfo-matrikelnummer&quot; width=&quot;330&quot; align=&quot;center&quot; class=&quot;center&quot; src=&quot;http://static.twoday.net/mailo/images/studinfo-matrikelnummer.jpg&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
mein erster gedanke war gleich: &quot;was wäre, wenn ich jemanden suche, der mit mir zu mc donalds geht?&quot; natürlich habe ich sofort statt einer matrikelnummer &lt;span style=&quot;font-family:Courier New&quot;&gt;going to mc donalds&lt;/span&gt; eingegeben - leider wurde keiner gefunden ;)&lt;br /&gt;
&lt;br /&gt;
&lt;img title=&quot;&quot; height=&quot;90&quot; alt=&quot;studinfo-mcdonalds&quot; width=&quot;330&quot; align=&quot;center&quot; class=&quot;center&quot; src=&quot;http://static.twoday.net/mailo/images/studinfo-mcdonalds.jpg&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
der nächste gedanke war: &quot;OJE! &lt;a href=&quot;http://de.wikipedia.org/wiki/XSS&quot;&gt;XSS&lt;/a&gt; ALARM!&quot; und die eingabe von &lt;span style=&quot;font-family:Courier New&quot;&gt;&lt;script&gt;alert(/XSS/);&lt;/script&gt;&lt;/span&gt; bestätigte dies!&lt;br /&gt;
&lt;br /&gt;
&lt;img title=&quot;&quot; height=&quot;125&quot; alt=&quot;studinfo-xss&quot; width=&quot;326&quot; align=&quot;center&quot; class=&quot;center&quot; src=&quot;http://static.twoday.net/mailo/images/studinfo-xss.jpg&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
hmm ... da im hintergrund eine datenbank ist und derzeit noch die eingabe direkt in die sql-query kommt, könnte auch eine &lt;a href=&quot;http://de.wikipedia.org/wiki/SQL_Injection&quot;&gt;sql injection&lt;/a&gt; erfolgreich sein - sie war es ;)&lt;br /&gt;
&lt;br /&gt;
&lt;img title=&quot;&quot; height=&quot;120&quot; alt=&quot;studinfo-sqlinjection&quot; width=&quot;330&quot; align=&quot;center&quot; class=&quot;center&quot; src=&quot;http://static.twoday.net/mailo/images/studinfo-sqlinjection.jpg&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;und die moral von dieser geschichte?&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
alle benutzereingaben sind BÖSE (bzw sollten als solches angesehen werden)!&lt;br /&gt;
ich habe &lt;b&gt;6 zeilen an code&lt;/b&gt; hinzugefügt, um die benutzereingabe zu überprüfen und somit die &lt;b&gt;xss-attacke und sql-injection zu verhindern bzw erfolgreich abzufangen&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
wer nun diesen minimalen aufwand bezüglich security weglassen will, der soll es von mir aus auch tun - it&apos;s your choice!&lt;br /&gt;
security muss nicht unbedingt komplex sein - keep it simple!&lt;br /&gt;
&lt;br /&gt;
mfg mailo</description>
    <dc:creator>mailo</dc:creator>
    <dc:subject>coding</dc:subject>
    <dc:rights>Copyright &#169; 2008 mailo</dc:rights>
    <dc:date>2008-05-03T17:00:00Z</dc:date>
  </item>


<textinput rdf:about="http://mailo.twoday.net/search">
   <title>find</title>
   <description>Search this site:</description>
   <name>q</name>
   <link>http://mailo.twoday.net/search</link>
</textinput>


</rdf:RDF>
