<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>blog's amazing</title>
	
	<link>http://blog.dotsamazing.com</link>
	<description>web tech delicacies</description>
	<lastBuildDate>Thu, 29 Apr 2010 16:53:19 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/BlogsAmazing" /><feedburner:info uri="blogsamazing" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Ask git to check if your code is error free!</title>
		<link>http://feedproxy.google.com/~r/BlogsAmazing/~3/ZHAEUakUVVw/</link>
		<comments>http://blog.dotsamazing.com/2010/04/ask-git-to-check-if-your-codes-are-error-free/#comments</comments>
		<pubDate>Thu, 29 Apr 2010 16:51:42 +0000</pubDate>
		<dc:creator>d-a-m</dc:creator>
				<category><![CDATA[web development]]></category>
		<category><![CDATA[cleanup]]></category>
		<category><![CDATA[commit]]></category>
		<category><![CDATA[garbage collection]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[lint]]></category>
		<category><![CDATA[optimization]]></category>
		<category><![CDATA[post-commit]]></category>
		<category><![CDATA[pre-commit]]></category>
		<category><![CDATA[syntax check]]></category>

		<guid isPermaLink="false">http://blog.dotsamazing.com/?p=58</guid>
		<description>How about syntax checking your work before issuing a commit? I&amp;#8217;m sure you know how it feels when those tiny last minute changes - hey it needs no testing! &amp;#8211; just break your app after deployment.
If git is your version control system of choice, make sure you don&amp;#8217;t miss the pre-commit hook feature, which was [...]&lt;img src="http://feeds.feedburner.com/~r/BlogsAmazing/~4/ZHAEUakUVVw" height="1" width="1"/&gt;</description>
		<wfw:commentRss>http://blog.dotsamazing.com/2010/04/ask-git-to-check-if-your-codes-are-error-free/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.dotsamazing.com/2010/04/ask-git-to-check-if-your-codes-are-error-free/</feedburner:origLink></item>
		<item>
		<title>HipHop for PHP – the buzz summary you should really read</title>
		<link>http://feedproxy.google.com/~r/BlogsAmazing/~3/N15qclxximc/</link>
		<comments>http://blog.dotsamazing.com/2010/02/hiphop-for-php-the-buzz-summary-you-should-really-read/#comments</comments>
		<pubDate>Thu, 04 Feb 2010 11:18:35 +0000</pubDate>
		<dc:creator>d-a-m</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[emerging technologies]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://blog.dotsamazing.com/?p=55</guid>
		<description>HipHop for PHP from Facebook hit the streets several days ago resulting in dozens of posts about the technology. Let&amp;#8217;s see what the PHP community says:

Marco Tabini enlists the HipHop features and encourages using it
the echolibre blog talks about possible security/buffer overflow implications, and mentions similar available solutions
Ilia Alshanetsky provides an excellent and thorough overview: [...]&lt;img src="http://feeds.feedburner.com/~r/BlogsAmazing/~4/N15qclxximc" height="1" width="1"/&gt;</description>
		<wfw:commentRss>http://blog.dotsamazing.com/2010/02/hiphop-for-php-the-buzz-summary-you-should-really-read/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.dotsamazing.com/2010/02/hiphop-for-php-the-buzz-summary-you-should-really-read/</feedburner:origLink></item>
		<item>
		<title>Rock Solid HTML Emails</title>
		<link>http://feedproxy.google.com/~r/BlogsAmazing/~3/VeKnbnBMxh0/</link>
		<comments>http://blog.dotsamazing.com/2009/12/rock-solid-html-emails/#comments</comments>
		<pubDate>Mon, 28 Dec 2009 18:11:02 +0000</pubDate>
		<dc:creator>d-a-m</dc:creator>
				<category><![CDATA[e-mail]]></category>
		<category><![CDATA[mail clients]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[direct marketing]]></category>
		<category><![CDATA[e-mail marketing]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[HTML e-mail]]></category>
		<category><![CDATA[quirks]]></category>
		<category><![CDATA[rich e-mail]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[tricks]]></category>

		<guid isPermaLink="false">http://blog.dotsamazing.com/?p=53</guid>
		<description>&amp;#8220;At some stage in your career, it’s likely you’ll be asked by a client to design a HTML email. [...] Building an email is not like building for the web. While web browsers continue their onward march towards standards, many email clients have stubbornly stayed put. Some have even gone backwards.&amp;#8221;
