<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?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;AkMMRH04eyp7ImA9WhRXEUs.&quot;"><id>tag:blogger.com,1999:blog-6747788967703537929</id><updated>2011-12-18T01:34:45.333+01:00</updated><category term="PHP" /><category term="IE" /><category term="My Library" /><category term="JavaScript" /><category term="Other" /><category term="CSS" /><category term="HTML" /><title>Zen Dev</title><subtitle type="html" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://into-the-zen.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://into-the-zen.blogspot.com/" /><author><name>Ivan Škugor</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://4.bp.blogspot.com/_AQWqGOAmZFo/S7ppkzEE8EI/AAAAAAAACfE/T1eb4KeDA1Y/S220/n.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>15</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/ZenWebDevelopment" /><feedburner:info uri="zenwebdevelopment" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;Dk4ESXYzeCp7ImA9WhdaFks.&quot;"><id>tag:blogger.com,1999:blog-6747788967703537929.post-8692915130271817049</id><published>2011-10-26T21:50:00.002+02:00</published><updated>2011-10-26T23:35:08.880+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-26T23:35:08.880+02:00</app:edited><title>My thoughts on Nokia</title><link rel="replies" type="application/atom+xml" href="http://into-the-zen.blogspot.com/feeds/8692915130271817049/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://into-the-zen.blogspot.com/2011/10/my-thoughts-on-nokia.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6747788967703537929/posts/default/8692915130271817049?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6747788967703537929/posts/default/8692915130271817049?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ZenWebDevelopment/~3/otfmpHXDLu0/my-thoughts-on-nokia.html" title="My thoughts on Nokia" /><author><name>Ivan Škugor</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://4.bp.blogspot.com/_AQWqGOAmZFo/S7ppkzEE8EI/AAAAAAAACfE/T1eb4KeDA1Y/S220/n.jpg" /></author><thr:total>0</thr:total><content type="html">Recently Nokia has gained a lot of attraction since it has (almost) fall from leading mobile phone manufacturer (yeah, Symbians are still top selling mobile phone devices). In this post I will give some personal opinions about Nokia, it's past, present and the future.


My first mobile phone wasn't Nokia. I actually had several brands before I bought first Nokia. At that time, I didn't find it 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/WTIcwEMHhNj08Kd_dLWgf28LViw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/WTIcwEMHhNj08Kd_dLWgf28LViw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/WTIcwEMHhNj08Kd_dLWgf28LViw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/WTIcwEMHhNj08Kd_dLWgf28LViw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ZenWebDevelopment/~4/otfmpHXDLu0" height="1" width="1"/&gt;</content><feedburner:origLink>http://into-the-zen.blogspot.com/2011/10/my-thoughts-on-nokia.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0cBR3k9cCp7ImA9WhdaEk8.&quot;"><id>tag:blogger.com,1999:blog-6747788967703537929.post-6125028452389881762</id><published>2011-10-21T20:14:00.002+02:00</published><updated>2011-10-21T20:17:36.768+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-21T20:17:36.768+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Other" /><title>Contraction hierarchies (part 4)</title><link rel="replies" type="application/atom+xml" href="http://into-the-zen.blogspot.com/feeds/6125028452389881762/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://into-the-zen.blogspot.com/2011/10/contraction-hierarchies-part-4.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6747788967703537929/posts/default/6125028452389881762?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6747788967703537929/posts/default/6125028452389881762?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ZenWebDevelopment/~3/LXvJW7V4KYg/contraction-hierarchies-part-4.html" title="Contraction hierarchies (part 4)" /><author><name>Ivan Škugor</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://4.bp.blogspot.com/_AQWqGOAmZFo/S7ppkzEE8EI/AAAAAAAACfE/T1eb4KeDA1Y/S220/n.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-eRRm0QwQIz4/TqGudPbhLDI/AAAAAAAACnM/BzQO8z42Yn8/s72-c/pic1.png" height="72" width="72" /><thr:total>0</thr:total><content type="html">When preprocessing of original graphis is done, we need to build CH graph which consists of node order and original graph with shortcut edges introduced in preprocessing stage.

