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

<channel>
	<title>Always Get Better &#187; Web Programming</title>
	<atom:link href="http://www.alwaysgetbetter.com/blog/category/web-programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.alwaysgetbetter.com/blog</link>
	<description>Never stop looking for ways to improve</description>
	<lastBuildDate>Wed, 02 Jun 2010 12:16:01 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>CSS Sanity: Remember Best Practices When Using New Tools</title>
		<link>http://www.alwaysgetbetter.com/blog/2010/02/15/css-sanity-remember-practices-tools/</link>
		<comments>http://www.alwaysgetbetter.com/blog/2010/02/15/css-sanity-remember-practices-tools/#comments</comments>
		<pubDate>Mon, 15 Feb 2010 21:54:24 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Web Programming]]></category>
		<category><![CDATA[best practices]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[HTML]]></category>

		<guid isPermaLink="false">http://www.alwaysgetbetter.com/blog/?p=299</guid>
		<description><![CDATA[Now that the rebellion against IE6 has hit mainstream, a brave new world of CSS3 and HTML5 has been opened to web professionals. 
Beware Mixing Purposes
CSS is intended to define the appearance of elements, not their behaviour. Be very careful about &#8220;overloading&#8221; CSS to accomplish tasks best performed by JavaScript.
A popular example of poor CSS [...]


Related posts:<ol><li><a href='http://www.alwaysgetbetter.com/blog/2009/11/13/browsrcamp-test-web-designs-mac/' rel='bookmark' title='Permanent Link: BrowsrCamp &#8211; Test Web Designs on Mac'>BrowsrCamp &#8211; Test Web Designs on Mac</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Now that the rebellion against IE6 has hit mainstream, a brave new world of CSS3 and HTML5 has been opened to web professionals. </p>
<p><strong>Beware Mixing Purposes</strong><br />
CSS is intended to define the appearance of elements, not their behaviour. Be very careful about &#8220;overloading&#8221; CSS to accomplish tasks best performed by JavaScript.</p>
<p>A popular example of poor CSS usage is drop-down menu lists. Some web programmers use CSS&#8217; :hover selector to instruct the web browser to display sub-navigation when the user hovers over a list item.<br />
<code><br />
ul#menu li:hover ul { display: block; }<br />
</code></p>
<p>This is much better accomplished using a touch of jQuery:<br />
<code><br />
jQuery("ul#menu ul").css({display: "none"}); // For Opera<br />
	jQuery("ul#menu li").hover(function(){<br />
		jQuery(this).find('ul:first').css({visibility: "visible", display: "none"}).show(268);<br />
		},function(){<br />
		jQuery(this).find('ul:first').css({visibility: "hidden"});<br />
		});<br />
</code><br />
Not only is this example less dependent on consistent web browser support for the CSS :hover selector, we&#8217;ve even thrown in a spiffy little roll-out animation.</p>
<p><strong>Keep It Simple</strong><br />
The <a href="http://css-tricks.com/how-nth-child-works/">nth-child selector is one that stands to be abused</a> by overzealous developers. Imagine this: change the display of every n<sup>th</sup> element as defined through an algebraic expression.</p>
<p>Why is this a bad thing? CSS is run in the same memory space as the general web page &#8211; that&#8217;s why it&#8217;s so fast. JavaScript tends to be isolated; meaning if you make an infinite loop in JavaScript, the web browser will eventually stop it from running. If the same thing happens in CSS, your web session is probably toast.</p>
<p><strong>Separate Logic from Presentation</strong><br />
CSS was a leap forward because it separated presentation from structure; rather than programming font and colour elements, designers were able to explicitly control the way their web page appeared on screen. HTML was being used to serve the purpose CSS was designed to cover.</p>
<p>More recently, CSS has become a crutch to enable functionality better suited for JavaScript. When unsure about which to use, ask yourself: Does this solution affect only the display, or is some action happening?</p>


<p>Related posts:<ol><li><a href='http://www.alwaysgetbetter.com/blog/2009/11/13/browsrcamp-test-web-designs-mac/' rel='bookmark' title='Permanent Link: BrowsrCamp &#8211; Test Web Designs on Mac'>BrowsrCamp &#8211; Test Web Designs on Mac</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.alwaysgetbetter.com/blog/2010/02/15/css-sanity-remember-practices-tools/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wamp Server Crashes Installing X-Cart</title>
		<link>http://www.alwaysgetbetter.com/blog/2010/01/24/wamp-server-crashes-installing-xcart/</link>
		<comments>http://www.alwaysgetbetter.com/blog/2010/01/24/wamp-server-crashes-installing-xcart/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 02:38:32 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Windows Vista]]></category>
		<category><![CDATA[e-commerce]]></category>
		<category><![CDATA[x-cart]]></category>

		<guid isPermaLink="false">http://www.alwaysgetbetter.com/blog/?p=294</guid>
		<description><![CDATA[When running a default installation, WAMP Server&#8217;s Apache crashes when installing X-Cart. The error happens immediately after setting up the MySQL tables and is caused by the curl extension in PHP.
To resolve, click on the WAMP Server icon in the task tray, go to Apache -> Version -> Get More. Download one of the 2.0 [...]


Related posts:<ol><li><a href='http://www.alwaysgetbetter.com/blog/2009/11/05/vista-fix-sql-server-express-error-create-database-permission-denied-database-master/' rel='bookmark' title='Permanent Link: VISTA: How to fix SQL Server Express Error &#8211; CREATE DATABASE permission denied in database &#8216;master&#8217;'>VISTA: How to fix SQL Server Express Error &#8211; CREATE DATABASE permission denied in database &#8216;master&#8217;</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>When running a default installation, WAMP Server&#8217;s Apache crashes when installing X-Cart. The error happens immediately after setting up the MySQL tables and is caused by the curl extension in PHP.</p>
<p>To resolve, click on the WAMP Server icon in the task tray, go to Apache -> Version -> Get More. Download one of the 2.0 series Apache servers and install it.</p>
<p>Repeat the process for PHP; download one of the 5.0 series PHP versions and install it.</p>
<p>Switch WAMP Server to the new versions and run the install again &#8211; it should work with no problems.</p>


<p>Related posts:<ol><li><a href='http://www.alwaysgetbetter.com/blog/2009/11/05/vista-fix-sql-server-express-error-create-database-permission-denied-database-master/' rel='bookmark' title='Permanent Link: VISTA: How to fix SQL Server Express Error &#8211; CREATE DATABASE permission denied in database &#8216;master&#8217;'>VISTA: How to fix SQL Server Express Error &#8211; CREATE DATABASE permission denied in database &#8216;master&#8217;</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.alwaysgetbetter.com/blog/2010/01/24/wamp-server-crashes-installing-xcart/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>atoi in Flex/ActionScript &#8211; Converting Strings to Numbers</title>
		<link>http://www.alwaysgetbetter.com/blog/2009/02/07/atoi-in-flexactionscript-converting-strings-to-numbers/</link>
		<comments>http://www.alwaysgetbetter.com/blog/2009/02/07/atoi-in-flexactionscript-converting-strings-to-numbers/#comments</comments>
		<pubDate>Sat, 07 Feb 2009 23:31:09 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Web Programming]]></category>
		<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[flex builder]]></category>

		<guid isPermaLink="false">http://www.alwaysgetbetter.com/blog/?p=177</guid>
		<description><![CDATA[It couldn&#8217;t be easier to convert a string to a number in Flex Actionscript. The language doesn&#8217;t have (or need) an atoi() function as seen in languages like C &#8211; it&#8217;s as simple as creating a cast:
var myString:String = &#8220;15&#8243;;
var myNum:Number = Number( myString );
The framework will convert any data type, not just strings. If [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<p>It couldn&#8217;t be easier to convert a string to a number in Flex Actionscript. The language doesn&#8217;t have (or need) an atoi() function as seen in languages like C &#8211; it&#8217;s as simple as creating a cast:</p>
<p>var myString:String = &#8220;15&#8243;;<br />
var myNum:Number = Number( myString );</p>
<p>The framework will convert any data type, not just strings. If it is unable to do so, it will return 0 (for ints) or NaN (for floating point).</p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.alwaysgetbetter.com/blog/2009/02/07/atoi-in-flexactionscript-converting-strings-to-numbers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Improving Wordpress Page Titles</title>
		<link>http://www.alwaysgetbetter.com/blog/2008/11/29/improving-wordpress-page-titles/</link>
		<comments>http://www.alwaysgetbetter.com/blog/2008/11/29/improving-wordpress-page-titles/#comments</comments>
		<pubDate>Sat, 29 Nov 2008 12:00:11 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Web Programming]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.alwaysgetbetter.com/blog/?p=77</guid>
		<description><![CDATA[Anyone half-serious about running a large blog knows that search engine ranking is critical to getting properly indexed.  Over 90% of the traffic to Always Get Better originates from search engine traffic &#8211; therefore the ease of which Google (among others) is able to index this site is the life-blood of its continued success.
Wordpress [...]


Related posts:<ol><li><a href='http://www.alwaysgetbetter.com/blog/2010/01/19/simple-makefile-language/' rel='bookmark' title='Permanent Link: A Simple Makefile for the Go Language'>A Simple Makefile for the Go Language</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Anyone half-serious about running a large blog knows that search engine ranking is critical to getting properly indexed.  Over 90% of the traffic to <strong>Always Get Better</strong> originates from search engine traffic &#8211; therefore the ease of which Google (among others) is able to index this site is the life-blood of its continued success.</p>
<p>Wordpress is a terrific platform with out-of-the-box support for many of the critical elements necessary for site building: CSS layouts, RSS feeds, track backs.  But the glaring problem with Wordpress is the default title format: &#8220;Blog Name &gt; Blog Archive &#8211; Post Title&#8221;.  What is that!?</p>
<p>Many search engines only catalogue the first several characters of web page titles.  If the title of your post is at the end of the page title, it may get cut off in favour of your blog&#8217;s name!</p>
<p>The simple solution is to reverse the code as explained at the <a href="http://wordpressgarage.com/code-snippets/hard-coding-an-seo-friendly-title-in-the-wordpress-header-file/" rel="nofollow">Wordpress</a> garage (and quoted below for convenience):</p>
<blockquote><p>You can switch it through the use of plugins, but if you want to avoid using another plugin you can fix this in the header.php file. Find the code that starts with &lt;title&gt;, and replace what is currently there with this:</p>
<p><code>&lt;title&gt;&lt;?php if ( is_single() ) { ?&gt; &lt;?php wp_title(''); ?&gt; &amp;raquo; &lt;?php } ?&gt;&lt;?php bloginfo('name'); ?&gt;&lt;/title&gt;</code></p></blockquote>


<p>Related posts:<ol><li><a href='http://www.alwaysgetbetter.com/blog/2010/01/19/simple-makefile-language/' rel='bookmark' title='Permanent Link: A Simple Makefile for the Go Language'>A Simple Makefile for the Go Language</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.alwaysgetbetter.com/blog/2008/11/29/improving-wordpress-page-titles/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Can&#8217;t Change Country of Adobe Account</title>
		<link>http://www.alwaysgetbetter.com/blog/2008/11/12/cant-change-country-of-adobe-account/</link>
		<comments>http://www.alwaysgetbetter.com/blog/2008/11/12/cant-change-country-of-adobe-account/#comments</comments>
		<pubDate>Wed, 12 Nov 2008 18:47:17 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[customer service]]></category>
		<category><![CDATA[ethics]]></category>
		<category><![CDATA[flex builder]]></category>

		<guid isPermaLink="false">http://www.alwaysgetbetter.com/blog/?p=59</guid>
		<description><![CDATA[Aside the from the bloated abomination that is Acrobat Reader, I can confess that I am a proponent of software from Adobe.  As a long time user of Photoshop and Illustrator, I have always found their products to be powerful and usable.
Recently I&#8217;ve taken up time creating applications with a trial version of Flex Builder.  [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<p>Aside the from the bloated abomination that is Acrobat Reader, I can confess that I am a proponent of software from Adobe.  As a long time user of Photoshop and Illustrator, I have always found their products to be powerful and usable.</p>
<p>Recently I&#8217;ve taken up time creating applications with a trial version of Flex Builder.  This is the first time I have ever really given a product a full test drive during the trial &#8211; normally it gets used once or twice then forgotten about.  Flex Builder is a solid product, built on a great platform.  I can&#8217;t get enough of it.</p>
<p>Since I truly like this software, I decided to go ahead and plug in my credit card information to get myself a full copy.  When I got to the Adobe online store though, I was sadly let down by my experience.</p>
<p>I am in Canada but for some reason my existing account has &#8216;United States&#8217; listed as my address.  Not a big deal, I&#8217;ll just change it, right?  No &#8211; it is not a changeable field.  You can change your region on the Adobe site but that doesn&#8217;t affect your account at all.  If I can&#8217;t change my country, I can&#8217;t order online because my credit card information will be wrong.</p>
<p>Not a big deal &#8211; I called the sales phone number and explained what my problem was, hoping to order the product by phone.  You can&#8217;t order software for download by phone, they will only ship it to you.  I&#8217;d much rather just have the serial number, so I am transferred to the online support department to get the country of my account changed.</p>
<p>Once I noticed my phone timer had reached 37 minutes, I hung up and tried searching the Internet for a solution to Adobe&#8217;s problem.  I found this blog: http://www.gurtle.com/ppov/2008/10/17/adobe-id-customer-service-fail/</p>
<p>Basically, you <em>can&#8217;t</em> change your country.  The only way to do it is to create a new account with the correct country.  It would have been nice if the gentleman in sales had known to tell me that instead of letting me wait on hold for an indefinite period of time.</p>
<p>Really, the reason I am most angry is because the muzak that plays on Adobe&#8217;s hold line is not just obnoxious, it&#8217;s <em>too loud</em>.  Right now my head is ringing and I still have no Flex Builder to play with.</p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.alwaysgetbetter.com/blog/2008/11/12/cant-change-country-of-adobe-account/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Accessing the stage in Flex</title>
		<link>http://www.alwaysgetbetter.com/blog/2008/11/09/accessing-the-stage-in-flex/</link>
		<comments>http://www.alwaysgetbetter.com/blog/2008/11/09/accessing-the-stage-in-flex/#comments</comments>
		<pubDate>Mon, 10 Nov 2008 03:23:04 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[flex builder]]></category>

		<guid isPermaLink="false">http://www.alwaysgetbetter.com/blog/?p=61</guid>
		<description><![CDATA[When creating components in Flex, designers sometimes need to attach events to the main stage.  Unless the application has reached creationComplete, the stage property of custom components will be null.
If you need to, for example, attach a MOUSE_MOVE event to the application stage from a component that doesn&#8217;t include a creationComplete override, you have [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<p>When creating components in Flex, designers sometimes need to attach events to the main stage.  Unless the application has reached <strong>creationComplete</strong>, the <strong><em>stage</em> </strong>property of custom components will be <em>null</em>.</p>
<p>If you need to, for example, attach a MOUSE_MOVE event to the application stage from a component that doesn&#8217;t include a <strong>creationComplete </strong>override, you have two options.</p>
<h2>Wait for Event.ADDED_TO_STAGE</h2>
<p>addEventListener( Event.ADDED_TO_STAGE, function(e:Event):void<br />
{<br />
stage.addEventListener( MouseEvent.MOUSE_MOVE, myMouseMoveEvent );<br />
});</p>
<h2>Attach Through the System Manager Object</h2>
<p>The system manager parents all displayable elements within the Flex application.  It is an elegant way of accessing the stage through custom flex components which have not yet been added to it.</p>
<p>systemManager.stage.addEventListener( MouseEvent.MOUSE_MOVE, myMouseMoveEvent );</p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.alwaysgetbetter.com/blog/2008/11/09/accessing-the-stage-in-flex/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASP.NET &#8220;Service Unavailable&#8221;</title>
		<link>http://www.alwaysgetbetter.com/blog/2008/11/08/aspnet-service-unavailable/</link>
		<comments>http://www.alwaysgetbetter.com/blog/2008/11/08/aspnet-service-unavailable/#comments</comments>
		<pubDate>Sat, 08 Nov 2008 16:04:32 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[IIS]]></category>

		<guid isPermaLink="false">http://www.alwaysgetbetter.com/blog/?p=57</guid>
		<description><![CDATA[If you have threaded processes called by your ASP.NET code, and those processes crash, your site may start giving Service Unavailable errors.
Use iisreset to quickly get back up and running.
In order to prevent this from occurring at all, I recommend putting try { } catch { } around any statements inside a threaded function.


No related [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<p>If you have threaded processes called by your ASP.NET code, and those processes crash, your site may start giving <strong>Service Unavailable</strong> errors.</p>
<p>Use <strong>iisreset</strong> to quickly get back up and running.</p>
<p>In order to prevent this from occurring at all, I recommend putting <em>try { } catch { }</em> around any statements inside a threaded function.</p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.alwaysgetbetter.com/blog/2008/11/08/aspnet-service-unavailable/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CommandEventHandler Event Won&#8217;t Fire for Button in ASP.NET Custom Control</title>
		<link>http://www.alwaysgetbetter.com/blog/2008/09/24/commandeventhandler-event-wont-fire-for-button-in-aspnet-custom-control/</link>
		<comments>http://www.alwaysgetbetter.com/blog/2008/09/24/commandeventhandler-event-wont-fire-for-button-in-aspnet-custom-control/#comments</comments>
		<pubDate>Wed, 24 Sep 2008 23:03:04 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[VB.Net]]></category>

		<guid isPermaLink="false">http://www.alwaysgetbetter.com/blog/?p=55</guid>
		<description><![CDATA[Problem: I created a custom control with a dynamic button and attached an event handler to that button.  When I run the control, clicking the button causes a postback but the event is not fired.
Solution: Changed the class inheritance from WebControl to CompositeControl.  Re-compiled and it worked like a charm.


No related posts.


No related posts.]]></description>
			<content:encoded><![CDATA[<p><strong>Problem</strong>: I created a custom control with a dynamic button and attached an event handler to that button.  When I run the control, clicking the button causes a postback but the event is not fired.</p>
<p><strong>Solution:</strong> Changed the class inheritance from <em>WebControl</em> to <em>CompositeControl</em>.  Re-compiled and it worked like a charm.</p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.alwaysgetbetter.com/blog/2008/09/24/commandeventhandler-event-wont-fire-for-button-in-aspnet-custom-control/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FlexBuilder: Flash for Programmers</title>
		<link>http://www.alwaysgetbetter.com/blog/2008/09/11/flexbuilder-flash-for-programmers/</link>
		<comments>http://www.alwaysgetbetter.com/blog/2008/09/11/flexbuilder-flash-for-programmers/#comments</comments>
		<pubDate>Thu, 11 Sep 2008 22:26:08 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[FlexBuilder]]></category>

		<guid isPermaLink="false">http://www.alwaysgetbetter.com/blog/?p=51</guid>
		<description><![CDATA[Since I&#8217;m not a designer (an obvious conclusion anyone will reach after taking one look at the design of this site), I&#8217;ve never had much use for the Flash development environment, nor any real desire to learn it.
Adobe FlexBuilder 3 provides an integrated development environment (Eclipse, actually) that allows programmers to build Flash applications.  [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<p>Since I&#8217;m not a designer (an obvious conclusion anyone will reach after taking one look at the design of <em>this</em> site), I&#8217;ve never had much use for the Flash development environment, nor any real desire to learn it.</p>
<p>Adobe FlexBuilder 3 provides an integrated development environment (Eclipse, actually) that allows programmers to build Flash applications.  I was pleasantly surprised to discover this software, and found its brand of MXML to be very familiar coming from an ASP.NET background.</p>
<p>Stay tuned for updates as I learn more about this software.  Have you had any experience with it?  I welcome comments and suggestions &#8211; what should we watch for when working with this software?</p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.alwaysgetbetter.com/blog/2008/09/11/flexbuilder-flash-for-programmers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaScript &amp; Ajax Visual Quickstart Guide</title>
		<link>http://www.alwaysgetbetter.com/blog/2008/08/13/javascript-ajax-visual-quickstart-guide/</link>
		<comments>http://www.alwaysgetbetter.com/blog/2008/08/13/javascript-ajax-visual-quickstart-guide/#comments</comments>
		<pubDate>Wed, 13 Aug 2008 15:30:38 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[Books]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://www.alwaysgetbetter.com/blog/?p=48</guid>
		<description><![CDATA[
One day last year my client decided we needed to incorporate AJAX into their web site.  AJAX was considered the big thing, and by not having &#8220;it&#8221; we were going to fall behind some of our competitors.  
&#8220;What do you want to enhance using AJAX?&#8221;
&#8220;What do you mean?  Just install AJAX.&#8221;
Ok.  [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<p><iframe src="http://rcm-ca.amazon.ca/e/cm?t=alwgetbet-20&#038;o=15&#038;p=8&#038;l=as1&#038;asins=0321430328&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;margin:0 15px 15px 0;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0" align="left"></iframe></p>
<p>One day last year my client decided we needed to incorporate AJAX into their web site.  AJAX was considered the big thing, and by not having &#8220;it&#8221; we were going to fall behind some of our competitors.  </p>
<p>&#8220;What do you want to enhance using AJAX?&#8221;<br />
&#8220;What do you mean?  Just install AJAX.&#8221;</p>
<p>Ok.  I&#8217;ve been doing a lot of work with JavaScript for years, including DOM manipulation and other Web 2.0-ish type trickery, but AJAX as a concept was something I had yet to explore.  After reading resources available online, I decided to jump ahead a bit and buy a book on the topic.</p>
<p>I picked <i>JavaScript &#038; Ajax, Visual Quickstart Guide</i> for a number of reasons.</p>
<ol>
<li>It featured a beginner&#8217;s look at AJAX</li>
<li>It is part of the Visual Quickstart series &#8211; anyone who knows me will know that I love how professionally this series is put together</li>
<li>It features a full-colour DOM object reference flowchart</li>
</ol>
<p>I will admit this book is not the most comprehensive resource out there, for JavaScript or for AJAX.  If I had wanted a more solid reference manual I would likely have sought out a book that focused solely on AJAX or solely on JavaScript.  My trusty old tome <i>Mastering JavaScript</i> has always been a great reference, and I won&#8217;t get rid of it any time soon.</p>
<p>Although the title of the book is <i>JavaScript &#038; AJAX</i>, the truth is this is a book about JavaScript.  Right in the introduction the authors admit they simply added Ajax in this (6th) edition.  Beginning the chapter on Ajax, we learn that the name of the book was changed to include Ajax in order to cash in on the success of the methodology.  I won&#8217;t fault the authors for making that move &#8211; in fact I would consider a book about JavaScript to be incomplete nowadays if it did not include a discussion on Ajax.</p>
<p>I bought this book because of its practical discussion.  The authors describe generic tricks such as adding dynamic dates and form validation to your site, something older books don&#8217;t always consider in much detail.  Although the language itself hasn&#8217;t really changed since the 90s, the way we use it has.  For that reason alone I like to upgrade my bookshelf to keep up with the current trends.</p>
<p>This book features a full colour reference chart for DOM properties.  This may not be useful to people who like to use syntax-highlight and code completion software, but I still tend to write JavaScript in plain text editors, so any attribute I don&#8217;t know off the top of my head is handy to have at my fingertips.</p>
<p>In all, the authors have done a good job of bringing together a thorough primer for JavaScript.  The book identifies itself as targeting beginner to intermediate programmers, an assessment I would tend to agree with.  If you&#8217;re looking for a decent reference, easy to access, without a lot of jargon, this is the book for you.</p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.alwaysgetbetter.com/blog/2008/08/13/javascript-ajax-visual-quickstart-guide/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
