<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>David Woodfield</title>
	<atom:link href="http://davidwoodfield.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://davidwoodfield.wordpress.com</link>
	<description>Computing Project</description>
	<lastBuildDate>Thu, 18 Feb 2010 16:12:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='davidwoodfield.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://0.gravatar.com/blavatar/e3a73e6648a71011edcca42f181af960?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>David Woodfield</title>
		<link>http://davidwoodfield.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://davidwoodfield.wordpress.com/osd.xml" title="David Woodfield" />
	<atom:link rel='hub' href='http://davidwoodfield.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Project Design</title>
		<link>http://davidwoodfield.wordpress.com/2010/02/18/project-design/</link>
		<comments>http://davidwoodfield.wordpress.com/2010/02/18/project-design/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 16:12:53 +0000</pubDate>
		<dc:creator>davidwoodfield</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://davidwoodfield.wordpress.com/?p=200</guid>
		<description><![CDATA[Colour Articles http://www.smashingmagazine.com/2010/01/28/color-theory-for-designers-part-1-the-meaning-of-color/ http://www.smashingmagazine.com/2010/02/02/color-theory-for-designers-part-2-understanding-concepts-and-terminology/ http://www.smashingmagazine.com/2010/02/08/color-theory-for-designer-part-3-creating-your-own-color-palettes/ Smashing Book Library books Kuler<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=davidwoodfield.wordpress.com&amp;blog=7014869&amp;post=200&amp;subd=davidwoodfield&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h2>Colour Articles</h2>
<p><a href="http://www.smashingmagazine.com/2010/01/28/color-theory-for-designers-part-1-the-meaning-of-color/">http://www.smashingmagazine.com/2010/01/28/color-theory-for-designers-part-1-the-meaning-of-color/</a></p>
<p><a href="http://www.smashingmagazine.com/2010/02/02/color-theory-for-designers-part-2-understanding-concepts-and-terminology/">http://www.smashingmagazine.com/2010/02/02/color-theory-for-designers-part-2-understanding-concepts-and-terminology/</a></p>
<p><a href="http://www.smashingmagazine.com/2010/02/08/color-theory-for-designer-part-3-creating-your-own-color-palettes/">http://www.smashingmagazine.com/2010/02/08/color-theory-for-designer-part-3-creating-your-own-color-palettes/</a></p>
<p>Smashing Book</p>
<p>Library books</p>
<p>Kuler</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/davidwoodfield.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/davidwoodfield.wordpress.com/200/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/davidwoodfield.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/davidwoodfield.wordpress.com/200/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/davidwoodfield.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/davidwoodfield.wordpress.com/200/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/davidwoodfield.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/davidwoodfield.wordpress.com/200/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/davidwoodfield.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/davidwoodfield.wordpress.com/200/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/davidwoodfield.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/davidwoodfield.wordpress.com/200/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/davidwoodfield.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/davidwoodfield.wordpress.com/200/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=davidwoodfield.wordpress.com&amp;blog=7014869&amp;post=200&amp;subd=davidwoodfield&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://davidwoodfield.wordpress.com/2010/02/18/project-design/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/506aa85dd96f94d3ef35ec6251d20324?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">davidwoodfield</media:title>
		</media:content>
	</item>
		<item>
		<title>Twitter API Project</title>
		<link>http://davidwoodfield.wordpress.com/2010/02/18/twitter-api-project/</link>
		<comments>http://davidwoodfield.wordpress.com/2010/02/18/twitter-api-project/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 15:56:34 +0000</pubDate>
		<dc:creator>davidwoodfield</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://davidwoodfield.wordpress.com/?p=195</guid>
		<description><![CDATA[Case Study I&#8217;m going to pretend that I&#8217;m working for a company and I&#8217;m an Intranet developer, my boss has approached me and explained that senior management want to incorporate the social networking phenomenon  Twitter into the company Intranet. They would like me to come up with a prototype and produce a critical evaluation of the service [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=davidwoodfield.wordpress.com&amp;blog=7014869&amp;post=195&amp;subd=davidwoodfield&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h2>Case Study</h2>
<p>I&#8217;m going to pretend that I&#8217;m working for a company and I&#8217;m an Intranet developer, my boss has approached me and explained that senior management want to incorporate the social networking phenomenon  Twitter into the company Intranet. They would like me to come up with a prototype and produce a critical evaluation of the service in the form of a report.</p>
<h3>Features</h3>
<ul>
<li>A list of given twitter users and avatars</li>
<li>View twitter time line of individual users</li>
<li>View twitter profile of individual users</li>
<li>View latest tweets from collection of the given users</li>
<li>Self updating time line</li>
<li>Create new tweet</li>
<li>View own tweets</li>
</ul>
<h3>Prototype</h3>
<p>The finished prototype will be an HTML web page. The technologies used will be HTML, CSS and JavaScript. These technologies are cross-platform and run inside a web browser in HTML format.</p>
<h3>What is Twitter?</h3>
<p>&#8220;Twitter is a real-time information network powered by people all around the world that lets you share and discover what&#8217;s happening now.&#8221; (<a href="http://twitter.com/about">http://twitter.com/about</a>)</p>
<p>Twitter works by letting you read or write messages of up to 140 characters. These are known as tweets. Each user has a time line that displays their tweets, tweets can be public or private depending on what settings you choose. Your Twitter home page displays tweets from all the people you are following, listed in chronological order. To follow another twitter user, you simply navigate to their profile, opt to follow them and the next time they tweet it will appear on your home page.</p>
<p>Twitter also supports direct messages and mobile phone usage. It is one of the most talked about Internet service in the world.</p>
<h3>Twitter API</h3>
<p>The twitter API is located at http://apiwiki.twitter.com. There is a comprehensive wiki on the API which is simple and easy to use.</p>
<p>There are actually three Twitter APIs, there is the REST API and streaming API which both connect to users information and tweets and there is the search API used to query all tweets and users.</p>
<p>It is an HTTP-based API making use of GET requests. POST and DELETE requests are used to submit, change or delete data and require authentication.</p>
<p>Authentication is handled either by basic authentication or OAuth. Basic authentication sends user credentials in the header of the HTTP request. This makes it easy to use, but insecure. OAuth is a token-passing mechanism that allows users to control which applications have access to their data without giving away their passwords. OAuth is Twitters preferred method of authentication although they have no plans to remove the basic authentication, eventually they would like to suspend it.</p>
<p>Requests to Twitter can be returned in a variety of formats, currently the supported formats are: xml, json, rss and atom.</p>
<p>Twitter controls the amount of requests to the API and advises developers to program for error responses. The default rate limit for calls to the REST API is 150 requests per hour. Rate limiting only applies to methods that request information with HTTP GET command, although Twitter has daily limits for users to discourage spam. The search API also has a rate limit but Twitter does not disclose what the figure is stating  the rate is both liberal and sufficient for most applications.</p>
<p>Twitter will try to return appropriate response codes for each request and developers are advised to cater for these.</p>
<ul>
<li><strong>200 OK</strong>: Success.</li>
<li><strong>304 Not Modified</strong>: There was no new data to return.</li>
<li><strong>400 Bad Request</strong>: The request was invalid.</li>
<li><strong>401 Unauthorised</strong>: Authentication credentials were missing or incorrect.</li>
<li><strong>403 Forbidden</strong>: The request is understood, but has been refused.</li>
<li><strong>404 Not Found</strong>: The URI requested is invalid or the resource requested, such as a user, does not exist.</li>
<li><strong>406 Not Acceptable</strong>: Returned by the Search API when an invalid format is specified in the request.</li>
<li><strong>420 Enhance Your Calm</strong>: Returned by the Search and Trends API when you are being rate limited.</li>
<li><strong>500 Internal Server Error</strong>: Something is broken.</li>
<li><strong>502 Bad Gateway</strong>: Twitter is down or being upgraded.</li>
<li><strong>503 Service Unavailable</strong>: The twitter servers are up, but overloaded with requests.</li>
</ul>
<p>Responses 400 and 403 will always contain an accompanying error message to explain the error.</p>
<p>The Twitter API has certain rules that developers of 3rd party applications must adhere to. The rules are:</p>
<ul>
<li>Identify the user that authored or provided the Tweet, unless you are providing Tweets in an aggregate form or in anonymous form in those exceptional cases where concerns over user security and anonymity are involved.</li>
<li>Maintain the integrity of Tweets and not edit or revise them. Tweets may be abbreviated for display purposes and as necessary due to technical limitations or requirements of any networks, devices, services or media.</li>
<li>Get each user&#8217;s consent before sending Tweets or other messages on their behalf. A user authenticating with your application does not constitute consent to send a message.</li>
<li>Get permission from the user that created the Tweet if you want to make their Tweet into a commercial good or product, like using a Tweet on a t-shirt or a poster or making a book based on someone’s Tweets.</li>
<li>Clearly disclose when you are geotagging a user&#8217;s tweets. If you are looking for guidance on an approved disclosure, see the <a href="http://apiwiki.twitter.com/Geotagging-API-Best-Practices" target="_blank">Geotagging Best Practices</a>.</li>
</ul>
<p>The last bullet point touches on geotagging tweets, this is a recent addition to the api and is a simple piece of meta-data to identify the tweeters location. This functionality is popular in mobile phone applications or is at least &#8220;trending&#8221;.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/davidwoodfield.wordpress.com/195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/davidwoodfield.wordpress.com/195/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/davidwoodfield.wordpress.com/195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/davidwoodfield.wordpress.com/195/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/davidwoodfield.wordpress.com/195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/davidwoodfield.wordpress.com/195/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/davidwoodfield.wordpress.com/195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/davidwoodfield.wordpress.com/195/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/davidwoodfield.wordpress.com/195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/davidwoodfield.wordpress.com/195/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/davidwoodfield.wordpress.com/195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/davidwoodfield.wordpress.com/195/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/davidwoodfield.wordpress.com/195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/davidwoodfield.wordpress.com/195/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=davidwoodfield.wordpress.com&amp;blog=7014869&amp;post=195&amp;subd=davidwoodfield&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://davidwoodfield.wordpress.com/2010/02/18/twitter-api-project/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/506aa85dd96f94d3ef35ec6251d20324?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">davidwoodfield</media:title>
		</media:content>
	</item>
		<item>
		<title>Place holder</title>
		<link>http://davidwoodfield.wordpress.com/2009/11/25/place-holder/</link>
		<comments>http://davidwoodfield.wordpress.com/2009/11/25/place-holder/#comments</comments>
		<pubDate>Wed, 25 Nov 2009 13:36:38 +0000</pubDate>
		<dc:creator>davidwoodfield</dc:creator>
				<category><![CDATA[Project Blog]]></category>

		<guid isPermaLink="false">http://davidwoodfield.wordpress.com/?p=174</guid>
		<description><![CDATA[This is a place holder for future weekly project blog posts.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=davidwoodfield.wordpress.com&amp;blog=7014869&amp;post=174&amp;subd=davidwoodfield&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This is a place holder for future weekly project blog posts.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/davidwoodfield.wordpress.com/174/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/davidwoodfield.wordpress.com/174/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/davidwoodfield.wordpress.com/174/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/davidwoodfield.wordpress.com/174/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/davidwoodfield.wordpress.com/174/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/davidwoodfield.wordpress.com/174/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/davidwoodfield.wordpress.com/174/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/davidwoodfield.wordpress.com/174/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/davidwoodfield.wordpress.com/174/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/davidwoodfield.wordpress.com/174/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/davidwoodfield.wordpress.com/174/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/davidwoodfield.wordpress.com/174/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/davidwoodfield.wordpress.com/174/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/davidwoodfield.wordpress.com/174/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=davidwoodfield.wordpress.com&amp;blog=7014869&amp;post=174&amp;subd=davidwoodfield&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://davidwoodfield.wordpress.com/2009/11/25/place-holder/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/506aa85dd96f94d3ef35ec6251d20324?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">davidwoodfield</media:title>
		</media:content>
	</item>
		<item>
		<title>Extreme Programming Plan</title>
		<link>http://davidwoodfield.wordpress.com/2009/11/25/extreme-programming-plan/</link>
		<comments>http://davidwoodfield.wordpress.com/2009/11/25/extreme-programming-plan/#comments</comments>
		<pubDate>Wed, 25 Nov 2009 12:56:27 +0000</pubDate>
		<dc:creator>davidwoodfield</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://davidwoodfield.wordpress.com/?p=157</guid>
		<description><![CDATA[Research Email Web Chat Software development methodologies Data Storage Sever side programming languages Web application architecture Client side programming languages Rich Internet Applications Comparison of webmail providers Common properties of website design (chapter 1 smashing mag?http://media.smashingmagazine.com/pdfs/sm-book-chapter1.pdf) Iteration 0 Write system vision Write system metaphor Build environment and select and install development tools Customer lists all [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=davidwoodfield.wordpress.com&amp;blog=7014869&amp;post=157&amp;subd=davidwoodfield&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h2>Research</h2>
<ul>
<li>Email</li>
<li>Web Chat</li>
<li>Software development methodologies</li>
<li>Data Storage</li>
<li>Sever side programming languages</li>
<li>Web application architecture</li>
<li>Client side programming languages</li>
<li>Rich Internet Applications</li>
<li>Comparison of webmail providers</li>
<li>Common properties of website design (chapter 1 smashing mag?<a href="http://media.smashingmagazine.com/pdfs/sm-book-chapter1.pdf">http://media.smashingmagazine.com/pdfs/sm-book-chapter1.pdf</a>)</li>
</ul>
<h2>Iteration 0</h2>
<ol>
<li>Write system vision</li>
<li>Write system metaphor</li>
<li>Build environment and select and install development tools</li>
<li>Customer lists all the stories they expect to appear in the application</li>
<blockquote><p>Give stories short names in addition to a short prose or graphical description. Write the stories on index cards and put them on a frequently passed wall. (Extreme programming explained)</p></blockquote>
<li>Write user acceptance tests</li>
<p>This object represents one or more precise scenarios that the customer writes to test a given user story. it defines initial values and preconditions, along with result values and postconditions.When the acceptance tests for a story are all passed, the story is complete. A goal of XP is that each story should be small and detailed enough to permit only one acceptance test per user story.</p>
<li>Plan theme or themes for first quarter</li>
<li>Pick a quarters worth of stories to address those themes</li>
<li>Focus on the big picture, where the project fits within the organisation</li>
<li>Plan and list reuseable components and design</li>
<li>Initial design of reusable components</li>
</ol>
<h2>Weekly Iteration</h2>
<ol>
<li>Review progress to date, including how actual progress for the previous week matched expected progress</li>
<li>Select a weeks worth of stories</li>
<li>Write automated tests that will run when the stories are completed</li>
<li>Design and code story</li>
<li>review design and code</li>
<li>test story</li>
<li>if fails &#8211; go back to step 3</li>
<li>Integrate story into system</li>
<li>Intergration test story</li>
<li>if fails &#8211; go back to step 3</li>
<li>Acceptance test story</li>
<li>if fails &#8211; go to user and try to understand what you didn&#8217;t before</li>
<li>Passed</li>
<li>Go back to step 1 until all stories are completed for this week.</li>
<li>Complete blog entry for this week.</li>
</ol>
<h2>Quarterly Cycle</h2>
<ol>
<li>Initiate repairs</li>
<li>Plan the theme or theme for the quarter</li>
<li>Progress check</li>
<li>Focus on the big picture, where the project fits within the organisation</li>
</ol>
<h2>Time Expired</h2>
<ol>
<li>Release working system to customer</li>
</ol>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/davidwoodfield.wordpress.com/157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/davidwoodfield.wordpress.com/157/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/davidwoodfield.wordpress.com/157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/davidwoodfield.wordpress.com/157/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/davidwoodfield.wordpress.com/157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/davidwoodfield.wordpress.com/157/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/davidwoodfield.wordpress.com/157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/davidwoodfield.wordpress.com/157/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/davidwoodfield.wordpress.com/157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/davidwoodfield.wordpress.com/157/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/davidwoodfield.wordpress.com/157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/davidwoodfield.wordpress.com/157/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/davidwoodfield.wordpress.com/157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/davidwoodfield.wordpress.com/157/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=davidwoodfield.wordpress.com&amp;blog=7014869&amp;post=157&amp;subd=davidwoodfield&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://davidwoodfield.wordpress.com/2009/11/25/extreme-programming-plan/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/506aa85dd96f94d3ef35ec6251d20324?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">davidwoodfield</media:title>
		</media:content>
	</item>
		<item>
		<title>Software Development &#8211; Senior Management</title>
		<link>http://davidwoodfield.wordpress.com/2009/11/24/software-development-senior-management/</link>
		<comments>http://davidwoodfield.wordpress.com/2009/11/24/software-development-senior-management/#comments</comments>
		<pubDate>Tue, 24 Nov 2009 17:09:29 +0000</pubDate>
		<dc:creator>davidwoodfield</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://davidwoodfield.wordpress.com/?p=147</guid>
		<description><![CDATA[Resources &#38; References http://spectrum.ieee.org/computing/software/why-software-fails www.nwegg.org.uk/docstore/289.ppt http://spectrum.ieee.org/computing/software/who-killed-the-virtual-case-file http://www.ddj.com/184410112 http://ieeexplore.ieee.org/search/wrapper.jsp?arnumber=366170 http://www.computerweekly.com/Articles/2007/04/01/222869/case-studies-public-transport-project-management.htm http://www.nao.org.uk/publications/0607/delivering_successful_it-enabl.aspx http://www.bcs.org/server.php?show=ConWebDoc.19584 http://faculty.ed.umuc.edu/~meinkej/inss690/wilson.htm http://www.nao.org.uk/publications/0809/national_offender_management.aspx http://www.nao.org.uk/publications/0809/2nd_progress_report_on_single.aspx http://www.hraconsulting-ltd.co.uk/project-management-book-0301.htm http://www.ogc.gov.uk/ppm_documents_ogc_gateway.asp http://www.ogc.gov.uk/senior_management_documents_benefits_management.asp www.parliament.uk/post/pr200.pdf http://www.parliament.the-stationery-office.co.uk/pa/cm199900/cmselect/cmpubacc/65/6506.htm http://www.google.co.uk/search?hl=en&#38;source=hp&#38;q=Successful+IT%3A+Modernising+Government+in+Action&#38;meta=&#38;aq=f&#38;oq= Layout Abstract Introduction What is a project? What is a successful project? What is a failed project? What is senior management? The relationship between senior management and the success of a project The relationship between [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=davidwoodfield.wordpress.com&amp;blog=7014869&amp;post=147&amp;subd=davidwoodfield&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h2>Resources &amp; References</h2>
<ol>
<li><a href="http://spectrum.ieee.org/computing/software/why-software-fails">http://spectrum.ieee.org/computing/software/why-software-fails</a><br />
<a href="http://www.nwegg.org.uk/docstore/289.ppt">www.nwegg.org.uk/docstore/289.ppt</a></li>
<li><a href="http://spectrum.ieee.org/computing/software/who-killed-the-virtual-case-file">http://spectrum.ieee.org/computing/software/who-killed-the-virtual-case-file</a></li>
<li><a href="http://www.ddj.com/184410112">http://www.ddj.com/184410112</a></li>
<li><a href="http://ieeexplore.ieee.org/search/wrapper.jsp?arnumber=366170">http://ieeexplore.ieee.org/search/wrapper.jsp?arnumber=366170</a></li>
<li><a href="http://www.computerweekly.com/Articles/2007/04/01/222869/case-studies-public-transport-project-management.htm">http://www.computerweekly.com/Articles/2007/04/01/222869/case-studies-public-transport-project-management.htm</a></li>
<li><a href="http://www.nao.org.uk/publications/0607/delivering_successful_it-enabl.aspx">http://www.nao.org.uk/publications/0607/delivering_successful_it-enabl.aspx</a></li>
<li><a href="http://www.bcs.org/server.php?show=ConWebDoc.19584">http://www.bcs.org/server.php?show=ConWebDoc.19584</a></li>
<li><a href="http://faculty.ed.umuc.edu/~meinkej/inss690/wilson.htm">http://faculty.ed.umuc.edu/~meinkej/inss690/wilson.htm</a></li>
<li><a href="http://www.nao.org.uk/publications/0809/national_offender_management.aspx">http://www.nao.org.uk/publications/0809/national_offender_management.aspx</a></li>
<li><a href="http://www.nao.org.uk/publications/0809/2nd_progress_report_on_single.aspx">http://www.nao.org.uk/publications/0809/2nd_progress_report_on_single.aspx</a></li>
<li><a href="http://www.hraconsulting-ltd.co.uk/project-management-book-0301.htm">http://www.hraconsulting-ltd.co.uk/project-management-book-0301.htm</a></li>
<li><a href="http://www.ogc.gov.uk/ppm_documents_ogc_gateway.asp">http://www.ogc.gov.uk/ppm_documents_ogc_gateway.asp</a></li>
<li><a href="http://www.ogc.gov.uk/senior_management_documents_benefits_management.asp">http://www.ogc.gov.uk/senior_management_documents_benefits_management.asp</a></li>
<li><cite><a href="http://www.parliament.uk/post/pr200.pdf">www.parliament.uk/post/pr200.pdf</a> </cite></li>
<li><cite><a href="http://www.parliament.the-stationery-office.co.uk/pa/cm199900/cmselect/cmpubacc/65/6506.htm">http://www.parliament.the-stationery-office.co.uk/pa/cm199900/cmselect/cmpubacc/65/6506.htm</a></cite></li>
<li><cite><a href="http://www.google.co.uk/search?hl=en&amp;source=hp&amp;q=Successful+IT%3A+Modernising+Government+in+Action&amp;meta=&amp;aq=f&amp;oq">http://www.google.co.uk/search?hl=en&amp;source=hp&amp;q=Successful+IT%3A+Modernising+Government+in+Action&amp;meta=&amp;aq=f&amp;oq</a>=</cite></li>
</ol>
<h2>Layout</h2>
<ul>
<li>Abstract</li>
<li>Introduction</li>
<li>What is a project?</li>
<li>What is a successful project?</li>
<li>What is a failed project?</li>
<li>What is senior management?</li>
<li>The relationship between senior management and the success of a project</li>
<li>The relationship between senior management and the failure of a project</li>
<li>Conclusions</li>
<li>References</li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/davidwoodfield.wordpress.com/147/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/davidwoodfield.wordpress.com/147/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/davidwoodfield.wordpress.com/147/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/davidwoodfield.wordpress.com/147/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/davidwoodfield.wordpress.com/147/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/davidwoodfield.wordpress.com/147/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/davidwoodfield.wordpress.com/147/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/davidwoodfield.wordpress.com/147/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/davidwoodfield.wordpress.com/147/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/davidwoodfield.wordpress.com/147/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/davidwoodfield.wordpress.com/147/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/davidwoodfield.wordpress.com/147/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/davidwoodfield.wordpress.com/147/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/davidwoodfield.wordpress.com/147/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=davidwoodfield.wordpress.com&amp;blog=7014869&amp;post=147&amp;subd=davidwoodfield&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://davidwoodfield.wordpress.com/2009/11/24/software-development-senior-management/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/506aa85dd96f94d3ef35ec6251d20324?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">davidwoodfield</media:title>
		</media:content>
	</item>
		<item>
		<title>Resources for PHP Webmail</title>
		<link>http://davidwoodfield.wordpress.com/2009/11/24/resources-for-php-webmail/</link>
		<comments>http://davidwoodfield.wordpress.com/2009/11/24/resources-for-php-webmail/#comments</comments>
		<pubDate>Tue, 24 Nov 2009 16:51:45 +0000</pubDate>
		<dc:creator>davidwoodfield</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://davidwoodfield.wordpress.com/?p=143</guid>
		<description><![CDATA[PHP http://net.tutsplus.com/category/tutorials/php/ http://net.tutsplus.com/tutorials/php/7amp-creating-a-development-environment/#more-7660 http://net.tutsplus.com/tutorials/php/simple-techniques-to-lock-down-your-website/#more-7035 http://net.tutsplus.com/tutorials/php/creating-a-crypter-class/#more-6941 http://net.tutsplus.com/tutorials/php/create-a-signup-form-with-email-confirmation/#more-6860 http://net.tutsplus.com/tutorials/php/getting-clean-with-php/#more-6732 http://net.tutsplus.com/tutorials/php/30-php-best-practices-for-beginners/ http://net.tutsplus.com/tutorials/php/add-power-to-your-php-with-multi-tiered-applications/ http://us.php.net/manual/en/book.mysqli.php http://www.devarticles.com/c/a/PHP/Object-Oriented-Programming-in-PHP/ http://dev-tips.com/featured/output-buffering-for-web-developers-a-beginners-guide http://dev-tips.com/featured/4-fantastic-php-output-buffering-tricks-for-web-developers http://dev-tips.com/featured/send-hassle-free-and-dependable-html-emails-with-php http://yensdesign.com/2009/01/how-validate-forms-both-sides-using-php-jquery/ http://abeautifulsite.net/2009/08/cropping-an-image-to-make-square-thumbnails-in-php/ http://abeautifulsite.net/2009/08/enabling-tinymces-php-spell-checker/ http://abeautifulsite.net/2008/02/preventing-multiple-posts-when-users-refresh/ http://abeautifulsite.net/2007/09/getting-proportionally-resized-dimensions-of-an-image/ http://abeautifulsite.net/2007/07/verifying-email-addresses-in-php-and-javascript/ http://abeautifulsite.net/2007/06/php-file-tree/ http://abeautifulsite.net/2007/06/ridiculously-simple-sql-injection/ http://abeautifulsite.net/2009/04/installing-pear-on-wamp/ http://net.tutsplus.com/tutorials/php/3-ways-to-speed-up-your-site-with-php/ http://net.tutsplus.com/tutorials/php/organize-your-next-php-project-the-right-way/ http://net.tutsplus.com/tutorials/php/online-file-storage-with-php/ http://net.tutsplus.com/tutorials/php/kohana-the-swift-php-framework/ http://net.tutsplus.com/tutorials/php/15-wonderfully-creative-uses-for-php/ http://net.tutsplus.com/tutorials/php/404403-website-error-pages-with-php-auto-mailer/ http://net.tutsplus.com/tutorials/php/everything-you-need-to-get-started-with-mysql/ http://net.tutsplus.com/tutorials/php/asynchronous-comments-with-jquery-and-json/ http://net.tutsplus.com/tutorials/php/oop-in-php/ http://net.tutsplus.com/tutorials/php/how-to-setup-a-dedicated-web-server-for-free/ http://net.tutsplus.com/tutorials/php/real-world-oop-with-php-and-mysql/ http://net.tutsplus.com/tutorials/php/10-principles-of-the-php-masters/ http://net.tutsplus.com/php/creating-a-php5-framework-part-1/ http://net.tutsplus.com/tutorials/php/create-a-php5-framework-part-2/ http://net.tutsplus.com/tutorials/php/create-a-php5-framework-part-3/ http://devzone.zend.com/article/2772 http://sebastian-bergmann.de/talks/2005-05-04-PHPUnit.pdf http://framework.zend.com/docs/quickstart/create-your-project http://www.alexatnet.com/node/12 IE BUGS http://net.tutsplus.com/tutorials/html-css-techniques/9-most-common-ie-bugs-and-how-to-fix-them/?utm_source=feedburner&#38;utm_medium=feed&#38;utm_campaign=Feed%253A+nettuts+%2528NETTUTS%2529&#38;utm_content=Google+Reader JavaScript &#38; jQuery http://abeautifulsite.net/2009/05/jquery-live-click-binds-both-the-left-and-right-mouse-buttons/ http://designshack.co.uk/articles/javascript/20-simple-jquery-tricks http://sixrevisions.com/javascript/10-awesome-techniques-and-examples-of-animation-with-jquery/ http://designm.ag/tutorials/image-rotator-css-jquery/ http://blog.themeforest.net/tutorials/7-things-i-wish-i-had-known-about-jquery/ http://blog.perplexedlabs.com/2009/05/04/php-jquery-ajax-javascript-long-polling/ http://blog.perplexedlabs.com/2008/11/07/real-time-ajax-javascript-progress-bar/ [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=davidwoodfield.wordpress.com&amp;blog=7014869&amp;post=143&amp;subd=davidwoodfield&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h2>PHP</h2>
<ol>
<li><a href="http://net.tutsplus.com/category/tutorials/php/">http://net.tutsplus.com/category/tutorials/php/</a></li>
<li><a href="http://net.tutsplus.com/tutorials/php/7amp-creating-a-development-environment/#more-7660">http://net.tutsplus.com/tutorials/php/7amp-creating-a-development-environment/#more-7660</a></li>
<li><a href="http://net.tutsplus.com/tutorials/php/simple-techniques-to-lock-down-your-website/#more-7035">http://net.tutsplus.com/tutorials/php/simple-techniques-to-lock-down-your-website/#more-7035</a></li>
<li><a href="http://net.tutsplus.com/tutorials/php/creating-a-crypter-class/#more-6941">http://net.tutsplus.com/tutorials/php/creating-a-crypter-class/#more-6941</a></li>
<li><a href="http://net.tutsplus.com/tutorials/php/create-a-signup-form-with-email-confirmation/#more-6860">http://net.tutsplus.com/tutorials/php/create-a-signup-form-with-email-confirmation/#more-6860</a></li>
<li><a href="http://net.tutsplus.com/tutorials/php/getting-clean-with-php/#more-6732">http://net.tutsplus.com/tutorials/php/getting-clean-with-php/#more-6732</a></li>
<li><a href="http://net.tutsplus.com/tutorials/php/30-php-best-practices-for-beginners/">http://net.tutsplus.com/tutorials/php/30-php-best-practices-for-beginners/</a></li>
<li><a href="http://net.tutsplus.com/tutorials/php/add-power-to-your-php-with-multi-tiered-applications/">http://net.tutsplus.com/tutorials/php/add-power-to-your-php-with-multi-tiered-applications/</a></li>
<li><a href="http://us.php.net/manual/en/book.mysqli.php">http://us.php.net/manual/en/book.mysqli.php</a></li>
<li><a href="http://www.devarticles.com/c/a/PHP/Object-Oriented-Programming-in-PHP/">http://www.devarticles.com/c/a/PHP/Object-Oriented-Programming-in-PHP/</a></li>
<li><a href="http://dev-tips.com/featured/output-buffering-for-web-developers-a-beginners-guide">http://dev-tips.com/featured/output-buffering-for-web-developers-a-beginners-guide</a></li>
<li><a href="http://dev-tips.com/featured/4-fantastic-php-output-buffering-tricks-for-web-developers">http://dev-tips.com/featured/4-fantastic-php-output-buffering-tricks-for-web-developers</a></li>
<li><a href="http://dev-tips.com/featured/send-hassle-free-and-dependable-html-emails-with-php">http://dev-tips.com/featured/send-hassle-free-and-dependable-html-emails-with-php</a></li>
<li><a href="http://yensdesign.com/2009/01/how-validate-forms-both-sides-using-php-jquery/">http://yensdesign.com/2009/01/how-validate-forms-both-sides-using-php-jquery/</a></li>
<li><a href="http://abeautifulsite.net/2009/08/cropping-an-image-to-make-square-thumbnails-in-php/">http://abeautifulsite.net/2009/08/cropping-an-image-to-make-square-thumbnails-in-php/</a></li>
<li><a href="http://abeautifulsite.net/2009/08/enabling-tinymces-php-spell-checker/">http://abeautifulsite.net/2009/08/enabling-tinymces-php-spell-checker/</a></li>
<li><a href="http://abeautifulsite.net/2008/02/preventing-multiple-posts-when-users-refresh/">http://abeautifulsite.net/2008/02/preventing-multiple-posts-when-users-refresh/</a></li>
<li><a href="http://abeautifulsite.net/2007/09/getting-proportionally-resized-dimensions-of-an-image/">http://abeautifulsite.net/2007/09/getting-proportionally-resized-dimensions-of-an-image/</a></li>
<li><a href="http://abeautifulsite.net/2007/07/verifying-email-addresses-in-php-and-javascript/">http://abeautifulsite.net/2007/07/verifying-email-addresses-in-php-and-javascript/</a></li>
<li><a href="http://abeautifulsite.net/2007/06/php-file-tree/">http://abeautifulsite.net/2007/06/php-file-tree/</a></li>
<li><a href="http://abeautifulsite.net/2007/06/ridiculously-simple-sql-injection/">http://abeautifulsite.net/2007/06/ridiculously-simple-sql-injection/</a></li>
<li><a href="http://abeautifulsite.net/2009/04/installing-pear-on-wamp/">http://abeautifulsite.net/2009/04/installing-pear-on-wamp/</a></li>
<li><a href="http://net.tutsplus.com/tutorials/php/3-ways-to-speed-up-your-site-with-php/">http://net.tutsplus.com/tutorials/php/3-ways-to-speed-up-your-site-with-php/</a></li>
<li><a href="http://net.tutsplus.com/tutorials/php/organize-your-next-php-project-the-right-way/">http://net.tutsplus.com/tutorials/php/organize-your-next-php-project-the-right-way/</a></li>
<li><a href="http://net.tutsplus.com/tutorials/php/online-file-storage-with-php/">http://net.tutsplus.com/tutorials/php/online-file-storage-with-php/</a></li>
<li><a href="http://net.tutsplus.com/tutorials/php/kohana-the-swift-php-framework/">http://net.tutsplus.com/tutorials/php/kohana-the-swift-php-framework/</a></li>
<li><a href="http://net.tutsplus.com/tutorials/php/15-wonderfully-creative-uses-for-php/">http://net.tutsplus.com/tutorials/php/15-wonderfully-creative-uses-for-php/</a></li>
<li><a href="http://net.tutsplus.com/tutorials/php/404403-website-error-pages-with-php-auto-mailer/">http://net.tutsplus.com/tutorials/php/404403-website-error-pages-with-php-auto-mailer/</a></li>
<li><a href="http://net.tutsplus.com/tutorials/php/everything-you-need-to-get-started-with-mysql/">http://net.tutsplus.com/tutorials/php/everything-you-need-to-get-started-with-mysql/</a></li>
<li><a href="http://net.tutsplus.com/tutorials/php/asynchronous-comments-with-jquery-and-json/">http://net.tutsplus.com/tutorials/php/asynchronous-comments-with-jquery-and-json/</a></li>
<li><a href="http://net.tutsplus.com/tutorials/php/oop-in-php/">http://net.tutsplus.com/tutorials/php/oop-in-php/</a></li>
<li><a href="http://net.tutsplus.com/tutorials/php/how-to-setup-a-dedicated-web-server-for-free/">http://net.tutsplus.com/tutorials/php/how-to-setup-a-dedicated-web-server-for-free/</a></li>
<li><a href="http://net.tutsplus.com/tutorials/php/real-world-oop-with-php-and-mysql/">http://net.tutsplus.com/tutorials/php/real-world-oop-with-php-and-mysql/</a></li>
<li><a href="http://net.tutsplus.com/tutorials/php/10-principles-of-the-php-masters/">http://net.tutsplus.com/tutorials/php/10-principles-of-the-php-masters/</a></li>
<li><a href="http://net.tutsplus.com/php/creating-a-php5-framework-part-1/">http://net.tutsplus.com/php/creating-a-php5-framework-part-1/</a></li>
<li><a href="http://net.tutsplus.com/tutorials/php/create-a-php5-framework-part-2/">http://net.tutsplus.com/tutorials/php/create-a-php5-framework-part-2/</a></li>
<li><a href="http://net.tutsplus.com/tutorials/php/create-a-php5-framework-part-3/">http://net.tutsplus.com/tutorials/php/create-a-php5-framework-part-3/</a></li>
<li><a href="http://devzone.zend.com/article/2772">http://devzone.zend.com/article/2772</a></li>
<li><a href="http://sebastian-bergmann.de/talks/2005-05-04-PHPUnit.pdf">http://sebastian-bergmann.de/talks/2005-05-04-PHPUnit.pdf</a></li>
<li><a href="http://framework.zend.com/docs/quickstart/create-your-project">http://framework.zend.com/docs/quickstart/create-your-project</a></li>
<li><a href="http://www.alexatnet.com/node/12">http://www.alexatnet.com/node/12</a></li>
</ol>
<h2>IE BUGS</h2>
<ol>
<li><a href="http://net.tutsplus.com/tutorials/html-css-techniques/9-most-common-ie-bugs-and-how-to-fix-them/?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%253A+nettuts+%2528NETTUTS%2529&amp;utm_content=Google+Reader">http://net.tutsplus.com/tutorials/html-css-techniques/9-most-common-ie-bugs-and-how-to-fix-them/?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%253A+nettuts+%2528NETTUTS%2529&amp;utm_content=Google+Reader</a></li>
</ol>
<h2>JavaScript &amp; jQuery</h2>
<ol>
<li><a href="http://abeautifulsite.net/2009/05/jquery-live-click-binds-both-the-left-and-right-mouse-buttons/">http://abeautifulsite.net/2009/05/jquery-live-click-binds-both-the-left-and-right-mouse-buttons/</a></li>
<li><a href="http://designshack.co.uk/articles/javascript/20-simple-jquery-tricks">http://designshack.co.uk/articles/javascript/20-simple-jquery-tricks</a></li>
<li><a href="http://sixrevisions.com/javascript/10-awesome-techniques-and-examples-of-animation-with-jquery/">http://sixrevisions.com/javascript/10-awesome-techniques-and-examples-of-animation-with-jquery/</a></li>
<li><a href="http://designm.ag/tutorials/image-rotator-css-jquery/">http://designm.ag/tutorials/image-rotator-css-jquery/</a></li>
<li><a href="http://en.support.wordpress.com/affiliate-links/">http://blog.themeforest.net/tutorials/7-things-i-wish-i-had-known-about-jquery/</a></li>
<li><a href="http://blog.perplexedlabs.com/2009/05/04/php-jquery-ajax-javascript-long-polling/">http://blog.perplexedlabs.com/2009/05/04/php-jquery-ajax-javascript-long-polling/</a></li>
<li><a href="http://blog.perplexedlabs.com/2008/11/07/real-time-ajax-javascript-progress-bar/">http://blog.perplexedlabs.com/2008/11/07/real-time-ajax-javascript-progress-bar/</a></li>
<li><a href="http://net.tutsplus.com/javascript-ajax/creating-a-dynamic-poll-with-jquery-and-php/">http://net.tutsplus.com/javascript-ajax/creating-a-dynamic-poll-with-jquery-and-php/</a></li>
<li><a href="http://stackoverflow.com/questions/333664/simple-long-polling-example-code">http://stackoverflow.com/questions/333664/simple-long-polling-example-code</a></li>
<li><a href="http://screenr.com/SNH">http://screenr.com/SNH</a></li>
</ol>
<h2>jQuery Plugins</h2>
<ol>
<li><a href="http://layout.jquery-dev.net/index.html">http://layout.jquery-dev.net/index.html</a></li>
<li><a href="http://www.javascripttoolbox.com/lib/contextmenu/">http://www.javascripttoolbox.com/lib/contextmenu/</a></li>
<li><a href="http://www.uploadify.com/">http://www.uploadify.com/</a></li>
<li><a href="http://abeautifulsite.net/2008/09/jquery-context-menu-plugin/">http://abeautifulsite.net/2008/09/jquery-context-menu-plugin/</a></li>
<li><a href="http://www.devbridge.com/projects/autocomplete/jquery/">http://www.devbridge.com/projects/autocomplete/jquery/</a></li>
<li><a href="http://blog.parkerfox.co.uk/2009/11/12/css-in-your-face-only-ie-need-to-apply/">http://blog.parkerfox.co.uk/2009/11/12/css-in-your-face-only-ie-need-to-apply/</a></li>
<li><a href="http://benalman.com/code/projects/jquery-bbq/docs/files/jquery-ba-bbq-js.html">http://benalman.com/code/projects/jquery-bbq/docs/files/jquery-ba-bbq-js.html</a></li>
<li><a href="http://flowplayer.org/tools/index.html">http://flowplayer.org/tools/index.html</a></li>
<li><a href="http://www.filamentgroup.com/lab/jquery_ipod_style_and_flyout_menus/">http://www.filamentgroup.com/lab/jquery_ipod_style_and_flyout_menus/</a></li>
<li><a href="http://webdesignledger.com/resources/14-jquery-plugins-for-enhanced-content-viewing">http://webdesignledger.com/resources/14-jquery-plugins-for-enhanced-content-viewing</a></li>
</ol>
<h2>General</h2>
<ol>
<li><a href="http://abeautifulsite.net/2007/04/gif-jpeg-or-png-using-images-on-the-web/">http://abeautifulsite.net/2007/04/gif-jpeg-or-png-using-images-on-the-web/</a></li>
<li><a href="http://designshack.co.uk/articles/inspiration/25-awesome-tools-for-choosing-a-website-color-scheme">http://designshack.co.uk/articles/inspiration/25-awesome-tools-for-choosing-a-website-color-scheme</a></li>
<li><a href="http://css-tricks.com/">http://css-tricks.com/</a></li>
<li><a href="http://afterthedeadline.com/">http://afterthedeadline.com/</a></li>
<li><a href="http://net.tutsplus.com/tutorials/other/easy-version-control-with-git/">http://net.tutsplus.com/tutorials/other/easy-version-control-with-git/</a></li>
<li><a href="https://browserlab.adobe.com/index.html">https://browserlab.adobe.com/index.html</a></li>
<li><a href="http://www.browsera.com/">http://www.browsera.com/</a></li>
</ol>
<h2>CSS</h2>
<ol>
<li><a href="http://en.support.wordpress.com/affiliate-links/">http://blog.themeforest.net/tutorials/vertical-centering-with-css/</a></li>
<li><a href="http://www.deepbluesky.com/blog/-/browser-support-for-css3-and-html5_72/">http://www.deepbluesky.com/blog/-/browser-support-for-css3-and-html5_72/</a></li>
<li><a href="http://en.support.wordpress.com/affiliate-links/">http://blog.themeforest.net/tutorials/how-to-achieve-cross-browser-font-face-support/</a></li>
<li><a href="http://ecsstender.org/">http://ecsstender.org/</a></li>
<li><a href="http://www.filamentgroup.com/examples/customInput/">http://www.filamentgroup.com/examples/customInput/</a></li>
<li><a href="http://www.smashingmagazine.com/2009/10/19/the-mystery-of-css-float-property/">http://www.smashingmagazine.com/2009/10/19/the-mystery-of-css-float-property/</a></li>
<li><a href="http://woorkup.com/2009/10/18/5-rules-to-write-more-readable-css-files/">http://woorkup.com/2009/10/18/5-rules-to-write-more-readable-css-files/</a></li>
<li><a href="http://www.virtuosimedia.com/tutorials/ultimate-ie6-cheatsheet-how-to-fix-25-internet-explorer-6-bugs#PNG-Alpha-Transparency">http://www.virtuosimedia.com/tutorials/ultimate-ie6-cheatsheet-how-to-fix-25-internet-explorer-6-bugs#PNG-Alpha-Transparency</a></li>
<li><a href="http://xcss.antpaw.org/">http://xcss.antpaw.org/</a></li>
<li><a href="http://css.flepstudio.org/en/css-tutorials/centered-vertical-horizontal-align.html">http://css.flepstudio.org/en/css-tutorials/centered-vertical-horizontal-align.html</a></li>
</ol>
<h2>Version Control</h2>
<ol>
<li><a href="http://net.tutsplus.com/tutorials/other/easy-version-control-with-git/">http://net.tutsplus.com/tutorials/other/easy-version-control-with-git/</a></li>
<li><a href="http://carsonified.com/blog/features/design/subversion-for-designers/">http://carsonified.com/blog/features/design/subversion-for-designers/</a></li>
<li><a href="http://media.smashingmagazine.com/pdfs/sm-book-chapter1.pdf">http://media.smashingmagazine.com/pdfs/sm-book-chapter1.pdf</a></li>
</ol>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/davidwoodfield.wordpress.com/143/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/davidwoodfield.wordpress.com/143/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/davidwoodfield.wordpress.com/143/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/davidwoodfield.wordpress.com/143/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/davidwoodfield.wordpress.com/143/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/davidwoodfield.wordpress.com/143/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/davidwoodfield.wordpress.com/143/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/davidwoodfield.wordpress.com/143/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/davidwoodfield.wordpress.com/143/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/davidwoodfield.wordpress.com/143/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/davidwoodfield.wordpress.com/143/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/davidwoodfield.wordpress.com/143/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/davidwoodfield.wordpress.com/143/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/davidwoodfield.wordpress.com/143/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=davidwoodfield.wordpress.com&amp;blog=7014869&amp;post=143&amp;subd=davidwoodfield&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://davidwoodfield.wordpress.com/2009/11/24/resources-for-php-webmail/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/506aa85dd96f94d3ef35ec6251d20324?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">davidwoodfield</media:title>
		</media:content>
	</item>
		<item>
		<title>Software Methodologies</title>
		<link>http://davidwoodfield.wordpress.com/2009/11/17/software-methodologies/</link>
		<comments>http://davidwoodfield.wordpress.com/2009/11/17/software-methodologies/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 00:22:20 +0000</pubDate>
		<dc:creator>davidwoodfield</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://davidwoodfield.wordpress.com/?p=101</guid>
		<description><![CDATA[Methodologies In this section I will list the properties of system development and briefly explain the system development life cycle. I will introduce several different methodologies and illustrate which methodology I have chosen and why. System development projects have similar properties broken down into stages, these stages are normally. Decide that a new system is [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=davidwoodfield.wordpress.com&amp;blog=7014869&amp;post=101&amp;subd=davidwoodfield&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h3>Methodologies</h3>
<p>In this section I will list the properties of system development and briefly explain the system development life cycle. I will introduce several different methodologies and illustrate which methodology I have chosen and why.</p>
<p>System development projects have similar properties broken down into stages, these stages are normally.</p>
<ol>
<li>Decide that a new system is needed</li>
<li>Find out what the new system should do</li>
<li>Decide how the new system will function and look</li>
<li>Build and test the system</li>
<li>Implement the system</li>
<li>Use and maintain the system</li>
</ol>
<blockquote><p>(Weaver, P, 2004)</p></blockquote>
<p>Software projects usually adopt a methodology to carry out these steps, there are various methodologies that approach these steps differently. Software methodologies are also know as life cycle models.</p>
<blockquote><p>Life cycle models provide a framework for managing and structuring a project, while approaches and methods provide the activities, tasks and deliverables used within the framework. (Weaver, P, 2004)</p></blockquote>
<h4>Waterfall</h4>
<p>The waterfall model is the simplest software development methodology, work packages are broken down into stages. In a strict interpretation of the waterfall model, each stage is subject to a quality assurance check and only if the stage passes this check is it signed off as being complete. The next stage is started once the previous stage has finished, this insures that each new stage starts from an agreed baseline established at the end of the preceding stage.</p>
<blockquote><p>It is well suited to formal project planning and control, and its insistence of QA reviews and sign-offs makes it relatively easy to build into contractual projects. (Weaver, P, 2004)</p></blockquote>
<p>The stages of the waterfall model are:</p>
<ul>
<li>System requirements</li>
<li>Software requirements</li>
<li>Analysis</li>
<li>Program design</li>
<li>Coding</li>
<li>Testing</li>
<li>Operations</li>
</ul>
<p>The implementation steps listed above are shown below in the diagram. From the diagram you can see that none of the stages overlap, the diagram illustrates the time structure of a project using the waterfall model. The next stage is not started until the previous stage has been completed.</p>
<p><a href="http://davidwoodfield.files.wordpress.com/2009/11/waterfal-model1.jpg"><img class="alignnone size-full wp-image-117" title="Waterfal model" src="http://davidwoodfield.files.wordpress.com/2009/11/waterfal-model1.jpg?w=544" alt=""   /></a></p>
<p>(Royce, W. W, 1970)</p>
<p>The waterfall model is used extensively in industry, particularly on large projects. It is suited to projects where requirements are well defined and are not likely to change. Its ready made structure makes it easy to build a simple plan and the sign off process at the end of each stage is a neat indicator to how well the project is going.</p>
<blockquote><p>The first reservation, and the greatest disadvantage of the waterfall model, is that the product of the development process, &#8216;the target system&#8217;, is not available for testing or trial by its intended users until the end of the project. (Redmill, F, 1997)</p></blockquote>
<p>The waterfall model delivers a system at the end of development, a disadvantage of this approach is that users will not be able to test the system until final deployment. If the length of the project is large user requirements may change. This is a big problem as the waterfall model does not allow backtracking and re-visiting of steps. The longer the time period and the larger the project, the greater the chance of user requirements changing and the greater the chance that the project will fail.</p>
<p>The waterfall model does have fatal disadvantages, however it continues to still be used. Mainly because it represents a natural order of events, simply put: design, build, test and deliver. This natural process is used in many projects, even if not the main methodology. Methodologies split into sub-sections or iterations may apply the waterfall model to each mini &#8211; project or iteration. Although the waterfall model is the oldest, simplest model it continues to survive.</p>
<h4>Spiral Model</h4>
<blockquote><p>Where requirements are not well known in advance the spiral model may provide an alternative to the waterfall method. (Weaver, P, 2004)</p></blockquote>
<p>The spiral model is a more dynamic method able to adapt to changing requirements. Initially a lot of work is spent producing requirements meaning more time can be spent developing user interfaces. The model uses an iterative approach to develop the system. In the initial cycle high level requirements are drawn up and an initial prototype is built. This prototype is reviewed, requirements are clarified and the result is an updated requirements specification. The cycle is repeated and each iteration brings the prototype closer and closer to the final product.</p>
<p>In the spiral model the risks are assessed at each step and the path or best direction to proceed is chosen, which best overcomes the assessed risks. If a risk is deemed to be insolvable or it is clear that a project cannot continue, the project will be cancelled. This identification of a fatal risk is a factor that the waterfall model does not cater for as in the waterfall model this fatal risk would only be discovered at the end of a project. The spiral model checks for risks at each iteration, therefore if a fatal risk was found the organisation could save money by cancelling the project rather than continuing and wasting money.</p>
<p>In a typical cycle of the spiral model, the spiral begins with the identification of the objectives, a plan B or an alternative means of implementation and the risks imposed of the application.</p>
<p>After the risk analysis a prototype is developed for the initial requirements. This step also involves evaluating the alternatives relative to objectives and risks. This process should identify areas of risk significant to the project.</p>
<p>If risks are identified the next step will involve developing a strategy for resolving the sources of risk. Actions at this stage could be, prototyping, simulation and other risk resolution techniques.</p>
<p>In the next step the nature of the product is assessed, this could be future requirements or operations and a detailed design of the product.</p>
<p>The final step is to produce a plan for the next cycle. This plan depends on what stage of development you are at, but it could be a requirements plan, a development plan or possibly an integration and test plan.</p>
<p>The diagram below illustrates the concept of the spiral model.</p>
<p><a href="http://davidwoodfield.files.wordpress.com/2009/11/spiral-model.jpg"><img class="alignnone size-full wp-image-119" title="Spiral Model" src="http://davidwoodfield.files.wordpress.com/2009/11/spiral-model.jpg?w=544" alt=""   /></a></p>
<p>(Boehm, B, W, 1988)</p>
<blockquote><p>The primary advantage of the spiral model is that its range of options accommodates the good features of existing software process models, while its risk-driven approach avoids many of their difficulties. (Boehm, B, W, 1988)</p></blockquote>
<p>As mentioned earlier the main advantage to the spiral model is that it handles changes in user requirements and is a much more flexible and dynamic model than the waterfall model.</p>
<p>One problem with the spiral model is that is doesn&#8217;t provide a clear structure of development from the offset. It is this difficulty that may prevent contracts being accepted because the deliverables from a spiral model project are not well specified in advance.</p>
<p>The spiral model also assumes the developers have a high level of risk assessment. The spiral model is practically built around risk assessment and therefore if the developers are not highly competent they will not be able to identify major risks and therefore a project that appears to be running smoothly may well be heading for disaster because of poor risk analysis.</p>
<h4>Incremental Model</h4>
<blockquote><p>Incremental development is a staging and scheduling strategy in which various parts of the system are developed at different times or rates and integrated as they are completed. (Cockburn, A, 2008)</p></blockquote>
<p>In the incremental model a system is divided into phases, each phase is run as a mini project. This model often results in a number of releases over a period of time. Although each phase will be different they will all be built on a common set of requirements. As later phases are delivered they will inevitably cause some rework in the software delivered by earlier phases.</p>
<blockquote><p>Rather than delivering your software to your client towards the end of your project in &#8216;big bang&#8217; as the conventional methods do, it might be better to deliver the system to them as a series of intermediate working sub-systems over a period of time. (Dawson, C. W, 2009)</p></blockquote>
<p>Each increment is a mini project in itself and therefore can make use of the waterfall or spiral model in each increment. The incremental model works  best when system requirements are clear for the entire system and are relatively stable. If the requirements are unclear then each new increment could lead to major rework of earlier increments.</p>
<p>To demonstrate the incremental approach take a look at the diagram below. The diagram shows a large cube made up of smaller cubes. The smaller cubes are the different increments. At stage 1 of development a few increments have been completed, each further stage adds more increments until the system is completed.</p>
<p><span style="font-family:Verdana, Helvetica, Arial, sans-serif;line-height:normal;font-size:8px;color:#330066;"> </span></p>
<h2><img src="http://www.stsc.hill.af.mil/crosstalk/2008/05/0805Cockburn_Fig2.jpg" border="0" alt="Figure 2:  Incremental Development, Stage1 " width="270" height="263" /><br />
<span style="color:#888888;"><span style="color:#000000;font-family:Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif;font-weight:normal;font-size:13px;line-height:19px;"><em>Incremental Development, Stage 1</em></span></span></h2>
<p style="margin-top:0;color:#330066;font-family:Verdana, Helvetica, Arial, sans-serif;font-size:11px;">
<p><img src="http://www.stsc.hill.af.mil/crosstalk/2008/05/0805Cockburn_Fig3.jpg" border="0" alt="Figure 3:  Incremental Development, Stage 2 " width="270" height="262" /><br />
<span style="color:#000000;font-family:Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif;font-size:13px;line-height:19px;"><em>Incremental Development, Stage 2</em></span></p>
<p style="margin-top:0;color:#330066;font-family:Verdana, Helvetica, Arial, sans-serif;font-size:11px;">
<p><img src="http://www.stsc.hill.af.mil/crosstalk/2008/05/0805Cockburn_Fig4.jpg" border="0" alt="Figure 4:  Incremental Development, Stage 3 " width="270" height="250" /><br />
<span class="ctCaption" style="font-style:italic;"><span style="color:#000000;font-family:Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif;font-size:13px;line-height:19px;"><em>Incremental Development, Stage 3</em></span></span></p>
<p style="margin-top:0;color:#330066;font-family:Verdana, Helvetica, Arial, sans-serif;font-size:11px;"><span style="font-family:Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif;color:#000000;"><span style="line-height:19px;font-size:small;"><span style="font-family:Verdana, Helvetica, Arial, sans-serif;color:#330066;font-size:small;"><span style="line-height:normal;"><span style="color:#000000;font-family:Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif;font-size:13px;line-height:19px;">(Cockburn, A, 2008)</span></span></span></span></span></p>
<p style="margin-top:0;color:#330066;font-family:Verdana, Helvetica, Arial, sans-serif;font-size:11px;">
<p style="margin-top:0;color:#330066;font-family:Verdana, Helvetica, Arial, sans-serif;font-size:11px;"><span style="font-family:Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif;color:#000000;"><span style="line-height:19px;font-size:small;"><span style="font-size:13px;">Some advantages to using the incremental model are that the user gets something early so that they can get an idea of the system&#8217;s capabilities. The user can also provide feedback after each increment if they find that something isn&#8217;t right. Also, by delivering something early it can give the developer a sense of achievement and the user a clear understanding that progress is being made on the project. Another advantage is that the user does not need to be trained on the entire system in one go. They can familiarise themselves which each increment and then feel comfortable once all the pieces are installed. (Dawson, C. W, 2009)</span></span></span></p>
<p style="margin-top:0;color:#330066;font-family:Verdana, Helvetica, Arial, sans-serif;font-size:11px;"><span style="font-family:Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif;color:#000000;"><span style="line-height:19px;font-size:small;"><span style="font-size:13px;">A difficulty with using the incremental model is that it may be difficult to break the system down into chunks that are actually worth delivering to the user. There is no point delivering small chunks that provide little or no improvement to the system. Another scenario that might occur is that the user is happy at stage 2 and doesn&#8217;t need or want to develop any further, they don&#8217;t want to pay the extra costs to develop the system further so therefore cancel the remaining parts of system.</span></span></span></p>
<p style="margin-top:0;color:#330066;font-family:Verdana, Helvetica, Arial, sans-serif;font-size:11px;"><span style="font-family:Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif;color:#000000;"><span style="line-height:19px;font-size:small;"><span style="font-size:13px;"><br />
</span></span></span></p>
<h4>Agile methods</h4>
<p>The term agile methods was adopted in 2001, it refers to approaches to software development that reduce risk by delivering software systems in short bursts or releases. The agile method aim is to release a working system at the end of each cycle, although each cycle might not produce a working system, the main aim is to release the system.</p>
<blockquote><p>Agile methods are well suited to projects that have unclear or rapidly changing requirements. (Dawson, C. W, 2009)</p></blockquote>
<p>Agile methods are based on a common set of  4 values and 12 principles.</p>
<p>The 4 values are:</p>
<ol>
<li>Individuals and interactions &#8211; over &#8211; processes and tools</li>
<li>Working software &#8211; over &#8211; comprehensive documentation</li>
<li>Customer collaboration &#8211; over &#8211; contract negotiation</li>
<li>Responding to change &#8211; over &#8211; following a plan</li>
</ol>
<p>The 12 principles of agile software development are:</p>
<ol>
<li>The highest priority is to satisfy the customer through early and continuous delivery of valuable software.</li>
<li>Welcome changing requirements, even late in development. Agile processes harness change for the customer&#8217;s competitive advantage.</li>
<li>Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.</li>
<li>Business people and developers must work together daily throughout the project.</li>
<li>Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.</li>
<li>The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.</li>
<li>Working software is the primary measure of progress.</li>
<li>Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.</li>
<li>Continuous attention to technical excellence and good design enhances agility.</li>
<li>Simplicity, the art of maximizing the amount of work not done is essential.</li>
<li>The best architectures, requirements, and designs emerge from self-organizing teams.</li>
<li>At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behaviour accordingly.</li>
</ol>
<p>(Manifesto for Agile Software Development, 2001)</p>
<p>The most popular Agile methods are:</p>
<ul>
<li>Scrum</li>
<li>Dynamic Systems Development Method (DSDM)</li>
<li>Crystal Methods</li>
<li>Feature Driven Development</li>
<li>Lean Development</li>
<li>Extreme Programming (XP)</li>
<li>Adaptive Software Development</li>
</ul>
<p>(Hayes, S., Andrews, M)</p>
<p>The agile development life cycle is demonstrated below</p>
<p><a href="http://davidwoodfield.files.wordpress.com/2009/11/agileposter.png"><img class="alignnone size-full wp-image-127" title="agileposter" src="http://davidwoodfield.files.wordpress.com/2009/11/agileposter.png?w=544" alt=""   /></a></p>
<p>(Version One, 2009)</p>
<p>From the diagram you can see that agile development is like a continuous evolving waterfall model. It encapsulates the properties of the waterfall model to deliver them on a daily basis. It produces solutions in iterations, with the ability to change at its core. Agile development prides itself of using the best bits from all the other successful methodologies.</p>
<p>Agile development is not invincible and still suffers from any of the problems that other methodologies will encounter. Agile methods claim that the model will usually discover the problems earlier than traditional models and therefore save time and money.</p>
<h4>Extreme Programming (XP)</h4>
<blockquote>
<div id="_mcePaste">Extreme Programming turns the conventional software process sideways. Rather than planning, analyzing, and designing for the far-flung future, XP programmers do all of these activities—a little at a time—throughout development. (Beck, K, 1999)</div>
</blockquote>
<p>Extreme programming is one of the most popular agile software development approachs. It was introduced in an attempt to improve the way is which software is developed.</p>
<blockquote><p>The approach actively encourages the users to be involved with the development process and anticipates the positive influence they will have on requirements capture. (Dawson, C. W, 2009)</p>
<p>Customers drive the content of the system. The whole team drives the development process. XP lets you adapt by making frequent, small corrections; moving towards your goal with deployed software at short intervals. You don&#8217;t wait a long time to find out if you were going the wrong way (Beck, K, 2004)</p></blockquote>
<p>XP embraces five values to guide development:</p>
<ul>
<li>Communication</li>
<li>Simplicity</li>
<li>Feedback</li>
<li>Courage</li>
<li>Respect</li>
</ul>
<p>XP uses principles to bridge the gap between values and practices. The priciples of XP are a set of domain-specific guidelines for finding practices in harmony with XP&#8217;s values. The principle are:</p>
<p>Humanity</p>
<p>This principle goes on the basis that people develop software and software development is done by people therefore should meet human demands. It ask what do people need to be good developers. One factor of the humanity principle is to limit the working hours to allow for other human needs.</p>
<p>Economics</p>
<p>This principle ensures that the project has buisness value, meet business goals, and serves business needs. This practice is intended to enhance the option value of both the software and the developers while keeping in mind the time value of money by not investing in speculative flexibility.</p>
<p>Mutual Benefit</p>
<p>This states that every activity should benefit all concerned. It is the most important XP principle yet the most difficult to adhere to. Often the question is asked, why should I write documentation for some unknown person to use in the future? XP attempts to solve a communication-with-the-future problem in mutually beneficial ways:</p>
<ul>
<li>The developer writes automated tests that help them design and implement better today and they leave the tests for future programmers to use as well.</li>
<li>The developer carefully refactors to remove accidental complexity, giving them both satifaction and fewer defects and making the code easier to understand for those who it encounter it later.</li>
<li>Names are chosen from a coherent and explicit set of metaphors which speeds up the development and makes the code clearer to new programmers.</li>
</ul>
<p>Self-similarity</p>
<p>This is about taking a structure from one solution and seeing if it will fit in another solution. The idea for XP is that a developer writes test expressing user stories and then implements the story and makes sure the test works. Having the system-level tests before you begin implementation simplifies design, reduces stress, and improves feedback.</p>
<p>Improvement</p>
<p>As the name sugests, this is about improving on what you have done already. There is no perfect process or solution, however one can perfect your process, your design and your stories. The point of XP is excellence in software development through improvement.</p>
<p>Diversity</p>
<p>Teams where everyone is alike are not effective. Teams require a variety of skills and need mulitple ways of thinking about problems. Teams need diversity and variation to succed.</p>
<p>Reflection</p>
<p>Good teams don&#8217;t just do their work, they think about how they are working and why they are working. The cycles in XP development include time for reflection. Reflection, however shouldn&#8217;t be taken too far and people shouldn&#8217;t be so busy thinking about development that they don&#8217;t actually have time to develop software. Reflection comes after action and learning is reflecting on actions.</p>
<p>Flow</p>
<p>Flow is delivering a steady flow of valuable software by engaging in all the activities of development simultaneously. The practices of XP are biased towards a continuous flow of activities rather than discrete phases.</p>
<p>Opportunity</p>
<p>XP treates problems as opportunities for change. It doesn&#8217;t completely disregard problems in software development it simply states that problems need to turn into opportunities for learning and improvement, not just survival. An example is, if I one person programming alone makes too many mistakes utilise the pair programming technique.</p>
<p>Redundancy</p>
<p>The critical, difficult problems in software development should be solved several different ways. XP claims the cost of the redundancy is more than paid for by the savings from not having the disaster. Having a testing phase after development is complete in XP should be redundant however it should only be eliminated when it is proven to be rundunant after several deployments in a row.</p>
<p>Failure</p>
<p>If you&#8217;re not succeding in XP, then fail. If the developer doesn&#8217;t know which of three ways to implement a story, he/she should try all three. Even if they all fail, something of value would of been learnt.</p>
<p>Quality</p>
<p>Each increase in quality leads to improvements in other desirable project properties, like productivity and effectiveness. Quality isn&#8217;t a purely economic factor, people need to do work they are proud of.</p>
<p>Baby Steps</p>
<p>Baby steps are where iterations are produced is small steps rather than having big changes in big steps. Baby steps acknowledge that the overhead of small steps is much less than when a team wastefully recoils from aborted big changes.</p>
<p>Accepted Responsibility</p>
<p>The practices reflect accepted responsibility by, for example suggesting that whoever signs up to do work also estimates it. Similarly, the person resposible for implementing a story is ulitimately responsible for the design, implementation and testing of the story.</p>
<p>(Beck, K, 2004)</p>
<p>Practices are the things that XP teams do day-to-day. XP states that practices are situation dependent. The practices are split into two categories, Primary and Corollary practices. The primary practices can be used independent of what else you are doing and give immediate improvement. Whereas the corollary practices are likely to be difficult without first mastering the primary practices. (Marchesi, M) groups the practices into four categories:</p>
<ul>
<li>Requirement Analysis and Planning</li>
<li>Team and Human Factors</li>
<li>Design</li>
<li>Software Coding and Release</li>
</ul>
<p>Primary Practices</p>
<p>Requirement Analysis and Planning</p>
<ul>
<li>Stories: the functionalities of the system are described using stories, short descriptions of customer-visible functinalities. Stories also drive system development</li>
<li>Weekly Cycle: software development is performed a week at a time. At the beginning of every week there is a meeting where the stories to develop in the week are chosen by the customer.</li>
<li>Quarterly Cycle: on a larger time scale, development is planned a quarter at a time. This is made up of reflections on the team, the project and progress.</li>
<li>Slack: avoid to make promises you cannot fulfill. In any plan, include some tasks that can be dropped if you get behind. In this way, you will keep a security margin, to be used in the case of un-forecasted problems.</li>
</ul>
<p>Team and Human Factors</p>
<ul>
<li>Sit Together: development teams should work in an open space, able to host the whole team, to maximise communication.</li>
<li>Whole team: the team should be composed of members with all the skills and the perspectives needed for the project to succeed. They must have a strong sense of belonging, and must help each other.</li>
<li>Informative Workspace: the workspace should be provided with informative posters and other stuff, giving information on the project status and on the tasks to be performed.</li>
<li>Energized Work: developers must be refreshed, so that they can focus on their job and be productive. Consequently, limit overtime working so everyone can spend time for his or her own private life.</li>
<li>Pair Programming: the code is always written by two programmers at one machine.</li>
</ul>
<p>Design</p>
<ul>
<li>Incremental Design: XP opposes producing a complete design up front. The development team produces the code as soon as possible in order to obtain feedback and improve the system continuously. Design is indispensable to obtain good code. The question is when to design. XP suggests to do it incrementally during coding. The way helpful to obtain this is to eliminate duplications in the code.</li>
<li>Test-First Programming: before updating and adding code, it is necessary to write tests in order to verify the code. This solves four problems:
<ul>
<li>Cowboy coding: It is easy to get carried away to program quickly and put everything in mind in the code. If we write tests and you have to run them, the tests help us focus on the problem at hand, and can prove that our design in correct.</li>
<li>Coupling and cohesion: if it isn&#8217;t easy to write a test, this means that you have a problem of design, not of testing or coding. If your code is loosely coupled and highly cohesive, you can test it easily,</li>
<li>Trust: If you write code that works and you document it with automated tests, your teammates will trust you.</li>
<li>Rhythm: it is easy to get list and wander for hours when you are coding. If you accustom yourself to the rhythm: test, code, refactor, test, code, refactor, it will not happen.</li>
</ul>
</li>
</ul>
<p>Software Coding and Releasing</p>
<ul>
<li>Ten-Minute Build: System should be built and all the tests should be finished in ten minutes, in order to execute it often and obtain feedback.</li>
<li>Continuous Integration: Developers should be integrating changes every two hours in order to ease integration headaches.</li>
</ul>
<p>Corollary Practices</p>
<p>Requirements Analysis and Planning</p>
<ul>
<li>Real Customer Involvement: people whose lives are affected by your system must become a part of the team and they can contribute to quarterly and weekly planning.</li>
<li>Incremental Deployment: when replacing a legacy system, start to replace some functionalites right away and gradually replace all of the system. Avoid the approach of &#8220;All or nothing&#8221;</li>
<li>Negotiated Scope Contract: contracts for software development would have fixed time, costs, and quality, but the precise scope of the system would have to be negotiated during the same realisation. Eventually it is better to have a sequence of short contracts in order to reduce risks.</li>
<li>Pay Per Use: a customer usually pays for each release of the software. This creates a conflict between the supplier and the customer, who would want fewer releases each containing a lot of functionality. Connecting money flow directly to software development provides accurate, timely information with which to drive improvement.</li>
</ul>
<p>Team and Human Factors</p>
<ul>
<li>Team Continuity: the development teams must remain the same in several projects. The relationship they share in a project are precious and they do not have to be dispersed.</li>
<li>Shrinking Teams: as the team becomes more capable and productive, keep its load constant but gradually reduce its size.</li>
</ul>
<p>Design</p>
<ul>
<li>Root-Cause Analysis: every time you find a defect, eliminate it and its causes. In this way, not only will you eliminate the defect, but also you will prevent making the same mistake again.</li>
</ul>
<p>Software Coding and Releasing</p>
<ul>
<li>Code and Tests: only code and tests are permanent artifacts and they have to be preserved. The other documents can be generated from code and tests.</li>
<li>Shared Code: anyone in the development team must be able to change any part of the system at any time.</li>
<li>Single Code Base: there is only one official version of the system. You can develop a temporary branch, but it doesn&#8217;t live longer than a few hours.</li>
<li>Daily Deployment: every night you must put new software into production. It is risky and costly to have a gap between the version of software released into production and ones you have in your computer.</li>
</ul>
<p>Extreme programming can fail when the programmers take on too much work at one time. This overestimation causes the project to be delayed and could be down to the programmers taking on more than they are cable of. Another hurdle to extreme programming is if the user or customer is cooperative or simply doesn&#8217;t have the time to give their input often enough.</p>
<h3>The methodology I have chosen</h3>
<p>Everything is software changes. The requirements change. The design changes. The business changes. The technology changes. The team changes. The team members change. The problem isn&#8217;t change, because change is going to happen; the problem, rather, is our inability to cope with change. (Beck, K, 2004)</p>
<p>Customers expect software to be soft. Traditional methodologies establish procedures that discourage requirements changes, they resist change. This helps them maintain a predictable schedule, but it does nothing to ensure that the final results meets the customers real, changing needs. (Hayes, S., Andrews, M)</p>
<p>The methodology that I will be adhering to is Agile methods. In particular I will focus on Extreme Programming (XP). Agile practices are not new methods but they certainly cope with new environments and changing conditions. The XP model of, user stories, choosing a user story, writing a test case, implementing the story, testing the story and developing the solution in iterations is an attractive approach that allows for modern techniques and practices, and of course an ever changing environment.</p>
<p>I have worked in a web application environment and it is safe to say, users do not always know what they want. I would receive a requirements document from a business analyst and be asked to implement the solution. After reading the specification, I would have questions that the analyst simply couldn&#8217;t answer without the user. The user would need to be contacted and consulted. The most common scenario would be a user coming to visit me at my desk, call me on the phone or email me asking for changes to the features, the design and even the data model. Projects continually became late and some were even cancelled or just forgotten because they weren&#8217;t desired by the user any more. The traditional method that my company adapted just wasn&#8217;t agile and couldn&#8217;t cope with change.</p>
<p>The traditional approach to developing systems using the waterfall, spiral and incremental approach all require specific documentation, design phases, development phases and strict rules. The spiral model tries to handle change but it simply isn&#8217;t agile enough. Agile methods can adapt to change and concentrate on producing software, which is ultimately what the customer wants.</p>
<p>From my experience the user wants to know:</p>
<ul>
<li>If you can do certain things</li>
<li>When those things will be ready</li>
<li>Can you change this or that</li>
<li>When will this or that be ready</li>
<li>etc</li>
</ul>
<p>Agile methods are perfect for this type of user. Users don&#8217;t want to be bogged down with sheets and sheets of documentation and planning, they simply want a system that does want they want and works. In our modern ever changing lifes there is a demand for having something now. Not tomorrow, not next week, now. Agile methods and XP are based around this attitude and the user is always involved.</p>
<p>Tradtional methodologies usually divide development into three major phases, analysis, design and coding. XP makes the assumption that design and coding need to be intimately interlaced. This is so true, because systems just based on data and storage information may well conform to strict standards but the main and essential part to any web application is the user interface and how the website interacts with the user. If the web application has ten different tabbed sections and a particular user only ever needs the seventh tab, then every time this user logs in, the seventh tab should be displayed. This is an example of the data working with the features or the design and coding intimately interlaced. If in this example I had adopted the waterfall model and the customer suddenly decided mid-project that they needed this feature the answer would have to be no, sorry it wasn&#8217;t in the specification and trying to make changes could leave the project in a mess and most probably result in it missing its finish deadline.</p>
<p>I will be using Agile methods, predominately Extreme Programming to develop my application.</p>
<h4>References</h4>
<p>Dawson, C. W. (2009) <span style="text-decoration:underline;">Projects in Computing and Information Systems (2nd Ed).</span> Dorchester, Dorset: Pearson Education Limited</p>
<p>Weaver, P. (2004) <span style="text-decoration:underline;">SUCCESS IN YOUR PROJECT A GUIDE TO STUDENT SYSTEM DEVELOPMENT PROJECTS.</span> Glasgow: Pearson Education Limited</p>
<p>Redmill, F.  (1997) <span style="text-decoration:underline;">Software Projects Evolutionary vs. Big-Bang Delivery.</span> Norton, Somerset: John Wiley &amp; Sons Ltd</p>
<p>Royce, W. W.  (1970) <span style="text-decoration:underline;">MANAGING THE DEVELOPMENT OF LARGE SOFTWARE SYSTEMS.</span> [on-line] http://www.cs.umd.edu/class/spring2003/cmsc838p/Process/<strong>waterfall</strong>.pdf, date accessed: 17 November 2009.</p>
<p>Boehm, B, W. (1988) <span style="text-decoration:underline;">A Spiral Model of System Development and Enhancement.</span> [on-line] <a href="http://www.cs.umd.edu/class/spring2003/cmsc838p/Process/spiral.pdf">http://www.cs.umd.edu/class/spring2003/cmsc838p/Process/spiral.pdf</a>, date accessed: 17 November 2009.</p>
<p>Beck, K.  (1999) <span style="text-decoration:underline;">Embracing Change with Extreme Programming.</span> [on-line] <a href="http://www.cs.umd.edu/class/spring2003/cmsc838p/Process/extreme.pdf">http://www.cs.umd.edu/class/spring2003/cmsc838p/Process/extreme.pdf</a>, date accessed: 17 November 2009</p>
<p>Cockburn, A. (2008) <span style="text-decoration:underline;">Using Both Incremental and Iterative Development.</span> [on-line]  <a href="http://www.stsc.hill.af.mil/crosstalk/2008/05/0805Cockburn.html">http://www.stsc.hill.af.mil/crosstalk/2008/05/0805Cockburn.html</a>, date accessed: 17 November 2009</p>
<p>Manifesto for Agile Software Development. (2001) <span style="text-decoration:underline;">Twelve Principles of Agile Software.</span> [on-line] <a href="http://agilemanifesto.org/principles.html">http://agilemanifesto.org/principles.html</a>, date accessed: 17 November 2009</p>
<p>Version One, (2009) <span style="text-decoration:underline;">Agile Development Poster.</span> [on-line] <a href="http://www.versionone.com/pdf/agileposter.pdf">http://www.versionone.com/pdf/agileposter.pdf</a>, date accessed: 17 November 2009</p>
<p>Beck, K. (2004) <span style="text-decoration:underline;">Extreme Programming Explained: Embrace Change (2nd Ed).</span> Addison-Wesley Professional</p>
<p>Marchesi, M. <span style="text-decoration:underline;">The New XP.</span> [on-line] <a href="http://www.scribd.com/doc/196734/The-New-XP">http://www.scribd.com/doc/196734/The-New-XP</a>, date accessed: 17 November 2009</p>
<p>Hayes, S., Andrews, M. <span style="text-decoration:underline;">An Introduction to Agile Methods.</span> [on-line] <a href="http://www.scribd.com/doc/6736392/Agile-Methods">http://www.scribd.com/doc/6736392/Agile-Methods</a>, date accessed: 17 Novemeber 2009</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/davidwoodfield.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/davidwoodfield.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/davidwoodfield.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/davidwoodfield.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/davidwoodfield.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/davidwoodfield.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/davidwoodfield.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/davidwoodfield.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/davidwoodfield.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/davidwoodfield.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/davidwoodfield.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/davidwoodfield.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/davidwoodfield.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/davidwoodfield.wordpress.com/101/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=davidwoodfield.wordpress.com&amp;blog=7014869&amp;post=101&amp;subd=davidwoodfield&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://davidwoodfield.wordpress.com/2009/11/17/software-methodologies/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/506aa85dd96f94d3ef35ec6251d20324?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">davidwoodfield</media:title>
		</media:content>

		<media:content url="http://davidwoodfield.files.wordpress.com/2009/11/waterfal-model1.jpg" medium="image">
			<media:title type="html">Waterfal model</media:title>
		</media:content>

		<media:content url="http://davidwoodfield.files.wordpress.com/2009/11/spiral-model.jpg" medium="image">
			<media:title type="html">Spiral Model</media:title>
		</media:content>

		<media:content url="http://www.stsc.hill.af.mil/crosstalk/2008/05/0805Cockburn_Fig2.jpg" medium="image">
			<media:title type="html">Figure 2:  Incremental Development, Stage1 </media:title>
		</media:content>

		<media:content url="http://www.stsc.hill.af.mil/crosstalk/2008/05/0805Cockburn_Fig3.jpg" medium="image">
			<media:title type="html">Figure 3:  Incremental Development, Stage 2 </media:title>
		</media:content>

		<media:content url="http://www.stsc.hill.af.mil/crosstalk/2008/05/0805Cockburn_Fig4.jpg" medium="image">
			<media:title type="html">Figure 4:  Incremental Development, Stage 3 </media:title>
		</media:content>

		<media:content url="http://davidwoodfield.files.wordpress.com/2009/11/agileposter.png" medium="image">
			<media:title type="html">agileposter</media:title>
		</media:content>
	</item>
		<item>
		<title>Data Storage</title>
		<link>http://davidwoodfield.wordpress.com/2009/11/17/data-storage/</link>
		<comments>http://davidwoodfield.wordpress.com/2009/11/17/data-storage/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 00:20:18 +0000</pubDate>
		<dc:creator>davidwoodfield</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://davidwoodfield.wordpress.com/?p=98</guid>
		<description><![CDATA[Data Storage Data stored on the Internet is usually either stored in a relational database or stored as plain text XML. In this section I will look at the differences between XML and databases and their advantages and disadvantages. Databases Databases can be categorised into data models that describe the structure of the database. A [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=davidwoodfield.wordpress.com&amp;blog=7014869&amp;post=98&amp;subd=davidwoodfield&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h5>Data Storage</h5>
<p>Data stored on the Internet is usually either stored in a relational database or stored as plain text XML. In this section I will look at the differences between XML and databases and their advantages and disadvantages.</p>
<h6>Databases</h6>
<p>Databases can be categorised into data models that describe the structure of the database. A data model is a collection of tools usually including a type of diagram and specilised vocabulary for describing the structure. A data model a description of the database structure including the data, the relationships within the data and sometimes the sematics or meanings of the data.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/davidwoodfield.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/davidwoodfield.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/davidwoodfield.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/davidwoodfield.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/davidwoodfield.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/davidwoodfield.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/davidwoodfield.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/davidwoodfield.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/davidwoodfield.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/davidwoodfield.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/davidwoodfield.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/davidwoodfield.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/davidwoodfield.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/davidwoodfield.wordpress.com/98/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=davidwoodfield.wordpress.com&amp;blog=7014869&amp;post=98&amp;subd=davidwoodfield&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://davidwoodfield.wordpress.com/2009/11/17/data-storage/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/506aa85dd96f94d3ef35ec6251d20324?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">davidwoodfield</media:title>
		</media:content>
	</item>
		<item>
		<title>Web Application Architecture</title>
		<link>http://davidwoodfield.wordpress.com/2009/11/17/web-application-architecture/</link>
		<comments>http://davidwoodfield.wordpress.com/2009/11/17/web-application-architecture/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 00:18:44 +0000</pubDate>
		<dc:creator>davidwoodfield</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://davidwoodfield.wordpress.com/?p=94</guid>
		<description><![CDATA[Web Application Architecture One model has evolved as the standard practise for web applications, and that is the Model-View-Controller (MVC) pattern. MVC is an architectural pattern, it is a proven, repeatable way to describe the structure of an application. Every book and website I researched preached the use of MVC. The benefit of using the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=davidwoodfield.wordpress.com&amp;blog=7014869&amp;post=94&amp;subd=davidwoodfield&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h2>Web Application Architecture</h2>
<div id="_mcePaste">One model has evolved as the standard practise for web applications, and that is the Model-View-Controller (MVC) pattern. MVC is an architectural pattern, it is a proven, repeatable way to describe the structure of an application. Every book and website I researched preached the use of MVC. The benefit of using the MVC pattern is that it separates the user interface from the business logic, meaning changes to one of these doesn&#8217;t require changes to another.</div>
<h3>Model</h3>
<blockquote>
<div id="_mcePaste">Contains the application data and logic to manage the state of the application. (Sanders, W., Cumaranatunge, C., 2007)</div>
</blockquote>
<div id="_mcePaste">The application logic in the model performs two important tasks. It responds to requests for information and takes action on the requests to change the state of the application and update the view if necessary. Normally the view is a database and the functions and classes that interact with it.</div>
<h3>View</h3>
<blockquote>
<div id="_mcePaste">Presents the user interface and the state of the application onscreen. (Sanders, W., Cumaranatunge, C., 2007)</div>
</blockquote>
<div id="_mcePaste">Users interact with the application via the view. A user will use a web browser to access the view, views can be both inputs and outputs. A typical application will contain multiple views.</div>
<h3>Controller</h3>
<blockquote>
<div id="_mcePaste">Handles user input to change the state of the application. (Sanders, W., Cumaranatunge, C., 2007)</div>
</blockquote>
<div id="_mcePaste">The controller consists of the code that handles communication to the model about actions taken on the user interface elements in the view. This could be a request to the model when a form is clicked or a more contemporary example is when an Ajax request is fired to the server.</div>
<h3>Communication</h3>
<div id="_mcePaste">Each element in the MVC pattern communicates with each other in specific ways. This communication is a series of events that is usually started by a user interacting with the interface of the application. The sequence is as follows.</div>
<div id="_mcePaste">
<ol>
<li>User interacts with an interface element (Submits a form)</li>
<li>The view sends the form details to the controller to decide how to handle it (Sever side class)</li>
<li>The controller changes the model based on how it decides to handle the form submit (SQL manipulation)</li>
<li>The model informs the view that the state of the model has now changed (The SQL query returns true as the action was successful)</li>
<li>The view reads information from the model and updates itself (New page loaded or page refreshed)</li>
</ol>
</div>
<div id="_mcePaste">(Sanders, W., Cumaranatunge, C., 2007)</div>
<div id="_mcePaste">In some cases the controller will directly tell the view to make changes, this is only when changes in the view do not require a change in the model. Also the model can update itself based on certain events. There may be a function that gets data from another database and inserts it into your model database every night. In this example a scheduled event takes place updating the model without any user interaction. Each model can also have multiple views associated with it. A web application normally has many pages which can be classed as views. The model, view and controller are thought of as separate parts each part is separate but requires certain references. The model needs to have references to the views, the views need references to both the model and controller and the controller needs a reference to the model.</div>
<div id="_mcePaste">(Sanders, W., Cumaranatunge, C., 2007)</div>
<h4>References</h4>
<p>Sanders, W., Cumaranatunge, C. (2007) <span style="text-decoration:underline;">ActionScript 3.0 Design Patterns.</span> Sebastopol, CA: O&#8217;Reilly Media, Inc.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/davidwoodfield.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/davidwoodfield.wordpress.com/94/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/davidwoodfield.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/davidwoodfield.wordpress.com/94/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/davidwoodfield.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/davidwoodfield.wordpress.com/94/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/davidwoodfield.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/davidwoodfield.wordpress.com/94/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/davidwoodfield.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/davidwoodfield.wordpress.com/94/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/davidwoodfield.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/davidwoodfield.wordpress.com/94/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/davidwoodfield.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/davidwoodfield.wordpress.com/94/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=davidwoodfield.wordpress.com&amp;blog=7014869&amp;post=94&amp;subd=davidwoodfield&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://davidwoodfield.wordpress.com/2009/11/17/web-application-architecture/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/506aa85dd96f94d3ef35ec6251d20324?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">davidwoodfield</media:title>
		</media:content>
	</item>
		<item>
		<title>Web Chat</title>
		<link>http://davidwoodfield.wordpress.com/2009/11/17/web-chat/</link>
		<comments>http://davidwoodfield.wordpress.com/2009/11/17/web-chat/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 00:09:40 +0000</pubDate>
		<dc:creator>davidwoodfield</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://davidwoodfield.wordpress.com/?p=91</guid>
		<description><![CDATA[Web chat A web chat is a system that allows uses to communicate in real time using easily accessible web interfaces. The chat happens within the browser and no additional software is needed. I have followed various simple chat room tutorials on the internet and the chats are either stored in a database or a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=davidwoodfield.wordpress.com&amp;blog=7014869&amp;post=91&amp;subd=davidwoodfield&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h5>Web chat</h5>
<p>A web chat is a system that allows uses to communicate in real time using easily accessible web interfaces. The chat happens within the browser and no additional software is needed. I have followed various simple chat room tutorials on the internet and the chats are either stored in a database or a text file. If a text file is used the server checks the text files timestamp to determine if data has been appended to it. A database chat will look for new rows of data in the database table. Chat applications can appear to be in real time by using javascript techniques known as comet (this will be explained in the client side section). Another technology used for real time messenging is BlazeDS. BlazeDS is a technology from Adobe and works with flex applications and Java, both of these will be covered later.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/davidwoodfield.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/davidwoodfield.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/davidwoodfield.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/davidwoodfield.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/davidwoodfield.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/davidwoodfield.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/davidwoodfield.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/davidwoodfield.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/davidwoodfield.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/davidwoodfield.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/davidwoodfield.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/davidwoodfield.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/davidwoodfield.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/davidwoodfield.wordpress.com/91/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=davidwoodfield.wordpress.com&amp;blog=7014869&amp;post=91&amp;subd=davidwoodfield&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://davidwoodfield.wordpress.com/2009/11/17/web-chat/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/506aa85dd96f94d3ef35ec6251d20324?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">davidwoodfield</media:title>
		</media:content>
	</item>
	</channel>
</rss>