Rock Solid HTML Emails is [...]&lt;img src="http://feeds.feedburner.com/~r/BlogsAmazing/~4/VeKnbnBMxh0" height="1" width="1"/&gt;</description>
		<wfw:commentRss>http://blog.dotsamazing.com/2009/12/rock-solid-html-emails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.dotsamazing.com/2009/12/rock-solid-html-emails/</feedburner:origLink></item>
		<item>
		<title>Why You Should Replace ENUM With Something Else</title>
		<link>http://feedproxy.google.com/~r/BlogsAmazing/~3/s3Nif1VY8jI/</link>
		<comments>http://blog.dotsamazing.com/2009/11/why-you-should-replace-enum-with-something-else/#comments</comments>
		<pubDate>Wed, 25 Nov 2009 23:34:30 +0000</pubDate>
		<dc:creator>d-a-m</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[databases]]></category>
		<category><![CDATA[data type]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[enum]]></category>

		<guid isPermaLink="false">http://blog.dotsamazing.com/?p=51</guid>
		<description>There are many developers who prefer using ENUM in MySQL, which seems to be a viable choice many times. However it&amp;#8217;s important to take care as&amp;#8230;

ENUM requires a rebuild of the table when adding a value to the middle of the set.
ENUM values are ordered in the order they’re added to the database
ENUM values do [...]&lt;img src="http://feeds.feedburner.com/~r/BlogsAmazing/~4/s3Nif1VY8jI" height="1" width="1"/&gt;</description>
		<wfw:commentRss>http://blog.dotsamazing.com/2009/11/why-you-should-replace-enum-with-something-else/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.dotsamazing.com/2009/11/why-you-should-replace-enum-with-something-else/</feedburner:origLink></item>
		<item>
		<title>Google Closure: How not to write JavaScript</title>
		<link>http://feedproxy.google.com/~r/BlogsAmazing/~3/5Q4ykPfjbDg/</link>
		<comments>http://blog.dotsamazing.com/2009/11/google-closure-how-not-to-write-javascript/#comments</comments>
		<pubDate>Fri, 13 Nov 2009 11:06:43 +0000</pubDate>
		<dc:creator>d-a-m</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[emerging technologies]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[google closure]]></category>
		<category><![CDATA[HTML5 canvas]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[memory leak]]></category>
		<category><![CDATA[object]]></category>
		<category><![CDATA[optimization]]></category>
		<category><![CDATA[poor optimization]]></category>
		<category><![CDATA[prototype]]></category>
		<category><![CDATA[unoptimized]]></category>

		<guid isPermaLink="false">http://blog.dotsamazing.com/?p=49</guid>
		<description>Dmitry Baranovskiy, the creator of the Raphaël and gRaphaël JavaScript libraries has serious criticism against the Google Closure JS library.
According to Dmitry:

“It’s a JavaScript library written by Java developers who clearly don’t get JavaScript.”
poorly optimized loops and unoptimized switch statements
memory caching with unlimited size: “I’m not sure what this pattern is called in Java, but [...]&lt;img src="http://feeds.feedburner.com/~r/BlogsAmazing/~4/5Q4ykPfjbDg" height="1" width="1"/&gt;</description>
		<wfw:commentRss>http://blog.dotsamazing.com/2009/11/google-closure-how-not-to-write-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.dotsamazing.com/2009/11/google-closure-how-not-to-write-javascript/</feedburner:origLink></item>
		<item>
		<title>Active Desktop replacement with Adobe AIR</title>
		<link>http://feedproxy.google.com/~r/BlogsAmazing/~3/XDwFNYGj2GE/</link>
		<comments>http://blog.dotsamazing.com/2009/11/active-desktop-replacement-with-adobe-air/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 19:06:18 +0000</pubDate>
		<dc:creator>d-a-m</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[emerging technologies]]></category>
		<category><![CDATA[operating systems]]></category>
		<category><![CDATA[active desktop]]></category>
		<category><![CDATA[adobe air]]></category>
		<category><![CDATA[autohotkey]]></category>
		<category><![CDATA[minimize all]]></category>
		<category><![CDATA[scf]]></category>
		<category><![CDATA[Shell Command File]]></category>
		<category><![CDATA[show desktop]]></category>
		<category><![CDATA[sidebars]]></category>
		<category><![CDATA[widgets]]></category>
		<category><![CDATA[windows vista]]></category>
		<category><![CDATA[windows xp]]></category>

		<guid isPermaLink="false">http://blog.dotsamazing.com/?p=40</guid>
		<description>Interested in simulating XP&amp;#8217;s Active Desktop without Active Desktop? We&amp;#8217;ve had taken the challenge!
Why?
One of our clients wanted a central web application running on the desktop which provides nearly realtime business information for more than a hundred users in a company. After some discussion with the company&amp;#8217;s IT staff we&amp;#8217;ve chosen Active Desktop as all [...]&lt;img src="http://feeds.feedburner.com/~r/BlogsAmazing/~4/XDwFNYGj2GE" height="1" width="1"/&gt;</description>
		<wfw:commentRss>http://blog.dotsamazing.com/2009/11/active-desktop-replacement-with-adobe-air/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://blog.dotsamazing.com/2009/11/active-desktop-replacement-with-adobe-air/</feedburner:origLink></item>
		<item>
		<title>Five Tips To Make Good Object-Oriented Code Better – Brandon Savage</title>
		<link>http://feedproxy.google.com/~r/BlogsAmazing/~3/_S0_eLs9jM4/</link>
		<comments>http://blog.dotsamazing.com/2009/11/five-tips-to-make-good-object-oriented-code-better-brandon-savage/#comments</comments>
		<pubDate>Sat, 07 Nov 2009 14:12:12 +0000</pubDate>
		<dc:creator>d-a-m</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://blog.dotsamazing.com/?p=38</guid>
		<description>Brandon Savage has some great tips regarding coding OOP:

&amp;#8220;Use Objects. Lots of Objects&amp;#8221;
&amp;#8220;Use Interfaces To Make APIs Predictable&amp;#8221;
Use Dependency Injection&amp;#8221;
&amp;#8220;Composition Over Inheritance&amp;#8221;
&amp;#8220;Create Loosely Coupled Classes&amp;#8221;

As you can see it&amp;#8217;s absolutely not rocket science nor these are new invetions: these rules simply help to avoid typical OOP pitfalls and keep your applications well structured.&lt;img src="http://feeds.feedburner.com/~r/BlogsAmazing/~4/_S0_eLs9jM4" height="1" width="1"/&gt;</description>
		<wfw:commentRss>http://blog.dotsamazing.com/2009/11/five-tips-to-make-good-object-oriented-code-better-brandon-savage/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.dotsamazing.com/2009/11/five-tips-to-make-good-object-oriented-code-better-brandon-savage/</feedburner:origLink></item>
		<item>
		<title>Google releases Closure, the tools behind the JS geniuses</title>
		<link>http://feedproxy.google.com/~r/BlogsAmazing/~3/fQCPbW3guf4/</link>
		<comments>http://blog.dotsamazing.com/2009/11/google-releases-closure-the-tools-behind-the-js-geniuses/#comments</comments>
		<pubDate>Fri, 06 Nov 2009 20:17:49 +0000</pubDate>
		<dc:creator>d-a-m</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[emerging technologies]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[closure]]></category>
		<category><![CDATA[compiler]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[library]]></category>
		<category><![CDATA[template]]></category>

		<guid isPermaLink="false">http://blog.dotsamazing.com/?p=36</guid>
		<description>Google released Closure, the library and toolset that powers Docs and other Google products.