On CH graph we can make queries to find shortest paths with modified bidirectional Dijkstra's algorithm - algorthm performs forward search from starting node s expanding to the nodes that have higher order and backward 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/TuPN85CWBBDSWcuRofyHjkNIjbU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/TuPN85CWBBDSWcuRofyHjkNIjbU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/TuPN85CWBBDSWcuRofyHjkNIjbU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/TuPN85CWBBDSWcuRofyHjkNIjbU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ZenWebDevelopment/~4/LXvJW7V4KYg" height="1" width="1"/&gt;</content><feedburner:origLink>http://into-the-zen.blogspot.com/2011/10/contraction-hierarchies-part-4.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0ICQn04fSp7ImA9WhdQFE8.&quot;"><id>tag:blogger.com,1999:blog-6747788967703537929.post-6683744117896899828</id><published>2011-08-15T17:19:00.000+02:00</published><updated>2011-08-15T17:19:23.335+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-15T17:19:23.335+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Other" /><title>Contraction hierarchies (part 3)</title><link rel="replies" type="application/atom+xml" href="http://into-the-zen.blogspot.com/feeds/6683744117896899828/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://into-the-zen.blogspot.com/2011/08/contraction-hierarchies-part-3.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6747788967703537929/posts/default/6683744117896899828?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6747788967703537929/posts/default/6683744117896899828?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ZenWebDevelopment/~3/COvdZQhrIiQ/contraction-hierarchies-part-3.html" title="Contraction hierarchies (part 3)" /><author><name>Ivan Škugor</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://4.bp.blogspot.com/_AQWqGOAmZFo/S7ppkzEE8EI/AAAAAAAACfE/T1eb4KeDA1Y/S220/n.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-AgStT-u6G2c/Tkkbmx4JNiI/AAAAAAAACm8/JZPl3RZNNtM/s72-c/1.png" height="72" width="72" /><thr:total>0</thr:total><content type="html">Formal definition of CH would be:

CH = (V, E'), "&amp;lt;", where V is set of nodes, E is set of edges of original graph with introduced shortcut edges and "&amp;lt;" is relation that defines different levels of contration hierarchy.

Levels/order of nodes in CH can be arbitrary. The main point is that shorcuts are introduced when necessary. To understand when shortcut is necessary, one has to understand the 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/4QRr6iIyziVacYn5zRDTziUy6xA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4QRr6iIyziVacYn5zRDTziUy6xA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/4QRr6iIyziVacYn5zRDTziUy6xA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4QRr6iIyziVacYn5zRDTziUy6xA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ZenWebDevelopment/~4/COvdZQhrIiQ" height="1" width="1"/&gt;</content><feedburner:origLink>http://into-the-zen.blogspot.com/2011/08/contraction-hierarchies-part-3.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkEHRn8_cSp7ImA9Wx9bGU4.&quot;"><id>tag:blogger.com,1999:blog-6747788967703537929.post-9218202034430837272</id><published>2011-02-28T22:56:00.007+01:00</published><updated>2011-02-28T23:03:57.149+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-28T23:03:57.149+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Other" /><title>Contraction hierarchies (part 2)</title><link rel="replies" type="application/atom+xml" href="http://into-the-zen.blogspot.com/feeds/9218202034430837272/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://into-the-zen.blogspot.com/2011/02/contraction-hierarchies-part-2.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6747788967703537929/posts/default/9218202034430837272?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6747788967703537929/posts/default/9218202034430837272?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ZenWebDevelopment/~3/fZQDTVgJtRM/contraction-hierarchies-part-2.html" title="Contraction hierarchies (part 2)" /><author><name>Ivan Škugor</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://4.bp.blogspot.com/_AQWqGOAmZFo/S7ppkzEE8EI/AAAAAAAACfE/T1eb4KeDA1Y/S220/n.jpg" /></author><thr:total>0</thr:total><content type="html">So, in general, there are two distinct phases: preprocessing of original graph (usually it takes more than a hour to finish) and queries (less than a second).


Contraction hierarchy is extreme case of hierarchy approach. Every node in the graph is represented as it's own level of hierarchy. This can be achieved in many ways, but one way is obvious and simple. If |N| is number of nodes in the 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/D_PSQTJbhlvnUSDlBAhUQkhMBDs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/D_PSQTJbhlvnUSDlBAhUQkhMBDs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/D_PSQTJbhlvnUSDlBAhUQkhMBDs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/D_PSQTJbhlvnUSDlBAhUQkhMBDs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ZenWebDevelopment/~4/fZQDTVgJtRM" height="1" width="1"/&gt;</content><feedburner:origLink>http://into-the-zen.blogspot.com/2011/02/contraction-hierarchies-part-2.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0AEQ38yfCp7ImA9Wx9bGU8.&quot;"><id>tag:blogger.com,1999:blog-6747788967703537929.post-8242557551556750994</id><published>2011-01-26T09:52:00.001+01:00</published><updated>2011-02-28T21:41:42.194+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-28T21:41:42.194+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Other" /><title>Contraction hierarchies (part 1)</title><link rel="replies" type="application/atom+xml" href="http://into-the-zen.blogspot.com/feeds/8242557551556750994/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://into-the-zen.blogspot.com/2011/01/contraction-hierarchies-part-1.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6747788967703537929/posts/default/8242557551556750994?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6747788967703537929/posts/default/8242557551556750994?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ZenWebDevelopment/~3/J_CpZtWSVPc/contraction-hierarchies-part-1.html" title="Contraction hierarchies (part 1)" /><author><name>Ivan Škugor</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://4.bp.blogspot.com/_AQWqGOAmZFo/S7ppkzEE8EI/AAAAAAAACfE/T1eb4KeDA1Y/S220/n.jpg" /></author><thr:total>0</thr:total><content type="html">And now something completely different. :)



"Contraction hierarchies" is new approach for solving shortest path problem in graph theory. Shortest path problem (http://en.wikipedia.org/wiki/Shortest_path_problem) can be solved using classical algorithms like Dijkstra's algorithm (http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm). But, classical algorithms are not useful on large graphs (more 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/rcgVEDaayFJrneyieU3U9P3Dnes/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/rcgVEDaayFJrneyieU3U9P3Dnes/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/rcgVEDaayFJrneyieU3U9P3Dnes/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/rcgVEDaayFJrneyieU3U9P3Dnes/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ZenWebDevelopment/~4/J_CpZtWSVPc" height="1" width="1"/&gt;</content><feedburner:origLink>http://into-the-zen.blogspot.com/2011/01/contraction-hierarchies-part-1.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0YNQno7fyp7ImA9Wx5TE08.&quot;"><id>tag:blogger.com,1999:blog-6747788967703537929.post-576850342206911086</id><published>2010-07-28T14:23:00.001+02:00</published><updated>2010-07-28T14:46:33.407+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-28T14:46:33.407+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="IE" /><title>Will Microsoft finally release decent version of Internet explorer?</title><link rel="replies" type="application/atom+xml" href="http://into-the-zen.blogspot.com/feeds/576850342206911086/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://into-the-zen.blogspot.com/2010/07/will-microsoft-finally-release-decent.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6747788967703537929/posts/default/576850342206911086?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6747788967703537929/posts/default/576850342206911086?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ZenWebDevelopment/~3/IQr_WjzRoEs/will-microsoft-finally-release-decent.html" title="Will Microsoft finally release decent version of Internet explorer?" /><author><name>Ivan Škugor</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://4.bp.blogspot.com/_AQWqGOAmZFo/S7ppkzEE8EI/AAAAAAAACfE/T1eb4KeDA1Y/S220/n.jpg" /></author><thr:total>0</thr:total><content type="html">Web developers knows how difficult is to make functional page in IE6 due to it's bugs and non standard behavior. It takes a lot of skills and quirks to make IE6 users happy.

Even regular Internet users know how bad IE6 is. Many of them got some kind of malicious software due to poor security.

Many of IE6 users are corporate users (Google was for example, but many banks are still stuck with IE6)
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/PyJMLazEat18I-ooI1Xq0_ITND0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/PyJMLazEat18I-ooI1Xq0_ITND0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/PyJMLazEat18I-ooI1Xq0_ITND0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/PyJMLazEat18I-ooI1Xq0_ITND0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ZenWebDevelopment/~4/IQr_WjzRoEs" height="1" width="1"/&gt;</content><feedburner:origLink>http://into-the-zen.blogspot.com/2010/07/will-microsoft-finally-release-decent.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak8CSXoyeip7ImA9WxFaFk8.&quot;"><id>tag:blogger.com,1999:blog-6747788967703537929.post-5264587590169632597</id><published>2010-07-20T14:27:00.000+02:00</published><updated>2010-07-20T14:27:48.492+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-20T14:27:48.492+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="PHP" /><title>Aptana for PHP</title><link rel="replies" type="application/atom+xml" href="http://into-the-zen.blogspot.com/feeds/5264587590169632597/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://into-the-zen.blogspot.com/2010/07/aptana-for-php.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6747788967703537929/posts/default/5264587590169632597?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6747788967703537929/posts/default/5264587590169632597?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ZenWebDevelopment/~3/5TA8xXqCbCs/aptana-for-php.html" title="Aptana for PHP" /><author><name>Ivan Škugor</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://4.bp.blogspot.com/_AQWqGOAmZFo/S7ppkzEE8EI/AAAAAAAACfE/T1eb4KeDA1Y/S220/n.jpg" /></author><thr:total>0</thr:total><content type="html">My favorite IDE has support for PHP again!

It's still in early stage of development, but it looks promising. Feel free to try it, it usable at this stage.

http://www.aptana.com/products/studio3/download 

Test it, report bugs - and make suggestions! Suggestions will help Aptana team to make this product better.

https://aptanastudio.tenderapp.com/discussions/suggestions
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ziSDfAL8gJ1DtgqTzU8-S3QNHUs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ziSDfAL8gJ1DtgqTzU8-S3QNHUs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ziSDfAL8gJ1DtgqTzU8-S3QNHUs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ziSDfAL8gJ1DtgqTzU8-S3QNHUs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ZenWebDevelopment/~4/5TA8xXqCbCs" height="1" width="1"/&gt;</content><feedburner:origLink>http://into-the-zen.blogspot.com/2010/07/aptana-for-php.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0QER349cCp7ImA9WxFSGUk.&quot;"><id>tag:blogger.com,1999:blog-6747788967703537929.post-2726700695479987424</id><published>2010-04-22T17:08:00.004+02:00</published><updated>2010-04-22T17:15:06.068+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-22T17:15:06.068+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="JavaScript" /><category scheme="http://www.blogger.com/atom/ns#" term="My Library" /><title>How to choose JavaScript framework</title><link rel="replies" type="application/atom+xml" href="http://into-the-zen.blogspot.com/feeds/2726700695479987424/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://into-the-zen.blogspot.com/2010/04/how-to-choose-javascript-framework.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6747788967703537929/posts/default/2726700695479987424?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6747788967703537929/posts/default/2726700695479987424?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ZenWebDevelopment/~3/whvvBvte-J8/how-to-choose-javascript-framework.html" title="How to choose JavaScript framework" /><author><name>Ivan Škugor</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://4.bp.blogspot.com/_AQWqGOAmZFo/S7ppkzEE8EI/AAAAAAAACfE/T1eb4KeDA1Y/S220/n.jpg" /></author><thr:total>0</thr:total><content type="html">You have probably found many articles describing what are requirements that one JavaScript framework has to have. Some of them are (they are not listed in any particular order):
list of supported browsers
documentation
community
intuitive API
speed
extensible
and so on.
But many of this articles fail to mention one of the most important things. This article will introduce you to one of the most 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/FHUPXEcjuYKFKie_r9vkgn_qPG8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FHUPXEcjuYKFKie_r9vkgn_qPG8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/FHUPXEcjuYKFKie_r9vkgn_qPG8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FHUPXEcjuYKFKie_r9vkgn_qPG8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ZenWebDevelopment/~4/whvvBvte-J8" height="1" width="1"/&gt;</content><feedburner:origLink>http://into-the-zen.blogspot.com/2010/04/how-to-choose-javascript-framework.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUAMRn8zcSp7ImA9WxFSFUQ.&quot;"><id>tag:blogger.com,1999:blog-6747788967703537929.post-7981704528914635868</id><published>2010-04-18T15:36:00.001+02:00</published><updated>2010-04-18T15:36:27.189+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-18T15:36:27.189+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="JavaScript" /><category scheme="http://www.blogger.com/atom/ns#" term="CSS" /><category scheme="http://www.blogger.com/atom/ns#" term="HTML" /><title>IE6 and CSS ":hover" pseudo-class</title><link rel="replies" type="application/atom+xml" href="http://into-the-zen.blogspot.com/feeds/7981704528914635868/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://into-the-zen.blogspot.com/2010/04/ie6-and-css-hover-pseudo-class.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6747788967703537929/posts/default/7981704528914635868?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6747788967703537929/posts/default/7981704528914635868?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ZenWebDevelopment/~3/inOIIRtPqG4/ie6-and-css-hover-pseudo-class.html" title="IE6 and CSS &quot;:hover&quot; pseudo-class" /><author><name>Ivan Škugor</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://4.bp.blogspot.com/_AQWqGOAmZFo/S7ppkzEE8EI/AAAAAAAACfE/T1eb4KeDA1Y/S220/n.jpg" /></author><thr:total>0</thr:total><content type="html">In my last post I've forgot about one important thing - IE6 doesn't support CSS ":hover" pseudo-class for "span" elements (actually, it supports it only for "a" - anchor elements).

There are some solutions for this problem and you can find it easily with search engines. I prefer using IE conditional comments in which one can include what ever is specific for IE. In this case, ":hover" 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ecgCZXIcrmGbjs6dsonj0ywGaN0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ecgCZXIcrmGbjs6dsonj0ywGaN0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ecgCZXIcrmGbjs6dsonj0ywGaN0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ecgCZXIcrmGbjs6dsonj0ywGaN0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ZenWebDevelopment/~4/inOIIRtPqG4" height="1" width="1"/&gt;</content><feedburner:origLink>http://into-the-zen.blogspot.com/2010/04/ie6-and-css-hover-pseudo-class.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUIHQnc-fSp7ImA9WxFSE04.&quot;"><id>tag:blogger.com,1999:blog-6747788967703537929.post-7598219788984278287</id><published>2010-04-15T14:59:00.008+02:00</published><updated>2010-04-15T15:18:53.955+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-15T15:18:53.955+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="JavaScript" /><category scheme="http://www.blogger.com/atom/ns#" term="HTML" /><title>Don't use "javascript:" pseudo-protocol</title><link rel="replies" type="application/atom+xml" href="http://into-the-zen.blogspot.com/feeds/7598219788984278287/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://into-the-zen.blogspot.com/2010/04/dont-use-javascript-pseudo-protocol.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6747788967703537929/posts/default/7598219788984278287?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6747788967703537929/posts/default/7598219788984278287?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ZenWebDevelopment/~3/O1w7IwFMcWI/dont-use-javascript-pseudo-protocol.html" title="Don't use &quot;javascript:&quot; pseudo-protocol" /><author><name>Ivan Škugor</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://4.bp.blogspot.com/_AQWqGOAmZFo/S7ppkzEE8EI/AAAAAAAACfE/T1eb4KeDA1Y/S220/n.jpg" /></author><thr:total>0</thr:total><content type="html">I see many web pages uses "javascript:" pseudo-protocol in the "href" attribute of "a" (anchor) element.

For example:

&amp;lt;a href="javascript:myFunc();"&amp;gt;Click me!&amp;lt;/a&amp;gt;
But that's not a good practice. IE6 produces some side effects when using "javascript:" pseudo-protocol (newer versions of IE seems to solve the problems). One side effect is that it blocks "gif" animation (you can try and see that)!

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/BpzwsqFZJdEr6DC9S93cP95dmek/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/BpzwsqFZJdEr6DC9S93cP95dmek/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/BpzwsqFZJdEr6DC9S93cP95dmek/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/BpzwsqFZJdEr6DC9S93cP95dmek/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ZenWebDevelopment/~4/O1w7IwFMcWI" height="1" width="1"/&gt;</content><feedburner:origLink>http://into-the-zen.blogspot.com/2010/04/dont-use-javascript-pseudo-protocol.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUQBQ3oyfCp7ImA9WxFSEkg.&quot;"><id>tag:blogger.com,1999:blog-6747788967703537929.post-2274824376057771111</id><published>2010-04-14T16:53:00.011+02:00</published><updated>2010-04-14T17:02:32.494+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-14T17:02:32.494+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="HTML" /><title>What HTML DOCTYPE to choose?</title><link rel="replies" type="application/atom+xml" href="http://into-the-zen.blogspot.com/feeds/2274824376057771111/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://into-the-zen.blogspot.com/2010/04/what-html-doctype-to-choose.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6747788967703537929/posts/default/2274824376057771111?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6747788967703537929/posts/default/2274824376057771111?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ZenWebDevelopment/~3/Nfh7gA0H_HE/what-html-doctype-to-choose.html" title="What HTML DOCTYPE to choose?" /><author><name>Ivan Škugor</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://4.bp.blogspot.com/_AQWqGOAmZFo/S7ppkzEE8EI/AAAAAAAACfE/T1eb4KeDA1Y/S220/n.jpg" /></author><thr:total>0</thr:total><content type="html">

Intro


If you don't know what DOCTYPE is (http://en.wikipedia.org/wiki/Document_Type_Declaration) - or even worse, don't use it in your HTML documents ... well, you should. When DOCTYPE is not present, some browsers are triggered to the quirks mode and then they render web page in a different way. So, in order to get your HTML page to look and behave similar/same in cross-browsers way, you 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/aVBYCsAc1UktMldoHj0pIJ6t6ck/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/aVBYCsAc1UktMldoHj0pIJ6t6ck/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/aVBYCsAc1UktMldoHj0pIJ6t6ck/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/aVBYCsAc1UktMldoHj0pIJ6t6ck/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ZenWebDevelopment/~4/Nfh7gA0H_HE" height="1" width="1"/&gt;</content><feedburner:origLink>http://into-the-zen.blogspot.com/2010/04/what-html-doctype-to-choose.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkYBQX0zeCp7ImA9WxFSFks.&quot;"><id>tag:blogger.com,1999:blog-6747788967703537929.post-8721599481681339491</id><published>2010-04-11T20:48:00.007+02:00</published><updated>2010-04-19T08:55:50.380+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-19T08:55:50.380+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="PHP" /><title>PHP benchmarks (part 3)</title><link rel="replies" type="application/atom+xml" href="http://into-the-zen.blogspot.com/feeds/8721599481681339491/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://into-the-zen.blogspot.com/2010/04/php-benchmarks-part-3.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6747788967703537929/posts/default/8721599481681339491?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6747788967703537929/posts/default/8721599481681339491?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ZenWebDevelopment/~3/Ykc1R_j5Nc8/php-benchmarks-part-3.html" title="PHP benchmarks (part 3)" /><author><name>Ivan Škugor</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://4.bp.blogspot.com/_AQWqGOAmZFo/S7ppkzEE8EI/AAAAAAAACfE/T1eb4KeDA1Y/S220/n.jpg" /></author><thr:total>2</thr:total><content type="html">There is third and final post about PHP benchmarks.


Test:double (")    vs.    single (') quotes
This one doesn't need to be tested, since single quotes are faster (but not so much as people would think), since double quotes strings do parse to find variables and special characters while single quotes don't.

Here is simple example to demonstrate that:

$var = 123;$single_quotes = '$var\n';$
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/p7o_qdNWD3ld0pDD9hx1MGPPH7E/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/p7o_qdNWD3ld0pDD9hx1MGPPH7E/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/p7o_qdNWD3ld0pDD9hx1MGPPH7E/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/p7o_qdNWD3ld0pDD9hx1MGPPH7E/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ZenWebDevelopment/~4/Ykc1R_j5Nc8" height="1" width="1"/&gt;</content><feedburner:origLink>http://into-the-zen.blogspot.com/2010/04/php-benchmarks-part-3.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUcDQno9fCp7ImA9WxFTGEw.&quot;"><id>tag:blogger.com,1999:blog-6747788967703537929.post-3591302687557001726</id><published>2010-04-09T14:17:00.009+02:00</published><updated>2010-04-09T14:44:33.464+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-09T14:44:33.464+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="PHP" /><title>PHP benchmarks (part 2)</title><link rel="replies" type="application/atom+xml" href="http://into-the-zen.blogspot.com/feeds/3591302687557001726/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://into-the-zen.blogspot.com/2010/04/php-benchmarks-part-2.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6747788967703537929/posts/default/3591302687557001726?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6747788967703537929/posts/default/3591302687557001726?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ZenWebDevelopment/~3/FZJzxAcK75A/php-benchmarks-part-2.html" title="PHP benchmarks (part 2)" /><author><name>Ivan Škugor</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://4.bp.blogspot.com/_AQWqGOAmZFo/S7ppkzEE8EI/AAAAAAAACfE/T1eb4KeDA1Y/S220/n.jpg" /></author><thr:total>0</thr:total><content type="html">Let's continue ...

Next test  is:

TestIs it worth the effort to calculate the length of the loop in  advance? 
E.g.  "$size=count($array); for ($i=0; $i&amp;lt;$size; $i++)" instead of  "for ($i=0;  $i&amp;lt;count($array);$i++)"
This test is good in terms of optimization (precalculation  of array's size is worth, because size of an array is being calculated every time at new iteration), but one thing has to
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/LDorPf7h3wt3lREUGTprRINwo3g/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/LDorPf7h3wt3lREUGTprRINwo3g/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/LDorPf7h3wt3lREUGTprRINwo3g/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/LDorPf7h3wt3lREUGTprRINwo3g/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ZenWebDevelopment/~4/FZJzxAcK75A" height="1" width="1"/&gt;</content><feedburner:origLink>http://into-the-zen.blogspot.com/2010/04/php-benchmarks-part-2.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0YHQ3c5eCp7ImA9WxFTFUQ.&quot;"><id>tag:blogger.com,1999:blog-6747788967703537929.post-8382538795403476248</id><published>2010-04-06T17:37:00.009+02:00</published><updated>2010-04-07T01:05:32.920+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-07T01:05:32.920+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="PHP" /><title>PHP benchmarks (part 1)</title><link rel="replies" type="application/atom+xml" href="http://into-the-zen.blogspot.com/feeds/8382538795403476248/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://into-the-zen.blogspot.com/2010/04/php-benchmarks-part-1.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6747788967703537929/posts/default/8382538795403476248?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6747788967703537929/posts/default/8382538795403476248?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ZenWebDevelopment/~3/a6QYESBc3vk/php-benchmarks-part-1.html" title="PHP benchmarks (part 1)" /><author><name>Ivan Škugor</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://4.bp.blogspot.com/_AQWqGOAmZFo/S7ppkzEE8EI/AAAAAAAACfE/T1eb4KeDA1Y/S220/n.jpg" /></author><thr:total>2</thr:total><content type="html">Recently I've stumbled upon several PHP benchmark tests. I've found that a lot of these tests were inaccurate or based on false conceptions.
Unfortunately, none of them mentioned what PHP version are they using (and maybe some extra stuff could be useful also). I'll use PHP 5.3/Apache 2.2 on my Windows XP SP3.


Let's bring up some light. I'll begin with loops!

LOOPS


Question: What is the best
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Lw3jzLE6HybhUq9n2MavdU4YzzE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Lw3jzLE6HybhUq9n2MavdU4YzzE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Lw3jzLE6HybhUq9n2MavdU4YzzE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Lw3jzLE6HybhUq9n2MavdU4YzzE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ZenWebDevelopment/~4/a6QYESBc3vk" height="1" width="1"/&gt;</content><feedburner:origLink>http://into-the-zen.blogspot.com/2010/04/php-benchmarks-part-1.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkADR3s4fCp7ImA9WxFTE0o.&quot;"><id>tag:blogger.com,1999:blog-6747788967703537929.post-7596568248332722477</id><published>2010-04-04T11:47:00.000+02:00</published><updated>2010-04-04T11:52:56.534+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-04T11:52:56.534+02:00</app:edited><title>Intro</title><link rel="replies" type="application/atom+xml" href="http://into-the-zen.blogspot.com/feeds/7596568248332722477/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://into-the-zen.blogspot.com/2010/04/intro.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6747788967703537929/posts/default/7596568248332722477?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6747788967703537929/posts/default/7596568248332722477?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ZenWebDevelopment/~3/Fm9-8p3he4U/intro.html" title="Intro" /><author><name>Ivan Škugor</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://4.bp.blogspot.com/_AQWqGOAmZFo/S7ppkzEE8EI/AAAAAAAACfE/T1eb4KeDA1Y/S220/n.jpg" /></author><thr:total>0</thr:total><content type="html">Welcome!This will be a blog dedicated to web development in general, PHP in particular, My library - new and promising JavaScript framework, HTML &amp;amp; CSS, system design, design patterns and much more.I'll try to write simple as possible ~ zenfully.Hope you'll like it!
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/x1a44xjtdYQC5KNuqcSThDwdcYQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/x1a44xjtdYQC5KNuqcSThDwdcYQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/x1a44xjtdYQC5KNuqcSThDwdcYQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/x1a44xjtdYQC5KNuqcSThDwdcYQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ZenWebDevelopment/~4/Fm9-8p3he4U" height="1" width="1"/&gt;</content><feedburner:origLink>http://into-the-zen.blogspot.com/2010/04/intro.html</feedburner:origLink></entry></feed>

