<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;C0UARHs7cSp7ImA9WhRaFE0.&quot;"><id>tag:blogger.com,1999:blog-1034435163415394624</id><updated>2012-02-16T15:07:25.509+01:00</updated><category term="javascript. css" /><category term="firebug" /><category term="jquery" /><category term="canvas" /><category term="wall decal" /><category term="art" /><category term="javascript" /><category term="zend" /><category term="bash" /><category term="mysql" /><category term="php" /><category term="wall tattoo" /><title>Orangevolt</title><subtitle type="html">a developer notebook</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://orangevolt.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://orangevolt.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/1034435163415394624/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Lars Gersmann</name><uri>http://www.blogger.com/profile/16034970919790262247</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://orangevolt.com/blog/images/ich.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>39</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/orangevolt" /><feedburner:info uri="orangevolt" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:feedFlare href="http://www.plusmo.com/add?url=http%3A%2F%2Ffeeds.feedburner.com%2Forangevolt" src="http://plusmo.com/res/graphics/fbplusmo.gif">Subscribe with Plusmo</feedburner:feedFlare><feedburner:feedFlare href="http://www.thefreedictionary.com/_/hp/AddRSS.aspx?http%3A%2F%2Ffeeds.feedburner.com%2Forangevolt" src="http://img.tfd.com/hp/addToTheFreeDictionary.gif">Subscribe with The Free Dictionary</feedburner:feedFlare><feedburner:feedFlare href="http://www.bitty.com/manual/?contenttype=rssfeed&amp;contentvalue=http%3A%2F%2Ffeeds.feedburner.com%2Forangevolt" src="http://www.bitty.com/img/bittychicklet_91x17.gif">Subscribe with Bitty Browser</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsalloy.com/?rss=http%3A%2F%2Ffeeds.feedburner.com%2Forangevolt" src="http://www.newsalloy.com/subrss3.gif">Subscribe with NewsAlloy</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2Forangevolt" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><feedburner:feedFlare href="http://mix.excite.eu/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Forangevolt" src="http://image.excite.co.uk/mix/addtomix.gif">Subscribe with Excite MIX</feedburner:feedFlare><feedburner:feedFlare href="http://www.yourminis.com/subscribe.aspx?u=http%3A%2F%2Ffeeds.feedburner.com%2Forangevolt" src="http://www.yourminis.com/images/addtoyourminisbadge.gif">Subscribe with Yourminis.com</feedburner:feedFlare><feedburner:feedFlare href="http://download.attensa.com/app/get_attensa.html?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Forangevolt" src="http://www.attensa.com/blogs/attensa/WindowsLiveWriter/BadgeredintoBadges_10C02/attensa_feed_button5.gif">Subscribe with Attensa for Outlook</feedburner:feedFlare><feedburner:feedFlare href="http://www.webwag.com/wwgthis.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Forangevolt" src="http://www.webwag.com/images/wwgthis.gif">Subscribe with Webwag</feedburner:feedFlare><feedburner:feedFlare href="http://hub.netomat.net/account/account.autoSubscribe.jspa?urls=http%3A%2F%2Ffeeds.feedburner.com%2Forangevolt" src="http://www.netomat.net/blogger/images/icon_netomat_feedbutton.gif">Subscribe with netomat Hub</feedburner:feedFlare><feedburner:feedFlare href="http://www.podcastready.com/oneclick_bookmark.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Forangevolt" src="http://www.podcastready.com/images/podcastready_button.gif">Subscribe with Podcast Ready</feedburner:feedFlare><feedburner:feedFlare href="http://www.flurry.com/pushRssFeed.do?r=fb&amp;url=http%3A%2F%2Ffeeds.feedburner.com%2Forangevolt" src="http://www.flurry.com/images/flurry_rss_logo2.gif">Subscribe with Flurry</feedburner:feedFlare><feedburner:feedFlare href="http://www.wikio.com/subscribe?url=http%3A%2F%2Ffeeds.feedburner.com%2Forangevolt" src="http://www.wikio.com/shared/img/add2wikio.gif">Subscribe with Wikio</feedburner:feedFlare><feedburner:feedFlare href="http://www.dailyrotation.com/index.php?feed=http%3A%2F%2Ffeeds.feedburner.com%2Forangevolt" src="http://www.dailyrotation.com/rss-dr2.gif">Subscribe with Daily Rotation</feedburner:feedFlare><entry gd:etag="W/&quot;CEMBR34_eyp7ImA9WhRSE0o.&quot;"><id>tag:blogger.com,1999:blog-1034435163415394624.post-1684820982140728360</id><published>2011-11-15T14:23:00.007+01:00</published><updated>2011-11-15T16:54:16.043+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-15T16:54:16.043+01:00</app:edited><title>Zend Framework Development : howto provide a subdomain per eclipse project dynamically</title><content type="html">1. Install dnsmasq&lt;br /&gt;
&lt;pre class="brush:bash"&gt;sudo aptitude install dnsmasq&lt;/pre&gt;
2. Configure dnsmasq to map any subdomain request to your local machine to 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
Add the following to the top of /etc/dnsmasq.conf :&lt;br /&gt;
&lt;pre class="brush:bash"&gt;address=/localmachine/127.0.0.1
listen-address=127.0.0.1&lt;/pre&gt;
3.  Restart dnsmasq&lt;br /&gt;
&lt;pre class="brush:bash"&gt;sudo /etc/init.d/dnsmasq restart&lt;/pre&gt;
3. Add dnsmasq to your dns server list&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Add the following to the top of /etc/resolv.conf :&lt;br /&gt;
&lt;pre class="brush:bash"&gt;nameserver 127.0.0.1 # dnsmasq&lt;/pre&gt;
4. Enable Apache module vhost_alias&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
(You may probably need to install it first ...)&lt;br /&gt;
&lt;pre class="brush:bash"&gt;sudo a2enmod vhost_alias&lt;/pre&gt;
5. Add VirtualHost entry for dynamic subdomains to httpd.conf&lt;br /&gt;
&lt;br /&gt;
Open /etc/apache2/httpd.conf and add the following to the top of the file :&lt;br /&gt;
&lt;pre class="brush:apache"&gt;NameVirtualHost *:80

&amp;lt;VirtualHost *:80&amp;gt;
ServerAdmin admin@localhost
ServerName  lgersman
ServerAlias *.lgersman

UseCanonicalName Off
VirtualDocumentRoot /home/lgersman/public_html/eclipse-workspace/%1/public

DocumentRoot /home/lgersman/public_html/eclipse-workspace/
&amp;lt;Directory /home/lgersman/public_html/eclipse-workspace/&amp;gt;
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
&amp;lt;/Directory&amp;gt;

ErrorLog /var/log/apache2/error.log
CustomLog /var/log/apache2/access.log combined
&amp;lt;/VirtualHost&amp;gt;

