<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>drailing.net &#187; dreiling</title>
	<atom:link href="http://www.drailing.net/index.php/author/dreiling/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.drailing.net</link>
	<description>informatik, entwicklung, codeschnipsel und studium - von und mit dreiling</description>
	<lastBuildDate>Thu, 12 Aug 2010 19:21:47 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Tip: Wolfram&#124;Alpha</title>
		<link>http://www.drailing.net/index.php/2010/08/tip-wolframalpha/</link>
		<comments>http://www.drailing.net/index.php/2010/08/tip-wolframalpha/#comments</comments>
		<pubDate>Thu, 12 Aug 2010 19:21:47 +0000</pubDate>
		<dc:creator>dreiling</dc:creator>
				<category><![CDATA[std::artikel]]></category>

		<guid isPermaLink="false">http://www.drailing.net/?p=547</guid>
		<description><![CDATA[Schon vor einiger Zeit wurde ich auf Wolfram Alpha aufmerksam, allerdings war ich bis vor kurzem der Meinung es ist ein etwas besserer Taschenrechner. Nun wurde ich eines besseren belehrt, indem ich auf zwei Videos hingewiesen wurde, in denen sehr schön die Mächtigkeit von Wolfram Alpha demonstriert wird. 
Beispiel:
&#8220;2 cups orange juice + 1 slice [...]]]></description>
			<content:encoded><![CDATA[<p>Schon vor einiger Zeit wurde ich auf Wolfram Alpha aufmerksam, allerdings war ich bis vor kurzem der Meinung es ist ein etwas besserer Taschenrechner. Nun wurde ich eines besseren belehrt, indem ich auf zwei Videos hingewiesen wurde, in denen sehr schön die Mächtigkeit von Wolfram Alpha demonstriert wird. </p>
<p>Beispiel:<br />
&#8220;2 cups orange juice + 1 slice cheddar cheese&#8221; liefert eine genaue Auflistung der Kalorien und Bestandteile und Rechnungen wie &#8220;height of mt everest / length of golden gate bridge&#8221; sind damit auch kein Problem mehr.</p>
<p><a href="http://www.youtube.com/watch?v=FHIp6cHYkDg">Part 1</a><br />
<a href="http://www.youtube.com/watch?v=TjFXW2FhogE">Part 2</a></p>
<p><a href="http://www.wolframalpha.com/">http://www.wolframalpha.com/</a></p>
<p>Reinschauen lohnt auf jeden Fall <img src='http://www.drailing.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.drailing.net/index.php/2010/08/tip-wolframalpha/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Probleme und Lösungen mit JS/jQuery</title>
		<link>http://www.drailing.net/index.php/2010/07/probleme-und-losungen-mit-jquery/</link>
		<comments>http://www.drailing.net/index.php/2010/07/probleme-und-losungen-mit-jquery/#comments</comments>
		<pubDate>Fri, 23 Jul 2010 10:38:40 +0000</pubDate>
		<dc:creator>dreiling</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[JS / AJAX]]></category>

		<guid isPermaLink="false">http://www.drailing.net/?p=561</guid>
		<description><![CDATA[Nachdem ich mich die letzte Woche mit jQuery etwas beschäftigt habe, möchte ich hier einmal kurz die aufgetretenen Probleme und die damit verbundenen Lösungen festhalten:
Parallele Abläufe
Da es in Javascript und somit auch in jQuery keine Threads gibt und eine endlose while Schleife keine Parallelität bietet (und ausserdem den Browser abstürzen lässt) muss ein anderes Konstrukt [...]]]></description>
			<content:encoded><![CDATA[<p>Nachdem ich mich die letzte Woche mit jQuery etwas beschäftigt habe, möchte ich hier einmal kurz die aufgetretenen Probleme und die damit verbundenen Lösungen festhalten:</p>
<p><strong>Parallele Abläufe</strong><br />
Da es in Javascript und somit auch in jQuery keine Threads gibt und eine endlose while Schleife keine Parallelität bietet (und ausserdem den Browser abstürzen lässt) muss ein anderes Konstrukt herhalten. Die Lösung hier lautet Rekursion (schön erklärt von <a href="http://javathreads.de/2010/04/begriffe-endlosschleife-und-rekursion-anschaulich-durch-buch-glossar-erklaert/">Markus Kühle auf Javathreads</a>).</p>
<p><strong>setTimeout mit Parametern</strong><br />
Auf anhieb findet man für die Rekursion viele Beispiele mit der setTimeout Methode, leider aber immer ohne Parameterübergabe (in meinem Beispiel der CountUp):</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">setTimeout<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;countUp()&quot;</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">1000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Sobald nun countUp() mit einem Parameter übergeben werden soll, funktioniert dieser Aufruf nicht mehr. Die Lösung war, den ersten Parameter der setTimeout Methode durch eine Funktion zu ersetzen:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">setTimeout<span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	countUp<span style="color: #009900;">&#40;</span>date<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">1000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p><strong>Countup und die Zeit</strong><br />
Ich hatte eigentlich erwartet dass mich Google mit kleinen Codeschnipseln überhäuft wenn es um einen Simplen Countup für Zeit geht. Gefunden habe ich ein paar wenige, die aber so unschön anzuschauen waren, dass ich mir kurzerhand was kleines Simples selbst zusammengeschrieben habe:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">//Parameter inzwischen global um einfach und dynamisch zur Laufzeit zu ändern</span>
<span style="color: #003366; font-weight: bold;">var</span> year<span style="color: #339933;">,</span> month<span style="color: #339933;">,</span> day<span style="color: #339933;">;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> countUp<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #006600; font-style: italic;">//month-1 da die Monate von 0-11 codiert sind</span>
	<span style="color: #003366; font-weight: bold;">var</span> startDate <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Date<span style="color: #009900;">&#40;</span>year<span style="color: #339933;">,</span> month<span style="color: #339933;">-</span><span style="color: #CC0000;">1</span><span style="color: #339933;">,</span> day<span style="color: #339933;">,</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #003366; font-weight: bold;">var</span> currentDate <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Date<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #003366; font-weight: bold;">var</span> diff <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Date<span style="color: #009900;">&#40;</span>currentDate.<span style="color: #660066;">getTime</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">-</span> startDate.<span style="color: #660066;">getTime</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #006600; font-style: italic;">//(diff.getYear()-70) da der Zeitliche Nullpunkt bei 1970 liegt, und wir nur die Anzahl der Jahre benötigen</span>
	<span style="color: #003366; font-weight: bold;">var</span> diffString <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;Years &quot;</span> <span style="color: #339933;">+</span> <span style="color: #009900;">&#40;</span>diff.<span style="color: #660066;">getYear</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-</span><span style="color: #CC0000;">70</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot; Months &quot;</span> <span style="color: #339933;">+</span> diff.<span style="color: #660066;">getMonth</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot; Days &quot;</span> <span style="color: #339933;">+</span> diff.<span style="color: #660066;">getDate</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> 
		<span style="color: #3366CC;">&quot; Hours &quot;</span> <span style="color: #339933;">+</span> diff.<span style="color: #660066;">getHours</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot; Minutes &quot;</span> <span style="color: #339933;">+</span> diff.<span style="color: #660066;">getMinutes</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot; Seconds &quot;</span> <span style="color: #339933;">+</span> diff.<span style="color: #660066;">getSeconds</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #006600; font-style: italic;">//String schreiben</span>
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#countUpDiv'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">html</span><span style="color: #009900;">&#40;</span>diffString<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #006600; font-style: italic;">//rekursiver Aufruf</span>
	setTimeout<span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		countUp<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">1000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p><strong>noch ein Tip zum Schluss</strong><br />
Um die komplette jQuery Doku auch offline (solls ja ab und zu geben&#8230;) nutzen zu können, gibts diese auch als PDF oder sogar als Windows Help File zum Download.<br />
<a href="http://docs.jquery.com/Alternative_Resources">Link</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.drailing.net/index.php/2010/07/probleme-und-losungen-mit-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nichtraucher mit jQuery</title>
		<link>http://www.drailing.net/index.php/2010/07/nichtraucher-mit-jquery/</link>
		<comments>http://www.drailing.net/index.php/2010/07/nichtraucher-mit-jquery/#comments</comments>
		<pubDate>Thu, 22 Jul 2010 14:00:49 +0000</pubDate>
		<dc:creator>dreiling</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[JS / AJAX]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.drailing.net/?p=551</guid>
		<description><![CDATA[Nachdem ich seit inzwischen 3 Wochen dem Laster des Rauchens trotze und in meiner freien Zeit vor Praxisphase und Bachelorarbeit noch etwas sinnvolles machen wollte, habe ich mich etwas mit dem Javascript/AJAX Framework jQuery beschäftigt. Beides kombiniert, kommt bei mir eine kleine Nichtraucher&#8221;Uhr&#8221; raus:
Zur Zeit wird das Datum der letzten Zigarette (, durchschnittliches Gerauche und [...]]]></description>
			<content:encoded><![CDATA[<p>Nachdem ich seit inzwischen 3 Wochen dem Laster des Rauchens trotze und in meiner freien Zeit vor Praxisphase und Bachelorarbeit noch etwas sinnvolles machen wollte, habe ich mich etwas mit dem Javascript/AJAX Framework jQuery beschäftigt. Beides kombiniert, kommt bei mir eine kleine Nichtraucher&#8221;Uhr&#8221; raus:</p>
<p>Zur Zeit wird das Datum der letzten Zigarette (, durchschnittliches Gerauche und Preis einer Schachtel erfasst und daraus die Zeit als Nichtraucher und das dabei gesparte Geld errechnet.</p>
<p><a href="http://smoking.drailing.net/"><img src="http://www.drailing.net/wp-content/uploads/2010/07/NonSmoking_1279806743864.png" alt="" title="NonSmoking_1279806743864" width="600" height="250" class="aligncenter size-full wp-image-553" /></a></p>
<p>In Zukunft wird die Toplist noch um das gesparte Geld erweitert, eine kleine API gebastelt die die &#8220;Uhr&#8221; ausgeben kann (ohne angemeldet zu sein) und bei ganz viel Laune wird noch das Standarddesign ersetzt.</p>
<p>Wer sich nicht registrieren will, kann sich mit test/test auch das innenleben mal amschauen.</p>
<p>Eine schöne Sache dieses jQuery <img src='http://www.drailing.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.drailing.net/index.php/2010/07/nichtraucher-mit-jquery/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Rückmeldung zum Wintersemester 2010/11</title>
		<link>http://www.drailing.net/index.php/2010/06/ruckmeldung-zum-wintersemester-201011/</link>
		<comments>http://www.drailing.net/index.php/2010/06/ruckmeldung-zum-wintersemester-201011/#comments</comments>
		<pubDate>Tue, 29 Jun 2010 06:52:19 +0000</pubDate>
		<dc:creator>dreiling</dc:creator>
				<category><![CDATA[Studium]]></category>

		<guid isPermaLink="false">http://www.drailing.net/?p=544</guid>
		<description><![CDATA[Zur Erinnerung: vor einer knappen Woche hat wieder die Rückmeldefrist fürs nächste Semester begonnen (231 Euro) und kann bis zum 04.08.2010 überwiesen werden.
Alle benötigten Daten sind hier zu finden: Link
]]></description>
			<content:encoded><![CDATA[<p>Zur Erinnerung: vor einer knappen Woche hat wieder die Rückmeldefrist fürs nächste Semester begonnen (231 Euro) und kann bis zum 04.08.2010 überwiesen werden.</p>
<p>Alle benötigten Daten sind hier zu finden: <a href="http://www.h-da.de/studium/information-und-beratung/semesterbeitrag/index.htm">Link</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.drailing.net/index.php/2010/06/ruckmeldung-zum-wintersemester-201011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java 4-Ever</title>
		<link>http://www.drailing.net/index.php/2010/06/java-4-ever/</link>
		<comments>http://www.drailing.net/index.php/2010/06/java-4-ever/#comments</comments>
		<pubDate>Sat, 26 Jun 2010 13:30:41 +0000</pubDate>
		<dc:creator>dreiling</dc:creator>
				<category><![CDATA[zum schmunzeln]]></category>

		<guid isPermaLink="false">http://www.drailing.net/?p=537</guid>
		<description><![CDATA[Ein kleines Video was grade unter den Kommilitonen die Runde macht und mehr als sehenswert ist!

Edit: Video tut wieder!
]]></description>
			<content:encoded><![CDATA[<p>Ein kleines Video was grade unter den Kommilitonen die Runde macht und mehr als sehenswert ist!</p>
<p><object width="640" height="385"><param name="movie" value="http://www.youtube.com/v/fzza-ZbEY70&#038;hl=de_DE&#038;fs=1&#038;rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/fzza-ZbEY70&#038;hl=de_DE&#038;fs=1&#038;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"></embed></object></p>
<p>Edit: Video tut wieder!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.drailing.net/index.php/2010/06/java-4-ever/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPad nun doch nützlich!</title>
		<link>http://www.drailing.net/index.php/2010/06/ipad-nun-doch-nutzlich/</link>
		<comments>http://www.drailing.net/index.php/2010/06/ipad-nun-doch-nutzlich/#comments</comments>
		<pubDate>Thu, 10 Jun 2010 21:56:31 +0000</pubDate>
		<dc:creator>dreiling</dc:creator>
				<category><![CDATA[zum schmunzeln]]></category>

		<guid isPermaLink="false">http://www.drailing.net/?p=528</guid>
		<description><![CDATA[War eigentlich meine Idee, doch nach kurzem gegoogle musste ich feststellen, zumindest die Idee hatten schon andere:

Bildursprung ist leider nimmer festzustellen (wahrscheinlich dailyburn.com )
]]></description>
			<content:encoded><![CDATA[<p>War eigentlich meine Idee, doch nach kurzem gegoogle musste ich feststellen, zumindest die Idee hatten schon andere:</p>
<p><a href="http://www.drailing.net/wp-content/uploads/2010/06/db-ipad-apr1.jpg"><img src="http://www.drailing.net/wp-content/uploads/2010/06/db-ipad-apr1.jpg" alt="" title="db-ipad-apr1" width="600" height="430" class="aligncenter size-full wp-image-529" /></a></p>
<p>Bildursprung ist leider nimmer festzustellen (wahrscheinlich dailyburn.com )</p>
]]></content:encoded>
			<wfw:commentRss>http://www.drailing.net/index.php/2010/06/ipad-nun-doch-nutzlich/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RESTful Redirect über onchange Javascript Event</title>
		<link>http://www.drailing.net/index.php/2010/06/restful-redirect-uber-onchange-javascript-event/</link>
		<comments>http://www.drailing.net/index.php/2010/06/restful-redirect-uber-onchange-javascript-event/#comments</comments>
		<pubDate>Thu, 10 Jun 2010 00:13:38 +0000</pubDate>
		<dc:creator>dreiling</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://www.drailing.net/?p=510</guid>
		<description><![CDATA[Für unser &#8220;Projekt Systementwicklung&#8221; basteln wir grade ein Web Frontend für die weTravel iPad App. In diesem Zusammenhang wollten wir über eine Select-Box zwischen verschiedenen, hochgeladenen Reports wechseln. 
Eigentlich keine große Sache:

&#60;select onchange=&#34;javascript:window.location=this.value&#34;&#62;
  &#60;option value=&#34;url&#34; &#62;anderer Beitrag&#60;/option&#62;
&#60;/select&#62;

Aber: mit diesem Skript wird in REST nur der letzte Parameter (also zB beitrag/3/kommentar/8&#8230; ) geändert, also die [...]]]></description>
			<content:encoded><![CDATA[<p>Für unser &#8220;Projekt Systementwicklung&#8221; basteln wir grade ein Web Frontend für die <a href="http://wetravel.fbi.h-da.de/">weTravel</a> iPad App. In diesem Zusammenhang wollten wir über eine Select-Box zwischen verschiedenen, hochgeladenen Reports wechseln. </p>
<p>Eigentlich keine große Sache:</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;select onchange=&quot;javascript:window.location=this.value&quot;&gt;
  &lt;option value=&quot;url&quot; &gt;anderer Beitrag&lt;/option&gt;
&lt;/select&gt;</pre></div></div>

<p>Aber: mit diesem Skript wird in REST nur der letzte Parameter (also zB <em>beitrag/3/kommentar/8</em>&#8230; ) geändert, also die 8 einfach durch die url ersetzt und somit ist es nicht möglich nur den Beitrag (in meinem Beispiel) zu ändern.</p>
<p>Die Lösung ist denkbar simpel: wir schreiben die komplette URL und konstruieren uns den kompletten Pfad neu. Über einen Slash vor this.value im kleinen Javascript können wir nun die komplette URL löschen:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">onchange<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;javascript:window.location= '/' + this.value&quot;</span></pre></div></div>

<p>und die url im value Parameter entsprechend nachzukonstruieren, bei uns in Rails hätte es so aussehen:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">&lt;option value=<span style="color:#006600; font-weight:bold;">&lt;%</span>= <span style="color:#996600;">&quot;beitrag/&quot;</span> <span style="color:#006600; font-weight:bold;">+</span> beitrag.<span style="color:#9900CC;">id</span>.<span style="color:#9900CC;">to_s</span> <span style="color:#006600; font-weight:bold;">+</span> <span style="color:#996600;">&quot;/kommentar&quot;</span> <span style="color:#006600; font-weight:bold;">%&gt;</span></pre></div></div>

<p>Wie immer, wenn mans einmal gesehen hat ist es eine total simple Geschichte, der Trick der uns gefehlt hatte war der Slash im onchange um die komplette URL zu löschen <img src='http://www.drailing.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.drailing.net/index.php/2010/06/restful-redirect-uber-onchange-javascript-event/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Little School Helper &#8211; Zeugnis schreiben leicht gemacht</title>
		<link>http://www.drailing.net/index.php/2010/06/little-school-helper-zeugnis-schreiben-leicht-gemacht/</link>
		<comments>http://www.drailing.net/index.php/2010/06/little-school-helper-zeugnis-schreiben-leicht-gemacht/#comments</comments>
		<pubDate>Sun, 06 Jun 2010 18:28:37 +0000</pubDate>
		<dc:creator>dreiling</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.drailing.net/?p=498</guid>
		<description><![CDATA[Sodale,
nach ca 1 Jahr Freizeitentwicklung, vielen Pausen, einem kompletten Neustart aufgrund fehlender Planung und der Weitsicht im Datenbankdesign, möchte ich nun den &#8220;Little School Helper&#8221; vorstellen.
Die Idee entstand durch meine Mutter: Zuzuschauen wie die heutigen Grundschullehrer Zeugnisse schreiben macht jeden Informatiker traurig. Das werden Wordtemplates auf USB Sticks ausgetauscht um sich im schlimmsten Fall gegenseitig [...]]]></description>
			<content:encoded><![CDATA[<p>Sodale,</p>
<p>nach ca 1 Jahr Freizeitentwicklung, vielen Pausen, einem kompletten Neustart aufgrund fehlender Planung und der Weitsicht im Datenbankdesign, möchte ich nun den &#8220;Little School Helper&#8221; vorstellen.</p>
<p>Die Idee entstand durch meine Mutter: Zuzuschauen wie die heutigen Grundschullehrer Zeugnisse schreiben macht jeden Informatiker traurig. Das werden Wordtemplates auf USB Sticks ausgetauscht um sich im schlimmsten Fall gegenseitig das Geschriebene zu überschreiben oder im Klassensaal zu vergessen.</p>
<p>Es musste also ein System her was zentralisiert die Zeugnisse speichert und jedem, auch den gleichzeitigen Zugriff auf ein Zeugnis, von Zuhause aus ermöglicht. Da kam die Idee: ich will das Zeugnisschreiben für Grundschullehrer vereinfachen! Das Ziel war also gesteckt, nix großes, doch das Vorgenommene gut zu machen war der Anspruch an mich selbst.</p>
<p>Nach einer Version mit der Grundfunktionalität war ich dann 2 Tage bei einem guten Freund (<a href="http://werkvoll.de/">Link</a>)  im Büro um das Design auch entsprechend ansprechend zu bauen. Unschönerweise muss ich mich da die Tage noch mit den ganzen CSS Hacks auseinandersetzen, da der IE zT einfach nicht im Kontext bleibt und ganz andere Parents / Childs anspricht als mein Freund der Firefox&#8230; steht also noch auf der TODO Liste.</p>
<p>Inzwischen wurde der Little School Helper einem kleineren Kreis an Lehrern und Direktoren vorgestellt und noch einige Wünsche / Änderungen realisiert und stelle Ihn nun hier vor um vieleicht noch mehr Feedback von Fachfremden, aber technisch versierterem Publikum zu bekommen.</p>
<p>Die Featureliste ist inzwischen auch um einiges angewachsen, über Statistiken, automatisierte Schuljahreswechsel, eine komplette Rechteverwaltung der Kollegen, bis hin zu PDF Generierung von echten Zeugnis Templates (bisher nur für RLP). Eine Doku ist noch nicht fertig, deshalb ists am einfachsten sich das ganze mal selber anzuschauen:</p>
<p>Eine Testversion gibts <a href="http://lsh.drailing.net/" target="blank">hier</a>, mit Benutzername: <strong>admin</strong> und Passwort: <strong>test</strong> kann man sich anmelden und die komplette Funktionalität testen.</p>
<p><a href="http://lsh.drailing.net/" target="blank"><img src="http://www.drailing.net/wp-content/uploads/2010/06/Zeugnisse_1275848675590.png" alt="" title="Zeugnisse_1275848675590" width="500" height="300" class="aligncenter size-full wp-image-500" /></a></p>
<p>Übrigens: ich suche zur Zeit eine Grundschule die sich den Little School Helper mal genauer anschauen, und vieleicht sogar im produktiven Zeugnisschreiben benutzen/testen möchte. Wer also selbst als lehrendes Organ tätig ist oder jemanden kennt für den es von Interesse sein könnte: meldet euch bitte unter <a href="mailto:littleschoolhelper@drailing.net">littleschoolhelper@drailing.net</a></p>
<p>Wie immer, über Feedback egal welcher Form freue ich mich sehr <img src='http://www.drailing.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Grüße,<br />
Christian</p>
]]></content:encoded>
			<wfw:commentRss>http://www.drailing.net/index.php/2010/06/little-school-helper-zeugnis-schreiben-leicht-gemacht/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Umlautefix für das Adminpanel</title>
		<link>http://www.drailing.net/index.php/2010/05/umlautefix-fur-das-adminpanel/</link>
		<comments>http://www.drailing.net/index.php/2010/05/umlautefix-fur-das-adminpanel/#comments</comments>
		<pubDate>Tue, 11 May 2010 19:42:41 +0000</pubDate>
		<dc:creator>dreiling</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.drailing.net/?p=490</guid>
		<description><![CDATA[So einfach kanns sein, wenn man weiß wies geht  
Um mit meinem Adminpanel auch Umlaute schreiben zu können muss nur eine kleine Zeile (in Zeile 307) eingefügt werden:

306 - $input = $input.&#34;?&#62;&#34;;
307 - $input = utf8_encode&#40;$input&#41;;
308 - fwrite&#40;$datei, $input&#41;;

Den Downloadlink habe ich inzwischen auch im Ursprungspost ersetzt.
]]></description>
			<content:encoded><![CDATA[<p>So einfach kanns sein, wenn man weiß wies geht <img src='http://www.drailing.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Um mit meinem Adminpanel auch Umlaute schreiben zu können muss nur eine kleine Zeile (in Zeile 307) eingefügt werden:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #cc66cc;">306</span> <span style="color: #339933;">-</span> <span style="color: #000088;">$input</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$input</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;?&gt;&quot;</span><span style="color: #339933;">;</span>
<span style="color: #cc66cc;">307</span> <span style="color: #339933;">-</span> <span style="color: #000088;">$input</span> <span style="color: #339933;">=</span> <span style="color: #990000;">utf8_encode</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$input</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #cc66cc;">308</span> <span style="color: #339933;">-</span> <span style="color: #990000;">fwrite</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$datei</span><span style="color: #339933;">,</span> <span style="color: #000088;">$input</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Den <a href='http://www.drailing.net/wp-content/uploads/2010/05/ajaxchat_adminpanel_fix.zip'>Downloadlink</a> habe ich inzwischen auch im Ursprungspost ersetzt.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.drailing.net/index.php/2010/05/umlautefix-fur-das-adminpanel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adminpanel für blueimp AjaxChat</title>
		<link>http://www.drailing.net/index.php/2010/04/adminpanel-fur-blueimp-ajaxchat/</link>
		<comments>http://www.drailing.net/index.php/2010/04/adminpanel-fur-blueimp-ajaxchat/#comments</comments>
		<pubDate>Wed, 28 Apr 2010 22:55:54 +0000</pubDate>
		<dc:creator>dreiling</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.drailing.net/?p=473</guid>
		<description><![CDATA[Hiho,
auf blueimp.net gibts einen Open Source Ajax Chat der auf jedem Webserver mit php und MySql ganz einfach installiert werden kann. Das ist ne super Sache um sich schnell mit mehreren Menschen abzustimmen ohne ICQ Nummern oder Emailadressen austauschen zu müssen. Bei mir kommt er zB für ein Browserspiel zum Einsatz.
Leider ist die Verwaltung noch [...]]]></description>
			<content:encoded><![CDATA[<p>Hiho,</p>
<p>auf <a href="https://blueimp.net/ajax/">blueimp.net</a> gibts einen Open Source Ajax Chat der auf jedem Webserver mit php und MySql ganz einfach installiert werden kann. Das ist ne super Sache um sich schnell mit mehreren Menschen abzustimmen ohne ICQ Nummern oder Emailadressen austauschen zu müssen. Bei mir kommt er zB für ein Browserspiel zum Einsatz.</p>
<p>Leider ist die Verwaltung noch etwas unkonfortabel, alle Benutzer müssen über eine &#8220;users.php&#8221; Datei in ein Array eingepflegt werden. (je nach Konfiguration kann man sich auch ohne Passwort einloggen)</p>
<p>Dazu habe ich mir was kleines einfallen lassen um die Benutzer über eine Datenbanktabelle zu pflegen und ein kleines funktionales Adminpanel gebastelt <img src='http://www.drailing.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Kurze Featureliste:<br />
  <em>* Adminaccount:</em><br />
    &#8211; Benutzer anlegen (auch Moderator)<br />
    &#8211; Benutzer löschen<br />
    &#8211; Passwort für Benutzer zurücksetzen<br />
<em>  * Useraccount</em><br />
    &#8211; eigenes Passwort ändern</p>
<p>Die Idee dahinter ist ganz simpel:<br />
Wir legen alle Benutzer in einer Datenbank ab und schreiben die Datei (users.php), die Benutzer verwaltet bei Änderungen neu.</p>
<p>Um diese Administration zu ermöglichen brauchen wir Schreibrechte auf CHAT_ROOT/lib/data/users.php und müssen eine Benutzertabelle in der Datenbank anlegen:</p>
<p>Im INSERT Statement kann ein beliebiger Adminbenutzer angelegt werden, hier als Standard als Benutzername und Passwort &#8220;admin&#8221;.</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #ff0000;">`ajax_chat_user`</span> <span style="color: #66cc66;">&#40;</span>
  <span style="color: #ff0000;">`id`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">11</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">,</span>
  <span style="color: #ff0000;">`username`</span> text<span style="color: #66cc66;">,</span>
  <span style="color: #ff0000;">`password`</span> text<span style="color: #66cc66;">,</span>
  <span style="color: #ff0000;">`role`</span> text<span style="color: #66cc66;">,</span>
  <span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`id`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> 
&nbsp;
<span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> <span style="color: #ff0000;">`ajax_chat_user`</span> <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'1'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'admin'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'admin'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'AJAX_CHAT_ADMIN'</span><span style="color: #66cc66;">&#41;</span>;</pre></div></div>

<p>In der Datei &#8220;admin.php&#8221; muss dann noch die entsprechende Datenbankverbindung an mehreren Stellen eingetragen werden.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$db</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> mysqli<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'localhost'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'db-user-name'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'db-pw'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'db-name'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Am einfachsten über suchen / ersetzen:<br />
&#8220;db-user-name&#8221; -> eigener Datenbankbenutzer<br />
&#8220;db-pw&#8221; -> zugehöriges Datenbankpasswort<br />
&#8220;db-name&#8221; -> Datenbankname</p>
<p>Falls der Adminbenutzer einen anderen Namen als &#8220;admin&#8221; bekommen hat, müsst ihr in der Datei auch noch an 2 Stellen den entsprechend gewählten Namen eintragen (Zeile 289 und 325), einmal für das schreiben der users.php, und einmal um das evtl versehentliche Löschen zu verhindern.</p>
<p>Die admin.php dannach einfach ins Rootverzeichnis des Chats legen, und über www.url-to-chat.net/admin.php einloggen.</p>
<p>Bekannte Fehler:<br />
- Beim Schreiben der Datei werden Umlaute nicht richtig dargestellt, daher können zur Zeit keine Benutzer/Passwörter mit Umlauten verwendet werden.</p>
<p>Kommentiert ist so gut wie nix, dafür sollte der Code recht sprechend und leicht zu verstehen sein.<br />
Zum Download gehts hier: <a href='http://www.drailing.net/wp-content/uploads/2010/05/ajaxchat_adminpanel_fix.zip'>ajaxchat_adminpanel_fix</a></p>
<p>Über Feedback jeglicher Art würde ich mich natürlich freuen <img src='http://www.drailing.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Grüße,<br />
Christian</p>
<p>Nachtrag:<br />
ACHTUNG!<br />
Falls ihr die kleine Erweiterung benutzen wollt: Es wird die Datei in der die Benutzer zuvor verwaltet wurden gnadenlöse überschrieben!<br />
Bedeutet: Wenn zuvor Benutzer in der Datei gepflegt wurden, sollte man sich ein Backup machen und diese dann über die Oberfläche in die Datenbank eintragen.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.drailing.net/index.php/2010/04/adminpanel-fur-blueimp-ajaxchat/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
