<?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>BOHUCO &#187; Tech</title>
	<atom:link href="http://bohuco.net/blog/category/tech/feed/" rel="self" type="application/rss+xml" />
	<link>http://bohuco.net/blog</link>
	<description>Die Sollbruchstelle im Internet</description>
	<lastBuildDate>Mon, 06 Sep 2010 07:50:36 +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>Inside Analytics Tracking (2) &#8211; Traffic Quellen Who is Who</title>
		<link>http://bohuco.net/blog/2010/09/inside-analytics-tracking-2-quellen-who-is-who/</link>
		<comments>http://bohuco.net/blog/2010/09/inside-analytics-tracking-2-quellen-who-is-who/#comments</comments>
		<pubDate>Mon, 06 Sep 2010 07:50:36 +0000</pubDate>
		<dc:creator>DerFichtl</dc:creator>
				<category><![CDATA[Online Marketing]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Google Analytics]]></category>
		<category><![CDATA[Inside Analytics Tracking]]></category>
		<category><![CDATA[pageTracker]]></category>
		<category><![CDATA[tracking code]]></category>

		<guid isPermaLink="false">http://bohuco.net/blog/?p=1564</guid>
		<description><![CDATA[

var dzone_url = 'http://bohuco.net/blog/2010/09/inside-analytics-tracking-2-quellen-who-is-who/';
var dzone_title = 'Inside Analytics Tracking (2) &#8211; Traffic Quellen Who is Who';
var dzone_blurb = '';
var dzone_style = '1';




Google Analytics kennt vier Traffic Quellen: Suchmaschine, Direkt, Verweisende Seite (Referral Site) und Kampagne &#8230; aber welche Benutzer fallen wo rein?

Kampagnen Tracking
Alle Links bzw. Benutzer die explizit mit Tracking Variablen ausgezeichnet wurden fallen unter [...]]]></description>
			<content:encoded><![CDATA[<div class="dzone_button" style="float: right; margin-left: 10px;">
<script type="text/javascript">
var dzone_url = 'http://bohuco.net/blog/2010/09/inside-analytics-tracking-2-quellen-who-is-who/';
var dzone_title = 'Inside Analytics Tracking (2) &#8211; Traffic Quellen Who is Who';
var dzone_blurb = '';
var dzone_style = '1';
</script>
<script language="javascript" src="http://widgets.dzone.com/links/widgets/zoneit.js"></script>
</div>
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fbohuco.net%252Fblog%252F2010%252F09%252Finside-analytics-tracking-2-quellen-who-is-who%252F%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fbit.ly%2Fb8VepS%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Inside%20Analytics%20Tracking%20%282%29%20-%20Traffic%20Quellen%20Who%20is%20Who%22%20%7D);"></div>
<p>Google Analytics kennt vier Traffic Quellen: Suchmaschine, Direkt, Verweisende Seite (Referral Site) und Kampagne &#8230; aber welche Benutzer fallen wo rein?</p>
<p><span id="more-1564"></span></p>
<h2>Kampagnen Tracking</h2>
<p>Alle Links bzw. Benutzer die explizit mit Tracking Variablen ausgezeichnet wurden fallen unter Kampagnen, dazu zählt aber nicht Google AdWords, dieser Traffic wird zwar als Kampagne getrackt, hat aber eine Ausnahmestellung und wird im Analytics als &#8220;Bezahlter Suchmaschinen Traffic&#8221; angezeigt.</p>
<h2>Suchmaschinen Traffic</h2>
<p>Jetzt wirds interessant &#8230; was ist eigentlich eine Suchmaschine? Wer hat das definiert? Kann man das ändern?</p>
<p>Tja, definiert hat das Google und die Liste kann man auf Google Code einsehen. Auf dieser Liste stehen 40 Seiten, darunter alte Bekannten wie AOL, Yahoo und natürlich alle Google Suchseiten, aber auch sehr spezielle Suchmaschinen von denen man noch nie was gehört hat. Nach welchen Regeln diese Liste erstellt wurde konnte ich nicht herausfinden.</p>
<p>Die gute Nachricht ist das man diese Einteilung selber ändern kann. Mit den pageTracker Methoden _addOrganic() und _addIgnoreRef() kann man explizit Suchmaschinen hinzufügen oder ignorieren. Mit _clearOrganic() kann man sogar die ganze Suchmaschinen-Liste entfernen.</p>
<h2>Verweisende Websites</h2>
<p>Alles was keine Kampagne ist und keine Suchmaschine aber einen Referrer-Header hat, ist eine verweisende Website. Da findet man oft auch Google drin, das sind Benutzer die aus Gmail oder anderen Google Diensten (ausser der Suche) auf die Seite kommen. Zum Beispiel wenn man Newsletter versendet oder ein Google Doc mit Link veröffentlich hat.</p>
<h2>Direkter Traffic</h2>
<p>Tja, alles was jetzt noch übrig bleibt, also alles ohne Referrer-Header fällt unter Direkt Traffic &#8230; ganz einfach :)</p>
<p>Mehr über <a href="http://code.google.com/apis/analytics/docs/tracking/gaTrackingTraffic.html">Traffic Sources</a>, <a href="http://code.google.com/apis/analytics/docs/tracking/gaTrackingTraffic.html#campaignTracking">Kampagnen-Tracking</a> und <a href="http://www.google.com/support/googleanalytics/bin/answer.py?hl=en&amp;answer=55578">Url-Builder Tool</a> auf Google Code.</p>
<p>Weitere Artikel zu Analytics findet ihr unter: <a href="../tag/inside-analytics-tracking/">http://bohuco.net/blog/tag/inside-analytics-tracking/</a></p>

]]></content:encoded>
			<wfw:commentRss>http://bohuco.net/blog/2010/09/inside-analytics-tracking-2-quellen-who-is-who/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Inside Analytics Tracking (1) &#8211; Cookiemonster</title>
		<link>http://bohuco.net/blog/2010/09/inside-analytics-tracking-1-cookiemonster/</link>
		<comments>http://bohuco.net/blog/2010/09/inside-analytics-tracking-1-cookiemonster/#comments</comments>
		<pubDate>Thu, 02 Sep 2010 19:48:57 +0000</pubDate>
		<dc:creator>DerFichtl</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[analytics tracking]]></category>
		<category><![CDATA[Cookies]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Google Analytics]]></category>
		<category><![CDATA[Inside Analytics Tracking]]></category>
		<category><![CDATA[pageTracker]]></category>
		<category><![CDATA[tracking code]]></category>
		<category><![CDATA[Website Tracking]]></category>

		<guid isPermaLink="false">http://bohuco.net/blog/?p=1551</guid>
		<description><![CDATA[

var dzone_url = 'http://bohuco.net/blog/2010/09/inside-analytics-tracking-1-cookiemonster/';
var dzone_title = 'Inside Analytics Tracking (1) &#8211; Cookiemonster';
var dzone_blurb = '';
var dzone_style = '1';




Google Analytics ist ein wahres Monster wenns um die Anzahl der Cookies geht, aber wozu sind alle diese Cookies nötig und was kann man eigentlich selber für Einstellungen vornehmen &#8230;

&#160;
Unique User Tracking
Das __utma Cookie identifiziert einen Client bzw. [...]]]></description>
			<content:encoded><![CDATA[<div class="dzone_button" style="float: right; margin-left: 10px;">
<script type="text/javascript">
var dzone_url = 'http://bohuco.net/blog/2010/09/inside-analytics-tracking-1-cookiemonster/';
var dzone_title = 'Inside Analytics Tracking (1) &#8211; Cookiemonster';
var dzone_blurb = '';
var dzone_style = '1';
</script>
<script language="javascript" src="http://widgets.dzone.com/links/widgets/zoneit.js"></script>
</div>
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fbohuco.net%252Fblog%252F2010%252F09%252Finside-analytics-tracking-1-cookiemonster%252F%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fbit.ly%2F9DMwGk%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Inside%20Analytics%20Tracking%20%281%29%20-%20Cookiemonster%22%20%7D);"></div>
<p><a href="http://bohuco.net/blog/wp-content/uploads/2010/09/cookiemonster.jpg"><img class="alignleft size-thumbnail wp-image-1567" style="margin: 10px;" title="cookiemonster" src="http://bohuco.net/blog/wp-content/uploads/2010/09/cookiemonster-150x150.jpg" alt="" width="90" height="90" /></a>Google Analytics ist ein wahres Monster wenns um die Anzahl der Cookies geht, aber wozu sind alle diese Cookies nötig und was kann man eigentlich selber für Einstellungen vornehmen &#8230;</p>
<p><span id="more-1551"></span></p>
<p>&nbsp;</p>
<h2>Unique User Tracking</h2>
<p>Das <strong>__utma</strong> Cookie identifiziert einen Client bzw. Benutzer, dieses Cookie läuft erst nach zwei Jahren ab und diese Zeit kann auch nicht geändert werden.</p>
<h2>Session Tracking</h2>
<p>Mit <strong>__utmb, __utmc</strong> kann Google einzelne User-Sessions messen, also Visits von ein und demselben Benutzer. Die Cookies laufen nach 30 Minuten ab oder wenn der Browser geschlossen wird. Wenn eine Session länger oder kürzer dauern soll kann man das mit der pageTracker Methode _setSessionCookieTimeout ändern.</p>
<p><code>pageTracker._setSessionCookieTimeout(1800000); // Millisekunden</code></p>
<h2>Traffic Source Tracking</h2>
<p>Im Cookie <strong>__utmz</strong> steht drin woher der Benutzer gekommen ist, also die Traffic Source bzw. Referral Site. Dieses Cookie gilt 6 Monate, wem das zu lange ist weil die Conversions viel schneller passieren kann das mit der Methode _setCampaignCookieTimeout() ändern.</p>
<p><code>pageTracker._setCampaignCookieTimeout(15768000000); //Millisekunden</code></p>
<h2>User Var Tracking</h2>
<p>Wenn dem pageTracker Daten mit <strong>_setVar()</strong> übergiben werden dann findet diese Daten im Cookie <strong>__utmv</strong>.</p>
<p>Weitere Infos über die <a href="http://code.google.com/apis/analytics/docs/concepts/gaConceptsCookies.html">Analytics Cookies</a>, das <a href="http://code.google.com/apis/analytics/docs/gaJS/gaJSApiBasicConfiguration.html">pageTracker API</a> und <a href="http://code.google.com/apis/analytics/docs/gaJS/gaJSApiCampaignTracking.html">Campaign Tracking</a> mit Analytics.</p>
<p>Nächstes Mal in <a href="http://bohuco.net/blog/tag/inside-analytics-tracking/">Inside Analytics Tracking</a>: Quellen Who is Who &#8211; Suchmaschine vs. Verweisende Seite. Weitere Artikel zu Analytics findet ihr unter: <a href="http://bohuco.net/blog/tag/inside-analytics-tracking/">http://bohuco.net/blog/tag/inside-analytics-tracking/</a></p>

]]></content:encoded>
			<wfw:commentRss>http://bohuco.net/blog/2010/09/inside-analytics-tracking-1-cookiemonster/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Multiple Sign-in aktiv</title>
		<link>http://bohuco.net/blog/2010/08/google-multiple-sign-in-aktiv/</link>
		<comments>http://bohuco.net/blog/2010/08/google-multiple-sign-in-aktiv/#comments</comments>
		<pubDate>Tue, 03 Aug 2010 14:48:17 +0000</pubDate>
		<dc:creator>DerFichtl</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Web Entwicklung]]></category>
		<category><![CDATA[Account]]></category>
		<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://bohuco.net/blog/?p=1519</guid>
		<description><![CDATA[

var dzone_url = 'http://bohuco.net/blog/2010/08/google-multiple-sign-in-aktiv/';
var dzone_title = 'Google Multiple Sign-in aktiv';
var dzone_blurb = '';
var dzone_style = '1';




Google hat jetzt das angekündigte Multiple Sign-In aktiviert. Endlich kann man mit unterschiedlichen Benutzern auf verschiedenen Google Diensten angemeldet sein ohne das man mehrere Browser geöffnet haben muß. Multi Sign-In funktioniert derzeit nur mit Gmail, Google Docs, Google Reader, Google [...]]]></description>
			<content:encoded><![CDATA[<div class="dzone_button" style="float: right; margin-left: 10px;">
<script type="text/javascript">
var dzone_url = 'http://bohuco.net/blog/2010/08/google-multiple-sign-in-aktiv/';
var dzone_title = 'Google Multiple Sign-in aktiv';
var dzone_blurb = '';
var dzone_style = '1';
</script>
<script language="javascript" src="http://widgets.dzone.com/links/widgets/zoneit.js"></script>
</div>
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fbohuco.net%252Fblog%252F2010%252F08%252Fgoogle-multiple-sign-in-aktiv%252F%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fbit.ly%2FbGPoS2%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Google%20Multiple%20Sign-in%20aktiv%22%20%7D);"></div>
<p>Google hat jetzt das <a href="http://googlesystem.blogspot.com/2010/07/google-tests-multiple-accounts-sign-in.html">angekündigte Multiple Sign-In</a> aktiviert. Endlich kann man mit unterschiedlichen Benutzern auf verschiedenen Google Diensten angemeldet sein ohne das man mehrere Browser geöffnet haben muß. Multi Sign-In funktioniert derzeit nur mit Gmail, Google Docs, Google Reader, Google Sites, Google Calendar und Google Code, weitere Dienste können folgen.</p>
<p>Das neue Feature muss auf der <a href="https://www.google.com/accounts/MultipleSessions">Account-Seite</a> aktiviert werden und ist noch nicht überall aktiv.</p>
<p><a href="http://googlesystem.blogspot.com/2010/08/google-multiple-sign-in-now-available.html">Multi Sign-in available</a></p>

]]></content:encoded>
			<wfw:commentRss>http://bohuco.net/blog/2010/08/google-multiple-sign-in-aktiv/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP WebSocket Server &#8211; The Handshake</title>
		<link>http://bohuco.net/blog/2010/07/php-websocket-server-the-handshake/</link>
		<comments>http://bohuco.net/blog/2010/07/php-websocket-server-the-handshake/#comments</comments>
		<pubDate>Thu, 22 Jul 2010 14:10:30 +0000</pubDate>
		<dc:creator>DerFichtl</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Class]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP5]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Websockets]]></category>

		<guid isPermaLink="false">http://bohuco.net/blog/?p=1451</guid>
		<description><![CDATA[

var dzone_url = 'http://bohuco.net/blog/2010/07/php-websocket-server-the-handshake/';
var dzone_title = 'PHP WebSocket Server &#8211; The Handshake';
var dzone_blurb = '';
var dzone_style = '1';




WebSockets are the new cool boys in town, but the specs are in a very early state and so it&#8217;s hard to keep up to date with the different browser implementations &#8230;

Current stable browser-versions, like Chrome 5, only [...]]]></description>
			<content:encoded><![CDATA[<div class="dzone_button" style="float: right; margin-left: 10px;">
<script type="text/javascript">
var dzone_url = 'http://bohuco.net/blog/2010/07/php-websocket-server-the-handshake/';
var dzone_title = 'PHP WebSocket Server &#8211; The Handshake';
var dzone_blurb = '';
var dzone_style = '1';
</script>
<script language="javascript" src="http://widgets.dzone.com/links/widgets/zoneit.js"></script>
</div>
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fbohuco.net%252Fblog%252F2010%252F07%252Fphp-websocket-server-the-handshake%252F%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fbit.ly%2F9JDmNz%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22PHP%20WebSocket%20Server%20-%20The%20Handshake%22%20%7D);"></div>
<p>WebSockets are the new cool boys in town, but the specs are in a very early state and so it&#8217;s hard to keep up to date with the different browser implementations &#8230;</p>
<p><span id="more-1451"></span></p>
<p>Current stable browser-versions, like Chrome 5, only supports the old specification (<a href="http://tools.ietf.org/html/draft-hixie-thewebsocketprotocol-75">aka -75</a>), Firefox 3.6 don&#8217;t know the WebSockets object at all. The new Beta-/Dev-versions of Firefox and Chrome now supports the new <a href="http://tools.ietf.org/html/draft-hixie-thewebsocketprotocol-76">spec-version -76</a>. There is one major change in the new draft, the handshake is much more complicated now &#8230;</p>
<p>The Browsers now sends some security strings and the WebSocket server have to implement a handling for this new headers (Sec-WebSocket-Key1 and Sec-WebSocket-Key2), and must return a security-hash:</p>
<blockquote><p>To prove that the handshake was received, the server has to take three pieces of information and combine them to form a response.  The first two pieces of information come from the |Sec-WebSocket-Key1| and |Sec-WebSocket-Key2| fields in the client handshake &#8230; The third piece of information is given after the fields, in the last eight bytes of the handshake, expressed here as they would be seen if interpreted as ASCII</p></blockquote>
<p>Here is the PHP Method for handling the new security hashes:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">function</span> getHandshakeSecurityKey<span style="color: #009900;">&#40;</span><span style="color: #000088;">$key1</span><span style="color: #339933;">,</span> <span style="color: #000088;">$key2</span><span style="color: #339933;">,</span> <span style="color: #000088;">$code</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #b1b100;">return</span> <span style="color: #990000;">md5</span><span style="color: #009900;">&#40;</span>
            <span style="color: #990000;">pack</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'N'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">handleSecurityKey</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$key1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span>
            <span style="color: #990000;">pack</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'N'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">handleSecurityKey</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$key2</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span>
            <span style="color: #000088;">$code</span><span style="color: #339933;">,</span>
            <span style="color: #009900; font-weight: bold;">true</span>
        <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">function</span> handleSecurityKey<span style="color: #009900;">&#40;</span><span style="color: #000088;">$key</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    	<span style="color: #990000;">preg_match_all</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/[0-9]/'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$key</span><span style="color: #339933;">,</span> <span style="color: #000088;">$number</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    	<span style="color: #990000;">preg_match_all</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/ /'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$key</span><span style="color: #339933;">,</span> <span style="color: #000088;">$space</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$number</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #000088;">$space</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    		<span style="color: #b1b100;">return</span> <span style="color: #990000;">implode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">''</span><span style="color: #339933;">,</span> <span style="color: #000088;">$number</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">/</span> <span style="color: #990000;">count</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$space</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    	<span style="color: #009900;">&#125;</span>
    	<span style="color: #b1b100;">return</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span></pre></div></div>

<p>For the full source code of a PHP5 WebSockets server <a href="http://bohuco.net/dev/websocket/?source=WebSocketServer.php">view the source</a> of my  <a href="http://bohuco.net/dev/websocket/?source=WebSocketServer.php">WebSocketServer.php</a> Class. If you want to see it in action, try my <a href="http://bohuco.net/dev/websocket/">WebSockets example</a> with Firefox 4 Beta or Chrome/Safari 5.</p>
<p>The original code comes from <a href="http://webreflection.blogspot.com/2010/06/websocket-handshake-76-simplified.html">Web Reflection Blog</a> by Andrea Giammarchi.</p>

]]></content:encoded>
			<wfw:commentRss>http://bohuco.net/blog/2010/07/php-websocket-server-the-handshake/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTML5 WebSockets Example</title>
		<link>http://bohuco.net/blog/2010/07/html5-websockets-example/</link>
		<comments>http://bohuco.net/blog/2010/07/html5-websockets-example/#comments</comments>
		<pubDate>Sun, 11 Jul 2010 18:07:59 +0000</pubDate>
		<dc:creator>DerFichtl</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Web Entwicklung]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Websockets]]></category>

		<guid isPermaLink="false">http://bohuco.net/blog/?p=1445</guid>
		<description><![CDATA[

var dzone_url = 'http://bohuco.net/blog/2010/07/html5-websockets-example/';
var dzone_title = 'HTML5 WebSockets Example';
var dzone_blurb = '';
var dzone_style = '1';




HTML5 WebSockets makes it possible to open a persistent connection to a server within a web-browser via javascript.


    UPDATE: Mastering the new Spec-76 WebSockets handshake with PHP.

Websockets works already in the latest Webkit-browsers like Safari 5 and Chrome [...]]]></description>
			<content:encoded><![CDATA[<div class="dzone_button" style="float: right; margin-left: 10px;">
<script type="text/javascript">
var dzone_url = 'http://bohuco.net/blog/2010/07/html5-websockets-example/';
var dzone_title = 'HTML5 WebSockets Example';
var dzone_blurb = '';
var dzone_style = '1';
</script>
<script language="javascript" src="http://widgets.dzone.com/links/widgets/zoneit.js"></script>
</div>
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fbohuco.net%252Fblog%252F2010%252F07%252Fhtml5-websockets-example%252F%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fbit.ly%2F9YNo7l%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22HTML5%20WebSockets%20Example%22%20%7D);"></div>
<p>HTML5 WebSockets makes it possible to open a persistent connection to a server within a web-browser via javascript.</p>
<p><span id="more-1445"></span></p>
<p style="font-weight:bold; border-top:1px dashed black; padding:20px; margin:40px 20px; border-bottom:1px dashed black;">
    UPDATE: Mastering the new <a href="http://bohuco.net/blog/2010/07/html5-websockets-example/">Spec-76 WebSockets handshake with PHP</a>.
</p>
<p>Websockets works already in the latest Webkit-browsers like Safari 5 and Chrome 5. Firefox 4 Beta 1 knows the Websocket-Object but it can&#8217;t open the connection :(</p>
<p>My <a href="http://bohuco.net/dev/websocket/">Websocket test script</a> sends the current mouse position via socket connection to the server and then receives all positions of all current open sockets and prints them to the browser-window. In other words, you can see the mouse cursors of the other users on the page.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> socket<span style="color: #339933;">;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> init<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #003366; font-weight: bold;">var</span> host <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;ws://84.38.67.247:8080/dev/websocket/server.php&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
		socket <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> WebSocket<span style="color: #009900;">&#40;</span>host<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		socket.<span style="color: #660066;">onopen</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>msg<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span> <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
		socket.<span style="color: #660066;">onmessage</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>msg<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			<span style="color: #000066; font-weight: bold;">eval</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'var data = '</span> <span style="color: #339933;">+</span> msg.<span style="color: #660066;">data</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">';'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span>userId <span style="color: #000066; font-weight: bold;">in</span> data<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>data<span style="color: #009900;">&#91;</span>userId<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">position</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
					<span style="color: #003366; font-weight: bold;">var</span> pos <span style="color: #339933;">=</span> data<span style="color: #009900;">&#91;</span>userId<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">position</span>.<span style="color: #660066;">split</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">','</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					<span style="color: #003366; font-weight: bold;">var</span> color <span style="color: #339933;">=</span> data<span style="color: #009900;">&#91;</span>userId<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">color</span><span style="color: #339933;">;</span>
					render<span style="color: #009900;">&#40;</span>userId<span style="color: #339933;">,</span> pos<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> pos<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> color<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span>
			<span style="color: #009900;">&#125;</span>
			dump<span style="color: #009900;">&#40;</span>data<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
		socket.<span style="color: #660066;">onclose</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>msg<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span> <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">catch</span><span style="color: #009900;">&#40;</span>ex<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span> console.<span style="color: #660066;">log</span><span style="color: #009900;">&#40;</span>ex<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span>
&nbsp;
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'body'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">bind</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'mousemove'</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>evt<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		send<span style="color: #009900;">&#40;</span>evt.<span style="color: #660066;">clientX</span><span style="color: #339933;">,</span> evt.<span style="color: #660066;">clientY</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> render<span style="color: #009900;">&#40;</span>u<span style="color: #339933;">,</span> x<span style="color: #339933;">,</span> y<span style="color: #339933;">,</span> c<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#'</span><span style="color: #339933;">+</span>u<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">length</span> <span style="color: #339933;">==</span> <span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'
&nbsp;
&nbsp;
'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">appendTo</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'body'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#'</span><span style="color: #339933;">+</span>u<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'left'</span><span style="color: #339933;">,</span> x<span style="color: #339933;">+</span><span style="color: #3366CC;">'px'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#'</span><span style="color: #339933;">+</span>u<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'top'</span><span style="color: #339933;">,</span> y<span style="color: #339933;">+</span><span style="color: #3366CC;">'px'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#'</span><span style="color: #339933;">+</span>u<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'background'</span><span style="color: #339933;">,</span> c<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> send<span style="color: #009900;">&#40;</span>x<span style="color: #339933;">,</span>y<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #003366; font-weight: bold;">var</span> msg <span style="color: #339933;">=</span> x <span style="color: #339933;">+</span> <span style="color: #3366CC;">','</span> <span style="color: #339933;">+</span> y<span style="color: #339933;">;</span>
	socket.<span style="color: #660066;">send</span><span style="color: #009900;">&#40;</span>msg<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>On the server side i use a PHP5 script. I have written my own server-class but it&#8217;s based on the work of the <a href="http://code.google.com/p/phpwebsocket/">phpwebsocket</a> project. The server.php instantiate the WebSocketServer object and contains the callback function.</p>
<p><a href="http://bohuco.net/dev/websocket/">http://bohuco.net/dev/websocket/</a></p>
<p>Source Codes:<br />
<a href="http://bohuco.net/dev/websocket/?source=WebSocketServer.php">WebSocketServer.php</a><br />
<a href="http://bohuco.net/dev/websocket/?source=server.php">server.php</a></p>

]]></content:encoded>
			<wfw:commentRss>http://bohuco.net/blog/2010/07/html5-websockets-example/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Wo das Web geboren wurde &#8230;</title>
		<link>http://bohuco.net/blog/2010/07/wo-das-web-geboren-wurde/</link>
		<comments>http://bohuco.net/blog/2010/07/wo-das-web-geboren-wurde/#comments</comments>
		<pubDate>Fri, 09 Jul 2010 19:09:31 +0000</pubDate>
		<dc:creator>DerFichtl</dc:creator>
				<category><![CDATA[Fun]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[CERN]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Tim Berners Lee]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://bohuco.net/blog/?p=1439</guid>
		<description><![CDATA[

var dzone_url = 'http://bohuco.net/blog/2010/07/wo-das-web-geboren-wurde/';
var dzone_title = 'Wo das Web geboren wurde &#8230;';
var dzone_blurb = '';
var dzone_style = '1';




Ein Typ namens David Galbraith hat im CERN nach dem Geburtsort des Webs gesucht und ihn gefunden (zumindest fast). Ein unscheinbarer Gang in einem unscheinbaren Gebäude mit einer kleinen Tafel an der Wand, dort soll Berners Lee das [...]]]></description>
			<content:encoded><![CDATA[<div class="dzone_button" style="float: right; margin-left: 10px;">
<script type="text/javascript">
var dzone_url = 'http://bohuco.net/blog/2010/07/wo-das-web-geboren-wurde/';
var dzone_title = 'Wo das Web geboren wurde &#8230;';
var dzone_blurb = '';
var dzone_style = '1';
</script>
<script language="javascript" src="http://widgets.dzone.com/links/widgets/zoneit.js"></script>
</div>
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fbohuco.net%252Fblog%252F2010%252F07%252Fwo-das-web-geboren-wurde%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Wo%20das%20Web%20geboren%20wurde%20...%22%20%7D);"></div>
<p><a href="http://bohuco.net/blog/wp-content/uploads/2010/07/Bildschirmfoto-2010-07-09-um-20.57.47.png"><img class="alignright size-medium wp-image-1440" title="Bildschirmfoto 2010-07-09 um 20.57.47" src="http://bohuco.net/blog/wp-content/uploads/2010/07/Bildschirmfoto-2010-07-09-um-20.57.47-300x205.png" alt="" width="180" height="123" /></a>Ein Typ namens <a href="http://davidgalbraith.org/uncategorized/the-exact-location-where-the-web-was-invented/2343/">David Galbraith</a> hat im CERN nach dem Geburtsort des Webs gesucht und ihn gefunden (zumindest fast). Ein unscheinbarer Gang in einem unscheinbaren Gebäude mit einer kleinen Tafel an der Wand, dort soll Berners Lee das WWW erfunden haben.</p>
<p><span id="more-1439"></span></p>
<p>Auf <a href="http://www.oobject.com/category/oobject-search-for-web-birthplace-at-cern">Oobject</a> hat Galbraith einige Fotos gepostet, ausserdem hat er sich via E-Mail den genauen Geburtsort nochmal von Tim Berners Lee bestätigen lassen. Das Mail-Interview kann man <a href="http://davidgalbraith.org/uncategorized/the-exact-location-where-the-web-was-invented/2343/">im Blog von David</a> nachlesen. Anscheinend hängt die Tafel im falschen Gebäude, denn Berners Lee will den Prototypen im Gebäude 31 und nicht im Gebäude 2 entwickelt haben :) &#8230; aber auch von dort gibt es einige <a href="http://www.23hq.com/mygdal/album/1652579?page=2">Bilder im Web</a>.</p>
<p style="text-align: center;"><a href="http://bohuco.net/blog/wp-content/uploads/2010/07/Bildschirmfoto-2010-07-09-um-21.05.42.png"><img class="size-medium wp-image-1441 aligncenter" title="Bildschirmfoto 2010-07-09 um 21.05.42" src="http://bohuco.net/blog/wp-content/uploads/2010/07/Bildschirmfoto-2010-07-09-um-21.05.42-300x210.png" alt="" width="300" height="210" /></a></p>
<p>via <a href="http://gizmodo.com/5583288/this-is-where-the-web-was-born">Gizmodo</a></p>

]]></content:encoded>
			<wfw:commentRss>http://bohuco.net/blog/2010/07/wo-das-web-geboren-wurde/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>SproutCore Erfinder eröffnet HTML5-Firma</title>
		<link>http://bohuco.net/blog/2010/07/sproutcore-erfinder-eroffnet-html5-firma/</link>
		<comments>http://bohuco.net/blog/2010/07/sproutcore-erfinder-eroffnet-html5-firma/#comments</comments>
		<pubDate>Fri, 09 Jul 2010 05:39:52 +0000</pubDate>
		<dc:creator>DerFichtl</dc:creator>
				<category><![CDATA[Mobile]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Web Entwicklung]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[MobileMe]]></category>
		<category><![CDATA[SproutCore]]></category>

		<guid isPermaLink="false">http://bohuco.net/blog/?p=1428</guid>
		<description><![CDATA[

var dzone_url = 'http://bohuco.net/blog/2010/07/sproutcore-erfinder-eroffnet-html5-firma/';
var dzone_title = 'SproutCore Erfinder eröffnet HTML5-Firma';
var dzone_blurb = '';
var dzone_style = '1';




Der SproutCore Erfinder Charles Jolley verlässt Apple und gründet ein Unternehmen das sich mit der Entwicklung neuer Rich-Web Applikationen auf HTML5-basis beschäftigen wird.

Jolley war unter anderem für die MobileMe Plattform zuständig und hat für Apple Javascript Frameworks entwickelt. Die neue [...]]]></description>
			<content:encoded><![CDATA[<div class="dzone_button" style="float: right; margin-left: 10px;">
<script type="text/javascript">
var dzone_url = 'http://bohuco.net/blog/2010/07/sproutcore-erfinder-eroffnet-html5-firma/';
var dzone_title = 'SproutCore Erfinder eröffnet HTML5-Firma';
var dzone_blurb = '';
var dzone_style = '1';
</script>
<script language="javascript" src="http://widgets.dzone.com/links/widgets/zoneit.js"></script>
</div>
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fbohuco.net%252Fblog%252F2010%252F07%252Fsproutcore-erfinder-eroffnet-html5-firma%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22SproutCore%20Erfinder%20er%C3%B6ffnet%20HTML5-Firma%22%20%7D);"></div>
<p><a href="http://bohuco.net/blog/wp-content/uploads/2010/07/Bildschirmfoto-2010-07-09-um-07.37.33.png"><img class="alignright size-full wp-image-1429" title="Bildschirmfoto 2010-07-09 um 07.37.33" src="http://bohuco.net/blog/wp-content/uploads/2010/07/Bildschirmfoto-2010-07-09-um-07.37.33.png" alt="" width="118" height="135" /></a>Der <a href="http://www.sproutcore.com/">SproutCore</a> Erfinder Charles Jolley verlässt <a href="http://www.apple.com">Apple</a> und gründet ein Unternehmen das sich mit der Entwicklung neuer Rich-Web Applikationen auf HTML5-basis beschäftigen wird.</p>
<p><span id="more-1428"></span></p>
<p>Jolley war unter anderem für die MobileMe Plattform zuständig und hat für Apple Javascript Frameworks entwickelt. Die neue Firma wird Strobe Digital Publishing heißen und Jolley beschreib sie so:</p>
<blockquote><p>Strobe Digital Publishing is a better way to put content onto the iPad  and other mobile touch devices.  Based on a blend of HTML5 and native  technology, Strobe content applications offer a great native-style  reading experience with the ability to deep link and share content to  drive traffic.</p></blockquote>
<p>SproutCore ist ein HTML/Javascript Framework das diverse Komponenten für Rich-Web Applikationen zur Verfügung stellt &#8211; <a href="http://demo.sproutcore.com/sample_controls/">Demo</a>.</p>
<p>via <a href="http://news.cnet.com/8301-30685_3-20009681-264.html?part=rss&amp;subj=news&amp;tag=2547-1_3-0-20">cnet</a>, <a href="http://www.maclife.de/ehemaliger-apple-entwickler-gruendet-html5-unternehmen">maclife.de</a></p>

]]></content:encoded>
			<wfw:commentRss>http://bohuco.net/blog/2010/07/sproutcore-erfinder-eroffnet-html5-firma/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Firefox 4.0 Beta: HTML5, WebM und Websockets</title>
		<link>http://bohuco.net/blog/2010/07/firefox-4-0-beta-html5-webm-und-websockets/</link>
		<comments>http://bohuco.net/blog/2010/07/firefox-4-0-beta-html5-webm-und-websockets/#comments</comments>
		<pubDate>Tue, 06 Jul 2010 23:16:56 +0000</pubDate>
		<dc:creator>DerFichtl</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Beta]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[mathML]]></category>
		<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[WebM]]></category>
		<category><![CDATA[Websockets]]></category>

		<guid isPermaLink="false">http://bohuco.net/blog/?p=1420</guid>
		<description><![CDATA[

var dzone_url = 'http://bohuco.net/blog/2010/07/firefox-4-0-beta-html5-webm-und-websockets/';
var dzone_title = 'Firefox 4.0 Beta: HTML5, WebM und Websockets';
var dzone_blurb = '';
var dzone_style = '1';




Die erste Beta-Version von Firefox 4.0 bringt einige neue geile Technologien für Web-Entwickler.  Via WebM und HTML5 können jetzt HD-Videos ohne zusätzliches Plugin im Browser angezeigt werden. Der neue HTML5 Parser wurde schneller gemacht und kann jetzt [...]]]></description>
			<content:encoded><![CDATA[<div class="dzone_button" style="float: right; margin-left: 10px;">
<script type="text/javascript">
var dzone_url = 'http://bohuco.net/blog/2010/07/firefox-4-0-beta-html5-webm-und-websockets/';
var dzone_title = 'Firefox 4.0 Beta: HTML5, WebM und Websockets';
var dzone_blurb = '';
var dzone_style = '1';
</script>
<script language="javascript" src="http://widgets.dzone.com/links/widgets/zoneit.js"></script>
</div>
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fbohuco.net%252Fblog%252F2010%252F07%252Ffirefox-4-0-beta-html5-webm-und-websockets%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Firefox%204.0%20Beta%3A%20HTML5%2C%20WebM%20und%20Websockets%22%20%7D);"></div>
<p>Die erste Beta-Version von Firefox 4.0 bringt einige neue geile Technologien für Web-Entwickler.  Via <a href="http://hacks.mozilla.org/2010/05/firefox-youtube-and-webm/">WebM und HTML5</a> können jetzt HD-Videos ohne zusätzliches Plugin im Browser angezeigt werden. Der neue<a href="http://hacks.mozilla.org/2010/05/firefox-4-the-html5-parser-inline-svg-speed-and-more/"> HTML5 Parser</a> wurde schneller gemacht und kann jetzt Inline-SVG und MathML.</p>
<p><span id="more-1420"></span></p>
<p>Mit <a href="http://hacks.mozilla.org/2010/04/websockets-in-firefox/">Websockets </a>lassen sich persistente Verbindungen zum Browser öffnen, das geschieht mit einem einfachen Javascript API. Im Chrome sind die Websockets auch schon implementiert, nur leider ist der Standard noch nicht ganz fertig darum wirds wohl auch noch etwas dauern bis die Funktion endgültig freigeschaltet wird.</p>
<p>Mit <a href="http://hacks.mozilla.org/2010/06/comparing-indexeddb-and-webdatabase/">IndexedDB </a>kann via Javascript eine lokale SQL Browser-Datenbank verwendet werden. Mit typischen SQL Statements können dann beim User lokal Daten abgelegt und gelesen werden.</p>
<p>Die Beta ist am 6. Juli erschienen und kann auf<a href="http://www.mozilla.com/en-US/firefox/beta/"> mozilla.com</a> heruntergeladen werden.</p>
<p><a href="http://blog.mozilla.com/blog/2010/07/06/firefox-4-beta-1-tell-us-what-you-think/">Mozilla Blog</a></p>

]]></content:encoded>
			<wfw:commentRss>http://bohuco.net/blog/2010/07/firefox-4-0-beta-html5-webm-und-websockets/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>6 Simple Tricks to Make Your Page More Accessible (WAI, WCAG)</title>
		<link>http://bohuco.net/blog/2010/07/6-simple-tricks-to-make-your-page-more-accessible-wai-wcag/</link>
		<comments>http://bohuco.net/blog/2010/07/6-simple-tricks-to-make-your-page-more-accessible-wai-wcag/#comments</comments>
		<pubDate>Sat, 03 Jul 2010 12:20:40 +0000</pubDate>
		<dc:creator>DerFichtl</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[templating]]></category>
		<category><![CDATA[wai]]></category>
		<category><![CDATA[wcag]]></category>

		<guid isPermaLink="false">http://bohuco.net/blog/?p=1415</guid>
		<description><![CDATA[

var dzone_url = 'http://bohuco.net/blog/2010/07/6-simple-tricks-to-make-your-page-more-accessible-wai-wcag/';
var dzone_title = '6 Simple Tricks to Make Your Page More Accessible (WAI, WCAG)';
var dzone_blurb = '';
var dzone_style = '1';




Screen readers are really cool pieces of software, but as a web-developer you should help the screen reader to handle your webpages better for the blind users. Besides you add more text content [...]]]></description>
			<content:encoded><![CDATA[<div class="dzone_button" style="float: right; margin-left: 10px;">
<script type="text/javascript">
var dzone_url = 'http://bohuco.net/blog/2010/07/6-simple-tricks-to-make-your-page-more-accessible-wai-wcag/';
var dzone_title = '6 Simple Tricks to Make Your Page More Accessible (WAI, WCAG)';
var dzone_blurb = '';
var dzone_style = '1';
</script>
<script language="javascript" src="http://widgets.dzone.com/links/widgets/zoneit.js"></script>
</div>
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fbohuco.net%252Fblog%252F2010%252F07%252F6-simple-tricks-to-make-your-page-more-accessible-wai-wcag%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%226%20Simple%20Tricks%20to%20Make%20Your%20Page%20More%20Accessible%20%28WAI%2C%20WCAG%29%22%20%7D);"></div>
<p>Screen readers are really cool pieces of software, but as a web-developer you should help the screen reader to handle your webpages better for the blind users. Besides you add more text content to your pages, and search engines loves text content.<br />
<span id="more-1415"></span></p>
<p>Here some really simple tricks:</p>
<p><strong>&lt;map title=&#8221;My favorite links&#8221;&gt;<br />
</strong>The &lt;map&gt; tag is not only for imagemaps, you should use it to group link-lists. In the title-attribute you have to write a description for the elements within the map. Screen readers can now readout the description, so blind people can decide if they want hear the list.</p>
<p><a href="http://www.w3.org/TR/WCAG20-TECHS/html.html#H50">WCAG Techniques &#8211; Link Blocks</a></p>
<p><strong><br />
&lt;abbr title=&#8221;What the fuck&#8221;&gt;WTF&lt;/abbr&gt;</strong><br />
With the &lt;abbr&gt; tag you can markup abbreviations for screen readers, maybe search engines can use this additional data too.</p>
<p><a href="http://www.w3.org/TR/WCAG20-TECHS/html.html#H28">WCAG Techniques &#8211; Abbreviations</a></p>
<p><strong>&lt;hr /&gt;</strong><br />
Use the oldschool horizontal ruler for your document structure, you can style it with css or hide it from non-blind users. Screen readers use it to tell users if there is a new content block.</p>
<p><strong>Skip Links</strong><br />
With a &#8220;Skip to content&#8221;-Link, blind users can fast jump to the main content section. If you don&#8217;t provide such links screen readers must read always the main/sub-menu of your pages. You can hide the skip-links with css.</p>
<p><strong>accesskey=&#8221;9&#8243;﻿</strong><br />
Provide access key attribute, so blind users can faster navigate through your pages. You should add an access key to every main-menu point.</p>

]]></content:encoded>
			<wfw:commentRss>http://bohuco.net/blog/2010/07/6-simple-tricks-to-make-your-page-more-accessible-wai-wcag/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The one and only method to remove multiple/double slashes from URLs (apache, mod_rewrite)</title>
		<link>http://bohuco.net/blog/2010/05/the-one-and-only-method-to-remove-multipledouble-slashes-from-urls-apache-mod_rewrite/</link>
		<comments>http://bohuco.net/blog/2010/05/the-one-and-only-method-to-remove-multipledouble-slashes-from-urls-apache-mod_rewrite/#comments</comments>
		<pubDate>Wed, 26 May 2010 06:32:52 +0000</pubDate>
		<dc:creator>DerFichtl</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[mod_rewrite]]></category>
		<category><![CDATA[slashes]]></category>
		<category><![CDATA[url]]></category>

		<guid isPermaLink="false">http://bohuco.net/blog/?p=1412</guid>
		<description><![CDATA[

var dzone_url = 'http://bohuco.net/blog/2010/05/the-one-and-only-method-to-remove-multipledouble-slashes-from-urls-apache-mod_rewrite/';
var dzone_title = 'The one and only method to remove multiple/double slashes from URLs (apache, mod_rewrite)';
var dzone_blurb = '';
var dzone_style = '1';




That&#8217;s the solution that worked for me &#8230;

# remove multiple slashes
RewriteCond %{REQUEST_URI} ^(.*)//(.*)$ [NC]
RewriteRule . %1/%2 [R=301,L]
# &#8230; within URL-path
RewriteRule ^(([^/]+/)*)/+(.*)$ http://%{HTTP_HOST}/$1$3 [R=301,L] 
# &#8230; before URL-path
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ //+([^\ ]*)
RewriteRule [...]]]></description>
			<content:encoded><![CDATA[<div class="dzone_button" style="float: right; margin-left: 10px;">
<script type="text/javascript">
var dzone_url = 'http://bohuco.net/blog/2010/05/the-one-and-only-method-to-remove-multipledouble-slashes-from-urls-apache-mod_rewrite/';
var dzone_title = 'The one and only method to remove multiple/double slashes from URLs (apache, mod_rewrite)';
var dzone_blurb = '';
var dzone_style = '1';
</script>
<script language="javascript" src="http://widgets.dzone.com/links/widgets/zoneit.js"></script>
</div>
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fbohuco.net%252Fblog%252F2010%252F05%252Fthe-one-and-only-method-to-remove-multipledouble-slashes-from-urls-apache-mod_rewrite%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22The%20one%20and%20only%20method%20to%20remove%20multiple%2Fdouble%20slashes%20from%20URLs%20%28apache%2C%20mod_rewrite%29%22%20%7D);"></div>
<p>That&#8217;s the solution that worked for me &#8230;</p>
<p><span id="more-1412"></span></p>
<p># remove multiple slashes<br />
RewriteCond %{REQUEST_URI} ^(.*)//(.*)$ [NC]<br />
RewriteRule . %1/%2 [R=301,L]</p>
<p># &#8230; within URL-path<br />
RewriteRule ^(([^/]+/)*)/+(.*)$ http://%{HTTP_HOST}/$1$3 [R=301,L] </p>
<p># &#8230; before URL-path<br />
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ //+([^\ ]*)<br />
RewriteRule .* http://%{HTTP_HOST}/%1 [R=301,L]</p>

]]></content:encoded>
			<wfw:commentRss>http://bohuco.net/blog/2010/05/the-one-and-only-method-to-remove-multipledouble-slashes-from-urls-apache-mod_rewrite/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