Closure includes:

Closure Compiler - removes dead code and rewrites and minimizes what’s left, checks syntax, variable references and types, and warns about common JavaScript pitfalls.
Closure Library - a JS library with widgets, controls, lower-level utilities for DOM manipulation, server communication, animation, data [...]&lt;img src="http://feeds.feedburner.com/~r/BlogsAmazing/~4/fQCPbW3guf4" height="1" width="1"/&gt;</description>
		<wfw:commentRss>http://blog.dotsamazing.com/2009/11/google-releases-closure-the-tools-behind-the-js-geniuses/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.dotsamazing.com/2009/11/google-releases-closure-the-tools-behind-the-js-geniuses/</feedburner:origLink></item>
		<item>
		<title>“Micro” Optimizations That Matter</title>
		<link>http://feedproxy.google.com/~r/BlogsAmazing/~3/sPXXaSObygg/</link>
		<comments>http://blog.dotsamazing.com/2009/10/%e2%80%9cmicro%e2%80%9d-optimizations-that-matter-brandonsavage-net/#comments</comments>
		<pubDate>Fri, 16 Oct 2009 09:21:59 +0000</pubDate>
		<dc:creator>d-a-m</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[autoloader]]></category>
		<category><![CDATA[caching]]></category>
		<category><![CDATA[cdn]]></category>
		<category><![CDATA[content-delivery network]]></category>
		<category><![CDATA[error logging]]></category>
		<category><![CDATA[optimization]]></category>
		<category><![CDATA[output buffering]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[real-time data]]></category>

		<guid isPermaLink="false">http://blog.dotsamazing.com/?p=32</guid>
		<description>Brandon Savage compiled a good summary of application performance tips. Definitely not the difference between using single and double quotes in your code: these are easy to implement and effective (=&amp;#8221;micro&amp;#8221;) methods to improve responsiveness of your code, like:

Caching
Eliminate Any Sort Of Logged Errors
Enable Output Buffering For Everything
Make Use Of A Content-Delivery Network
Determine What Data [...]&lt;img src="http://feeds.feedburner.com/~r/BlogsAmazing/~4/sPXXaSObygg" height="1" width="1"/&gt;</description>
		<wfw:commentRss>http://blog.dotsamazing.com/2009/10/%e2%80%9cmicro%e2%80%9d-optimizations-that-matter-brandonsavage-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.dotsamazing.com/2009/10/%e2%80%9cmicro%e2%80%9d-optimizations-that-matter-brandonsavage-net/</feedburner:origLink></item>
		<item>
		<title>Watch out for your CRON jobs</title>
		<link>http://feedproxy.google.com/~r/BlogsAmazing/~3/mObXdQTB7RA/</link>
		<comments>http://blog.dotsamazing.com/2009/10/watch-out-for-your-cron-jobs/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 10:59:56 +0000</pubDate>
		<dc:creator>d-a-m</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[background]]></category>
		<category><![CDATA[cron]]></category>
		<category><![CDATA[error handling]]></category>
		<category><![CDATA[exclusive]]></category>
		<category><![CDATA[job]]></category>
		<category><![CDATA[locking]]></category>
		<category><![CDATA[logging]]></category>

		<guid isPermaLink="false">http://blog.dotsamazing.com/?p=29</guid>
		<description>Running CRON jobs is not an easy task if you want to do it perfectly: fortunately we&amp;#8217;re doing it similarly as it&amp;#8217;s recommended by the Percona guys:
- prevent running multiple copies using file locks
- watch for errors
- store historical run times (use logging)
Further details and code sample in Watch out for your CRON jobs at [...]&lt;img src="http://feeds.feedburner.com/~r/BlogsAmazing/~4/mObXdQTB7RA" height="1" width="1"/&gt;</description>
		<wfw:commentRss>http://blog.dotsamazing.com/2009/10/watch-out-for-your-cron-jobs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.dotsamazing.com/2009/10/watch-out-for-your-cron-jobs/</feedburner:origLink></item>
	</channel>
</rss>