&lt;/pre&gt;
(Remember to modify the local filesystem paths to match yours :-)&lt;br /&gt;
&lt;br /&gt;
6. Restart Apache&lt;br /&gt;
&lt;pre class="brush:apache"&gt;sudo /etc/init.d/apache2 restart&lt;/pre&gt;
Thats all - your done !&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
Suppose you hav a project called "foo" with a subdirectory "public" and a index.php file in it ...&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
Enter "http://foo.mymachine" in the browser - and you see the output of index.php !!&lt;br /&gt;
&lt;br /&gt;
Ubuntu user :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="background-color: #f7f7f7; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; clear: both; color: #333333; font-family: 'Ubuntu Beta', UbuntuBeta, Ubuntu, 'Bitstream Vera Sans', 'DejaVu Sans', Tahoma, sans-serif; font-size: 14px; line-height: 17px; margin-bottom: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; vertical-align: baseline; word-wrap: break-word;"&gt;
In file&amp;nbsp;&lt;strong style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;/etc/dhcp/dhclient.conf&lt;/strong&gt;&amp;nbsp;uncomment line&lt;/div&gt;
&lt;blockquote style="background-color: #f7f7f7; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: 'Ubuntu Beta', UbuntuBeta, Ubuntu, 'Bitstream Vera Sans', 'DejaVu Sans', Tahoma, sans-serif; font-size: 14px; line-height: 17px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 1px; padding-left: 10px; padding-right: 10px; padding-top: 10px; quotes: none; text-align: left; vertical-align: baseline;"&gt;
&lt;div style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; clear: both; margin-bottom: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;
# prepend domain-name-servers 127.0.0.1;&lt;/div&gt;
&lt;/blockquote&gt;
&lt;div style="background-color: #f7f7f7; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; clear: both; color: #333333; font-family: 'Ubuntu Beta', UbuntuBeta, Ubuntu, 'Bitstream Vera Sans', 'DejaVu Sans', Tahoma, sans-serif; font-size: 14px; line-height: 17px; margin-bottom: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; vertical-align: baseline; word-wrap: break-word;"&gt;
and change&amp;nbsp;&lt;strong style="background-color: transparent; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;127.0.0.1&lt;/strong&gt;&amp;nbsp;to your preferred name server list.&lt;/div&gt;
&lt;div style="background-color: #f7f7f7; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; clear: both; color: #333333; font-family: 'Ubuntu Beta', UbuntuBeta, Ubuntu, 'Bitstream Vera Sans', 'DejaVu Sans', Tahoma, sans-serif; font-size: 14px; line-height: 17px; margin-bottom: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; vertical-align: baseline; word-wrap: break-word;"&gt;
Otherwise Ubuntu Network manager will overwrite /etc/resolv.conf at every boot !&lt;/div&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1034435163415394624-1684820982140728360?l=orangevolt.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/orangevolt/~4/vRRpLCBb3To" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://orangevolt.blogspot.com/feeds/1684820982140728360/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://orangevolt.blogspot.com/2011/11/zend-framework-development-howto.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1034435163415394624/posts/default/1684820982140728360?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1034435163415394624/posts/default/1684820982140728360?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/orangevolt/~3/vRRpLCBb3To/zend-framework-development-howto.html" title="Zend Framework Development : howto provide a subdomain per eclipse project dynamically" /><author><name>Lars Gersmann</name><uri>http://www.blogger.com/profile/16034970919790262247</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://orangevolt.com/blog/images/ich.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://orangevolt.blogspot.com/2011/11/zend-framework-development-howto.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0YDQ30yeCp7ImA9WhZXE0w.&quot;"><id>tag:blogger.com,1999:blog-1034435163415394624.post-6596497528380336522</id><published>2011-05-02T07:34:00.005+02:00</published><updated>2011-05-02T07:46:12.390+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-02T07:46:12.390+02:00</app:edited><title>Being creative : Snowboard lamp - 2nd take</title><content type="html">What you need :&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;a snowboard (even a broken one is fine !)&lt;/li&gt;&lt;li&gt;at least 3m led stripe (wathc eBay - its cheap !) including a power transformer&lt;/li&gt;&lt;li&gt;soldering iron and a bit experience with it :-)&lt;/li&gt;&lt;li&gt;2 hours time&lt;/li&gt;&lt;li&gt;a fabric of your choice&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Thats what you get :&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;embed type="application/x-shockwave-flash" src="https://picasaweb.google.com/s/c/bin/slideshow.swf" width="600" height="400" flashvars="host=picasaweb.google.com&amp;amp;captions=1&amp;amp;hl=en_US&amp;amp;feat=flashalbum&amp;amp;RGB=0x000000&amp;amp;feed=https%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2Flars.gersmann%2Falbumid%2F5601987477438732257%3Falt%3Drss%26kind%3Dphoto%26hl%3Den_US" pluginspage="http://www.macromedia.com/go/getflashplayer"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="https://picasaweb.google.com/lh/photo/aaWQyNlci-tbCbVGx9OYuQ?feat=embedwebsite"&gt;&lt;img src="https://lh3.googleusercontent.com/_4JVQuTCk0f8/Tb5CDdLb7DI/AAAAAAAAAYo/B6cTxW7XiqA/s400/P1000536.resized.JPG" height="225" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-family:arial,sans-serif; font-size:11px; text-align:right"&gt;From &lt;a href="https://picasaweb.google.com/lars.gersmann/BeingCreativeSnowboardLamp2ndTake?feat=embedwebsite"&gt;Being creative : Snowboard lamp - 2nd take&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;See &lt;a href="https://picasaweb.google.com/lars.gersmann/BeingCreativeSnowboardLamp2ndTake?feat=directlink"&gt;all  photos&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1034435163415394624-6596497528380336522?l=orangevolt.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/orangevolt/~4/GdVsBtXC3fY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://orangevolt.blogspot.com/feeds/6596497528380336522/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://orangevolt.blogspot.com/2011/05/being-creative-snowboard-lamp-2nd-take.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1034435163415394624/posts/default/6596497528380336522?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1034435163415394624/posts/default/6596497528380336522?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/orangevolt/~3/GdVsBtXC3fY/being-creative-snowboard-lamp-2nd-take.html" title="Being creative : Snowboard lamp - 2nd take" /><author><name>Lars Gersmann</name><uri>http://www.blogger.com/profile/16034970919790262247</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://orangevolt.com/blog/images/ich.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh3.googleusercontent.com/_4JVQuTCk0f8/Tb5CDdLb7DI/AAAAAAAAAYo/B6cTxW7XiqA/s72-c/P1000536.resized.JPG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://orangevolt.blogspot.com/2011/05/being-creative-snowboard-lamp-2nd-take.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkYHR38zeyp7ImA9WhZRE04.&quot;"><id>tag:blogger.com,1999:blog-1034435163415394624.post-465890877352630869</id><published>2011-04-09T10:31:00.003+02:00</published><updated>2011-04-09T10:35:36.183+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-09T10:35:36.183+02:00</app:edited><title>yesterday in the supermarket : linux helps washing your clothes !!!!</title><content type="html">&lt;div&gt;It's unbelievable what options Linux provides ...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It can not only drive your computer - it is also able to wash your clothes !!!!!&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The picture is no fake - it's just taken in a german supermarket.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://4.bp.blogspot.com/-RkyZSkh9omo/TaAaAihfbkI/AAAAAAAAAYA/omLBr7Fvl-4/s1600/IMG_20110325_181516.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 258px; height: 320px;" src="http://4.bp.blogspot.com/-RkyZSkh9omo/TaAaAihfbkI/AAAAAAAAAYA/omLBr7Fvl-4/s320/IMG_20110325_181516.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5593499333763755586" /&gt;&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1034435163415394624-465890877352630869?l=orangevolt.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/orangevolt/~4/RPnFAW02jt4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://orangevolt.blogspot.com/feeds/465890877352630869/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://orangevolt.blogspot.com/2011/04/yesterday-in-supermarket-linux-helps.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1034435163415394624/posts/default/465890877352630869?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1034435163415394624/posts/default/465890877352630869?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/orangevolt/~3/RPnFAW02jt4/yesterday-in-supermarket-linux-helps.html" title="yesterday in the supermarket : linux helps washing your clothes !!!!" /><author><name>Lars Gersmann</name><uri>http://www.blogger.com/profile/16034970919790262247</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://orangevolt.com/blog/images/ich.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-RkyZSkh9omo/TaAaAihfbkI/AAAAAAAAAYA/omLBr7Fvl-4/s72-c/IMG_20110325_181516.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://orangevolt.blogspot.com/2011/04/yesterday-in-supermarket-linux-helps.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkEASX44eyp7ImA9Wx9UE08.&quot;"><id>tag:blogger.com,1999:blog-1034435163415394624.post-4596785439243784270</id><published>2011-02-10T08:56:00.001+01:00</published><updated>2011-02-10T08:57:28.033+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-10T08:57:28.033+01:00</app:edited><title>javascript performance</title><content type="html">Take a look at &lt;a href="http://jsperf.com/"&gt;http://jsperf.com&lt;/a&gt; and browse their tests. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Very helpful if you are not sure which method to use to get the fastest results.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1034435163415394624-4596785439243784270?l=orangevolt.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/orangevolt/~4/KcpKVM3XENY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://orangevolt.blogspot.com/feeds/4596785439243784270/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://orangevolt.blogspot.com/2011/02/javascript-performance.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1034435163415394624/posts/default/4596785439243784270?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1034435163415394624/posts/default/4596785439243784270?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/orangevolt/~3/KcpKVM3XENY/javascript-performance.html" title="javascript performance" /><author><name>Lars Gersmann</name><uri>http://www.blogger.com/profile/16034970919790262247</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://orangevolt.com/blog/images/ich.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://orangevolt.blogspot.com/2011/02/javascript-performance.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUEARX08fyp7ImA9Wx9UEk4.&quot;"><id>tag:blogger.com,1999:blog-1034435163415394624.post-6176669058047969579</id><published>2011-02-09T08:41:00.005+01:00</published><updated>2011-02-09T08:47:24.377+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-09T08:47:24.377+01:00</app:edited><title>Its tool time again : 2nd snowboard lamp in progress</title><content type="html">I always like to reuse *Things* : Yesterday i've got a used snowboard which get's  transformed into a lamp.&lt;br /&gt;&lt;br /&gt;I actually have a snowboard lamp done ... but why not doing it again ? :-) The cool thing is that every lamp is unique because snowboards have fancy unique patterns and colors.&lt;br /&gt;&lt;br /&gt;See yourself !&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_4JVQuTCk0f8/TVJGZzFBayI/AAAAAAAAAWM/zn6JTycrwt0/s1600/snowboard-3.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 110px; height: 320px;" src="http://1.bp.blogspot.com/_4JVQuTCk0f8/TVJGZzFBayI/AAAAAAAAAWM/zn6JTycrwt0/s320/snowboard-3.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5571593098032671522" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_4JVQuTCk0f8/TVJGS_Ht5rI/AAAAAAAAAWE/tetgatK9fxM/s1600/snowboard-2.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 278px; height: 320px;" src="http://1.bp.blogspot.com/_4JVQuTCk0f8/TVJGS_Ht5rI/AAAAAAAAAWE/tetgatK9fxM/s320/snowboard-2.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5571592981006116530" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_4JVQuTCk0f8/TVJGLRy9qzI/AAAAAAAAAV8/-Eg4RMAxhPY/s1600/snowboard-1.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 240px; height: 320px;" src="http://3.bp.blogspot.com/_4JVQuTCk0f8/TVJGLRy9qzI/AAAAAAAAAV8/-Eg4RMAxhPY/s320/snowboard-1.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5571592848580389682" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1034435163415394624-6176669058047969579?l=orangevolt.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/orangevolt/~4/sslHyefVB3k" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://orangevolt.blogspot.com/feeds/6176669058047969579/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://orangevolt.blogspot.com/2011/02/its-tool-time-again-2nd-snowboard-lamp.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1034435163415394624/posts/default/6176669058047969579?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1034435163415394624/posts/default/6176669058047969579?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/orangevolt/~3/sslHyefVB3k/its-tool-time-again-2nd-snowboard-lamp.html" title="Its tool time again : 2nd snowboard lamp in progress" /><author><name>Lars Gersmann</name><uri>http://www.blogger.com/profile/16034970919790262247</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://orangevolt.com/blog/images/ich.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_4JVQuTCk0f8/TVJGZzFBayI/AAAAAAAAAWM/zn6JTycrwt0/s72-c/snowboard-3.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://orangevolt.blogspot.com/2011/02/its-tool-time-again-2nd-snowboard-lamp.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEAFQng4fSp7ImA9Wx9VFkg.&quot;"><id>tag:blogger.com,1999:blog-1034435163415394624.post-4161918996894518981</id><published>2011-02-02T15:23:00.002+01:00</published><updated>2011-02-02T15:25:13.635+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-02T15:25:13.635+01:00</app:edited><title>Grooveshark</title><content type="html">While &lt;a href="http://www.grooveshark.om"&gt;Grooveshark&lt;/a&gt; is interesting because of it's provided content, it's even more interesting for web developers because of it's user interface : &lt;br /&gt;&lt;br /&gt;How is this eye catching interface done ?&lt;br /&gt;&lt;br /&gt;Read the answer &lt;a href="http://blog.jerodsanto.net/2010/12/the-tech-behind-the-new-grooveshark/"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1034435163415394624-4161918996894518981?l=orangevolt.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/orangevolt/~4/k2XzzEtaTBU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://orangevolt.blogspot.com/feeds/4161918996894518981/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://orangevolt.blogspot.com/2011/02/grooveshark.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1034435163415394624/posts/default/4161918996894518981?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1034435163415394624/posts/default/4161918996894518981?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/orangevolt/~3/k2XzzEtaTBU/grooveshark.html" title="Grooveshark" /><author><name>Lars Gersmann</name><uri>http://www.blogger.com/profile/16034970919790262247</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://orangevolt.com/blog/images/ich.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://orangevolt.blogspot.com/2011/02/grooveshark.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUEBR30-eSp7ImA9Wx9WGU4.&quot;"><id>tag:blogger.com,1999:blog-1034435163415394624.post-8255625152126550098</id><published>2011-01-25T06:29:00.003+01:00</published><updated>2011-01-25T06:34:16.351+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-25T06:34:16.351+01:00</app:edited><title>Being creative - shirts</title><content type="html">&lt;embed type="application/x-shockwave-flash" src="http://picasaweb.google.com/s/c/bin/slideshow.swf" width="600" height="400" flashvars="host=picasaweb.google.com&amp;hl=en_US&amp;feat=flashalbum&amp;RGB=0x000000&amp;feed=http%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2Flars.gersmann%2Falbumid%2F5565990721679593713%3Falt%3Drss%26kind%3Dphoto%26hl%3Den_US" pluginspage="http://www.macromedia.com/go/getflashplayer"&gt;&lt;/embed&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1034435163415394624-8255625152126550098?l=orangevolt.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/orangevolt/~4/NAAYUWEMPLU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://orangevolt.blogspot.com/feeds/8255625152126550098/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://orangevolt.blogspot.com/2011/01/being-creative-shirts.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1034435163415394624/posts/default/8255625152126550098?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1034435163415394624/posts/default/8255625152126550098?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/orangevolt/~3/NAAYUWEMPLU/being-creative-shirts.html" title="Being creative - shirts" /><author><name>Lars Gersmann</name><uri>http://www.blogger.com/profile/16034970919790262247</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://orangevolt.com/blog/images/ich.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://orangevolt.blogspot.com/2011/01/being-creative-shirts.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0MAQXY7fyp7ImA9Wx9QEE0.&quot;"><id>tag:blogger.com,1999:blog-1034435163415394624.post-4028000401469256594</id><published>2010-12-22T07:56:00.003+01:00</published><updated>2010-12-22T08:04:00.807+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-12-22T08:04:00.807+01:00</app:edited><title>Being creative</title><content type="html">&lt;div&gt;A few pictures of being creative in the sparetime.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_4JVQuTCk0f8/TRGhvAh1aII/AAAAAAAAASw/FALGCzaJzvA/s1600/P1080035.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 240px; height: 320px;" src="http://1.bp.blogspot.com/_4JVQuTCk0f8/TRGhvAh1aII/AAAAAAAAASw/FALGCzaJzvA/s320/P1080035.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5553397644492368002" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_4JVQuTCk0f8/TRGht7Sm9QI/AAAAAAAAASo/Cw43HJCPTwA/s1600/P1080033.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://1.bp.blogspot.com/_4JVQuTCk0f8/TRGht7Sm9QI/AAAAAAAAASo/Cw43HJCPTwA/s320/P1080033.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5553397625906459906" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1034435163415394624-4028000401469256594?l=orangevolt.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/orangevolt/~4/X_F2r7FcJ2A" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://orangevolt.blogspot.com/feeds/4028000401469256594/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://orangevolt.blogspot.com/2010/12/being-creative.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1034435163415394624/posts/default/4028000401469256594?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1034435163415394624/posts/default/4028000401469256594?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/orangevolt/~3/X_F2r7FcJ2A/being-creative.html" title="Being creative" /><author><name>Lars Gersmann</name><uri>http://www.blogger.com/profile/16034970919790262247</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://orangevolt.com/blog/images/ich.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_4JVQuTCk0f8/TRGhvAh1aII/AAAAAAAAASw/FALGCzaJzvA/s72-c/P1080035.JPG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://orangevolt.blogspot.com/2010/12/being-creative.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU4CQ34ycCp7ImA9Wx9TFUo.&quot;"><id>tag:blogger.com,1999:blog-1034435163415394624.post-2566069060226217180</id><published>2010-11-24T06:52:00.000+01:00</published><updated>2010-11-24T06:52:42.098+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-11-24T06:52:42.098+01:00</app:edited><title>25 Best SSH Commands / Tricks</title><content type="html">&lt;a href="http://blog.urfix.com/25-ssh-commands-tricks/"&gt;25 Best SSH Commands / Tricks&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1034435163415394624-2566069060226217180?l=orangevolt.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/orangevolt/~4/2SI7AAmxQ64" height="1" width="1"/&gt;</content><link rel="related" href="http://blog.urfix.com/25-ssh-commands-tricks/" title="25 Best SSH Commands / Tricks" /><link rel="replies" type="application/atom+xml" href="http://orangevolt.blogspot.com/feeds/2566069060226217180/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://orangevolt.blogspot.com/2010/11/25-best-ssh-commands-tricks.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1034435163415394624/posts/default/2566069060226217180?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1034435163415394624/posts/default/2566069060226217180?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/orangevolt/~3/2SI7AAmxQ64/25-best-ssh-commands-tricks.html" title="25 Best SSH Commands / Tricks" /><author><name>Lars Gersmann</name><uri>http://www.blogger.com/profile/16034970919790262247</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://orangevolt.com/blog/images/ich.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://orangevolt.blogspot.com/2010/11/25-best-ssh-commands-tricks.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkQBQH09fyp7ImA9Wx5aF04.&quot;"><id>tag:blogger.com,1999:blog-1034435163415394624.post-6881150295391074153</id><published>2010-11-14T10:58:00.006+01:00</published><updated>2010-11-14T11:25:51.367+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-11-14T11:25:51.367+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="art" /><title>Cuba Libre glass made out of ORIGINAL Havana Club Bottles</title><content type="html">&lt;div&gt;Some months ago i friend of me told me about his vacation in Cuba.&lt;div&gt;&lt;br /&gt;An interesting part was that local bars serve Cube Libre in handmade glasses. These glasses were made out of Havana Club bottles.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;b&gt;What a nice idea !!!&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I just noticed a youtube video how they made it :&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;object width="640" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/UMTV7QDiJMU?fs=1&amp;amp;hl=en_US"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/UMTV7QDiJMU?fs=1&amp;amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;As a fan of Cuba Libre (and the Havana Club brand :-) I wanted to get such a glass ! But nobody sold such glasses in germany.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So we looked around to find  way to get them - and finally find someone. If you want to have such a glass you can  buy them &lt;a href="http://cgi.ebay.de/ws/eBayISAPI.dll?ViewItem&amp;amp;item=260692148657&amp;amp;ssPageName=STRK:MESELX:IT#ht_1789wt_1141"&gt;over at eBay : Cuba Libre glasses made from Havana Club bottles&lt;/a&gt; - for just 7.99 € - that's (kinda) cheap for handmade glasses made in Germany !&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh6.ggpht.com/_4JVQuTCk0f8/TN5pfaty12I/AAAAAAAAAO8/Z4lior9fg0Y/s800/P1070387.resized.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 800px; height: 600px;" src="http://lh6.ggpht.com/_4JVQuTCk0f8/TN5pfaty12I/AAAAAAAAAO8/Z4lior9fg0Y/s800/P1070387.resized.JPG" border="0" alt="" /&gt;&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Isn't that cool !!?&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1034435163415394624-6881150295391074153?l=orangevolt.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/orangevolt/~4/HH5yIvNd6i4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://orangevolt.blogspot.com/feeds/6881150295391074153/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://orangevolt.blogspot.com/2010/11/cuba-libre-glas-made-from-original.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1034435163415394624/posts/default/6881150295391074153?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1034435163415394624/posts/default/6881150295391074153?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/orangevolt/~3/HH5yIvNd6i4/cuba-libre-glas-made-from-original.html" title="Cuba Libre glass made out of ORIGINAL Havana Club Bottles" /><author><name>Lars Gersmann</name><uri>http://www.blogger.com/profile/16034970919790262247</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://orangevolt.com/blog/images/ich.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/_4JVQuTCk0f8/TN5pfaty12I/AAAAAAAAAO8/Z4lior9fg0Y/s72-c/P1070387.resized.JPG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://orangevolt.blogspot.com/2010/11/cuba-libre-glas-made-from-original.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUcMQXY7eCp7ImA9Wx5WF0g.&quot;"><id>tag:blogger.com,1999:blog-1034435163415394624.post-6408937645789235597</id><published>2010-09-29T11:51:00.004+02:00</published><updated>2010-09-29T12:44:40.800+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-09-29T12:44:40.800+02:00</app:edited><title>Web based PHP debugger.</title><content type="html">I wish I had a web based PHP debugger directly running in the browser.&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div&gt;From a technical point of view it's easy to implement : &lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Use Javascript / &lt;a href="http://dev.w3.org/html5/websockets/"&gt;Websockets&lt;/a&gt; in the browser to communicate with the server side&lt;/li&gt;&lt;li&gt;Managing the &lt;a href="http://www.xdebug.org/"&gt;XDebug&lt;/a&gt; cookie for starting the debugger connection &lt;/li&gt;&lt;li&gt;build a generic &lt;a href="http://dev.w3.org/html5/websockets/"&gt;Websockets&lt;/a&gt; / Socket proxy in what ever language your prefer to bridge the messages between &lt;a href="http://www.xdebug.org/"&gt;XDebug&lt;/a&gt; and the browser debugger interface&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;The PHP script to debug would be started within an hosted iframe. That's all.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The biggest benefits of such a browser based debugger interface :   &lt;/div&gt;&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div&gt;* ad hoc debugging possible&lt;/div&gt;&lt;div&gt;* more or less no &lt;a href="http://www.xdebug.org/"&gt;XDebug&lt;/a&gt; configuration if &lt;a href="http://dev.w3.org/html5/websockets/"&gt;Websockets&lt;/a&gt; / Socket proxy runs on same machine as the PHP interpreter (see &lt;a href="http://www.xdebug.org/docs/all_settings#remote_connect_back"&gt;XDebug remote_connect_back&lt;/a&gt; option)&lt;/div&gt;&lt;meta equiv="content-type" content="text/html; charset=utf-8"&gt;&lt;div&gt;* no client software installations needed to debug PHP &lt;/div&gt;&lt;meta equiv="content-type" content="text/html; charset=utf-8"&gt;&lt;meta equiv="content-type" content="text/html; charset=utf-8"&gt;&lt;meta equiv="content-type" content="text/html; charset=utf-8"&gt;&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Much easier to implement would be a &lt;a href="http://www.firephp.org/"&gt;FirePHP&lt;/a&gt; extension implementing the &lt;a href="http://www.xdebug.org/"&gt;XDebug&lt;/a&gt; communication directly based on regular TCP sockets. Although this solution would only help when using &lt;a href="http://www.mozilla-europe.org/en/"&gt;Firefox&lt;/a&gt; ...&lt;/div&gt;&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Hope some one grabs this idea and implements it.&lt;/div&gt;&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Happy coding !!&lt;/div&gt;&lt;meta equiv="content-type" content="text/html; charset=utf-8"&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1034435163415394624-6408937645789235597?l=orangevolt.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/orangevolt/~4/l6nHPcL8pi0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://orangevolt.blogspot.com/feeds/6408937645789235597/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://orangevolt.blogspot.com/2010/09/web-based-php-debugger.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1034435163415394624/posts/default/6408937645789235597?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1034435163415394624/posts/default/6408937645789235597?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/orangevolt/~3/l6nHPcL8pi0/web-based-php-debugger.html" title="Web based PHP debugger." /><author><name>Lars Gersmann</name><uri>http://www.blogger.com/profile/16034970919790262247</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://orangevolt.com/blog/images/ich.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://orangevolt.blogspot.com/2010/09/web-based-php-debugger.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUEGQXo4fSp7ImA9Wx5REkQ.&quot;"><id>tag:blogger.com,1999:blog-1034435163415394624.post-8133518695455957908</id><published>2010-08-20T11:43:00.003+02:00</published><updated>2010-08-20T11:47:00.435+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-20T11:47:00.435+02:00</app:edited><title>Zend Framework : reset view helpers</title><content type="html">Most Zend view helpers like&lt;br /&gt;&lt;ul&gt;&lt;li&gt;headScript&lt;/li&gt;&lt;li&gt;headStyle&lt;/li&gt;&lt;li&gt;inlineScript&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;collect informations which are outputted when the layout gets executed.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Because there all rely on the same base class you can reset the previously collected information &lt;/div&gt;&lt;div&gt;by calling exchangeArray() on the helper instance : &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;$this-&gt;view-&gt;headContent()-&gt;exchangeArray( array())&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;By providing an empty array you can force resetting the current collected information.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;That helps a lot !!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1034435163415394624-8133518695455957908?l=orangevolt.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/orangevolt/~4/sJKTDkNn__w" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://orangevolt.blogspot.com/feeds/8133518695455957908/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://orangevolt.blogspot.com/2010/08/zend-framework-reset-view-helpers.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1034435163415394624/posts/default/8133518695455957908?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1034435163415394624/posts/default/8133518695455957908?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/orangevolt/~3/sJKTDkNn__w/zend-framework-reset-view-helpers.html" title="Zend Framework : reset view helpers" /><author><name>Lars Gersmann</name><uri>http://www.blogger.com/profile/16034970919790262247</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://orangevolt.com/blog/images/ich.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://orangevolt.blogspot.com/2010/08/zend-framework-reset-view-helpers.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUQASXkyeCp7ImA9Wx5REkU.&quot;"><id>tag:blogger.com,1999:blog-1034435163415394624.post-447086820670252566</id><published>2010-08-20T07:48:00.000+02:00</published><updated>2010-08-20T07:49:08.790+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-20T07:49:08.790+02:00</app:edited><title>Fixing obscure session error with PHP5 on Debian/Ubuntu</title><content type="html">With Debian’s or Ubuntu’s php5 package, you might receive this error when you call session_start():&lt;br /&gt;&lt;br /&gt;ps_files_cleanup_dir: opendir(/var/lib/php5) failed: Permission denied (13)&lt;br /&gt;&lt;br /&gt;Frustratingly, if you do receive this error, you’ll only get it once every hundred page loads on average. Which points to the cause of the problem: automatic session garbage collection.&lt;br /&gt;&lt;br /&gt;In Debian and Ubuntu, /var/lib/php5, where the session data is stored, has permissions of drwx-wx-wt and should only be cleaned by a cron script. So, the package maintainers disable automatic session garbage collection.&lt;br /&gt;&lt;br /&gt;But, other php5 packages (like php5-cli) don’t have garbage collection disabled.&lt;br /&gt;&lt;br /&gt;If you’re seeing this error, it’s most likely you’ve just mixed up your php.ini files (or copy pasted one from somewhere). To fix things, find where your php.ini file is (phpinfo() is handy).&lt;br /&gt;&lt;br /&gt;This is usually /etc/php5/apache2/php.ini. Then edit it, and change session.gc_probability from whatever it is (most likely 1) to 0. Save, and restart Apache.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1034435163415394624-447086820670252566?l=orangevolt.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/orangevolt/~4/0nzBz5O3u9E" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://orangevolt.blogspot.com/feeds/447086820670252566/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://orangevolt.blogspot.com/2010/08/fixing-obscure-session-error-with-php5.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1034435163415394624/posts/default/447086820670252566?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1034435163415394624/posts/default/447086820670252566?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/orangevolt/~3/0nzBz5O3u9E/fixing-obscure-session-error-with-php5.html" title="Fixing obscure session error with PHP5 on Debian/Ubuntu" /><author><name>Lars Gersmann</name><uri>http://www.blogger.com/profile/16034970919790262247</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://orangevolt.com/blog/images/ich.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://orangevolt.blogspot.com/2010/08/fixing-obscure-session-error-with-php5.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkINRXk5eCp7ImA9WxFUEU0.&quot;"><id>tag:blogger.com,1999:blog-1034435163415394624.post-6779132083691417239</id><published>2010-06-21T10:23:00.001+02:00</published><updated>2010-06-21T10:23:14.720+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-06-21T10:23:14.720+02:00</app:edited><title>Do LESS with Less.js</title><content type="html">&lt;a href="http://ajaxian.com/archives/do-less-with-less-js?utm_source=feedburner&amp;amp;utm_medium=feed&amp;amp;utm_campaign=Feed%3A+ajaxian+%28Ajaxian+Blog%29&amp;amp;utm_content=Google+Feedfetcher"&gt;Ajaxian : Do LESS with Less.js&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1034435163415394624-6779132083691417239?l=orangevolt.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/orangevolt/~4/0a0juuIawzU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://orangevolt.blogspot.com/feeds/6779132083691417239/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://orangevolt.blogspot.com/2010/06/do-less-with-lessjs.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1034435163415394624/posts/default/6779132083691417239?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1034435163415394624/posts/default/6779132083691417239?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/orangevolt/~3/0a0juuIawzU/do-less-with-lessjs.html" title="Do LESS with Less.js" /><author><name>Lars Gersmann</name><uri>http://www.blogger.com/profile/16034970919790262247</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://orangevolt.com/blog/images/ich.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://orangevolt.blogspot.com/2010/06/do-less-with-lessjs.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEcBQXs6eCp7ImA9WxFVEkk.&quot;"><id>tag:blogger.com,1999:blog-1034435163415394624.post-9185010770890222268</id><published>2010-06-11T09:38:00.003+02:00</published><updated>2010-06-11T09:40:50.510+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-06-11T09:40:50.510+02:00</app:edited><title>How to get the class filename of a php object</title><content type="html">Nothing simpler than that :&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:php"&gt;&lt;br /&gt;$reflection = new ReflectionClass( get_class( $this));&lt;br /&gt;$classFile = $reflection-&gt;getFileName();&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1034435163415394624-9185010770890222268?l=orangevolt.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/orangevolt/~4/WoQQgBjU4uo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://orangevolt.blogspot.com/feeds/9185010770890222268/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://orangevolt.blogspot.com/2010/06/getfilename.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1034435163415394624/posts/default/9185010770890222268?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1034435163415394624/posts/default/9185010770890222268?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/orangevolt/~3/WoQQgBjU4uo/getfilename.html" title="How to get the class filename of a php object" /><author><name>Lars Gersmann</name><uri>http://www.blogger.com/profile/16034970919790262247</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://orangevolt.com/blog/images/ich.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://orangevolt.blogspot.com/2010/06/getfilename.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkcGQXo6fSp7ImA9WxFVEU0.&quot;"><id>tag:blogger.com,1999:blog-1034435163415394624.post-5421585539078758022</id><published>2010-06-09T18:11:00.002+02:00</published><updated>2010-06-09T18:13:40.415+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-06-09T18:13:40.415+02:00</app:edited><title>bash tip : create a directory in every directory containing a special file</title><content type="html">As the title says the following snippet creates a directory '.metadata'  in every directory containing a file named 'current' : &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt;find -name current | xargs -i dirname {} | xargs -i mkdir {}/.metadata&lt;/code&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;Have fun !&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1034435163415394624-5421585539078758022?l=orangevolt.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/orangevolt/~4/hsx3FN-t4GY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://orangevolt.blogspot.com/feeds/5421585539078758022/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://orangevolt.blogspot.com/2010/06/bash-tip-create-directory-in-every.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1034435163415394624/posts/default/5421585539078758022?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1034435163415394624/posts/default/5421585539078758022?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/orangevolt/~3/hsx3FN-t4GY/bash-tip-create-directory-in-every.html" title="bash tip : create a directory in every directory containing a special file" /><author><name>Lars Gersmann</name><uri>http://www.blogger.com/profile/16034970919790262247</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://orangevolt.com/blog/images/ich.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://orangevolt.blogspot.com/2010/06/bash-tip-create-directory-in-every.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0MBQ3YyeCp7ImA9WxFWFUg.&quot;"><id>tag:blogger.com,1999:blog-1034435163415394624.post-8957075306397428849</id><published>2010-06-03T09:38:00.004+02:00</published><updated>2010-06-03T09:50:52.890+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-06-03T09:50:52.890+02:00</app:edited><title>jQuery 1.3.2 - 1.4.2 upgrade pitfalls</title><content type="html">If you port a project using jQuery 1.3.2 to the new jQuery 1.4.2 release you may spend some investigation to the following issues : &lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;append&lt;/b&gt; stops adding arguments to the hosted element if you a &lt;b&gt;undefined&lt;/b&gt; argument in the argument list. Using jQuery 1.3.2. &lt;b&gt;undefined&lt;/b&gt; arguments where silently ignored.&lt;/li&gt;&lt;li&gt;check out &lt;a href="http://jquery14.com/day-01/jquery-14"&gt;http://jquery14.com/day-01/jquery-14&lt;/a&gt; for more incompatibilites&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;The widget framework of jQuery UI was also heavily changed. &lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;jQuery UI 1.8 now does all events lowercase. So if you named events with capital letters - change it to lowercase leters&lt;/li&gt;&lt;li&gt;see &lt;a href="http://docs.jquery.com/UI/Upgrade_Guide_18"&gt;jQuery UI 1.8 Upgrade_Guide&lt;/a&gt; for a complete migration example&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1034435163415394624-8957075306397428849?l=orangevolt.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/orangevolt/~4/u_bVlW4-dwc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://orangevolt.blogspot.com/feeds/8957075306397428849/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://orangevolt.blogspot.com/2010/06/jquery-132-142-pitfalls.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1034435163415394624/posts/default/8957075306397428849?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1034435163415394624/posts/default/8957075306397428849?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/orangevolt/~3/u_bVlW4-dwc/jquery-132-142-pitfalls.html" title="jQuery 1.3.2 - 1.4.2 upgrade pitfalls" /><author><name>Lars Gersmann</name><uri>http://www.blogger.com/profile/16034970919790262247</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://orangevolt.com/blog/images/ich.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://orangevolt.blogspot.com/2010/06/jquery-132-142-pitfalls.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE8GSXwzfSp7ImA9WxFXEkg.&quot;"><id>tag:blogger.com,1999:blog-1034435163415394624.post-6161827587635533523</id><published>2010-05-19T09:05:00.003+02:00</published><updated>2010-05-19T09:07:08.285+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-19T09:07:08.285+02:00</app:edited><title>set $this in PHP programmatically</title><content type="html">Nothing easier than that: &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre class="brush:php"&gt;&lt;br /&gt; // trick to assign the variable '$this'&lt;br /&gt;extract(array('this' =&gt; 'foobar!'));&lt;br /&gt;&lt;br /&gt;var_export( $this);&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1034435163415394624-6161827587635533523?l=orangevolt.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/orangevolt/~4/ghvqCoJ9puA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://orangevolt.blogspot.com/feeds/6161827587635533523/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://orangevolt.blogspot.com/2010/05/set-this-in-php-programmatically.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1034435163415394624/posts/default/6161827587635533523?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1034435163415394624/posts/default/6161827587635533523?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/orangevolt/~3/ghvqCoJ9puA/set-this-in-php-programmatically.html" title="set $this in PHP programmatically" /><author><name>Lars Gersmann</name><uri>http://www.blogger.com/profile/16034970919790262247</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://orangevolt.com/blog/images/ich.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://orangevolt.blogspot.com/2010/05/set-this-in-php-programmatically.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUcESH44fCp7ImA9WxFRFU4.&quot;"><id>tag:blogger.com,1999:blog-1034435163415394624.post-7310630609553595485</id><published>2010-04-29T12:29:00.000+02:00</published><updated>2010-04-29T12:30:09.034+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-29T12:30:09.034+02:00</app:edited><title>Programmatic hot deploy with Jetty</title><content type="html">&lt;a href="http://www.bonitasoft.org/blog/tutorial/programmatic-hot-deploy-with-jetty/"&gt;http://www.bonitasoft.org/blog/tutorial/programmatic-hot-deploy-with-jetty/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1034435163415394624-7310630609553595485?l=orangevolt.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/orangevolt/~4/6LzS8JSFZCk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://orangevolt.blogspot.com/feeds/7310630609553595485/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://orangevolt.blogspot.com/2010/04/programmatic-hot-deploy-with-jetty.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1034435163415394624/posts/default/7310630609553595485?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1034435163415394624/posts/default/7310630609553595485?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/orangevolt/~3/6LzS8JSFZCk/programmatic-hot-deploy-with-jetty.html" title="Programmatic hot deploy with Jetty" /><author><name>Lars Gersmann</name><uri>http://www.blogger.com/profile/16034970919790262247</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://orangevolt.com/blog/images/ich.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://orangevolt.blogspot.com/2010/04/programmatic-hot-deploy-with-jetty.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEQGRXs-eyp7ImA9WxBVE0w.&quot;"><id>tag:blogger.com,1999:blog-1034435163415394624.post-1551846012654964078</id><published>2010-02-16T10:12:00.003+01:00</published><updated>2010-02-16T10:25:24.553+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-16T10:25:24.553+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="javascript" /><category scheme="http://www.blogger.com/atom/ns#" term="jquery" /><category scheme="http://www.blogger.com/atom/ns#" term="firebug" /><title>2 tools improving javascript development</title><content type="html">Yesterday I found 2 javascript development tools improving my daily work :&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://firequery.binaryage.com/"&gt;jQuerify&lt;/a&gt; is a &lt;a href="http://getfirebug.com/"&gt;Firebug&lt;/a&gt; extension for &lt;a href="http://www.jquery.com/"&gt;jQuery&lt;/a&gt; development. At &lt;a href="http://www.cm4all.com/"&gt;CM4ALL&lt;/a&gt; we use the $(elm).data( key [, value]?) function of &lt;a href="http://www.jquery.com/"&gt;jQuery&lt;/a&gt; for storing data associated with the DOM element. But unfortunately its not visible within &lt;a href="http://getfirebug.com/"&gt;Firebug&lt;/a&gt;. &lt;a href="http://firequery.binaryage.com/"&gt;jQuerify &lt;/a&gt;enables the &lt;a href="http://getfirebug.com/"&gt;Firebug&lt;/a&gt; DOM tree to show the associated data elements. Thats a great help !!! Further features of  &lt;a href="http://firequery.binaryage.com/"&gt;jQuerify &lt;/a&gt;are :&lt;a href="http://firequery.binaryage.com/"&gt;&lt;br /&gt;&lt;/a&gt;&lt;ul&gt;&lt;li&gt;jQuery expressions are intelligently presented in Firebug Console and DOM inspector&lt;/li&gt;&lt;li&gt;attached jQuery datas are first class citizens&lt;/li&gt;&lt;li&gt;elements in jQuery collections are highlighted on hover&lt;/li&gt;&lt;li&gt;jQuerify enables you to inject jQuery into any web page&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;Screenshot :&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_4JVQuTCk0f8/S3pkX7OJieI/AAAAAAAAAL4/1Tt03wq39cc/s1600-h/jquerify.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 196px;" src="http://1.bp.blogspot.com/_4JVQuTCk0f8/S3pkX7OJieI/AAAAAAAAAL4/1Tt03wq39cc/s400/jquerify.jpg" alt="" id="BLOGGER_PHOTO_ID_5438769862200101346" border="0" /&gt;&lt;/a&gt;&lt;ul&gt;&lt;li&gt;The second tool is &lt;a href="http://saucelabs.com/products/downloads"&gt;Selenium Source RC&lt;/a&gt; - an graphical open source &lt;span style="font-weight: bold;"&gt;&lt;/span&gt;cross-browser testing tool. It enables you to graphically compose user interaction with your webpage and lets you store/save/execute it. Its the perfect companion the JSUnit / FireUnit. Read more here : &lt;a href="http://java.dzone.com/news/selenium-rc-gets-sauced"&gt;http://java.dzone.com/news/selenium-rc-gets-sauced &lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;I hope you enjoy these tips !!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1034435163415394624-1551846012654964078?l=orangevolt.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/orangevolt/~4/PhW8vYC4tco" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://orangevolt.blogspot.com/feeds/1551846012654964078/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://orangevolt.blogspot.com/2010/02/2-tools-improving-javascript.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1034435163415394624/posts/default/1551846012654964078?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1034435163415394624/posts/default/1551846012654964078?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/orangevolt/~3/PhW8vYC4tco/2-tools-improving-javascript.html" title="2 tools improving javascript development" /><author><name>Lars Gersmann</name><uri>http://www.blogger.com/profile/16034970919790262247</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://orangevolt.com/blog/images/ich.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_4JVQuTCk0f8/S3pkX7OJieI/AAAAAAAAAL4/1Tt03wq39cc/s72-c/jquerify.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://orangevolt.blogspot.com/2010/02/2-tools-improving-javascript.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak8DSXo9fSp7ImA9WxBXFks.&quot;"><id>tag:blogger.com,1999:blog-1034435163415394624.post-3851572043325107768</id><published>2010-01-28T09:27:00.003+01:00</published><updated>2010-01-28T09:54:38.465+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-28T09:54:38.465+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="javascript" /><category scheme="http://www.blogger.com/atom/ns#" term="canvas" /><title>Preparation of browser based Graph Editing Tool</title><content type="html">The title says it all - that's the next &lt;span style="font-style: italic;"&gt;sparetime eater&lt;/span&gt; i am planning to do.&lt;br /&gt;&lt;br /&gt;i'done graph editing tools several time in the past :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;using Java/Swing (thank's to &lt;a href="http://www.jgraph.com/"&gt;Gaudenz Alders's fabulous JGraph&lt;/a&gt; library) &lt;/li&gt;&lt;li&gt;using .NET with a self developed graph library&lt;/li&gt;&lt;/ul&gt;And it seems to me that todays browser are able to do that without any plugins/Flash/etc. The question is - what's the right browser technology ?&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://en.wikipedia.org/wiki/Canvas_element"&gt;Canvas&lt;/a&gt; seems the best option for most browsers ... except Internet Explorer. This night I recognized that there is &lt;a href="http://raphaeljs.com/"&gt;RaphaelJS&lt;/a&gt; - a lean and mean cross browser js library. &lt;a href="http://raphaeljs.com/"&gt;RaphaelJS&lt;/a&gt; seems to do the job :&lt;br /&gt;&lt;p style="font-style: italic;" class="not-prime"&gt;                             Raphaël uses the &lt;abbr title="Sclable Vector Graphics"&gt;SVG&lt;/abbr&gt; &lt;abbr title="World Wide Web Consortium"&gt;W3C&lt;/abbr&gt; Recommendation and &lt;abbr title="Vector Markup Language"&gt;VML&lt;/abbr&gt; as a base for creating graphics. This means every graphical object you create is also a &lt;acronym title="Document Object Model"&gt;DOM&lt;/acronym&gt; object, so you can attach JavaScript event handlers or modify them later. Raphaël’s goal is to provide an adapter that will make drawing vector art compatible cross-browser and easy. &lt;/p&gt;                          &lt;p style="font-style: italic;" class="not-prime"&gt;                             Raphaël currently supports Firefox 3.0+, Safari 3.0+, Opera 9.5+ and Internet Explorer 6.0+.                         &lt;/p&gt;&lt;a href="http://raphaeljs.com/"&gt;RaphaelJS&lt;/a&gt; bridges the missing &lt;a href="http://en.wikipedia.org/wiki/Canvas_element"&gt;Canvas&lt;/a&gt; Element of Internet Explorer by translating rendering commands to Internet Explorer's proprietary VML Element. Thats a nice solution. And last but not least, its supports mouse interaction !&lt;br /&gt;&lt;br /&gt;Here are some links I found useful as a starting point of deeper investigation :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://raphaeljs.com/"&gt;RaphaelJS&lt;/a&gt; - the library itself&lt;/li&gt;&lt;li&gt;an &lt;a href="http://net.tutsplus.com/tutorials/javascript-ajax/an-introduction-to-the-raphael-js-library/"&gt;introductional tutorial&lt;/a&gt; to &lt;a href="http://raphaeljs.com/"&gt;RaphaelJS&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://raphaeljs.com/"&gt;RaphaelJS&lt;/a&gt; at &lt;a href="http://stackoverflow.com/questions/tagged/raphael"&gt;http://stackoverflow.com&lt;/a&gt;&lt;/li&gt;&lt;li&gt;a &lt;a href="http://ajaxian.com/archives/new-javascriptcanvas-graph-library"&gt;Graph Layout example&lt;/a&gt; and it's &lt;a href="http://snipplr.com/view/1950/graph-javascript-framework-version-001/"&gt;graph layout source code &lt;/a&gt;(both not really dependend but a good starting point to port such functionality to &lt;a href="http://raphaeljs.com/"&gt;RaphaelJS&lt;/a&gt;)&lt;a href="http://snipplr.com/view/1950/graph-javascript-framework-version-001/"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;a huge bunch of &lt;a href="http://raphaeljs.com/"&gt;RaphaelJS&lt;/a&gt; &lt;a href="http://www.irunmywebsite.com/raphael/additionalhelp.html"&gt;examples&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://g.raphaeljs.com/"&gt;g.raphaeljs&lt;/a&gt; - a &lt;a href="http://raphaeljs.com/"&gt;RaphaelJS&lt;/a&gt; based charting library&lt;/li&gt;&lt;/ul&gt;Cheers ,&lt;br /&gt;&lt;br /&gt;Lars&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://raphaeljs.com/"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1034435163415394624-3851572043325107768?l=orangevolt.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/orangevolt/~4/D3oPKLfpYA0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://orangevolt.blogspot.com/feeds/3851572043325107768/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://orangevolt.blogspot.com/2010/01/preparation-of-browser-based-graph.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1034435163415394624/posts/default/3851572043325107768?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1034435163415394624/posts/default/3851572043325107768?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/orangevolt/~3/D3oPKLfpYA0/preparation-of-browser-based-graph.html" title="Preparation of browser based Graph Editing Tool" /><author><name>Lars Gersmann</name><uri>http://www.blogger.com/profile/16034970919790262247</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://orangevolt.com/blog/images/ich.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://orangevolt.blogspot.com/2010/01/preparation-of-browser-based-graph.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkAMRX04eSp7ImA9WxBSFUQ.&quot;"><id>tag:blogger.com,1999:blog-1034435163415394624.post-8873463421599782707</id><published>2009-12-23T18:40:00.004+01:00</published><updated>2009-12-23T18:53:04.331+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-23T18:53:04.331+01:00</app:edited><title>Solved : Using Apache mod_userdir and mod_rewrite with Zend Framework</title><content type="html">It took me some time so it makes sense to communicate that to you guys :&lt;br /&gt;&lt;br /&gt;I do PHP development (using ZEND Framework) at my Ubuntu system  at home. Some months ago I realized that it's the most comfortable solution to just use &lt;span style="font-style: italic;"&gt;mod_userdir&lt;/span&gt; to target Apache to my PHP projects located at my personal &lt;span style="font-style: italic;"&gt;public_html&lt;/span&gt; folder.&lt;br /&gt;&lt;br /&gt;It's quite common to use &lt;span style="font-style: italic;"&gt;.htaccess&lt;/span&gt; to configure your ZEND PHP project url rewriting.&lt;br /&gt;&lt;br /&gt;Now the bad thing : &lt;span style="font-style: italic;"&gt;mod_userdir&lt;/span&gt; and &lt;span style="font-style: italic;"&gt;mod_rewrite&lt;/span&gt; doesnt work hand in hand ...&lt;br /&gt;&lt;br /&gt;Whenever you call a controller different than IndexController the redirect will fail. The reason is that mod_rewrite normalizes ~username to &lt;span style="font-style: italic;"&gt;/home/username&lt;/span&gt; - which indeed is regularly not found by Apache.&lt;br /&gt;&lt;br /&gt;Here is the solution : Just add&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;RewriteBase /~userdir/path/ &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;to your &lt;span style="font-style: italic;"&gt;.htaccess&lt;/span&gt; file and replace the path after &lt;span style="font-weight: bold;font-family:courier new;" &gt;RewriteBase &lt;/span&gt;&lt;span style="font-family:courier new;"&gt;with the relative (mod_user_dir conforming) path - and  &lt;/span&gt;everything works like expected.&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;&lt;br /&gt;Lars&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1034435163415394624-8873463421599782707?l=orangevolt.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/orangevolt/~4/8n-PR0HkOd8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://orangevolt.blogspot.com/feeds/8873463421599782707/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://orangevolt.blogspot.com/2009/12/solved-using-apache-moduserdir-and.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1034435163415394624/posts/default/8873463421599782707?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1034435163415394624/posts/default/8873463421599782707?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/orangevolt/~3/8n-PR0HkOd8/solved-using-apache-moduserdir-and.html" title="Solved : Using Apache mod_userdir and mod_rewrite with Zend Framework" /><author><name>Lars Gersmann</name><uri>http://www.blogger.com/profile/16034970919790262247</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://orangevolt.com/blog/images/ich.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://orangevolt.blogspot.com/2009/12/solved-using-apache-moduserdir-and.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0ACQ347fyp7ImA9WxBTE0w.&quot;"><id>tag:blogger.com,1999:blog-1034435163415394624.post-8185022109502655973</id><published>2009-12-08T23:29:00.001+01:00</published><updated>2009-12-08T23:36:02.007+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-08T23:36:02.007+01:00</app:edited><title>configure apache user dir</title><content type="html">as easy as shopping online : &lt;a href="http://wiki.ubuntuusers.de/Apache"&gt;http://wiki.ubuntuusers.de/Apache&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;as a bonus - don't forget to enable mod_rewrite via &lt;span style="font-weight: bold;"&gt;sudo a2enmod rewrite&lt;/span&gt; ...&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1034435163415394624-8185022109502655973?l=orangevolt.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/orangevolt/~4/qMWzmWVUZrU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://orangevolt.blogspot.com/feeds/8185022109502655973/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://orangevolt.blogspot.com/2009/12/configure-apache-user-dir.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1034435163415394624/posts/default/8185022109502655973?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1034435163415394624/posts/default/8185022109502655973?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/orangevolt/~3/qMWzmWVUZrU/configure-apache-user-dir.html" title="configure apache user dir" /><author><name>Lars Gersmann</name><uri>http://www.blogger.com/profile/16034970919790262247</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://orangevolt.com/blog/images/ich.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://orangevolt.blogspot.com/2009/12/configure-apache-user-dir.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak4GQX06fCp7ImA9WxBXFks.&quot;"><id>tag:blogger.com,1999:blog-1034435163415394624.post-8158327118800805708</id><published>2009-11-13T16:33:00.004+01:00</published><updated>2010-01-28T09:55:20.314+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-28T09:55:20.314+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="zend" /><category scheme="http://www.blogger.com/atom/ns#" term="php" /><title>Zend Framework : SSO/Authenticate and retrieve user data from MS Exchange</title><content type="html">If your company manages Email with &lt;span style="font-weight: bold;"&gt;MS Exchange&lt;/span&gt; and you want to provide &lt;span style="font-weight: bold;"&gt;Single Sign On &lt;/span&gt;&lt;span&gt;for &lt;/span&gt;&lt;span&gt;the x-th intranet application then the solution is near by :&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;Use MS Exchange to authenticate users and retrieve their primary personal data like Email and so on via MS Exchange LDAP Interface.&lt;br /&gt;&lt;br /&gt;Sounds easy ... but might by a horror trip depending on how MS Exchange is configured ...&lt;br /&gt;&lt;br /&gt;Anyway, my experience was a sucess story taking about one hour of investigation as price.&lt;br /&gt;&lt;br /&gt;Thanks to the beautiful &lt;span style="font-weight: bold;"&gt;Zend Framework&lt;/span&gt;, authenticating via MS Exchange was a piece of cake.&lt;br /&gt;&lt;br /&gt;How it get's done :&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;Create an configuration file exposing all of the MS Exchange servers you want to use :&lt;br /&gt;&lt;pre class="brush:text"&gt;&lt;br /&gt;[production]&lt;br /&gt;&lt;br /&gt;; Typical options for Active Directory&lt;br /&gt;ldap.server2.host = exchangeserver.company.domain&lt;br /&gt;ldap.server2.accountDomainName = company.domain&lt;br /&gt;ldap.server2.accountDomainNameShort = domain&lt;br /&gt;ldap.server2.accountCanonicalForm = 3&lt;br /&gt;ldap.server2.baseDn = "DC=company,DC=domain"&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;and replace &lt;span style="font-style: italic;"&gt;exchangeserver&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;company&lt;/span&gt; and &lt;span style="font-style: italic;"&gt;domain&lt;/span&gt; with your company's MS Exchange server. Attention : configuration might be different if MS Exchange was configured different.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Insert the following code snippet within your Zend Framework based Web application:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:php"&gt;&lt;br /&gt;$auth = Zend_Auth::getInstance();&lt;br /&gt;&lt;br /&gt;// load configuration&lt;br /&gt;$config = new Zend_Config_Ini('ldap.ini', 'production');&lt;br /&gt;&lt;br /&gt;$options = $config-&gt;ldap-&gt;toArray();&lt;br /&gt;&lt;br /&gt;$adapter = new Zend_Auth_Adapter_Ldap( $options, 'yourname', 'yourpassword');&lt;br /&gt;&lt;br /&gt;// authenticate&lt;br /&gt;$result = $auth-&gt;authenticate($adapter);&lt;br /&gt;&lt;br /&gt;print_r( $result-&gt;getMessages());&lt;br /&gt;&lt;br /&gt;echo 'authentication is ' . ($result-&gt;isValid() ? 'valid' : 'invalid') . "\n";&lt;br /&gt;&lt;br /&gt;if( $result-&gt;isValid()) {&lt;br /&gt;echo 'identity=' . $result-&gt;getIdentity() . "\n";&lt;br /&gt;$options = array(&lt;br /&gt;    'host'     =&gt; 'exchangeserver.company.domain',&lt;br /&gt; 'accountDomainName' =&gt; 'company.domain',&lt;br /&gt; 'accountDomainNameShort' =&gt; 'domain',&lt;br /&gt; 'accountCanonicalForm' =&gt; 3,&lt;br /&gt; 'baseDn' =&gt; 'DC=company,DC=domain'&lt;br /&gt;);&lt;br /&gt;$ldap=new Zend_Ldap( $options);&lt;br /&gt;$dn = $ldap-&gt;bind( $result-&gt;getIdentity(), 'yourpassword');&lt;br /&gt;$dn = $ldap-&gt;getCanonicalAccountName( $result-&gt;getIdentity(), Zend_Ldap::ACCTNAME_FORM_DN);&lt;br /&gt;//print_r( $dn);&lt;br /&gt;&lt;br /&gt;$dn = $ldap-&gt;getEntry( $dn);&lt;br /&gt;//print_r( $dn);&lt;br /&gt;&lt;br /&gt;$arr = array( 'email'=&gt;$dn['mail'][0], 'name'=&gt;$dn['givenname'][0], 'familyname'=&gt;$dn['sn'][0]);&lt;br /&gt;print_r( $arr);&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;Replace &lt;span style="font-style: italic;"&gt;exchangeserver&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;company&lt;/span&gt; and &lt;span style="font-style: italic;"&gt;domain&lt;/span&gt; with your company's MS Exchange server.&lt;/li&gt;&lt;/ul&gt;As you see in the code, as a bonus you'll get also the email, full name and many many more details (look inside the &lt;span style="font-style: italic;"&gt;$dn&lt;/span&gt; variable !) out off the LDAP data queried from MS Exchange.&lt;br /&gt;&lt;br /&gt;You're done !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1034435163415394624-8158327118800805708?l=orangevolt.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/orangevolt/~4/_J6MQNaWrnc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://orangevolt.blogspot.com/feeds/8158327118800805708/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://orangevolt.blogspot.com/2009/11/zend-framework-ssoauthenticate-and.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1034435163415394624/posts/default/8158327118800805708?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1034435163415394624/posts/default/8158327118800805708?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/orangevolt/~3/_J6MQNaWrnc/zend-framework-ssoauthenticate-and.html" title="Zend Framework : SSO/Authenticate and retrieve user data from MS Exchange" /><author><name>Lars Gersmann</name><uri>http://www.blogger.com/profile/16034970919790262247</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://orangevolt.com/blog/images/ich.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://orangevolt.blogspot.com/2009/11/zend-framework-ssoauthenticate-and.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU8NQ3o_cCp7ImA9WxNUEUg.&quot;"><id>tag:blogger.com,1999:blog-1034435163415394624.post-4506186620382100287</id><published>2009-11-02T11:23:00.005+01:00</published><updated>2009-11-02T11:31:32.448+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-02T11:31:32.448+01:00</app:edited><title>Internet Explorer DOM hell : the true hasAttribute test</title><content type="html">IE makes's me crazy again !&lt;br /&gt;&lt;br /&gt;IE returns wrong value types (for javascript handlers like 'onclick' a Function object instead of the the handler string ...) or it's internal default value (&amp;lt;input type="submit"&amp;gt; returns 'Submit' for its value attribute ...) for some reason.&lt;br /&gt;&lt;br /&gt;So the only reliable way to request if a HTML attribute &lt;span style="font-weight: bold;"&gt;was really defined&lt;/span&gt; is to test its availability via regular expression against IE's &lt;span style="font-weight: bold;"&gt;outerHTML&lt;/span&gt; property.&lt;br /&gt;&lt;br /&gt;Example : To test if the &lt;span style="font-weight: bold;"&gt;size&lt;/span&gt; attribute of an INPUT element was really defined you can do&lt;br /&gt;&lt;br /&gt;var attrExists = /size( *)=/.test( input.outerHTML);&lt;br /&gt;&lt;br /&gt;Ugly, but the truth.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1034435163415394624-4506186620382100287?l=orangevolt.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/orangevolt/~4/IWX88t0Fizw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://orangevolt.blogspot.com/feeds/4506186620382100287/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://orangevolt.blogspot.com/2009/11/internet-explorer-dom-hell-true.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1034435163415394624/posts/default/4506186620382100287?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1034435163415394624/posts/default/4506186620382100287?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/orangevolt/~3/IWX88t0Fizw/internet-explorer-dom-hell-true.html" title="Internet Explorer DOM hell : the true hasAttribute test" /><author><name>Lars Gersmann</name><uri>http://www.blogger.com/profile/16034970919790262247</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://orangevolt.com/blog/images/ich.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://orangevolt.blogspot.com/2009/11/internet-explorer-dom-hell-true.html</feedburner:origLink></entry></feed>

