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

<channel>
	<title>Simon Whatley &#187; Python</title>
	<atom:link href="http://www.simonwhatley.co.uk/tag/python/feed" rel="self" type="application/rss+xml" />
	<link>http://www.simonwhatley.co.uk</link>
	<description>The opposite of every great idea is another great idea</description>
	<lastBuildDate>Wed, 02 Nov 2011 09:28:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>My Work Philosophy</title>
		<link>http://www.simonwhatley.co.uk/my-work-philosophy</link>
		<comments>http://www.simonwhatley.co.uk/my-work-philosophy#comments</comments>
		<pubDate>Thu, 05 Mar 2009 15:29:19 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
				<category><![CDATA[Strategy]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[Asides]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Dev Opera]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Freelancing]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Google Code]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[philosophy]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[unix]]></category>
		<category><![CDATA[web community]]></category>
		<category><![CDATA[work]]></category>
		<category><![CDATA[Yahoo]]></category>
		<category><![CDATA[zen]]></category>
		<category><![CDATA[Zoho]]></category>

		<guid isPermaLink="false">http://www.simonwhatley.co.uk/?p=1833</guid>
		<description><![CDATA[Okay, so many of the points below aren’t purely my philosophy, but ideas and principles I have picked up along the way throughout my [development] career. Some relate to the UNIX philosophy, or even the Zen of Python, but wherever they’re from, they can be applied to many other domains.]]></description>
			<content:encoded><![CDATA[<p>Okay, so many of the points below aren&#8217;t purely my philosophy, but ideas and principles I have picked up along the way throughout my [development] career. Some relate to the <a href="http://en.wikipedia.org/wiki/Unix_philosophy" title="Wikipedia: UNIX Philosophy" target="_blank" rel="nofollow">UNIX philosophy</a>, or even the <a href="http://www.python.org/dev/peps/pep-0020/" title="Zen of Python" target="_blank" rel="nofollow">Zen of Python</a>, but wherever they&#8217;re from, they can be applied to many other domains.</p>
<ul>
<li><strong>Don&#8217;t reinvent the wheel unless you really have to</strong>. Borrow code and ideas from elsewhere whenever it makes sense. The web community it great at sharing, just look at the various JavaScript libraries, the huge quantities of <abbr title="Application Programming Interface">API</abbr>s or indeed the major players&#8217; developer areas: <a href="http://code.google.com" title="Google Code" target="_blank" rel="nofollow">Google Code</a>, <a href="http://developer.yahoo.com" title="Yahoo! Developer Network" target="_blank" rel="nofollow">Yahoo! Developer Network</a>, <a href="https://developer.mozilla.org" title="Mozilla Developer Center" target="_blank" rel="nofollow">Mozilla Developer Center</a>, <a href="http://www.adobe.com/devnet/" title="Adobe Developer Connection" target="_blank" rel="nofollow">Adobe Developer Connection</a> and <a href="http://dev.opera.com" title="Dev Opera" target="_blank" rel="nofollow">Dev Opera</a> to name five I regularly refer to.</li>
<li><q><strong>Things should be as simple as possible, but no simpler</strong></q> (Einstein). This idea is really born out of and emphasised by <a href="http://gettingreal.37signals.com/" title="37Signals' Getting Real" target="_blank" rel="nofollow">37Signals&#8217; Getting Real book</a>. Commonly, 90% of people using an application only use 10% of it&#8217;s functionality. The key therefore is to find what people use most often and only build that functionality. If there is a requirement to add more, then sobeit. This can also apply to the code-level, the essence here being a balance between over- and under-engineering something.</li>
<li><strong>Do one thing well</strong> (The <q>UNIX philosophy</q>). It is better to do one thing well, than several second-rate. This could be at the code level &#8212; think encapsulation, coupling and cohesion &#8212; or indeed at the application level &#8212; you&#8217;re never going to beat Microsoft Word, but Google and Zoho have developed compelling alternatives, but with far less features. </li>
<li><strong>Don&#8217;t fret too much about performance</strong> &#8212; understand how to write efficient code and plan to optimise later if or when needed.</li>
<li><strong>Don&#8217;t try for perfection</strong> because <q>good enough</q> is often just that. This of course is a matter for conjecture. If I were working on a personal project, I may be more stringent on perfection than say, for a client&#8217;s application. This doesn&#8217;t mean to say the client&#8217;s application would be any worse, but rather it is a question of dotting-the-is and crossing-the-ts. It also depends on your perspective and what gains can be made by aiming for <q>perfection</q>.</li>
<li>(Hence) <strong>it&#8217;s okay to cut corners sometimes</strong>, only if you can do it right later. I rarely adhere to this! It makes sense to do it right the first time, since <q>bodge-jobs</q> often come back to haunt you and result in double the effort!</li>
<li><strong>Don&#8217;t fight it; go with the flow</strong>. This is somewhat clich&eacute;d, but the essence behind this is try to avoid getting stressed out. This isn&#8217;t always easy to achieve, but taking a step back from a situation and avoiding politics is important.</li>
</ul>
<p>I often strive for perfection, which isn&#8217;t an entirely clever pursuit since it is almost impossible to achieve. However, in a realm of imperfection, the principles above have helped me to achieve a modicum of decent code throughout the years. They may also resonate and provide inspiration for you.</p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-6475233631580417";
/* 468x60 Basic */
google_ad_slot = "7117418273";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.simonwhatley.co.uk/my-work-philosophy/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Programmer’s Dozen &#8211; Programming Best Practices</title>
		<link>http://www.simonwhatley.co.uk/programmers-dozen-programming-best-practices</link>
		<comments>http://www.simonwhatley.co.uk/programmers-dozen-programming-best-practices#comments</comments>
		<pubDate>Tue, 03 Mar 2009 11:23:46 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[fuzzy logic]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[object orientated]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programmer]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://www.simonwhatley.co.uk/?p=1826</guid>
		<description><![CDATA[Take control of your code with these programming best practices from Kevlin Henney. At JAOO Aarhus 2008 Kevlin used a trash can, vampires, a train wreck, whiskey and much more to make you understand and remember his 13 constructive points (a programmer’s dozen) about programming and code smells.]]></description>
			<content:encoded><![CDATA[<p>Take control of your code with these programming best practices from Kevlin Henney. At <abbr title="Java and object-oriented software engineering">JAOO</abbr> Aarhus 2008 Kevlin used a trash can, vampires, a train wreck, whiskey and much more to make you understand and remember his 13 constructive points (a programmer’s dozen) about programming and code smells.</p>
<p>The 13 points made by Kevlin were:</p>
<ul>
<li>0. Prefer code to comments.</li>
<li>1. Follow a consistent form.</li>
<li>2. Employ the contract metaphor.</li>
<li>3. Express independent ideas independently.</li>
<li>4. Encapsulate.</li>
<li>5. Parameterize from above.</li>
<li>6. Restrict mutability of state.</li>
<li>7. Favor symmetry over asymmetry.</li>
<li>8. Sharpen fuzzy logic.</li>
<li>9. Go with the flow.</li>
<li>10. Let code decide.</li>
<li>11. Omit needless code.</li>
<li>12. Unify duplicate code.</li>
</ul>
<p>You can see a <a href="http://blog.jaoo.dk/2009/01/19/programmers-dozen-programming-best-practices/" title="Programmer’s Dozen - Programming Best Practices" target="_blank" rel="nofollow">video of Kevlin&#8217;s presentation</a> on the <a href="http://jaoo.dk/" title="JAOO" target="_blank" rel="nofollow">JAOO website</a>.</p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-6475233631580417";
/* 468x60 Basic */
google_ad_slot = "7117418273";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.simonwhatley.co.uk/programmers-dozen-programming-best-practices/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why Silverlight? Microsoft Explains&#8230;</title>
		<link>http://www.simonwhatley.co.uk/why-silverlight-microsoft-explains</link>
		<comments>http://www.simonwhatley.co.uk/why-silverlight-microsoft-explains#comments</comments>
		<pubDate>Thu, 13 Dec 2007 22:12:00 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[.Net]]></category>
		<category><![CDATA[Accelerator board]]></category>
		<category><![CDATA[ad-insertion solutions]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Adobe Integrated Runtime]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[animation]]></category>
		<category><![CDATA[application hosting solution]]></category>
		<category><![CDATA[author content]]></category>
		<category><![CDATA[back-end Web environment]]></category>
		<category><![CDATA[browser-based]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[designers]]></category>
		<category><![CDATA[developers]]></category>
		<category><![CDATA[Emmy Award]]></category>
		<category><![CDATA[Escient VC-1 Player]]></category>
		<category><![CDATA[Expression Studio]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[interactive applications]]></category>
		<category><![CDATA[Internet Applications]]></category>
		<category><![CDATA[Internet Information Services]]></category>
		<category><![CDATA[JavaFX]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[media content]]></category>
		<category><![CDATA[media experiences]]></category>
		<category><![CDATA[media format]]></category>
		<category><![CDATA[media rich experiences]]></category>
		<category><![CDATA[media tools]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Microsoft Silverlight]]></category>
		<category><![CDATA[Microsoft Windows]]></category>
		<category><![CDATA[moonlight]]></category>
		<category><![CDATA[MP3]]></category>
		<category><![CDATA[operating system]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[proprietory]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[RIA]]></category>
		<category><![CDATA[Rich Internet Applications]]></category>
		<category><![CDATA[Role-specific tools]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Society of Motion Picture and Television Engineers]]></category>
		<category><![CDATA[software features]]></category>
		<category><![CDATA[software services]]></category>
		<category><![CDATA[Sun Microsystems]]></category>
		<category><![CDATA[vector graphics]]></category>
		<category><![CDATA[video playback]]></category>
		<category><![CDATA[Visual Basic]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[web application]]></category>
		<category><![CDATA[Web Consortium]]></category>
		<category><![CDATA[Web designers]]></category>
		<category><![CDATA[Web experiences]]></category>
		<category><![CDATA[Web Standards]]></category>
		<category><![CDATA[Web technologies]]></category>
		<category><![CDATA[Windows Media technologies]]></category>
		<category><![CDATA[windows presentation foundation]]></category>
		<category><![CDATA[with your existing infrastructure]]></category>
		<category><![CDATA[WPF]]></category>
		<category><![CDATA[XAML]]></category>
		<category><![CDATA[XHTML]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[XSLT]]></category>

		<guid isPermaLink="false">http://www.simonwhatley.co.uk/?p=391</guid>
		<description><![CDATA[Silverlight aims to compete with Adobe Flash and the presentation components of Ajax. It also competes with Sun Microsystems' JavaFX, which was launched a few days after Silverlight.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.silverlight.net" title="Silverlight" rel="nofollow">Silverlight</a> aims to compete with Adobe <a href="http://www.adobe.com/products/flash" title="Adobe Flash" rel="nofollow">Flash</a> and the presentation components of <acronym title="Asynchronous JavaScript and XML">AJAX</acronym>. It also competes with Sun Microsystems&#8217; <a href="http://www.sun.com/software/javafx/" title="JavaFX" rel="nofollow">JavaFX</a>, which was launched a few days after Silverlight.</p>
<p>Microsoft Silverlight is a proprietary runtime for browser-based Rich Internet Applications, providing a subset of the animation, vector graphics, and video playback capabilities of Windows Presentation Foundation. The runtime is available for Microsoft Windows and Mac OS X, with Linux support under development via the third-party <a href="http://www.mono-project.com/Moonlight" title="Moonlight project" rel="nofollow">Moonlight</a> runtime.</p>
<p>Microsoft describes its advantages as follows:</p>
<p><strong>Compelling Cross-Platform User Experiences</strong></p>
<ul>
<li>Deliver media experiences and rich interactive applications for the Web that incorporate video, animation, interactivity, and stunning user interfaces.</li>
<li>Seamless, fast installation for users, thanks to a small, on-demand, easy-to-install plug-in that is under 2 megabytes (<acronym title="Megabyte">MB</acronym>) in size and works with all leading browsers.</li>
<li>Consistent experiences between Windows-based and Macintosh computers without any additional installation requirements.</li>
<li>Create richer, more compelling Web experiences that take greater advantage of the client for increased performance.</li>
<li>Stunning vector-based graphics, media, text, animation, and overlays that enable seamless integration of graphics and effects into any existing Web application.</li>
<li>Enhance existing standards/<acronym title="Asynchronous JavaScript and XML">AJAX</acronym>-based applications with richer graphics and media, and improve their performance and capabilities by using Silverlight.</li>
</ul>
<p><script type="text/javascript"><!--
google_ad_client = "pub-6475233631580417";
/* 468x60 Basic */
google_ad_slot = "7117418273";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<p><strong>Flexible Programming Model with Collaboration Tools</strong></p>
<ul>
<li>Based on the Microsoft <a href="http://msdn2.microsoft.com/en-us/netframework/default.aspx" title="Microsoft .NET Framework" rel="nofollow">.NET Framework</a>, Silverlight enables developers and designers to easily use existing skills and tools to deliver media experiences and rich interactive applications for the Web.</li>
<li>Simple integration with existing Web technologies and assets means Silverlight works with any back-end Web environment or technology. No &#8220;rip and replace&#8221; required.
</li>
<li>Silverlight integrates with your existing infrastructure and applications, including Apache, <acronym title="PHP: Hypertext Preprocessor">PHP</acronym>, as well as JavaScript and <acronym title="Extensible HyperText Markup Language">XHTML</acronym> on the client.</li>
<li>Choice of development languages including JavaScript, Ruby, Python, C#, Visual Basic .NET, and more.</li>
<li>Role-specific tools for both designers and developers that take advantage of Web standards and the breadth of the Microsoft .NET connected software features.</li>
<li>For designers: Microsoft Expression Studio for creating interactive user interfaces and media rich experiences, preparing media for encoding and distribution, and creating World Wide Web Consortium (<acronym title="World Wide Web Consortium">W3C</acronym>) standards-compliant sites using modern <acronym title="Extensible HyperText Markup Language">XHTML</acronym>, <acronym title="Extensible Markup Language">XML</acronym>, <acronym title="Extensible Stylesheet Language Transformation">XSLT</acronym>, <acronym title="Cascading Style Sheet">CSS</acronym>, and <acronym title="Active Server Pages">ASP</acronym>.NET.</li>
<li>For developers: Microsoft Visual Studio for developing client and server code with full Microsoft IntelliSense, powerful cross-platform debugging, rich language support, and more.</li>
<li>Consistent presentation model by using <acronym title="Extensible Application Markup Language">XAML</acronym>, the declarative presentation language used in Windows Vistaâ€“based applications. Controls, visual designs, media, and other elements can be presented with full design fidelity in both Silverlight and Windows-based applications.</li>
<li>Extensible control model makes it easy to add rich content and behaviors while enabling efficient code-reuse and sharing.</li>
<li>Dramatically improved performance for <acronym title="Asynchronous JavaScript and XML">AJAX</acronym>-enabled Web sites with the power, performance, and flexibility of Silverlight and .NET-connected software.</li>
</ul>
<p><script type="text/javascript"><!--
google_ad_client = "pub-6475233631580417";
/* 468x60 Basic */
google_ad_slot = "7117418273";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<p><strong>High Quality, Low Cost Media</strong></p>
<ul>
<li>Unified media format that scales from high definition (<acronym title="High Definition">HD</acronym>) to mobile with Windows Media Video (<acronym title="Windows Media Video">WMV</acronym>), the Microsoft implementation of the Society of Motion Picture and Television Engineers (<acronym title="Society of Motion Picture and Television Engineers">SMPTE</acronym>) <a href="http://en.wikipedia.org/wiki/VC-1" title="VC-1" rel="nofollow">VC-1</a> video standard, as well as support for Windows Media Audio (<acronym title="Windows Media Audio">WMA</acronym>) and MP3 audio.</li>
<li>Add vector-based graphics and overlays to media with support for integration of graphics that scale to any size and broadcast-style overlays for tickers and closed captioning.</li>
<li>Flexible ad-insertion solutions with video and animation, including the ability to deliver fluid, broadcast-style video or animated advertisements without loss of visual fidelity or motion quality.</li>
<li>Lower-cost media streaming with Emmy Award winning Windows Media technologies that can lower the cost of streaming delivery by up to 46%, and enjoy the flexibility to work with your existing Windows Media streaming deployments. Even further cost reductions are possible with the upcoming Microsoft Internet Information Services (<acronym title="Internet Information Services">IIS</acronym>) Media Pack for Microsoft Windows Server 2008.</li>
<li>Broad ecosystem of media tools, servers, and solutions compatible with the Windows Media operating system.</li>
<li>Microsoft PlayReady content-access technology that delivers a single solution for digital rights management support on both Windows-based and Macintosh computers for content providers (coming in Silverlight 1.1)</li>
<li>Powerful encoding tools for live and on-demand publishing of media experiences with Microsoft Expression Encoder, including hardware-accelerated encoding of <acronym title="Windows Media Video">WMV</acronym> and <a href="http://en.wikipedia.org/wiki/VC-1" title="VC-1" rel="nofollow">VC-1</a> at up to 15 times the performance of software alone when paired with a Tarari Encoder Accelerator board.</li>
</ul>
<p><script type="text/javascript"><!--
google_ad_client = "pub-6475233631580417";
/* 468x60 Basic */
google_ad_slot = "7117418273";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<p><strong>Connected to Data, Servers, and Services</strong></p>
<ul>
<li>Mash-up and incorporate services and data from the Web by taking advantage of the Silverlight support for <a href="http://en.wikipedia.org/wiki/Language_Integrated_Query" title="Language Integrated Query" rel="nofollow">LINQ</a> while accessing that data with common protocols like <acronym title="JavaScript Object Notation">JSON</acronym>, <acronym title="Really Simple Syndication">RSS</acronym>, <acronym title="Plain Old XML">POX</acronym>, and <acronym title="Representational State Transfer">REST</acronym>.</li>
<li>Increase discoverability of rich interactive application (<acronym title="Rich Internet Application">RIA</acronym>) content that can be indexed and searched due to the text-based <acronym title="Extensible Application Markup Language">XAML</acronym> format that describes interface and content in a Silverlight-based application.</li>
<li>Rapidly scale applications with Silverlight Streaming by Windows Live to host and integrate software services and media content.</li>
</ul>
<p><strong>Streaming audio and video</strong></p>
<ul>
<li>Silverlight Streaming by Windows Live offers a free streaming and application hosting solution for delivering high-quality, cross-platform, cross-browser, media-enabled rich interactive applications (<acronym title="Rich Internet Application">RIA</acronym>s). With the ability to author content in Microsoft Expression Encoder and other third-party editing environments, Web designers maintain complete control of the user experience.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.simonwhatley.co.uk/why-silverlight-microsoft-explains/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Coldfusion AJAX Frameworks</title>
		<link>http://www.simonwhatley.co.uk/coldfusion-ajax-frameworks</link>
		<comments>http://www.simonwhatley.co.uk/coldfusion-ajax-frameworks#comments</comments>
		<pubDate>Sat, 25 Mar 2006 21:24:04 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Adaptive Path]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[AjaxCFC]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[blowfish encryption]]></category>
		<category><![CDATA[CFAJAX]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[Del.icio.us]]></category>
		<category><![CDATA[document object model]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[following existing technologies]]></category>
		<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[Gmail]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Jesse James Garrett]]></category>
		<category><![CDATA[JSMX]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[open source tool]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Rob Gonda]]></category>
		<category><![CDATA[SAJAX]]></category>
		<category><![CDATA[Steve Smith]]></category>
		<category><![CDATA[Todd Kingham]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[web applications]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[XSLT]]></category>
		<category><![CDATA[Yahoo]]></category>

		<guid isPermaLink="false">http://www.simonwhatley.co.uk/?p=60</guid>
		<description><![CDATA[Asynchronous JavaScript and XML. It's a whole new way of looking at the web where HTML page makes asynchronous calls to the server using JavaScript and loads the data in bits and pieces as needed. Ajax is not a new technology. Itâ€™s a new developing approach, based on the following existing technologies: XHTML, CSS, DOM, XML, XSLT and XMLHttpRequest.]]></description>
			<content:encoded><![CDATA[<h3>What is AJAX?</h3>
<p>Asynchronous JavaScript and XML. It&#8217;s a whole new way of looking at the web where HTML page makes asynchronous calls to  the server using JavaScript  and loads the data in bits and pieces as needed. Ajax is not a new technology. Itâ€™s a new developing approach, based on the following existing technologies:</p>
<ul>
<li><strong>XHTML</strong> and <strong>CSS</strong> for standard presentation,</li>
<li><strong>DOM (Document Object Model)</strong> for dynamic and interactive presentation,</li>
<li><strong>XML</strong> and <strong>XSLT</strong> for data exchange and manipulation, and</li>
<li><strong>XMLHttpRequest</strong> for asynchronous data retrieval</li>
</ul>
<p>The term &#8220;AJAX&#8221; was first muted by Jesse James Garrett of <a title="A new approach to web applications" target="_blank" href="http://www.adaptivepath.com">AdaptivePath</a> and has become synonymous with the ideas and concepts of Web 2.0. Ajax has been popularised by the likes of <a title="Google" target="_blank" href="http://www.google.com">Google</a> in their <a title="Gmail" target="_blank" href="http://mail.google.com">Gmail</a> and <a title="Google Suggest" target="_blank" href="http://www.google.com/webhp?complete=1&#038;hl=en">Google Suggest</a> applications, <a title="Flickr photo sharing" target="_blank" href="http://www.flickr.com/">Flickr</a> and <a target="_blank" title="del.icio.us social bookmarking" href="http://del.icio.us/">del.icio.us</a>, now both owned by <a title="Yahoo" target="_blank" href="http://www.yahoo.com/">Yahoo!</a>.</p>
<p>Below I have listed a few of the frameworks available to the ColdFusion community.  I will leave it up to you to decide which one is the best and easiest to implement.  Please tell me your experiences.</p>
<h3>AjaxCFC</h3>
<p>AjaxCFC, created by <a target="_blank" title="Rob Gonda" href="http://www.robgonda.com/">Rob Gonda</a>, is a ColdFusion framework meant to speed up Ajax application development and deployment by providing developers seamless integration between JavaScript and ColdFusion, and providing built-in functions, such as security and debugging, to quickly adapt to any type of environment and helping to overcome cross-browser compatibility problems.</p>
<ul>
<li>ColdFusion components following the best practices of object oriented programming and design patterns. Programming with ajaxCFC involves extending components and creating your own ajax faÃ§ades.</li>
<li>Intergration with Model-Glue, one of the most popular MVC frameworks widely used by the ColdFusion community.</li>
<li>Works with ColdFusion MX 6.0, 6,1, 7.0 and Blue Dragon.</li>
<li>Automatically handles complex object transmitted from the client to the server and vice versa.</li>
<li>Server returns pure JavaScript code to the callback handler (instead of XML or JSON) to vastly improve performance.</li>
<li>On-the-works: Built-in base64 and/or blowfish encryption.</li>
<li>Licensed under the Apache License Version 2.0, by <a target="_blank" title="Rob Gonda" href="http://www.robgonda.com">Rob Gonda</a>.</li>
</ul>
<p>The project can be downloaded from Rob Gonda&#8217;s website at the following address: <a target="_blank" title="AjaxCFC" href="http://www.robgonda.com/blog/projects/ajaxcfc/">http://www.robgonda.com/blog/projects/ajaxcfc/</a></p>
<h3>JSMX</h3>
<p>JSMX is a simple API available for connecting your Web Applications to an AJAX front end. The main difference between JSMX and other AJAX implementations is that JSMX allows you to pass either XML or JavaScript to the API. JSMX was originally created to be used with ColdFusion applications because of how easy it is to create JavaScript Strings natively within ColdFusion (using either the CFWDDX tag or the ToScript() function). However, because there is no server-side component to be installed, JSMX can really be used with any programming language.</p>
<ul>
<li>Using the CFWDDX tag, or the toScript() function, within ColdFusion makes converting your ColdFusion Objects to JavaScript a SNAP!</li>
<li>Smaller Packet Sizes over the wire (JavaScript Vs. XML).</li>
<li>Reduced latency due to less parsing of the responses.</li>
<li>Parameters can be sent to the server in multiple formats including, strings, objects, and entire forms without having to build extra logic to handle each type.</li>
<li>API has no Server Side components which makes it more portable.</li>
<li>Extremely simple syntax shortens the learning curve and speeds up development.</li>
<li>Open-source (Creative Commons Attribution-ShareAlike License).</li>
</ul>
<p>JSMX is the creation of Todd Kingham at <a title="La La Bird" target="_blank" href="http://www.lalabird.com">LaLaBird.com</a> and can be downloaded from the following link: <a title="JSMX download" target="_blank" href="http://www.lalabird.com/?fa=JSMX.downloads">http://www.lalabird.com/?fa=JSMX.downloads</a></p>
<h3>CFAjax</h3>
<p>CFAjax is the AJAX implementation for coldfusion. It makes ColdFusion method calls on server directly from HTML page using JavaScript and return backs the result to the calling HTML page. CFAjax comes with simple to use JavaScript API and simple ColdFusion implementation that marshalâ€™s the response between your ColdFusion methods and HTML page. Using CFAjax you can create highly interactive websites with greater performance and usability.</p>
<p>CFAjax can be downloaded at the following link: <a title="CFAjax download" target="_blank" href="http://www.indiankey.com/cfajax/project.asp">http://www.indiankey.com/cfajax/project.asp</a></p>
<h3>SAJAX for ColdFusion</h3>
<p>Sajax is an open source tool to make programming websites using the Ajax framework â€” also known as XMLHTTPRequest or remote scripting â€” as easy as possible. Sajax makes it easy to call PHP, Perl or Python functions from your webpages via JavaScript without performing a browser refresh. The toolkit does 99% of the work for you so you have no excuse to not use it.</p>
<p>Sajax for ColdFusion is the creation of Steve Smith at <a title="Ordered List by Steve Smith" href="http://orderedlist.com/">Ordered List</a> and can be downloaded from the following link: <a target="_blank" title="Sajax for ColdFusion download" href="http://www.orderedlist.com/downloads/SAJAX_ColdFusion.zip">http://www.orderedlist.com/downloads/SAJAX_ColdFusion.zip</a></p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-6475233631580417";
/* 468x60 Basic */
google_ad_slot = "7117418273";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.simonwhatley.co.uk/coldfusion-ajax-frameworks/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

