<?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; Adobe</title>
	<atom:link href="http://www.simonwhatley.co.uk/tag/adobe/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, 11 Aug 2010 09:49:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Google&#039;s 5 Privacy Principles</title>
		<link>http://www.simonwhatley.co.uk/googles-5-privacy-principles</link>
		<comments>http://www.simonwhatley.co.uk/googles-5-privacy-principles#comments</comments>
		<pubDate>Thu, 28 Jan 2010 14:51:50 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Ethics]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Identity management]]></category>
		<category><![CDATA[Information privacy]]></category>
		<category><![CDATA[law]]></category>
		<category><![CDATA[Privacy]]></category>
		<category><![CDATA[world wide web]]></category>
		<category><![CDATA[Yahoo]]></category>

		<guid isPermaLink="false">http://www.simonwhatley.co.uk/?p=2255</guid>
		<description><![CDATA[In honour [sic] of International Data Privacy Day today, 28th January 2010, Google has published their own guidlines on privacy. The timing of this is quite intriguing following the recent hacking attack, supposedly orchestrated by the Chinese authorities, on Google, Yahoo, Adobe and some 20 other major international corporations; whilst there is also the ongoing concern from many quarters about Google is too dominant in many aspects of our online lives.]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.simonwhatley.co.uk/blog/wp-content/uploads/2010/01/googleprivacylogo.png" alt="" title="Google Privacy Logo" width="241" height="128" class="alignleft size-full wp-image-2264" />In honour [sic] of <a href="http://dataprivacyday2010.org" title="International Data Privacy Day" target="_blank" rel="nofollow">International Data Privacy Day</a> today, 28th January 2010, Google has published their own <a href="http://www.google.com/corporate/privacy_principles.html" title="Google's Privacy Principles" target="_blank" rel="nofollow">guidlines on privacy</a>.</p>
<p>The timing of this is quite intriguing following the recent hacking attack, supposedly orchestrated by the Chinese authorities, on Google, Yahoo, Adobe and some 20 other major international corporations; whilst there is also the ongoing concern from many quarters about Google is too dominant in many aspects of our online lives.</p>
<p>But less of the cynicism, the five principles are:</p>
<ul>
<li><strong>Use information to provide our users with valuable products and services.</strong><br />
<q>Focus on providing the best user experience</q> is the first tenet of Google&#8217;s philosophy. When users share information with us, it allows us to build services and products that are valuable to them. We believe that focusing on the user fosters both the products and privacy-enhancing features that have fueled innovation and built a loyal audience of users online.</li>
<li><strong>Develop products that reflect strong privacy standards and practices.</strong><br />
Our ambition is to be at the leading edge of technology, including the development of tools that help users manage their personal information in a simple, accessible manner without detracting from a valuable user experience. We comply with privacy laws, and additionally work internally and with regulators and industry partners to develop and implement strong privacy standards.</li>
<li><strong>Make the collection of personal information transparent.</strong><br />
We strive to show users the information used to customize our services. Where appropriate, we aim to be transparent about the information we have about individual users and how we use that information to deliver our services.</li>
<li><strong>Give users meaningful choices to protect their privacy.</strong><br />
People have different privacy concerns and needs. To best serve the full range of our users, Google strives to offer them meaningful and fine-grained choices over the use of their personal information. We believe personal information should not be held hostage and we are committed to building products that let users export their personal information to other services. We don&#8217;t sell users&#8217; personal information.</li>
<li><strong>Be a responsible steward of the information we hold.</strong><br />
We recognize our responsibility to protect the data that users entrust to us. We take security issues seriously and work together with a large community of users, developers and external security experts to make the Internet safer and more secure.</li>
</ul>
<p>Whether these principles can be fully adhered to by Google is an important question, but they do serve to calm the fears of many about what they&#8217;ll do with our data. If nothing else, they do serve to highlight the need for data privacy to be taken seriously by anyone considering building web applications.</p>
<p>If you’re interested in more of Google’s privacy stances, they’ve got an entire <a href="http://www.google.com/intl/en/privacy.html" title="Google's Privacy Centre" target="_blank" rel="nofollow">portal</a> dedicated to them.</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/googles-5-privacy-principles/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adobe ColdFusion 9 License Terms in Plain English</title>
		<link>http://www.simonwhatley.co.uk/adobe-coldfusion-9-license-terms-in-plain-english</link>
		<comments>http://www.simonwhatley.co.uk/adobe-coldfusion-9-license-terms-in-plain-english#comments</comments>
		<pubDate>Thu, 28 Jan 2010 12:58:46 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Adobe ColdFusion]]></category>
		<category><![CDATA[Adobe Systems Inc]]></category>
		<category><![CDATA[amazon]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Cloud infrastructure]]></category>
		<category><![CDATA[cloud network]]></category>
		<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[Computer software]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Multi-core]]></category>
		<category><![CDATA[Rackspace Cloud]]></category>
		<category><![CDATA[Software license agreement]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[Virtual Machine]]></category>
		<category><![CDATA[Virtualization software licensing]]></category>

		<guid isPermaLink="false">http://www.simonwhatley.co.uk/?p=2212</guid>
		<description><![CDATA[If like me, you’ve been struggling to understand the legalese of the Adobe ColdFusion 9 EULA, I have put together a brief and hopefully, helpful summary of what it actually means in in plain English.]]></description>
			<content:encoded><![CDATA[<p>If like me, you&#8217;ve been struggling to understand the legalese of the Adobe ColdFusion 9 <abbr title="End User License Agreement">EULA</abbr>, I have put together a brief and hopefully, helpful summary of what it actually means in <em>in plain English</em>.</p>
<p>The sections we&#8217;re really interested in are 3.1.1 and 3.1.2. These are detailed below.</p>
<p>Regarding production software on a per-<abbr title="Central Processing Unit">CPU</abbr> and Virtual Machine (<abbr title="Virtual Machine">VM</abbr>) basis:</p>
<blockquote><p>3.1.1 Adobe grants Licensee a license to install and use the Software as Production Software on a per-CPU basis as provided in a separate writing. The total number of CPUs of all of the Computers on which the Software operates may not exceed the total number of CPUs separately licensed. For purposes of this License Metric, (a) all CPUs on a Computer on which the Software is installed shall be deemed to operate the Software unless Licensee configures that Computer (using a reliable and verifiable means of hardware or software partitioning) such that the total number of CPUs that actually operate the Software is less than the total number on that Computer, and (b) a CPU shall mean a single, physical chip with the capability of housing multiple processor cores. If Licensee purchases a 2-CPU Production Software license, then each CPU to which it applies such license must reside in the same Computer. In the event that Licensee desires to apply 2-CPU Production Software licenses to Virtual Machines, then (c) for the Standard version of the Software, the number of 2-CPU licenses required shall be the greater of (i) the number of available physical CPUs for all instances of the Software divided by two (any fractions shall be rounded up for purposes of this provision), or (ii) the total number of Virtual Machines on all Computers on which the Software is installed, and (d) for the Enterprise version of the Software, the number of 2-CPU licenses required shall be the number of physical CPUs on which the Software operates divided by two (any fractions shall be rounded up for purposes of this provision).</p></blockquote>
<p>The key information here is:</p>
<ul>
<li>The Standard license is charged per 2-CPU or per-VM, which ever is greater.</li>
<li>The Enterprise license is charged per 2-CPU.</li>
</ul>
<p>But what does this actually mean for <em>Joe Bloggs</em>? Fortunately the guys at Adobe, via <a href="http://twitter.com/coldfusion" title="Twitter: @coldfusion" target="_blank" rel="nofollow">Twitter</a>, were on hand to help.</p>
<p>Here is a little table that should whet your appetite:</p>
<table>
<thead>
<tr>
<th scope="col" colspan="2">Server Configuration</th>
<th scope="col" colspan="2">Number of Licenses Required</th>
</tr>
<tr>
<th scope="col"><abbr title="Central Processing Unit">CPU</abbr></th>
<th scope="col"><abbr title="Virtual Machine">VM</abbr></th>
<th scope="col">Standard</th>
<th scope="col">Enterprise</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>0</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>2</td>
<td>0</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>4</td>
<td>0</td>
<td>2</td>
<td>2</td>
</tr>
<tr>
<td colspan="4">&nbsp;</td>
</tr>
<tr>
<td>1</td>
<td>2</td>
<td>2</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td>4</td>
<td>4</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td>6</td>
<td>6</td>
<td>1</td>
</tr>
<tr>
<td colspan="4">&nbsp;</td>
</tr>
<tr>
<td>2</td>
<td>2</td>
<td>2</td>
<td>1</td>
</tr>
<tr>
<td>2</td>
<td>4</td>
<td>4</td>
<td>1</td>
</tr>
<tr>
<td>2</td>
<td>6</td>
<td>6</td>
<td>1</td>
</tr>
<tr>
<td colspan="4">&nbsp;</td>
</tr>
<tr>
<td>4</td>
<td>2</td>
<td>2</td>
<td>2</td>
</tr>
<tr>
<td>4</td>
<td>4</td>
<td>4</td>
<td>2</td>
</tr>
<tr>
<td>4</td>
<td>6</td>
<td>6</td>
<td>2</td>
</tr>
</tbody>
</table>
<p>Regarding production software on a cloud network:</p>
<blockquote><p>3.1.2 Adobe grants Licensee a license to install and use the Software as Production Software on a Cloud Network on a per-instance basis as provided in a separate writing. The total number of instances that may run on a Cloud Network may not exceed the total number of instances separately licensed. Licensee must purchase and apply 1 instance license to each use of the Standard version of the Software. Licensee may apply 10 instances for each license purchased of the Enterprise version of the Software.</p></blockquote>
<p>The key information here is:</p>
<ul>
<li>The Standard license supports cloud computing, but for each instance, 1 license must be applied.</li>
<li>The Enterprise license supports up to 10 cloud instances, e.g. on Amazon EC3, Azure, Joyent, Rackspace Cloud etc.</li>
</ul>
<p>In essence, if you&#8217;re going to run a [decent] virtual machine environment, or indeed a cloud environment, it would be far more cost efficient to run ColdFusion Enterprise, since it is costed by the number of virtual machines or increments of 10 cloud instances.</p>
<p>You can download the original <a href="http://www.adobe.com/products/eulas/pdfs/adobe_coldFusion_combined_20090811_0930.pdf" title="Adobe ColdFusion 9 EULA" target="_blank" rel="nofollow">Adobe ColdFusion 9 EULA</a> (PDF 400K) from the Adobe website.</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/adobe-coldfusion-9-license-terms-in-plain-english/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Plan Your Future in Five Easy Steps</title>
		<link>http://www.simonwhatley.co.uk/plan-your-future-in-five-easy-steps</link>
		<comments>http://www.simonwhatley.co.uk/plan-your-future-in-five-easy-steps#comments</comments>
		<pubDate>Tue, 18 Aug 2009 09:33:09 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
				<category><![CDATA[Strategy]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[chosen technology]]></category>
		<category><![CDATA[Competing technologies]]></category>
		<category><![CDATA[e.g. open-source software]]></category>
		<category><![CDATA[five easy steps]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Freelancing]]></category>
		<category><![CDATA[future]]></category>
		<category><![CDATA[futurist]]></category>
		<category><![CDATA[futurology]]></category>
		<category><![CDATA[Peter Schwartz]]></category>
		<category><![CDATA[plan]]></category>
		<category><![CDATA[question]]></category>
		<category><![CDATA[rapid application development]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[test case]]></category>
		<category><![CDATA[united kingdom]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[web development example]]></category>
		<category><![CDATA[Wired Magazine]]></category>

		<guid isPermaLink="false">http://www.simonwhatley.co.uk/?p=2013</guid>
		<description><![CDATA[The September 2009 UK edition of Wired ran an interesting article, carrying the same title as this post, by futurist Peter Schwartz. In the article, Schwartz proposed a 5 step plan to predicting and therefore safe guarding your future.]]></description>
			<content:encoded><![CDATA[<p>The September 2009 <a href="http://www.wired.co.uk" title="UK edition of Wired" target="_blank" rel="nofollow">UK edition of Wired</a> ran an interesting article, carrying the same title as this post, by futurist <a href="http://en.wikipedia.org/wiki/Peter_Schwartz_(futurist)" title="Wikipedia: Peter Schwartz (futurist)">Peter Schwartz</a>. In the article, Schwartz proposed a 5 step plan to predicting and therefore safe guarding your future. Below are the five steps.</p>
<p>Schwartz starts by defining a test case. This is in essence a question; <q>How can I future-proof my career?</q> Once you know the question, you can then set about identifying key influences on your question&#8211;e.g. technological change&#8211;scenarios that may bring about the change&#8211;e.g. new competing technologies, lack of technological development in your sector, or the collapse of a key stakeholder&#8211;and finally, future implications.</p>
<p>Here is what Schwartz says in more detail:</p>
<h3>1. List driving forces</h3>
<p>What variables, trends and events will affect your mission? The first step is to list them. Next, divide them into uncertainties (such as economic, political and social conditions) and relative certainties (such as global population growth and climate change). Finally, rank the items according to their importance, from most to least significant. The result: a catalogue of factors that will determine the future of your area.</p>
<p>If I take web development as an example:</p>
<ul>
<li>Pace of technological change.</li>
<li>Number of companies using the chosen technology.</li>
<li>Number of people available in the industry (permanent and contract).</li>
<li>State of the [digital] economy.</li>
<li>Competing technologies, e.g. Ruby on Rails <abbr title="versus">vs</abbr> ColdFusion, <abbr title="Asynchronous JavaScript and XML">AJAX</abbr> <abbr title="versus">vs</abbr> Flash, offline <abbr title="versus">vs</abbr> online, desktop <abbr title="versus">vs</abbr> mobile.</li>
<li>Support of the community, e.g. open-source software, tutorials and application servers.</li>
<li>Support of key stakeholders, e.g. Adobe&#8217;s support of Flash, Flex and ColdFusion.</li>
</ul>
<h3>2. Make a scenario grid</h3>
<p>Now it&#8217;s time to map out possible futures. The two most important uncertainties from the top of your list form the axes of the grid, with each of the quatdrants representing a potential future. Some may be more likely than others&#8211;and some may seem downright improbable&#8211;but they all depict the interplay of key forces. Thus, they&#8217;re within the range of possibility and deserve attention. They help you prepare for a range of possibilities and bolster core actions with those related to the future you deem most likely.</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>
<h3>3. Imagine the possible futures</h3>
<p>Sketched as a grid, these 4 possible scenarios are so abstract that it would be hard to recognise them if they merged. Make them more concrete by fleshing them out into imaginery, but plausible, news stories of the forces at play.</p>
<p>To continue the web development example:</p>
<ul>
<li>Global financial crisis prevents companies investing in technology. They cannot raise the adequate funding to push through key development projects, even if it means increasing efficiencies within the company.</li>
<li>Adobe drops support for ColdFusion causing turmoil in the community. Railo picks up a lot of business, but can&#8217;t scale to fill the demand. Far-sighted companies migrate to other suitable platforms.</li>
<li>Ruby on Rails booms under the paradigms: Convention over Configuration and Don&#8217;t Repeat Yourself, eating into ColdFusion&#8217;s key mantra: Rapid Application Development.</li>
<li>Key advances in technology on the desktop and mobile continue at pace. Micro-payments allow people to create relatively cheap applications that appeal to a mass audience. Development frameworks allow developers to transfer their skills between technologies without the need for significant retraining.</li>
</ul>
<h3>4. Brainstorm implications and actions</h3>
<p>Now it&#8217;s time to develop strategies for coping with each of the four possible futures you&#8217;ve imagined. Start by listing all the implications of each of the scenarios and then come up with actions that would enable you to prosper under any of the new conditions. Some actions would apply to almost any scenario: these should form the basis of your plan, since they help you to prepare for a range of possibilities. Bolster these core actions with those related to the future you deem most likely.</p>
<p>Examples of possible implications:</p>
<ul>
<li>Scarce funding.</li>
<li>Limited demand for new technologies.</li>
<li>Few companies to work for.</li>
<li>Few new projects to work on.</li>
<li>Increased competition for places.</li>
<li>Increased demand for people with key skills, e.g. mobile.</li>
</ul>
<p>and possible actions:</p>
<ul>
<li>Concentrate on existing technologies.</li>
<li>Develop and exit strategy, e.g. cross-train into a new technology.</li>
<li>Cultivate your network, make new contacts at major development houses.</li>
<li>Polish skills in areas of uncertainty.</li>
<li>Start your own cutting-edge business.</li>
</ul>
<h3>5. Track the indicators</h3>
<p>The main value of the scenarios is that they sensitise you to the way the future is unfolding. Over time, the world is likely to gravitate toward one of your four quadrants. The trick is to recognise the shif in progress. As you monitor the news, look for signals that a particular possibility is becoming a concrete reality. Keep a file of news relevant to your scenarios, jotting down a quick note, along with the date, whenever you come across a significant story. Evaluate these developments on a quarterly basis so you can track the trends. Keep adjusting your action strategy to anticipate the future as it emerges.</p>
<p>Of course it is possible that none of your four quadrants becomes true. If this is so, you will need to go back and re-evaluate your scenario grid. Keeping a critical eye on your grid and apace of industry developments, you can be assured that the future will not change so quickly that you&#8217;ll miss an opportunity.</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/plan-your-future-in-five-easy-steps/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<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>Adobe&#039;s LiveCycle Powered by Amazon&#039;s Cloud</title>
		<link>http://www.simonwhatley.co.uk/adobes-livecycle-powered-by-amazons-cloud</link>
		<comments>http://www.simonwhatley.co.uk/adobes-livecycle-powered-by-amazons-cloud#comments</comments>
		<pubDate>Wed, 14 Jan 2009 12:07:00 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Adobe ColdFusion]]></category>
		<category><![CDATA[Adobe LiveCycle]]></category>
		<category><![CDATA[amazon]]></category>
		<category><![CDATA[Amazon Web Services]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[chief rival]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[content services]]></category>
		<category><![CDATA[correspondence management]]></category>
		<category><![CDATA[EC2]]></category>
		<category><![CDATA[elastic cloud computing]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[information technology]]></category>
		<category><![CDATA[infrastructure web services platform]]></category>
		<category><![CDATA[installation of LiveCycle ES Solution Components]]></category>
		<category><![CDATA[Internet-based information technology services]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[LiveCycle]]></category>
		<category><![CDATA[LiveCycle Enterprise Suite]]></category>
		<category><![CDATA[Podcast]]></category>
		<category><![CDATA[process management]]></category>
		<category><![CDATA[Railo]]></category>
		<category><![CDATA[recent technology trends]]></category>
		<category><![CDATA[S3]]></category>
		<category><![CDATA[server software product]]></category>
		<category><![CDATA[simple storage service]]></category>
		<category><![CDATA[technology infrastructure]]></category>
		<category><![CDATA[term cloud computing]]></category>
		<category><![CDATA[utility computing]]></category>
		<category><![CDATA[Web Browser]]></category>
		<category><![CDATA[web services]]></category>

		<guid isPermaLink="false">http://www.simonwhatley.co.uk/?p=1757</guid>
		<description><![CDATA[Adobe recently announced, in conjunction with Amazon, that they would bring LiveCycle to Amazon’s Elastic Compute Cloud (EC2).]]></description>
			<content:encoded><![CDATA[<p>Adobe recently announced, in conjunction with Amazon, that they would bring LiveCycle to Amazon&#8217;s Elastic Compute Cloud (<abbr title="Elastic Compute Cloud">EC2</abbr>). To quote Adobe:</p>
<blockquote><p>
Adobe is now offering developers subscribed to the Adobe Enterprise Developer Program access to their own virtual instance of LiveCycle ES through LiveCycle ES Developer Express. LiveCycle ES Developer Express provides a pre-configured, virtualized installation of LiveCycle ES Solution Components in a self-contained development environment. LiveCycle ES Developer Express is hosted on the Amazon Elastic Compute Cloud (Amazon EC2). AEDP members can test, build, store and develop their applications in a cloud-base environment where all LiveCycle ES applications are pre-configured and running. The Adobe Enterprise Developer Program will offer a minimum of 10 hours of runtime per month, with additional hours to be available separately.</p></blockquote>
<h3>What is cloud computing and why is it important?</h3>
<p>The term cloud computing, as used by some commentators, refers to the use of scalable, real-time, Internet-based information technology services and resources. This somewhat nebulous concept incorporates software as a service (<abbr title="software as a servic">SaaS</abbr>), utility computing, <a href="http://en.wikipedia.org/wiki/Web_2.0" title="Wikipedia: Web 2.0" target="_blank" rel="nofollow">Web 2.0</a> and other recent technology trends. The common theme stresses reliance on the Internet for satisfying the computing needs of users, without them needing knowledge of, expertise with, or control over the technology infrastructure that supports them. An often-quoted example is <a href="http://www.google.com/apps/intl/en/business/index.html" title="Google Apps" target="_blank" rel="nofollow">Google Apps</a>, which provides common business applications online that are accessed from a web browser, while the software and data are stored on Google servers.</p>
<p>The cloud element of cloud computing derives from a metaphor used for the Internet, from the way it is often depicted in computer network diagrams, and is an abstraction for the complex infrastructure it conceals.</p>
<h3>How do Adobe and Amazon fit into the equation?</h3>
<p>Adobe and Amazon have similar goals. They both want to gain more share of the enterprise market. Amazon needs to convince the enterprise that its version of the cloud is capable of supporting the demands of enterprise applications. On the other hand Adobe wants to convince the developers who already use <abbr title="Amazon Web Services">AWS</abbr> that LiveCycle is the platform of choice for the enterprise.</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>
<h3>What is Adobe LiveCycle?</h3>
<p><img src="http://www.simonwhatley.co.uk/blog/wp-content/uploads/2009/01/logo_adobe_livecycle1.jpg" alt="Adobe LiveCycle" title="Adobe LiveCycle" width="102" height="105" class="alignleft size-full wp-image-1769" />Adobe&#8217;s <a href="http://www.adobe.com/products/livecycle/" title="Adobe LiveCycle" target="_blank" rel="nofollow">LiveCycle Enterprise Suite</a> is a <abbr title="Java 2 Enterprise Edition">J2EE</abbr>-based server software product used to build applications that automate a broad range of business processes for enterprises and government agencies.</p>
<p>LiveCycle combines technologies for data capture, information assurance, document output, content services, and process management to deliver solutions such as account opening, services and benefits enrollment, correspondence management, request for proposal processes, and other manual based workflows.</p>
<h3>What are Amazon Webservices?</h3>
<p><img src="http://www.simonwhatley.co.uk/blog/wp-content/uploads/2009/01/logo_aws.gif" alt="Amazon Webservices Logo" title="Amazon Webservices Logo" width="164" height="60" class="alignright size-full wp-image-1762" />Since early 2006, <a href="http://aws.amazon.com" title="Amazon Web Services" target="_blank" rel="nofollow">Amazon Web Services</a> (<abbr title="Amazon Web Services">AWS</abbr>) has provided companies of all sizes with an infrastructure web services platform in <a href="http://en.wikipedia.org/wiki/Cloud_computing" title="Wikipedia: Cloud Computing" target="_blank" rel="nofollow">the cloud</a>. With <abbr title="Amazon Web Services">AWS</abbr> you can requisition compute power, storage, and other services–gaining access to a suite of elastic <abbr title="Information Technology">IT</abbr> infrastructure services as your business demands them. With <abbr title="Amazon Web Services">AWS</abbr> you have the flexibility to choose whichever development platform or programming model makes the most sense for the problems you’re trying to solve. You pay only for what you use, with no up-front expenses or long-term commitments, making <abbr title="Amazon Web Services">AWS</abbr> a cost-effective way to deliver applications to customers and clients.</p>
<h3>How do they fit together?</h3>
<p>Essentially, Adobe has put a Red Hat <a href="http://www.jboss.org" title="JBoss" target="_blank" rel="nofollow">JBoss</a> <abbr title="Java 2 Enterprise Edition">J2EE</abbr> stack on <abbr title="Amazon Web Services">AWS</abbr> and deployed LiveCycle on the stack. Adobe state that this platform is purely for prototyping, developing and testing applications, rather than production environments, but that is likely to change.</p>
<h3>The future</h3>
<p>Deploying LiveCycle on <abbr title="Amazon Web Services">AWS</abbr> has wider implications, not only for Adobe products. By setting up a J2EE stack on <abbr title="Amazon Web Services">AWS</abbr> it makes it possible to deploy any Java-based application; yes that does mean one developed in Adobe&#8217;s ColdFusion or indeed its chief rival, Railo.</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/adobes-livecycle-powered-by-amazons-cloud/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Let&#039;s not Dilly-Dally: ColdFusion has its Merits</title>
		<link>http://www.simonwhatley.co.uk/lets-not-dilly-dally-coldfusion-has-its-merits</link>
		<comments>http://www.simonwhatley.co.uk/lets-not-dilly-dally-coldfusion-has-its-merits#comments</comments>
		<pubDate>Fri, 09 Jan 2009 10:58:36 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[.Net]]></category>
		<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[administrator]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Adobe ColdFusion]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[Atom]]></category>
		<category><![CDATA[best practice]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[content management]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Design Patterns]]></category>
		<category><![CDATA[encryption]]></category>
		<category><![CDATA[enterprise-level search]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[fundamentals]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Internet Applications]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[ORM]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[rapid application development]]></category>
		<category><![CDATA[Rich Internet Applications]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[The Web]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[web technology]]></category>
		<category><![CDATA[web world]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.simonwhatley.co.uk/?p=1734</guid>
		<description><![CDATA[ColdFusion is 13 years old. That make makes it the daddy of the web world! It does not make it any less hip or useful than the relatively new kids on the block. Let's not dilly-dally, bicker or insult one another about which is best, which one is dying and which one is not worth the computer it is compiled on. What is important is to understand the merits of each language and decide which one best suits the application, not only in technical terms, but also in terms of time-to-market, cost of development, availability of a skilled workforce etc.]]></description>
			<content:encoded><![CDATA[<p>ColdFusion is 13 years old. That make makes it the daddy of the web world! It does not make it any less hip or useful than the relatively new kids on the block.</p>
<p>Take this scenario. A company I once worked for had what can be described as a business directory built upon a licensed, yet bastardised, version of a popular ColdFusion-based <abbr title="Content Management System">CMS</abbr>. It didn&#8217;t work that well! The decision was made to redevelop the application in Java. It took two years to reach the same level of functionality! What happened next? Ruby-on-Rails is what! The rest is history and beyond the topic of this post.</p>
<p>So, in effect, the application almost went full-circle in its development paradigm &#8212; both ColdFusion and Ruby-on-Rails can be considered <q>Rapid Application Development</q> environments, Java, certainly not. Why did the decision makers not stick with ColdFusion and put time aside to actually build it properly in the first place? To put it simply, they lost faith in ColdFusion; it was largely mis-understood.</p>
<p>The weakness of every programming language does not lie with the language itself per se &#8212; albeit it can have an important influencing factor &#8212; but rather with the ability, or indeed inability, of the developer to leverage the language in the most efficient and optimal way.</p>
<p>ColdFusion, like every other programming language has had and I&#8217;m sure still does have its fair share of poor developers; those people simply working with it as a means-to-an-end, rather than those passionate about the language, those people programming without understanding the fundamentals of programming or the implications of their poorly written code. This is apparent from .NET to Java, ColdFusion to Ruby, JavaScript to ActionScript.</p>
<p>Let&#8217;s not dilly-dally, bicker or insult one another about which is best, which one is dying and which one is not worth the computer it is compiled on. What is important is to understand the merits of each language and decide which one best suits the application, not only in technical terms, but also in terms of time-to-market, cost of development, availability of a skilled workforce etc.</p>
<p>ColdFusion, whether rightly or wrongly in some people&#8217;s opinion, can sit proudly amongst its peers and provide a truly compelling alternative.</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>
<p>Here&#8217;s how (in no particular order):</p>
<ol>
<li>Low Total Cost of Ownership &#8211; frequently, ColdFusion is described as expensive, it simply isn&#8217;t especially if you consider the natively supported functions. But to put it bluntly, if your company cannot afford the cost of ColdFusion standard, or indeed ColdFusion hosting, you have bigger things to worry about regarding the profitability of the company; you won&#8217;t be able to afford much of anything! The problem becomes not the product. ColdFusion applications are quicker to develop and developers are vastly cheaper to employ than their peers in Java or Ruby, just look at <a href="http://www.itjobswatch.co.uk/" title="ITJobsWatch" target="_blank" rel="nofollow">ITJobsWatch</a> for examples.</li>
<li>Rapid Application Development &#8211; ColdFusion vastly simplifies tasks. What would take other languages numerous lines of code to produce is efficiently encapsulated either in a tag or function or as a setting in the administrator. This is a simplistic yet indicative example: where else can you connected to a database simply with one line of code or indeed simply by name? ColdFusion changed the idea of specifying development time in terms of months and years to weeks and months or small features a matter of hours and days. Simplicity is not the mother or all evil. To be pragmatic, simplification reduces costs.</li>
<li>Rich Internet Applications &#8211; ColdFusion may or may not have pioneered the <abbr title="Rich Internet Application">RIA</abbr> paradigm, but it has played a significant supporting role to Flash and now Flex. ColdFusion natively supports Flash remoting, providing the all important data access tier.</li>
<li>Platform Maturity &#8211; ColdFusion 8 is built upon the latest version of Java (1.6). Along with internal improvements to the ColdFusion application, this has afforded ColdFusion unprecedented speed improvements and stability.</li>
<li>Language Maturity &#8211; with each major release of ColdFusion comes many language enhancements added to the core. This means that previous addons, for example image manipulation, which came at a premium are now standard. Adobe and other companies that produce <abbr title="ColdFusion Markup Language">CFML</abbr> engines are now participating in  a <abbr title="ColdFusion Markup Language">CFML</abbr> advisory committee, which aims to set standards for the core language. This is not only a sign of maturity but a letter of intent by the industry that will mean your application will work on any engine, assuming no proprietary functionality is used.</li>
<li>The Ultimate Middleware &#8211; ColdFusion sits comfortably between any backend and front end system. Be it interfacing with a host of databases, Java, .NET, <abbr title="Component Object Model">COM</abbr>, Corba or connecting to classic <abbr title="HyperText Manrkup Language">HTML</abbr> or rich Flash, Flex and <abbr title="Asynchronous JavaScript and XML">AJAX</abbr> frontends with little or no configuration.</li>
<li>Feature Rich &#8211; what other web technology <strong>natively</strong> supports <abbr title="">PDF</abbr> generation, charting, enterprise-level search, <abbr title="Asynchronous JavaScript and XML">AJAX</abbr>, image manipulation, Atom and <abbr title="Really Simple Syndication">RSS</abbr> creation, Zip and <abbr title="Java Archive">JAR</abbr> file manipulation, a server monitor, Flex integration, encryption libraries, all important database connectors, webservice creation, <abbr title="">XML</abbr> manipulation, inbuilt reporting application (similar to Crystal Reports), email, <abbr title="File Transfer Protocol">FTP</abbr> to name but a few? I hazard a guess at none, unless you&#8217;re happy to pay a premium.</li>
<li>Platform Independent &#8211; since ColdFusion 6, when Macromedia redeveloped the entire application in Java, ColdFusion has been platform independent. You can install it on practically any machine.</li>
<li>OpenSource Alternatives &#8211; BlueDragon and Railo are both significant alternatives to Adobe ColdFusion and both have opensource alternatives, the latter of the two having recently joined the JBoss community. Adobe are also considering providing a free edition to academic institutions.</li>
<li>The Future &#8211; many commentators have mentioned Hibernate as a significant addition to the next release of ColdFusion, version 9. But having seen the prerelease notes, that is not all that will be added. Alas I&#8217;m under <abbr title="Non-Disclosure Agreement">NDA</abbr>, but rest assured, there is going to be a significant intake of breath when developers get hold of the next release. ColdFusion 8 was firmly geared towards middle management with fuzzy additions, ColdFusion 9 is set to re-address the balance with compelling language and functionality enhancements.</li>
</ol>
<p>ColdFusion evangelism needs to step up a gear! Adobe certainly doesn&#8217;t afford much marketing budget to the product, prefering <q>The Community</q> do the hard work. It is not always easy convincing the decision makers that ColdFusion is a good product of choice, without Adobe&#8217;s unnerving support, but we have to work hard, break down those barriers, encroach on events outside the comfortable sphere of the ColdFusion world and demonstrate ColdFusion&#8217;s match-winning ability.</p>
<p>ColdFusion isn’t dying, it’s simply niche. Every niche has its place.</p>
<p><strong>UPDATE:</strong> If you would like to view the ensuing debate regarding ColdFusion prompted by <a href="http://aralbalkan.com/1864" title="Aral Balkan - Why learning ColdFusion today is a waste of time." target="_blank" rel="nofollow">Aral Balkan</a>, feel free to do so. This post should serve as a positive reminder of ColdFusion&#8217;s virtues, alongside the need for a balanced and polite debate.</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/lets-not-dilly-dally-coldfusion-has-its-merits/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using Ant with Eclipse</title>
		<link>http://www.simonwhatley.co.uk/using-ant-with-eclipse</link>
		<comments>http://www.simonwhatley.co.uk/using-ant-with-eclipse#comments</comments>
		<pubDate>Tue, 06 Jan 2009 11:16:44 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Ant]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Apache Ant]]></category>
		<category><![CDATA[build]]></category>
		<category><![CDATA[build.xml]]></category>
		<category><![CDATA[CFEclipse]]></category>
		<category><![CDATA[Click Import]]></category>
		<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[dev server]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[extreme programming]]></category>
		<category><![CDATA[ide]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[lifecycle]]></category>
		<category><![CDATA[Martin Laine]]></category>
		<category><![CDATA[platform-independent tool]]></category>
		<category><![CDATA[software automation]]></category>
		<category><![CDATA[test-driven development]]></category>
		<category><![CDATA[unit testing frameworks]]></category>
		<category><![CDATA[web developers]]></category>
		<category><![CDATA[Web Server]]></category>
		<category><![CDATA[web server folder]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.simonwhatley.co.uk/?p=1552</guid>
		<description><![CDATA[If you're currently not using Eclipse as your development tool of choice, you certainly should be! Eclipse is an open source community whose projects are focused on building an open development platform comprised of extensible frameworks, tools and runtimes for building, deploying and managing software across the lifecycle.]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re currently not using Eclipse as your development tool of choice, you certainly should be! Eclipse is an open source community whose projects are focused on building an open development platform comprised of extensible frameworks, tools and runtimes for building, deploying and managing software across the lifecycle.</p>
<p>Eclipse started out as a Java <abbr title="Integrated Development Environment">IDE</abbr> and has continually grown from there. Plugins now include, amongst a plethora of others, the venerable Aptana, CFEclipse, SQL Explorer, Subclipse and, more recently, the Adobe-developed Flex Builder and ColdFusion-equivalent codenamed <q>Bolt</q>.</p>
<p>Apache Ant is a software tool for automating software build processes. It is implemented using the Java language, requires the Java platform, and was originally developed to automate the build of Java projects. However, since Ant was created as a simple, platform-independent tool, it can really be used to automate the build of anything you choose.</p>
<p>Ant uses <abbr title="eXtensible Markup Language">XML</abbr> to describe the build process and its dependencies, using a file commonly called <code>build.xml</code>. Using this file, Ant makes it trivial to integrate unit testing frameworks with the build process and has made it easy for web developers to adopt test-driven development, and even Extreme Programming.</p>
<p>Fortunately for us, if you download and run Eclipse, you already have Ant installed and so do not have any complex configuration to concern yourself with; well, at least initially.</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>
<h3>Setting Up Eclipse</h3>
<p>For the most part, Eclipse has all you need to get up and running with Ant pre-installed. However, most projects will include a release target which uses <abbr title="File Transfer Protocol">FTP</abbr> to upload the files to a live server. The <abbr title="File Transfer Protocol">FTP</abbr> ant task requires some extra libraries (.jar files):</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">commons-net-*.jar
jakarta-oro-*.jar</pre></div></div>

<p>(The library <a href="http://www.simonwhatley.co.uk/examples/ant/">files can be downloaded from here</a>).</p>
<p>Copy the files into the ant lib folder of your Eclipse install. The folder is commonly located here:</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">C:\Program Files\Eclipse\plugins\org.apache.ant_*\lib</pre></div></div>

<p>(The asterix * refers to the Ant version).</p>
<p>Next, go to Window > Preferences and select Ant > Runtime. In the Classpath tab, select Ant Home Entries, click Add External JARs&#8230; and select the 2 files you copied to the ant lib folder.</p>
<h3>A Typical Ant Project Setup</h3>
<p>A project with ant build scripts should have the following within the repository:</p>
<ul>
<li>build.xml (the actual ant build script)</li>
<li>build.properties.template (a template for individual build.properties files)</li>
<li>an optional top level lib folder (containing jar files for external ant tasks)</li>
</ul>
<p>Examples of the <code>build.xml</code> and <code>build.properties.template</code> <a href="http://www.simonwhatley.co.uk/examples/ant/">files can be downloaded from here</a>.</p>
<h3>Create Your Own build.properties File</h3>
<p>Make a copy of the <code>build.properties.template</code> file (name it build.properties) and set the values to fit your local setup (in most cases, the only property you may want to change is <code>deploy.dir.local</code> which is the path to the site on your local machine).</p>
<p>This file should never be committed to the repository (the repository should be set to ignore it anyway).</p>
<h3>Basic Build Tasks</h3>
<p>The build file should have a <code>deploy.local</code> task. This task builds the project and copies it to your local webserver (the path to the web server folder will be defined in the <code>build.properties</code> file).</p>
<p>Most projects should also have a <code>deploy.dev</code> task to copy the latest work to the dev server so that other people can view it.</p>
<h3>Setting Up an Automatic Build</h3>
<p>To make things easy, you can set deploy.local to run every time you save a file. This is called an <q>automatic build</q>.</p>
<p>The process for setting up automatic build is quite convoluted. I&#8217;m not sure why but this is the best way I&#8217;ve found to make it work.</p>
<p><strong>Step 1: Add the build file to your ant view</strong></p>
<p>Click the add button and select the build.xml file from the project. You can also drag the build.xml file onto the ant view (To add the ant view to your perpective, go to Window > Show View > Other…)</p>
<p><strong>Step 2: Run as Ant Build</strong></p>
<p>In your ant view, right click the newly added build file and select Run As > Ant Build… In the dialog window, select the &#8216;Hide internal targets not selected for execution&#8217; option in the Targets tab. You can rename the builder in the box at the top of the window if you wish (I usually remove the trailing &#8216;build.xml&#8217;. Click Apply and Close.</p>
<p><strong>Step 3: Setup automatic build</strong></p>
<p>Right click on the project, select Properties, then Builders. Click Import. Before closing the screen, highlight the imported build and select edit. Go to the Targets tab select clean for &#8216;After a clean&#8217; and deploy.local for &#8216;Auto build&#8217;. Apply the changes and close.</p>
<p><strong>Step 4: Enable Auto Build</strong></p>
<p>Go to Project > Build Automatically</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>
<p><strong> Acknowledgment:</strong> Thanks should go to <a href="http://www.1pixelout.net/" title="1PixelOut: Martin Laine's online musings" target="_blank" rel="nofollow">Martin Laine</a> for his help and guidance which resulted in this article.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.simonwhatley.co.uk/using-ant-with-eclipse/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tour de Flex Hits the Ground Running</title>
		<link>http://www.simonwhatley.co.uk/tour-de-flex-hits-the-ground-running</link>
		<comments>http://www.simonwhatley.co.uk/tour-de-flex-hits-the-ground-running#comments</comments>
		<pubDate>Wed, 26 Nov 2008 10:33:17 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Acrobat.com Share Amazon AOL Instant Messenger]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Adobe Flash Platform]]></category>
		<category><![CDATA[Adobe Integrated Runtime]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[author]]></category>
		<category><![CDATA[Christophe Coenraets]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Greg Wilson]]></category>
		<category><![CDATA[Holly Schinsky]]></category>
		<category><![CDATA[James Ward]]></category>
		<category><![CDATA[official]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[search interface]]></category>
		<category><![CDATA[Tour de Flex]]></category>
		<category><![CDATA[visual reference tool]]></category>

		<guid isPermaLink="false">http://www.simonwhatley.co.uk/?p=1524</guid>
		<description><![CDATA[For the seasoned Flex developer, we’ve been accustomed to using the Flex Component Explorer as a reference. However, this is set to change with a great new application called Tour de Flex.

Tour de Flex is a desktop application, built using AIR, with the goal of providing a way to explore Flex’s capabilities and resources, including the core Flex components, Adobe AIR and data integration.]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/11/tdf-large.jpg" alt="" title="Tour de Flex Logo" width="205" height="170" class="alignleft size-medium wp-image-1534" /></p>
<p>For the seasoned Flex developer, we&#8217;ve been accustomed to using the <a href="http://examples.adobe.com/flex3/componentexplorer/explorer.html" title="Flex Component Explorer" target="_blank" rel="nofollow">Flex Component Explorer</a> as a reference. However, this is set to change with a great new application called Tour de Flex.</p>
<p>Tour de Flex is a desktop application, built using <abbr title="Adobe Integrated Runtime">AIR</abbr>, with the goal of providing a way to explore Flex&#8217;s capabilities and resources, including the core Flex components, Adobe <abbr title="Adobe Integrated Runtime">AIR</abbr> and data integration.</p>
<p>Created by <a href="http://www.jamesward.com/" title="James Ward" target="_blank" rel="nofollow">James Ward</a>, <a href="http://gregsramblings.com/" title="Greg Wilson" target="_blank" rel="nofollow">Greg Wilson</a> and <a href="http://coenraets.org/" title="Christophe Coenraets" target="_blank" rel="nofollow">Christophe Coenraets</a>, Tour de Flex has three main purposes: provide non-Flex developers with an overview of what is possible; provide seasoned Flex developers with a visual reference tool; and finally, provide commercial and non-commercial Flex developers a platform to showcase their skills.</p>
<p>Probably the greatest feature of this application is the integration of a variety of third-party components, effects and skins. The application contains examples from the following and we are told that this list will be regularly updated when new content becomes available:</p>
<ul>
<li>Acrobat.com Share</li>
<li>Amazon</li>
<li>AOL Instant Messenger</li>
<li>Cocomo</li>
<li>Ebay</li>
<li>Flickr</li>
<li>Google Language</li>
<li>Intuit Quickbase</li>
<li>Last.fm</li>
<li>Photoshop.com</li>
<li>Salesforce.com</li>
<li>Scribd</li>
<li>Smugmug</li>
<li>Twitter</li>
<li>Yahoo Weather</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>Below is a selection of screenshots from the application:</p>
<p><em>(Click on the images to see a larger view)</em></p>
<p><a href="http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/11/tour-de-flex-01.png"><img src="http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/11/tour-de-flex-01-150x150.png" alt="" title="Tour de Flex - Component Explorer" width="150" height="150" class="alignleft size-thumbnail wp-image-1526" /></a><a href="http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/11/tour-de-flex-02.png"><img src="http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/11/tour-de-flex-02-150x150.png" alt="" title="Tour de Flex - Component Explorer" width="150" height="150" class="alignleft size-thumbnail wp-image-1527" /></a><a href="http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/11/tour-de-flex-03.png"><img src="http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/11/tour-de-flex-03-150x150.png" alt="" title="Tour de Flex - Component Explorer" width="150" height="150" class="alignleft size-thumbnail wp-image-1528" /></a><a href="http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/11/tour-de-flex-04.png"><img src="http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/11/tour-de-flex-04-150x150.png" alt="" title="Tour de Flex - Component Explorer" width="150" height="150" class="alignleft size-thumbnail wp-image-1529" /></a></p>
<p>Included with the Tour de Flex project is an <a href="http://www.eclipse.org" title="Eclipse Integrated Development Environment" target="_blank" rel="nofollow">Eclipse</a> plugin, built by <a href="http://devgirl.wordpress.com/" title="Holy Schinsky" target="_blank" rel="nofollow">Holly Schinsky</a>, that provides a search interface to the 200+ examples available in the main Tour de Flex application. The plugin allows you to search by component name, tag or author and double-click any item in the results to immediately see the component in Tour de Flex.</p>
<p>To install the plugin, add the following URL to your Eclipse software update sites:</p>
<p><a href="http://tourdeflex.adobe.com/eclipse" title="Tour de Flex Eclipse Plugin" target="_blank" rel="nofollow">http://tourdeflex.adobe.com/eclipse</a>.</p>
<p>Once installed, a new Tour de Flex view is available to add. The plugin has been tested with Eclipse 3.4 and with Flex Builder 3.x.</p>
<p>The official <a href="http://flex.org/tour" title="Flex.org: Tour de Flex" target="_blank" rel="nofollow">Tour de Flex</a> page and install can be found on the Flex.org website.</p>
<p><iframe width="216" height="182" frameborder=0 scrolling="no" src="http://tourdeflex.adobe.com/badge/"></iframe></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/tour-de-flex-hits-the-ground-running/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rich Internet Application Frameworks for Flex and AIR</title>
		<link>http://www.simonwhatley.co.uk/ria-flex-air-frameworks</link>
		<comments>http://www.simonwhatley.co.uk/ria-flex-air-frameworks#comments</comments>
		<pubDate>Thu, 04 Sep 2008 14:34:42 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Adobe Consulting]]></category>
		<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[asset management]]></category>
		<category><![CDATA[backend services]]></category>
		<category><![CDATA[Cairngorm]]></category>
		<category><![CDATA[classic Model-View-Controller]]></category>
		<category><![CDATA[design pattern]]></category>
		<category><![CDATA[Design Patterns]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[Gaia]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Guasax]]></category>
		<category><![CDATA[Internet Application Frameworks]]></category>
		<category><![CDATA[Internet Applications]]></category>
		<category><![CDATA[inversion-of-control]]></category>
		<category><![CDATA[IoC]]></category>
		<category><![CDATA[Mate]]></category>
		<category><![CDATA[Model-Glue Flex]]></category>
		<category><![CDATA[model-view-controller]]></category>
		<category><![CDATA[mvc]]></category>
		<category><![CDATA[PureMVC]]></category>
		<category><![CDATA[software engineers]]></category>
		<category><![CDATA[Swiz]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.simonwhatley.co.uk/?p=986</guid>
		<description><![CDATA[Whether you are new to Adobe &#174; Flex &#174; or have been developing for a while, frameworks can help you get organised quickly. Below is a list of Flex and AIR frameworks that will allow you to get up and running and develop highly-collaborative applications. The introductions are by the frameworks themselves, but I'd like to here from you about your experiences using them.]]></description>
			<content:encoded><![CDATA[<p>Whether you are new to Adobe &reg; Flex &reg; or have been developing for a while, frameworks can help you get organised quickly.</p>
<p>Below is a list of Flex and <acronym title="Adobe Integrated Runtime">AIR</acronym> frameworks that will allow you to get up and running and develop highly-collaborative applications. The introductions are by the frameworks themselves, but I&#8217;d like to here from you about your experiences using them.</p>
<h3>Cairngorm</h3>
<p>Cairngorm is the lightweight micro-architecture for <a href="http://en.wikipedia.org/wiki/Rich_Internet_application" title="Wikipedia: Rich Internet Application" target="_blank" rel="nofollow">Rich Internet Applications</a> built in Flex or <acronym title="Adobe Integrated Runtime">AIR</acronym>. A collaboration of recognized design patterns, Cairngorm exemplifies and encourages best-practices for <abbr title="Rich Internet Application">RIA</abbr> development advocated by <a href="http://www.adobe.com/consulting/" title="Adobe Consulting" target="_blank" rel="nofollow">Adobe Consulting</a>, encourages best-practice leverage of the underlying Flex framework, while making it easier for medium to large teams of software engineers deliver medium to large scale, mission-critical Rich Internet Applications.</p>
<p>More information can be found on the <a href="http://opensource.adobe.com/wiki/display/cairngorm/Cairngorm" title="Cairngorm RIA Framework" target="_blank" rel="nofollow">Cairngorm project&#8217;s website</a>.</p>
<h3>PureMVC</h3>
<p>PureMVC is a lightweight framework for creating applications based upon the classic <a href="http://en.wikipedia.org/wiki/Model-View-Controller" title="Wikipedia: Model, View and Controller design pattern" target="_blank" rel="nofollow">Model-View-Controller</a> concept.</p>
<p>Based upon proven design patterns, this free, open source framework which was originally implemented in the ActionScript 3 language for use with Adobe Flex, Flash and <acronym title="Adobe Integrated Runtime">AIR</acronym>, has now been ported to nearly all major development platforms.</p>
<p>Two versions of the framework are supported with reference implementations; Standard and MultiCore, though only the Standard version has been ported to other languages so far.</p>
<p>More information can be found on the <a href="http://puremvc.org/" title="PureMVC Framework" target="_blank" rel="nofollow">PureMVC project&#8217;s 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>
<h3>Mate</h3>
<p>Mate is a tag-based, event-driven Flex framework.</p>
<p>Flex applications are event-driven. Mate framework has been created to make it easy to handle the events your Flex application creates. Mate allows you to define who is handling those events, whether data needs to be retrieved from the server, or other events need to be triggered.</p>
<p>In addition, Mate provides a mechanism for dependency injection to make it easy for the different parts of your application to get the data and objects they need.</p>
<p>More information can be found on the <a href="http://mate.asfusion.com/" title="Mate Framework at ASFusion" target="_blank" rel="nofollow">Mate project&#8217;s website</a>.</p>
<h3>Swiz</h3>
<p>Swiz is a framework for Adobe Flex that aims to bring complete simplicity to <abbr title="Rich Internet Application">RIA</abbr> development. Swiz provides Inversion of Control, event handing, and simple life cycle for asynchronous remote methods. In contrast to other major frameworks for Flex, Swiz imposes no <abbr title="Java 2 Platform, Enterprise Edition">J2EE</abbr> patterns on your code, no repetitive folder layouts, and no boilerplate code on your development. Swiz represents best practices learned from the top <abbr title="Rich Internet Application">RIA</abbr> developers at some of the best consulting firms in the industry, enabling Swiz to be simple, lightweight, and extremely productive.</p>
<p>More information can be found on the <a href="http://code.google.com/p/swizframework/" title="Swiz Framework on Google Code" target="_blank" rel="nofollow">Swiz project&#8217;s 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>
<h3>Guasax</h3>
<p>Guasax is an ease of use programming framework which provides the creation of an ordered and scalable application with Adobe Flex. The lifecycle of the Guasax framework is based in the <acronym title="Model-View-Controller">MVC</acronym> pattern to take on our program actions. The Guasax framework helps you to maintain your business logic tier highly decoupled from your presentation logic tier.</p>
<p>Guasax takes reflection and introspection techniques as well as the <a href="http://en.wikipedia.org/wiki/Inversion_of_control" title="Wikipedia: Inversion of Control" target="_blank" rel="nofollow">Inversion of Control</a> (<abbr title="Inversion of Control">IoC</abbr>) pattern to execute the operations which we have pointed at and to make a decision about itself. Guasax is not intrusive on your class model. You <em>don&#8217;t</em> have to extend your classes in a framework class to use it.</p>
<p>More information can be found on the <a href="http://www.guasax.com/" title="Guasax Project" target="_blank" rel="nofollow">Guasax project&#8217;s website</a> or on their <a href="http://code.google.com/p/guasax/" title="Guasax Project on Google Code" target="_blank" rel="nofollow">Google code project</a>.</p>
<h3>Model-Glue: Flex</h3>
<p>Model-Glue: Flex brings <a href="http://en.wikipedia.org/wiki/Implicit_invocation" title="Wikipedia: Implicit Invocation" target="_blank" rel="nofollow">implicit invocation</a>, Model-View-Controller design, and cleaner, less repetitive integration with backend services to Flex and <acronym title="Adobe Integrated Runtime">AIR</acronym> applications.</p>
<p>It shuns repetitive, boilerplate code in favor of helper classes and expressive <abbr title="Application Programming Interface">API</abbr>s.</p>
<p>More information can be found on the <a href="http://www.model-glue.com/flex.cfm" title="Model-Glue: Flex project's website" target="_blank" rel="nofollow">Model-Glue: Flex project&#8217;s website</a>.</p>
<h3>Gaia</h3>
<p>Gaia is an open-source front-end Flash Framework for <abbr title="ActionScript 3">AS3</abbr> and <abbr title="ActionScript 2">AS2</abbr> designed to dramatically reduce development time.</p>
<p>Gaia is targeted at anyone who develops Flash sites. It provides solutions to the challenges and repeated tasks faced with front-end Flash site development, such as navigation, transitions, preloading, asset management, site structure, deep linking and <abbr title="Search Engine Optimisation">SEO</abbr>. It provides speed and flexibility in your workflow and a simple API that gives you access to its powerful features.</p>
<p>More information can be found on the <a href="http://www.gaiaflashframework.com/" title="Gaia framework's website" target="_blank" rel="nofollow">Gaia Framework&#8217;s 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>
<p><strong>UPDATE: Some more frameworks that I overlooked.</strong></p>
<h3>Parsley</h3>
<p>Parsley is an application framework for Flex/Flash/AIR applications written in AS3. It contains the following modules:</p>
<p><abbr title="Inversion of Control">IoC</abbr> Container (Configuration and Dependency Injection) &#8211; Inspired by the Spring Framework it brings the concept of an<abbr title="Inversion of Control">IoC</abbr>(Inversion of Control) container to ActionScript. It is useful for configuration and wiring of applications. It helps building a well structured architecture and decoupling the individual building blocks of your application. Configuration is based on <abbr title="eXtensible Markup Language">XML</abbr> files.</p>
<p><abbr title="Model View Controller">MVC</abbr> Framework &#8211; The <abbr title="Model View Controller">MVC</abbr> (Model View Controller) framework helps decouple the view layer from other parts of the application. It borrows the concept of a FrontController from Cairngorm, but instead of advocating the use of BusinessDelegate and ServiceLocator patterns, the framework integrates the FrontController with the <abbr title="Inversion of Control">IoC</abbr> container.<br />
More information can be found on the <a href="http://www.spicefactory.org/parsley/" title="Parsley framework's website" target="_blank" rel="nofollow">Parsley Framework&#8217;s website</a>.</p>
<h3>Prana</h3>
<p>Prana is an Inversion of Control (<abbr title="Inversion of Control">IoC</abbr>) Container for ActionScript 3.0, and more specifically the Flex framework. It enables you to configure objects and components in a non-intrusive way by describing them in an external <abbr title="eXtensible Markup Language">XML</abbr> document and having them loaded at runtime.</p>
<p>At its core is a Spring-ish application context and <abbr title="Inversion of Control">IoC</abbr> container. The <abbr title="eXtensible Markup Language">XML</abbr> dialect for the application context is aimed to be Spring compliant.</p>
<p>The framework also contains utility classes for configuring and extending Cairngorm and PureMVC applications, a Reflection <abbr title="Application Programming Interface">API</abbr> and general utilities.</p>
<p>More information can be found on the <a href="http://www.pranaframework.org" title="Prana framework's website" target="_blank" rel="nofollow">Prana Framework&#8217;s website</a>.</p>
<h3>Arp</h3>
<p>Arp is a pattern-based framework for Flash and Flex. It supports both ActionScript 2 and ActionScript 3.</p>
<p>More information can be found on the <a href="http://osflash.org/projects/arp/" title="Arp Framework" target="_blank" rel="nofollow">Arp project&#8217;s page</a> on the Open Source Flash website.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.simonwhatley.co.uk/ria-flex-air-frameworks/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Chrome &#8211; Google&#8217;s OpenSource Browser Project</title>
		<link>http://www.simonwhatley.co.uk/google-chrome-google-opensource-browser-project</link>
		<comments>http://www.simonwhatley.co.uk/google-chrome-google-opensource-browser-project#comments</comments>
		<pubDate>Tue, 02 Sep 2008 11:30:53 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Adobe AIR]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[gears]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Google Chrome]]></category>
		<category><![CDATA[Google Gears]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Mozilla Prism]]></category>
		<category><![CDATA[Safari]]></category>
		<category><![CDATA[Virtual Machine]]></category>
		<category><![CDATA[Web apps]]></category>
		<category><![CDATA[Webkit]]></category>

		<guid isPermaLink="false">http://www.simonwhatley.co.uk/?p=1023</guid>
		<description><![CDATA[On 1st September 2008 Google launched a new opensource browser project named Chrome.]]></description>
			<content:encoded><![CDATA[<p>On <del datetime="2008-09-02T19:13:28+00:00">1st</del> 2nd September 2008 Google launched a new opensource browser project named <a href="http://www.google.com/chrome" title="Google Chrome" target="_blank" rel="nofollow">Chrome</a>.</p>
<p><a href="http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome.jpg" rel="lightbox"><img src="http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome.jpg" alt="" title="Google Chrome" width="440" height="359" class="aligncenter size-full wp-image-1080" /></a></p>
<p><strong>UPDATE:</strong> You can download the beta project from the <a href="http://www.google.com/chrome" title="Google Chrome" target="_blank" rel="nofollow">Google Chrome website</a>.</p>
<p>Instead of me talking you through the project, Google and <a href="http://www.scottmccloud.com/" title="Scott McCloud" target="_blank" rel="nofollow">Scott McCloud</a> have put together a cool little cartoon.</p>
<p>However, as a brief summary:</p>
<ul>
<li>Google Chrome is Google’s open source browser project.</li>
<li>The browser will use the popular <a href="http://webkit.org/" title="Webkit OpenSource Project" target="_blank" rel="nofollow">Webkit</a> <abbr title="HyperText Markup Language">HTML</abbr> rendering engine used in <a href="http://www.apple.com/safari/" title="Apple Safari" target="_blank" rel="nofollow">Safari</a> and <a href="http://www.adobe.com/products/air/" title="Adobe Integrated Runtime" target="_blank" rel="nofollow">Adobe AIR</a>.</li>
<li>The browser will include a brand new JavaScript Virtual Machine called V8.</li>
<li>The browser will include <a href="http://gears.google.com/" title="Gears" target="_blank" rel="nofollow">Gears</a> to allow developers to enhance the user experience.</li>
<li>Google Chrome will use special tabs, like more traditional browsers, but set above the address and menu bar.</li>
<li>Each browser tab will run on its own process. If one tab fails for some reason, the whole browser will not need to be restarted, losing valuable work or tabs. This is similar to functionality found in Internet Explorer 8.</li>
<li>The browser has an address bar which includes a more intuitive auto-completion feature called &#8216;omnibox&#8217;. It is said to be less &#8216;irritating&#8217; than current auto-complete/suggest functionality common to <a href="http://www.mozilla-europe.org/en/firefox/" title="Firefox" target="_blank" rel="nofollow">Firefox 3</a> or <a href="http://www.google.com/webhp?complete=1&#038;hl=en" title="Google Suggest" target="_blank" rel="nofollow">Google Suggest</a>.</li>
<li>As a default homepage Chrome presents you with a kind of <q>speed dial</q> feature, similar to the one found in <a href="http://www.opera.com/" title="Opera Browser" target="_blank" rel="nofollow">Opera</a>.</li>
<li>Chrome has a privacy mode, which allows you to create an <q>incognito</q> window <q>and nothing that occurs in that window is ever logged on your computer.</q> Again, this is similar to functionality found in Internet Explorer 8.</li>
<li>Web apps can be launched in their own browser window without address bar and toolbar, much like <a href="http://labs.mozilla.com/projects/prism/" title="Mozilla's Prism" target="_blank" rel="nofollow">Mozilla&#8217;s Prism</a> project.</li>
<li>To fight malware and phishing attempts, Chrome constantly downloads lists of harmful sites.</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><em>(Click on the images to see a larger view)</em></p>
<p><a href= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-01.jpg" rel="lightbox" title="Google Chrome"><img src= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-01-150x150.jpg" width="150" height="150" alt= "Google Chrome - Opensource Browser Project" class= "alignleft size-thumbnail"></a><a href= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-02.jpg" rel="lightbox" title="Google Chrome"><img src= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-02-150x150.jpg" width="150" height="150" alt= "Google Chrome - Opensource Browser Project" class= "alignleft size-thumbnail"></a><a href= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-03.jpg" rel="lightbox" title="Google Chrome"><img src= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-03-150x150.jpg" width="150" height="150" alt= "Google Chrome - Opensource Browser Project" class= "alignleft size-thumbnail"></a><a href= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-04.jpg" rel="lightbox" title="Google Chrome"><img src= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-04-150x150.jpg" width="150" height="150" alt= "Google Chrome - Opensource Browser Project" class= "alignleft size-thumbnail"></a><a href= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-05.jpg" rel="lightbox" title="Google Chrome"><img src= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-05-150x150.jpg" width="150" height="150" alt= "Google Chrome - Opensource Browser Project" class= "alignleft size-thumbnail"></a><a href= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-06.jpg" rel="lightbox" title="Google Chrome"><img src= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-06-150x150.jpg" width="150" height="150" alt= "Google Chrome - Opensource Browser Project" class= "alignleft size-thumbnail"></a><a href= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-07.jpg" rel="lightbox" title="Google Chrome"><img src= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-07-150x150.jpg" width="150" height="150" alt= "Google Chrome - Opensource Browser Project" class= "alignleft size-thumbnail"></a><a href= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-08.jpg" rel="lightbox" title="Google Chrome"><img src= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-08-150x150.jpg" width="150" height="150" alt= "Google Chrome - Opensource Browser Project" class= "alignleft size-thumbnail"></a><a href= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-09.jpg" rel="lightbox" title="Google Chrome"><img src= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-09-150x150.jpg" width="150" height="150" alt= "Google Chrome - Opensource Browser Project" class= "alignleft size-thumbnail"></a><a href= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-10.jpg" rel="lightbox" title="Google Chrome"><img src= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-10-150x150.jpg" width="150" height="150" alt= "Google Chrome - Opensource Browser Project" class= "alignleft size-thumbnail"></a><a href= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-11.jpg" rel="lightbox" title="Google Chrome"><img src= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-11-150x150.jpg" width="150" height="150" alt= "Google Chrome - Opensource Browser Project" class= "alignleft size-thumbnail"></a><a href= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-12.jpg" rel="lightbox" title="Google Chrome"><img src= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-12-150x150.jpg" width="150" height="150" alt= "Google Chrome - Opensource Browser Project" class= "alignleft size-thumbnail"></a><a href= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-13.jpg" rel="lightbox" title="Google Chrome"><img src= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-13-150x150.jpg" width="150" height="150" alt= "Google Chrome - Opensource Browser Project" class= "alignleft size-thumbnail"></a><a href= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-14.jpg" rel="lightbox" title="Google Chrome"><img src= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-14-150x150.jpg" width="150" height="150" alt= "Google Chrome - Opensource Browser Project" class= "alignleft size-thumbnail"></a><a href= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-15.jpg" rel="lightbox" title="Google Chrome"><img src= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-15-150x150.jpg" width="150" height="150" alt= "Google Chrome - Opensource Browser Project" class= "alignleft size-thumbnail"></a><a href= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-16.jpg" rel="lightbox" title="Google Chrome"><img src= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-16-150x150.jpg" width="150" height="150" alt= "Google Chrome - Opensource Browser Project" class= "alignleft size-thumbnail"></a><a href= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-17.jpg" rel="lightbox" title="Google Chrome"><img src= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-17-150x150.jpg" width="150" height="150" alt= "Google Chrome - Opensource Browser Project" class= "alignleft size-thumbnail"></a><a href= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-18.jpg" rel="lightbox" title="Google Chrome"><img src= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-18-150x150.jpg" width="150" height="150" alt= "Google Chrome - Opensource Browser Project" class= "alignleft size-thumbnail"></a><a href= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-19.jpg" rel="lightbox" title="Google Chrome"><img src= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-19-150x150.jpg" width="150" height="150" alt= "Google Chrome - Opensource Browser Project" class= "alignleft size-thumbnail"></a><a href= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-20.jpg" rel="lightbox" title="Google Chrome"><img src= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-20-150x150.jpg" width="150" height="150" alt= "Google Chrome - Opensource Browser Project" class= "alignleft size-thumbnail"></a><a href= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-21.jpg" rel="lightbox" title="Google Chrome"><img src= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-21-150x150.jpg" width="150" height="150" alt= "Google Chrome - Opensource Browser Project" class= "alignleft size-thumbnail"></a><a href= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-22.jpg" rel="lightbox" title="Google Chrome"><img src= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-22-150x150.jpg" width="150" height="150" alt= "Google Chrome - Opensource Browser Project" class= "alignleft size-thumbnail"></a><a href= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-23.jpg" rel="lightbox" title="Google Chrome"><img src= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-23-150x150.jpg" width="150" height="150" alt= "Google Chrome - Opensource Browser Project" class= "alignleft size-thumbnail"></a><a href= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-24.jpg" rel="lightbox" title="Google Chrome"><img src= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-24-150x150.jpg" width="150" height="150" alt= "Google Chrome - Opensource Browser Project" class= "alignleft size-thumbnail"></a><a href= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-25.jpg" rel="lightbox" title="Google Chrome"><img src= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-25-150x150.jpg" width="150" height="150" alt= "Google Chrome - Opensource Browser Project" class= "alignleft size-thumbnail"></a><a href= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-26.jpg" rel="lightbox" title="Google Chrome"><img src= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-26-150x150.jpg" width="150" height="150" alt= "Google Chrome - Opensource Browser Project" class= "alignleft size-thumbnail"></a><a href= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-27.jpg" rel="lightbox" title="Google Chrome"><img src= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-27-150x150.jpg" width="150" height="150" alt= "Google Chrome - Opensource Browser Project" class= "alignleft size-thumbnail"></a><a href= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-28.jpg" rel="lightbox" title="Google Chrome"><img src= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-28-150x150.jpg" width="150" height="150" alt= "Google Chrome - Opensource Browser Project" class= "alignleft size-thumbnail"></a><a href= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-29.jpg" rel="lightbox" title="Google Chrome"><img src= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-29-150x150.jpg" width="150" height="150" alt= "Google Chrome - Opensource Browser Project" class= "alignleft size-thumbnail"></a><a href= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-30.jpg" rel="lightbox" title="Google Chrome"><img src= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-30-150x150.jpg" width="150" height="150" alt= "Google Chrome - Opensource Browser Project" class= "alignleft size-thumbnail"></a><a href= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-31.jpg" rel="lightbox" title="Google Chrome"><img src= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-31-150x150.jpg" width="150" height="150" alt= "Google Chrome - Opensource Browser Project" class= "alignleft size-thumbnail"></a><a href= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-32.jpg" rel="lightbox" title="Google Chrome"><img src= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-32-150x150.jpg" width="150" height="150" alt= "Google Chrome - Opensource Browser Project" class= "alignleft size-thumbnail"></a><a href= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-33.jpg" rel="lightbox" title="Google Chrome"><img src= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-33-150x150.jpg" width="150" height="150" alt= "Google Chrome - Opensource Browser Project" class= "alignleft size-thumbnail"></a><a href= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-34.jpg" rel="lightbox" title="Google Chrome"><img src= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-34-150x150.jpg" width="150" height="150" alt= "Google Chrome - Opensource Browser Project" class= "alignleft size-thumbnail"></a><a href= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-35.jpg" rel="lightbox" title="Google Chrome"><img src= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-35-150x150.jpg" width="150" height="150" alt= "Google Chrome - Opensource Browser Project" class= "alignleft size-thumbnail"></a><a href= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-36.jpg" rel="lightbox" title="Google Chrome"><img src= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-36-150x150.jpg" width="150" height="150" alt= "Google Chrome - Opensource Browser Project" class= "alignleft size-thumbnail"></a><a href= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-37.jpg" rel="lightbox" title="Google Chrome"><img src= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-37-150x150.jpg" width="150" height="150" alt= "Google Chrome - Opensource Browser Project" class= "alignleft size-thumbnail"></a><a href= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-38.jpg" rel="lightbox" title="Google Chrome"><img src= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-38-150x150.jpg" width="150" height="150" alt= "Google Chrome - Opensource Browser Project" class= "alignleft size-thumbnail"></a><a href= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-39.jpg" rel="lightbox" title="Google Chrome"><img src= "http://www.simonwhatley.co.uk/blog/wp-content/uploads/2008/09/google-chrome-39-150x150.jpg" width="150" height="150" alt= "Google Chrome - Opensource Browser Project" class= "alignleft size-thumbnail"></a></p>
<p><br style="clear:both;" /></p>
<p>You can find out more information from <a href="http://googleblog.blogspot.com/2008/09/fresh-take-on-browser.html" title="Google's blog post on Chrome" target="_blank" rel="nofollow">Google&#8217;s blog post</a> on the subject.</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/google-chrome-google-opensource-browser-project/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
