<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>JavaScript Workshop</title>
	
	<link>http://www.javascriptworkshop.com</link>
	<description>Learning JavaScript and other web scripting techniques from the grond up.</description>
	<lastBuildDate>Tue, 29 Dec 2009 02:59:48 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=abc</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/JavascriptWorkshop" /><feedburner:info uri="javascriptworkshop" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>JavascriptWorkshop</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>ActionScript 3.0 Basics for Designers Class</title>
		<link>http://feedproxy.google.com/~r/JavascriptWorkshop/~3/liB17vXyU9A/</link>
		<comments>http://www.javascriptworkshop.com/2009/12/28/actionscript-3-0-basics-for-designers-class/#comments</comments>
		<pubDate>Tue, 29 Dec 2009 02:54:22 +0000</pubDate>
		<dc:creator>Frank Stepanski</dc:creator>
				<category><![CDATA[Online classes]]></category>
		<category><![CDATA[ActionScript 3.0]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[LVSOnline]]></category>

		<guid isPermaLink="false">http://www.javascriptworkshop.com/?p=1004</guid>
		<description><![CDATA[I created a class focusing on Flash ActionScript 3.0 called Flash ActionScript 3.0 Basics for Designers at LVSOnline.com.  This class is for existing Flash designers who want to incorporate user interactivity in their Flash web site or Flash developers who have not made the switch from earlier versions of ActionScript. 
Currently ActionScript 3.0 is [...]]]></description>
			<content:encoded><![CDATA[<p>I created a class focusing on Flash ActionScript 3.0 called <a target="_blank" href="http://www.lvsassociates.com/register/product_info.php?products_id=316">Flash ActionScript 3.0 Basics for Designers</a> at <a target="_blank" href="http://www.lvsonline.com">LVSOnline.com</a>.  This class is for existing Flash designers who want to incorporate user interactivity in their Flash web site or Flash developers who have not made the switch from earlier versions of ActionScript. </p>
<p>Currently ActionScript 3.0 is the internal programming language of Flash, Flex and Adobe AIR. This object oriented language is more adherent to the ECMA-262 standard which many other languages (i.e. JavaScript) follow. </p>
<p>Students will learn the basics of the core language of ActionScript 3.0, how it is used within the timeline, interact with objects (movieclips) on the stage and library, develop simple animations with just ActionScript and understand the importance and how to create preloaders for your movies.</p>
<p>The class is only $30 and students need either Adobe Flash CS4 or CS3.</p>
<p><strong>Topics covered:</strong></p>
<p>Week 1: Trace statement, comments, variables, loops, functions and object basics.<br />
Week 2: Manipulating movie clip properties<br />
Week 3: Events: overview, targeting, propagating, timeline control methods<br />
Week 4: More events: frame and keyboard events; timer events<br />
Week 5: Loading external assets (images and movies); Display list explained<br />
Week 6: Working with preloaders and sound</p>
<p>To give you an idea of how each lesson looks, here is the <a target="_blank" href = "http://www.javascriptworkshop.com/wp-content/uploads/pdf/LVSOnline_ActionScriptBasics_wk1.pdf"> first lesson</a> (.pdf).</p>
<p><strong>When Does Class Start?</strong></p>
<p>The class runs five times a year for six weeks in January, March, May, August and October.  To learn more view the <a target="_blank"  href="http://www.lvsassociates.com/register/product_info.php?products_id=316">course description page </a>and <a href="http://www.javascriptworkshop.com/contact-me/">contact me</a> to find out the exact date on when you can register</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/JavascriptWorkshop?a=liB17vXyU9A:7VhInIUaSx0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/JavascriptWorkshop?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/JavascriptWorkshop/~4/liB17vXyU9A" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.javascriptworkshop.com/2009/12/28/actionscript-3-0-basics-for-designers-class/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.javascriptworkshop.com/2009/12/28/actionscript-3-0-basics-for-designers-class/</feedburner:origLink></item>
		<item>
		<title>Understanding T-SQL using SQL Server Class</title>
		<link>http://feedproxy.google.com/~r/JavascriptWorkshop/~3/_7nzrNOJXNo/</link>
		<comments>http://www.javascriptworkshop.com/2009/10/05/understanding-t-sql-using-sql-server-class/#comments</comments>
		<pubDate>Mon, 05 Oct 2009 20:31:01 +0000</pubDate>
		<dc:creator>Frank Stepanski</dc:creator>
				<category><![CDATA[Online classes]]></category>
		<category><![CDATA[LVSOnline]]></category>
		<category><![CDATA[Microsoft SQL Server]]></category>
		<category><![CDATA[Online class]]></category>
		<category><![CDATA[t-SQL]]></category>

		<guid isPermaLink="false">http://www.javascriptworkshop.com/?p=968</guid>
		<description><![CDATA[I created a class focusing on ]]></description>
			<content:encoded><![CDATA[<p>I created a class focusing on <a target=_blank"  href="http://msdn.microsoft.com/en-us/library/ms189826(SQL.90).aspx">T-SQL</a> class called <a target="_blank" href="http://www.lvsassociates.com/register/product_info.php?products_id=312">Understanding T-SQL using Microsoft SQL Server</a> at <a target="_blank" href="http://www.lvsonline.com">LVSOnline.com</a>.  This class is for web administrators, web developers, analysts, or anybody else wanting to learn how to write simple to complex queries to retrieve and manipulate data from a SQL Server database.</p>
<p>SQL stands for Structured Query Language. SQL is a standard language that was designed to query and manage data in relational database management systems (RDBMS). An RDBMS is a database management system that is used today in every type of desktop or web-based application. Microsoft provides T-SQL (Transact SQL) as a dialect of, or extension to, SQL in Microsoft SQL Server, its RDBMS</p>
<p><a target="_blank" href="http://www.microsoft.com/sqlserver/2008/en/us/default.aspx">Microsoft SQL Server</a> is one of the most popular RDBMS used today and a solid understanding of T-SQL is critical if you want to have a successful career in Microsoft application development (desktop or web). </p>
<p>The class is only $30 and there are no other materials or software needed to purchase.</p>
<p><strong>Topics covered:</strong></p>
<p>Week 1: Setting up SQL Server 2008 Express &#038; Management Studio<br />
Week 2: SELECT statements; Predicates and Operators, Case Expressions<br />
Week 3: Joins: Cross, Outer and Inner<br />
Week 4: Subqueries<br />
Week 5: Data Modification: Inserting, Updating, Deleting and Merging<br />
Week 6: Programmable Objects: Variables, Routines and Functions</p>
<p>To give you an idea of how each lesson looks, here is the <a target="_blank" href = "http://www.javascriptworkshop.com/wp-content/uploads/pdf/LVSOnline_T-SQL_wk1.pdf"> first lesson</a> (.pdf).</p>
<p><strong>When Does Class Start?</strong></p>
<p>The class runs five times a year for six weeks in January, March, May, August and October.  To learn more view the <a target="_blank"  href="http://www.lvsassociates.com/register/product_info.php?products_id=312">course description page </a>and <a href="http://www.javascriptworkshop.com/contact-me/">contact me</a> to find out the exact date on when you can register</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/JavascriptWorkshop?a=_7nzrNOJXNo:PofqCqVpCmY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/JavascriptWorkshop?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/JavascriptWorkshop/~4/_7nzrNOJXNo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.javascriptworkshop.com/2009/10/05/understanding-t-sql-using-sql-server-class/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.javascriptworkshop.com/2009/10/05/understanding-t-sql-using-sql-server-class/</feedburner:origLink></item>
		<item>
		<title>jQuery: Enhancing Web Development Class</title>
		<link>http://feedproxy.google.com/~r/JavascriptWorkshop/~3/8r3jQUg0EWo/</link>
		<comments>http://www.javascriptworkshop.com/2009/09/16/jquery-enhancing-web-development-class/#comments</comments>
		<pubDate>Wed, 16 Sep 2009 15:27:01 +0000</pubDate>
		<dc:creator>Frank Stepanski</dc:creator>
				<category><![CDATA[Online classes]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[jQuery Class]]></category>
		<category><![CDATA[jQuery Learning]]></category>
		<category><![CDATA[jQuery Training]]></category>
		<category><![CDATA[LVSOnline]]></category>

		<guid isPermaLink="false">http://www.javascriptworkshop.com/?p=914</guid>
		<description><![CDATA[I created a class focusing on ]]></description>
			<content:encoded><![CDATA[<p>I created a class focusing on <a target=_blank"  href="http://jquery.com/">jQuery</a> class called <a target="_blank" href="http://www.lvsassociates.com/register/product_info.php?products_id=300">jQuery: Enhancing Web Development</a> at <a target="_blank" href="http://www.lvsonline.com">LVSOnline.com</a>.  This class is geared for web designers to help and learnand use jQuery to enhance existing web pages as well as web developers to teach them how to use a very popular and powerful JavaScript library.</p>
<p>If you&#8217;ve spent any time at all trying to add dynamic functionality to your pages, you&#8217;ve found that you&#8217;re constantly following a pattern of selecting an element or group of elements and operating upon those elements in some fashion. You could be hiding or revealing the elements, adding a CSS class to them, animating them, or modifying their attributes.</p>
<p>Using raw JavaScript can result in dozens of lines of code for each of these tasks. The creators of jQuery specifically created the library to make common tasks trivial.</p>
<p>The class will be teaching not only how to use the many functions and properties of API, but practical examples you can use right away.</p>
<p>The class is only $30 and there are no other materials or software needed to purchase.</p>
<p><strong>Topics covered:</strong></p>
<p>Week 1: jQuery Overview; using $(), how selectors work<br />
Week 2: Using filters, traversing the document, statement chaining<br />
Week 3: Manipulating page content, working with CSS content<br />
Week 4: Events: bind() and unbind(), helper functions, event object<br />
Week 5: UI Library: Widgets, Interaction and Effects<br />
Week 6: jQuery Project: Adding jQuery to an existing website</p>
<p>To give you an idea of how each lesson looks, here is the <a target="_blank" href = "http://www.javascriptworkshop.com/wp-content/uploads/pdf/LVSOnline_jQuery_wk1.pdf"> first lesson</a> (.pdf).</p>
<p><strong>When Does Class Start?</strong></p>
<p>The class runs five times a year for six weeks in January, March, May, August and October.  To learn more view the <a target="_blank"  href="http://www.lvsassociates.com/register/product_info.php?products_id=300">course description page </a>and <a href="http://www.javascriptworkshop.com/contact-me/">contact me</a> to find out the exact date on when you can register.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/JavascriptWorkshop?a=8r3jQUg0EWo:O1r6h33VtTk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/JavascriptWorkshop?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/JavascriptWorkshop/~4/8r3jQUg0EWo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.javascriptworkshop.com/2009/09/16/jquery-enhancing-web-development-class/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://www.javascriptworkshop.com/2009/09/16/jquery-enhancing-web-development-class/</feedburner:origLink></item>
		<item>
		<title>Beginning ASP.NET AJAX Web Development Class</title>
		<link>http://feedproxy.google.com/~r/JavascriptWorkshop/~3/FSxAEay8Wag/</link>
		<comments>http://www.javascriptworkshop.com/2009/08/16/beginning-asp-net-ajax-web-development-class/#comments</comments>
		<pubDate>Sun, 16 Aug 2009 13:24:38 +0000</pubDate>
		<dc:creator>Frank Stepanski</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Online classes]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[LVSOnline]]></category>

		<guid isPermaLink="false">http://www.javascriptworkshop.com/?p=754</guid>
		<description><![CDATA[I created an AJAX ASP.NET class called AJAX Web Development with ASP.NET at LVSOnline.com.  This fourth ASP.NET class in the series focuses on teaching students how the Ajax can be integrated within the ASP.NET framework.
Ajax (Asynchronous JavaScript and XML) isn&#8217;t a technology but rather a grouping of technologies. Ajax uses a communication technology (typically [...]]]></description>
			<content:encoded><![CDATA[<p>I created an AJAX ASP.NET class called <a target="_blank" href="http://www.lvsassociates.com/register/product_info.php?products_id=295">AJAX Web Development with ASP.NET</a> at <a target="_blank" href="http://www.lvsonline.com">LVSOnline.com</a>.  This fourth ASP.NET class in the series focuses on teaching students how the Ajax can be integrated within the ASP.NET framework.</p>
<p><a target="_blank" href="http://en.wikipedia.org/wiki/Ajax_(programming)">Ajax</a> (Asynchronous JavaScript and XML) isn&#8217;t a technology but rather a grouping of technologies. Ajax uses a communication technology (typically SOAP and XML) to send and receive an asynchronous request/response to the server, and then leverages presentation technologies (JavaScript, DOM, HTML, and CSS) to process the response.</p>
<p>Ajax lets you execute a server-side method through a JavaScript call, without requiring a browser refresh.</p>
<p>The class is only $30 and there are no other materials or software needed to purchase.</p>
<p><strong>Topics covered:</strong></p>
<p>Week 1: Ajax overview; partial rendering; Ajax Extension controls; Script Manager<br />
Week 2: Update Panel; Handing client errors; Update Progress<br />
Week 3: AJAX Control Toolkit<br />
Week 4: JavaScript libraries: jQuery<br />
Week 5: Timer, Web Services and JSON Overview<br />
Week 6: AJAX ASP.NET Controls: Telerik</p>
<p>To give you an idea of how each lesson looks, here is the <a target="_blank" href = "http://www.javascriptworkshop.com/wp-content/uploads/pdf/LVSOnline_AJAXASPNET_wk1.pdf"> first lesson</a> (.pdf).</p>
<p><strong>When Does Class Start?</strong></p>
<p>The class runs five times a year for six weeks in January, March, May, August and October.  To learn more view the <a target="_blank"  href="http://www.lvsassociates.com/register/product_info.php?products_id=295">course description page </a>and <a href="http://www.javascriptworkshop.com/contact-me/">contact me</a> to find out the exact date on when you can register.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/JavascriptWorkshop?a=FSxAEay8Wag:tPPqKlcg664:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/JavascriptWorkshop?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/JavascriptWorkshop/~4/FSxAEay8Wag" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.javascriptworkshop.com/2009/08/16/beginning-asp-net-ajax-web-development-class/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.javascriptworkshop.com/2009/08/16/beginning-asp-net-ajax-web-development-class/</feedburner:origLink></item>
		<item>
		<title>AJAX 101 – part 2</title>
		<link>http://feedproxy.google.com/~r/JavascriptWorkshop/~3/fxYJYIkF72g/</link>
		<comments>http://www.javascriptworkshop.com/2009/08/07/ajax-101-%e2%80%93-part-2/#comments</comments>
		<pubDate>Fri, 07 Aug 2009 14:11:43 +0000</pubDate>
		<dc:creator>Frank Stepanski</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[AJAX Basics]]></category>
		<category><![CDATA[AJAX Engine]]></category>

		<guid isPermaLink="false">http://www.javascriptworkshop.com/?p=730</guid>
		<description><![CDATA[Creating an object-oriented AJAX engine
Once there is an understanding of the AJAX engine the focus can be on the actual response and page display; this is where the real power lies. Since rewriting the engine for each project is tedious and time consuming, an object-oriented solution can be very useful. This kind of engine can [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Creating an object-oriented AJAX engine</strong></p>
<p>Once there is an understanding of the AJAX engine the focus can be on the actual response and page display; this is where the real power lies. Since rewriting the engine for each project is tedious and time consuming, an object-oriented solution can be very useful. This kind of engine can be reused for all of your AJAX projects and scaled to meet different projects’ needs. </p>
<p>An object-oriented AJAX engine will also help you separate your interface code from your request data, which will enable you to reuse this engine in multiple projects. The AJAX engine is not difficult to construct once you understand the syntax for creating custom JavaScript objects. The first step is to create a constructor function, which will be the access point to the object.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> Ajax<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">toString</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><span style="color: #000066; font-weight: bold;">return</span> <span style="color: #3366CC;">&quot;Ajax&quot;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p><span id="more-730"></span></p>
<p>This function will become the custom object and will therefore include all of the properties and functions that a standard AJAX engine has. </p>
<p>Here is an example of the engine in its entirely:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> Ajax<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
     <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">toString</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><span style="color: #000066; font-weight: bold;">return</span> <span style="color: #3366CC;">&quot;Ajax&quot;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span>
&nbsp;
     <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">makeRequest</span> <span style="color: #339933;">=</span>  <span style="color: #003366; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span>_method<span style="color: #339933;">,</span> _url<span style="color: #339933;">,</span> _callbackMethod_<span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
	     <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">request</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>window.<span style="color: #660066;">XMLHttpRequest</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">?</span> <span style="color: #003366; font-weight: bold;">new</span>
XMLHttpRequest<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">new</span> ActiveXObject <span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;MSXML2.XMLHTTP&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	     <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">request</span>.<span style="color: #660066;">onreadystatechange</span> <span style="color: #339933;">=</span> _callbackMethod<span style="color: #339933;">;</span>
	     <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">request</span>.<span style="color: #000066;">open</span><span style="color: #009900;">&#40;</span>_method<span style="color: #339933;">,</span> _url<span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	     <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">request</span>.<span style="color: #660066;">send</span><span style="color: #009900;">&#40;</span>_url<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">checkReadyState</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span>_id<span style="color: #339933;">,</span> _1<span style="color: #339933;">,</span> _2<span style="color: #339933;">,</span> _3<span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
	     swtich<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">request</span>.<span style="color: #660066;">readyState</span><span style="color: #009900;">&#41;</span>
	     <span style="color: #009900;">&#123;</span>
	           case1<span style="color: #339933;">:</span>
                            document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span>_id_.<span style="color: #660066;">innerHTML</span> <span style="color: #339933;">=</span> _1<span style="color: #339933;">;</span>
                            <span style="color: #000066; font-weight: bold;">break</span><span style="color: #339933;">;</span>
                   case2<span style="color: #339933;">:</span>
                            document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span>_id_.<span style="color: #660066;">innerHTML</span> <span style="color: #339933;">=</span> _2<span style="color: #339933;">;</span>
                            <span style="color: #000066; font-weight: bold;">break</span><span style="color: #339933;">;</span>
                   case3<span style="color: #339933;">:</span>
                            document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span>_id_.<span style="color: #660066;">innerHTML</span> <span style="color: #339933;">=</span> _3<span style="color: #339933;">;</span>
                            <span style="color: #000066; font-weight: bold;">break</span><span style="color: #339933;">;</span>                 
                   case4<span style="color: #339933;">:</span>
                            <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">request</span>.<span style="color: #000066;">status</span><span style="color: #339933;">;</span>
	      <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>But in comparison, the main differences between this and the standard AJAX engine is the syntax in which it’s written, the way in which it is used and the speed with which it executes larger amounts of data. The following code is an example of how to use the AJAX object:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> ajax <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Ajax<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
ajax.<span style="color: #660066;">makeRequest</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'GET'</span><span style="color: #339933;">,</span> url<span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Another major change is the response handling, which gives us more control over the loading message and changes targeting of the AJAX engine’s methods. Here is an example of the entire request.js file for the XML request that we used in the standard engine using the new object-oriented engine:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> ajax <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Ajax<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">function</span> onResponse<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
      <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>ajax.<span style="color: #660066;">checkReadyState</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'body'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'loading...'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'loading...'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'loading...'</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #3366CC;">&quot;OK&quot;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
	     <span style="color: #003366; font-weight: bold;">var</span> response <span style="color: #339933;">=</span> ajax.<span style="color: #660066;">request</span>.<span style="color: #660066;">responseXML</span>.<span style="color: #660066;">documentElement</span><span style="color: #339933;">;</span>
             <span style="color: #003366; font-weight: bold;">var</span> header <span style="color: #339933;">=</span> response.<span style="color: #660066;">getElementsByTagName</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'header'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">firstChild</span>.<span style="color: #660066;">data</span><span style="color: #339933;">;</span>
     	     <span style="color: #003366; font-weight: bold;">var</span> header <span style="color: #339933;">=</span> response.<span style="color: #660066;">getElementsByTagName</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'copy'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">firstchild</span>.<span style="color: #660066;">data</span><span style="color: #339933;">;</span>
&nbsp;
  	     document.<span style="color: #660066;">GetElementById</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'body'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">innerHTML</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;&lt;b&gt; + header + &quot;</span><span style="color: #339933;">&lt;/</span>b<span style="color: #339933;">&gt;&lt;</span>br<span style="color: #339933;">/&gt;</span><span style="color: #3366CC;">&quot; + copy;
	}
}</span></pre></div></div>

<p>The code is cleaner and the separation is much easier to understand. Although the standard AJAX engine works fine for making requests, it can become cumbersome to maintain. With the object-oriented engine we can begin to add more power to our applications. </p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/JavascriptWorkshop?a=fxYJYIkF72g:cyUmcK2GgxI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/JavascriptWorkshop?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/JavascriptWorkshop/~4/fxYJYIkF72g" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.javascriptworkshop.com/2009/08/07/ajax-101-%e2%80%93-part-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.javascriptworkshop.com/2009/08/07/ajax-101-%e2%80%93-part-2/</feedburner:origLink></item>
		<item>
		<title>JavaScript Magazine – JsMag</title>
		<link>http://feedproxy.google.com/~r/JavascriptWorkshop/~3/E0Vs68XvkzQ/</link>
		<comments>http://www.javascriptworkshop.com/2009/07/27/javascript-magazine-jsmag/#comments</comments>
		<pubDate>Mon, 27 Jul 2009 20:05:02 +0000</pubDate>
		<dc:creator>Frank Stepanski</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[JavaScript topics]]></category>
		<category><![CDATA[JavaScript magazine]]></category>
		<category><![CDATA[JsMag]]></category>

		<guid isPermaLink="false">http://www.javascriptworkshop.com/?p=718</guid>
		<description><![CDATA[Even with all the information on the web today, it can be difficult to find current information on JavaScript sometimes. There are a few good web magazines out there, but none truly focus solely on JavaScript related topics. I recently found an online magazine called JsMag.
The magazine has some great information on topics such as [...]]]></description>
			<content:encoded><![CDATA[<p>Even with all the information on the web today, it can be difficult to find current information on JavaScript sometimes. There are a few good web magazines out there, but none truly focus solely on JavaScript related topics. I recently found an online magazine called <a target = "_blank" href="http://www.jsmag.com/">JsMag</a>.</p>
<p><a target="_blank" href="http://www.jsmag.com/"><img id="jsmag" align="right" src="http://www.javascriptworkshop.com/jsmag.jpg" alt="JsMag" /></a>The magazine has some great information on topics such as Ajax, code optimization, mashups, jQuery, web application testing, event handling, EXT JS, OOP, and much more. Its unique content, focusing on mainly JavaScript related topics, keeps me continously learning new things in the JavaScript world. Talented developers write different articles each month so content is always new and comes from different perspectives.</p>
<p>The monthly issues (.pdf) are only $4.99 or you can purchase a years subscription as well. It definitely is worth the small investment if you are a JavaScript developer or interested in learning more intermediate to advanced JavaScript topics. </p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/JavascriptWorkshop?a=E0Vs68XvkzQ:9GaOp_sFB0E:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/JavascriptWorkshop?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/JavascriptWorkshop/~4/E0Vs68XvkzQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.javascriptworkshop.com/2009/07/27/javascript-magazine-jsmag/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.javascriptworkshop.com/2009/07/27/javascript-magazine-jsmag/</feedburner:origLink></item>
		<item>
		<title>AJAX 101 – part 1</title>
		<link>http://feedproxy.google.com/~r/JavascriptWorkshop/~3/Q-xDLvsjFQk/</link>
		<comments>http://www.javascriptworkshop.com/2009/06/21/ajax-101-part-1/#comments</comments>
		<pubDate>Sun, 21 Jun 2009 18:43:01 +0000</pubDate>
		<dc:creator>Frank Stepanski</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[AJAX Basics]]></category>
		<category><![CDATA[AJAX Engine]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[XMLHTTPRequest]]></category>

		<guid isPermaLink="false">http://www.javascriptworkshop.com/?p=634</guid>
		<description><![CDATA[AJAX, an acronym for Asynchronous JavaScript and XML, is a group of technologies combines to accomplish powerful new forms of the web interactions. It&#8217;s composed of JavaScript, the XMLHTTPRequest object and XML, JSON, (X)HTML or even plain text. 
Asynchronous means that you can make an HTTP request to a server and continue to process other [...]]]></description>
			<content:encoded><![CDATA[<p><a target="_blank" href="http://en.wikipedia.org/wiki/Ajax_(programming)">AJAX</a>, an acronym for Asynchronous JavaScript and XML, is a group of technologies combines to accomplish powerful new forms of the web interactions. It&#8217;s composed of JavaScript, the XMLHTTPRequest object and XML, JSON, (X)HTML or even plain text. </p>
<p>Asynchronous means that you can make an HTTP request to a server and continue to process other data while waiting for the server’s response. For example, you can make requests to a server-side script to retrieve data from a database as XML, send data to a server-side script to be stored in a database or simple load a static XML file to populate pages of your web site without ever refreshing the page.</p>
<p>Behind the scenes data transfers are accomplished through the <a target="_blank" href="https://developer.mozilla.org/en/XmlHttpRequest">XMLHTTPRequest object</a>, which is the heart of the AJAX engine, as it&#8217;s used to exchange data asynchronously with a server-side language, XML or other text format. It combines with the DOM (Document Object Model) to display the AJAX response data as (X)HTML and CSS. </p>
<p>The DOM is a language-independent interface that makes common web page elements accessible through scripting languages. This is extremely useful when working with dynamic data, such as an AJAX response, because it can be parsed by JavsScript and added to page elements on the fly without a browser refresh.<br />
<span id="more-634"></span></p>
<p>In 1999, Microsoft brought the XMLHTTPRequest object to the web with the release of IE 5.0 as an ActiveX object that was available through JavaScript and VBScript. Since its creation, Mozilla and Apple and Opera have included it in their browsers as well (as a native object).</p>
<p>AJAX is a valuable connection between the interface and backend logic, enabling the backend to be robust and powerful with a simpler, yet intuitive interface that provides as on demand feedback to users. It also provides ways to exchange data with server-side languages and to store it in databases without disconnecting the user from the application, such as standard applications do when refreshing the browser window. </p>
<p><strong>The AJAX Engine</strong></p>
<p>The standard AJAX engine is based on the technologies that make up the acronym: the asynchronous functionality sends requests to a server, which are a type of two-way time delayed communication, enabling data to respond when it’s ready; JavaScript, which creates the object and makes the request and XML, could actually be XML, JSON (<a target="_blank" href="http://www.json.org/">JavaScript Object Notation</a>) or any other text format that the server returns as a response to the request. </p>
<p>The data that is returned could be a static file that’s updated by hand or can be a server-side script that returns database data in XML, JSON or another text format. </p>
<p>The standard AJAX engine is fairly simple and easy to learn, especially with prior knowledge of JavaScript and XML. The easiest way to create the AJAX engine is by adding a separate JavaScript file to your project and pointing to it from your (X)HTML. </p>
<p>This file will include all the methods (or functions) that make up this request. Here is how you make the request from your (X)HTML page.</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">title</span>&gt;</span> Introduction to Ajax <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">title</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">script</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/javascript&quot;</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;js/request.js&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">script</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">head</span>&gt;</span>
&nbsp;
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">body</span> <span style="color: #000066;">onload</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;javascript :makeRequest (‘path to…/filename’);&quot;</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span> <span style="color: #ff0000;">&quot;body&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">body</span>&gt;</span></pre></div></div>

<p>Notice that we&#8217;re pointing to the JavaScript source, called request.js in the script tag. This file will include the AJAX code.</p>
<p>When the page loads, you need to pass the path of the file that you’re requesting to a method that handles the request. This method, named makeRequest, will receive the path to the requested file and create the XMLHTTPRequest object:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>window.<span style="color: #660066;">XMLHttpRequest</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
        <span style="color: #006600; font-style: italic;">// IE7, IE8, Mozilla, Safari, etc.</span>
	request <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> XMLHttpRequest <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000066; font-weight: bold;">else</span> <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>window.<span style="color: #660066;">ActiveXObject</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
        <span style="color: #006600; font-style: italic;">// IE 6 and previous</span>
	<span style="color: #000066; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
            request <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> ActiveXObject<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Msxml2.XMLHTTP&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
         <span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #000066; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
               request <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> ActiveXObject<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Microsoft.XMLHTTP&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><span style="color: #009900;">&#125;</span>
         <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
sendRequest <span style="color: #009900;">&#40;</span>url<span style="color: #009900;">&#41;</span> <span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Internet Explorer 6 and before use the ActiveX object, while the more current Internet Explorer versions 7 and 8, as well as Firefox, Opera, and Safari all use the XMLHttpRequest object.</p>
<p>The URL parameter is the path that we passed to the method when the page loaded, this parameter is passed to the sendRequest method to complete the request:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> sendRequest <span style="color: #009900;">&#40;</span>ur<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
	request.<span style="color: #660066;">obreadystatechange</span> <span style="color: #339933;">=</span> onResponse<span style="color: #339933;">;</span>
	request.<span style="color: #000066;">open</span> <span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;GET&quot;</span><span style="color: #339933;">,</span> url<span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	request.<span style="color: #660066;">send</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>The sendRequest method uses the request object that was created in the previous method and triggers three additional method calls which are intrinsic to the request object. The first is the <a  target="_blank" href="http://www.w3schools.com/ajax/ajax_xmlhttprequest.asp">onreadystatechange</a>, which sets the callback method that we’ll create to handle the response of the request. </p>
<p>The second is the <a target="_blank" href="http://www.w3schools.com/ajax/ajax_server.asp">open</a> method, which included the HTTP request method, the URL or path to the file that we want to request and a Boolean (a true/false value) defining whethr the call is asynchronous, with true meaning asynchronous. </p>
<p>Lastly, the <a target="_blank" href="http://www.w3schools.com/ajax/ajax_server.asp">send</a> method takes additional parameters that can be sent as a query string to a server-side script.</p>
<p>Once the request has been made and the server returns a response, we need to check the readyState of the object to determine if the response has been completely loaded. The readyState included four states: zero is Uninitialised, one is Loading, two is Loaded, three is Interactive and four is Complete.</p>
<p>When the response is fully loaded the HTTP status code will equal 200, which means that the response data can then be accessed successfully. Below is an example of the checkReadyState method, which handles the different states:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> checkReadyState <span style="color: #009900;">&#40;</span>obj<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>obj.<span style="color: #660066;">readyState</span> <span style="color: #339933;">==</span> <span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
     <span style="color: #006600; font-style: italic;">// uninitialized</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>obj.<span style="color: #660066;">readyState</span> <span style="color: #339933;">==</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
     <span style="color: #006600; font-style: italic;">// loading</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>obj.<span style="color: #660066;">readyState</span> <span style="color: #339933;">==</span> <span style="color: #CC0000;">2</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
     <span style="color: #006600; font-style: italic;">// loaded</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>obj.<span style="color: #660066;">readyState</span> <span style="color: #339933;">==</span> <span style="color: #CC0000;">3</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
     <span style="color: #006600; font-style: italic;">// interactive</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>obj.<span style="color: #660066;">readyState</span> <span style="color: #339933;">==</span> <span style="color: #CC0000;">4</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
     <span style="color: #006600; font-style: italic;">// complete</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>obj.<span style="color: #000066;">status</span> <span style="color: #339933;">==</span> <span style="color: #CC0000;">200</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
     <span style="color: #006600; font-style: italic;">// successfully loaded return true:</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000066; font-weight: bold;">else</span>
<span style="color: #009900;">&#123;</span>
     <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #3366CC;">&quot;There was a problem retrieving the XML.&quot;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>As you can see, this method handles all the ready states and has the ability to display a custom message for each state. Once the state equals four, meaning that it has been fully loaded, the request status is checked. If it equals 200, the object has been successfully loaded and we can return to tell the response handler to process the data. If no custom error message is displayed. </p>
<p>This example only displays one message for all errors, but there are many HTTP states available, which are outlined by the World Wide Web Consortium and can be found on its web site (<a  target="_blank" href="http://www.w3.org/">www.w3c.org</a>).</p>
<p>Once the response data has been successfully loaded it’s ready to be parsed. There are two intrinsic methods for retrieving the response data, called &#8216;responseText&#8217; and &#8216;response XML&#8217;. The responseText method handles all text formats and can be used as a way to debug the response data. Here&#8217;s an example for loading HTML data:</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">b</span>&gt;</span> This is the header <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">b</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">br</span><span style="color: #66cc66;">/</span>&gt;</span>
This is the body</pre></div></div>

<p>This is a simple sample, but it shows that the HTML tags can be used in the response file and that they’ll render properly in requests. Using responseText to retrieve the data is as easy as using the following syntax in the callback method that we set in the (X)HTML page:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> onResponse <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>checkReadyState<span style="color: #009900;">&#40;</span>request<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
     document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'body'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">innerHTML</span> <span style="color: #339933;">=</span> request.<span style="color: #660066;">responseText</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000066; font-weight: bold;">else</span>
<span style="color: #009900;">&#123;</span>
     document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'body'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">innerHTML</span> <span style="color: #339933;">=</span> checkReadyState<span style="color: #009900;">&#40;</span>request<span style="color: #009900;">&#41;</span> <span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>This method displays the data or error message as a HTML tag. This works well when displaying plain text or (X)HTML, but if the request is JSON we need to evaluate the response and parse its properties. Here’s an example of the JSON data format:</p>
<p>{&#8216;header&#8217; : &#8216;This is the header&#8217;, &#8216;body&#8217;: &#8216;This is the body&#8217; }</p>
<p>The data is separated into two sections, the name and the value, by a colon. Additional data is separated by commas into new name/value pairs. Now that we know what the JSON format looks like, this is how we parse it as a response:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> onResponse <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>checkReadyState<span style="color: #009900;">&#40;</span>request<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
     <span style="color: #000066; font-weight: bold;">eval</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;var response = (&quot;</span> <span style="color: #339933;">+</span>request.<span style="color: #660066;">responseText</span><span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;)&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     document.<span style="color: #660066;">getElementByID</span><span style="color: #009900;">&#40;</span>‘body’<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">innerHTML</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;&lt;br&gt;&quot;</span> <span style="color: #339933;">+</span> response.<span style="color: #660066;">header</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;&lt;/b&gt;&lt;br/&gt;&quot;</span>
&nbsp;
     response.<span style="color: #660066;">body</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>The first thing to do when we receive the JSON data is evaluate and give it a name, this creates a JavaScript object from the data by the name that we gave it. Once we have the object created, we can call the properties of the object by name. for example, response.header gives us the value of the header.</p>
<p>The responseText is useful for all text formats, but when we want to parse XML we need to use the reponseXML method, which returns an XML object from XML response data. This object can be accessed by first targeting its root element with the following code:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> response <span style="color: #339933;">=</span> request.<span style="color: #660066;">responseXML</span>.<span style="color: #660066;">documentElement</span><span style="color: #339933;">;</span></pre></div></div>

<p>Once the root has been targeted properly the elements in the XML can be targeted by name and displayed in the page:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> header <span style="color: #339933;">=</span> response.<span style="color: #660066;">getElementByTagName</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'header'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">firstChild</span>.<span style="color: #660066;">data</span><span style="color: #339933;">;</span>
document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'copy'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">innerHTML</span> <span style="color: #339933;">=</span> header<span style="color: #339933;">;</span></pre></div></div>

<p>The standard AJAX engine is simple to create once you understand the different parts of the process. The only downfall is that you can have different versions of the request in multiple projects and this can become a hassle. </p>
<p>An object-oriented solution helps to avoid issues regarding redundant code, and will provide a more powerful engine. This will be dicussed in part 2 of this post.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/JavascriptWorkshop?a=Q-xDLvsjFQk:Rjfzojyob0U:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/JavascriptWorkshop?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/JavascriptWorkshop/~4/Q-xDLvsjFQk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.javascriptworkshop.com/2009/06/21/ajax-101-part-1/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.javascriptworkshop.com/2009/06/21/ajax-101-part-1/</feedburner:origLink></item>
		<item>
		<title>Database Web Development with ASP.NET Class</title>
		<link>http://feedproxy.google.com/~r/JavascriptWorkshop/~3/8iFIB9ftMUs/</link>
		<comments>http://www.javascriptworkshop.com/2009/06/10/database-web-development-with-aspnet-class/#comments</comments>
		<pubDate>Thu, 11 Jun 2009 02:31:29 +0000</pubDate>
		<dc:creator>Frank Stepanski</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Online classes]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[LVSOnline]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://www.javascriptworkshop.com/?p=626</guid>
		<description><![CDATA[I created a third ASP.NET online class called Database Web Development with ASP.NET at LVS Online.com.  
This 6-week class will focus on how you can interact with databases such as SQL Server, MySQL and Microsoft Access using ASP.NET and C#.  I start with the very basics on explaining how to use data source [...]]]></description>
			<content:encoded><![CDATA[<p>I created a third ASP.NET online class called <a target="_blank" href = "http://www.lvsassociates.com/register/product_info.php?products_id=294">Database Web Development with ASP.NET</a> at <a class="externalLink" href="http://www.lvsonline.com/">LVS Online.com</a>.  </p>
<p>This 6-week class will focus on how you can interact with databases such as <a target="_blank" href = "http://www.microsoft.com/express/sql/default.aspx">SQL Server</a>, <a  target="_blank" href="http://www.mysql.com/">MySQL</a> and <a target="_blank" href="http://office.microsoft.com/en-us/access/default.aspx">Microsoft Access</a> using ASP.NET and C#.  I start with the very basics on explaining how to use data source controls and objects in ADO.NET (Connection, Command, DataReader and DataSet) to retrieve, update and delete records in a database.</p>
<p>The great thing about ASP.NET is that you can work with almost any data source and are not limited to a Microsoft based technology. I provide a sample database in three separate versions (SQL Server, MySQL and Microsoft Access) and explain how SQL (Structure Query Language) statements are used to interact with your data.</p>
<p>The class is only $30 and there are no other materials or software needed.</p>
<p><strong>Topics Covered:</strong></p>
<p>Week 1: Database Overview (SQL Server, MySQL, Microsoft Access)<br />
Week 2: Using SqlDataSource; SELECT statement and filtering data<br />
Week 3: ADO.NET Review; Connection, Command and DataReader objects<br />
Week 4: Updating and Inserting data (using data controls and ADO.NET objects)<br />
Week 5: Databinding Techniques with GridView and DetailsView controls<br />
Week 6: Understanding Stored Procedures (SQL Server and MySQL)<br />
Extra: Concurrency issues and Transaction benefits</p>
<p>To give you an  idea of how each lesson looks, here is the <a target="_blank" href = "http://www.javascriptworkshop.com/wp-content/uploads/pdf/LVSOnline_ASPNETDatabase_wk1.pdf">first lesson</a> (.pdf).</p>
<p><strong>When Does Class Start?</strong></p>
<p>The class runs five times a year for six weeks in January, March, May, August and October.  To learn more view the <a target="_blank"  href="http://www.lvsassociates.com/register/product_info.php?cPath=5_50&#038;products_id=294">course description page </a>and <a href="http://www.javascriptworkshop.com/contact-me/">contact me</a> to find out the exact date on when you can register.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/JavascriptWorkshop?a=8iFIB9ftMUs:TCDOMRPGMLE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/JavascriptWorkshop?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/JavascriptWorkshop/~4/8iFIB9ftMUs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.javascriptworkshop.com/2009/06/10/database-web-development-with-aspnet-class/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.javascriptworkshop.com/2009/06/10/database-web-development-with-aspnet-class/</feedburner:origLink></item>
		<item>
		<title>Creating Even Faster Websites Podcast</title>
		<link>http://feedproxy.google.com/~r/JavascriptWorkshop/~3/mKfZxAGNDzk/</link>
		<comments>http://www.javascriptworkshop.com/2009/05/19/creating-even-faster-websites-podcast/#comments</comments>
		<pubDate>Tue, 19 May 2009 20:04:00 +0000</pubDate>
		<dc:creator>Frank Stepanski</dc:creator>
				<category><![CDATA[Podcasts]]></category>
		<category><![CDATA[efficient javascript]]></category>
		<category><![CDATA[improving website speed]]></category>
		<category><![CDATA[Podcast]]></category>
		<category><![CDATA[Steve Souders]]></category>

		<guid isPermaLink="false">http://www.javascriptworkshop.com/?p=611</guid>
		<description><![CDATA[Steve Souders is the author of ]]></description>
			<content:encoded><![CDATA[<p><a target="_blank" href="http://stevesouders.com/">Steve Souders</a> is the author of <a  target="_blank"" href="http://www.amazon.com/gp/product/0596529309?ie=UTF8&#038;tag=underwordp-20&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=0596529309">High Performance Web Sites</a> and the creator of <a target=_"blank" href="http://developer.yahoo.com/yslow/">YSlow</a>, the Firebug extension gave a presentation at SXSW09 about how to speed up website performance. </p>
<p>Steve, now working at Google, discussed the next set of best practices he&#8217;s developed, including advanced techniques for loading JavaScript, where not to place inline scripts, and the importance of using multiple domains to improve web performance.</p>
<p>Here are his <a target="_blank" href = "http://www.javascriptworkshop.com/wp-content/uploads/pdf/SXSW09-Faster_Websites.pdf">presentation notes</a> (.pdf) as well. <br/><br/></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/JavascriptWorkshop?a=mKfZxAGNDzk:tUi_YsEMwa0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/JavascriptWorkshop?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/JavascriptWorkshop/~4/mKfZxAGNDzk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.javascriptworkshop.com/2009/05/19/creating-even-faster-websites-podcast/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
<enclosure url="http://www.javascriptworkshop.com/wp-content/uploads/SXSW09_FasterWebsites.mp3" length="23514255" type="audio/mpeg" />
		<feedburner:origLink>http://www.javascriptworkshop.com/2009/05/19/creating-even-faster-websites-podcast/</feedburner:origLink></item>
		<item>
		<title>Understanding WordPress: Top Ten SEO Tips</title>
		<link>http://feedproxy.google.com/~r/JavascriptWorkshop/~3/pXQjCn37Mdk/</link>
		<comments>http://www.javascriptworkshop.com/2009/05/06/understanding-wordpress-top-ten-search-engine-tips/#comments</comments>
		<pubDate>Thu, 07 May 2009 01:51:41 +0000</pubDate>
		<dc:creator>Frank Stepanski</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[SEO]]></category>

		<guid isPermaLink="false">http://www.javascriptworkshop.com/?p=602</guid>
		<description><![CDATA[Some great tips I found on SEO:
http://www.understandingwordpress.com/blog/top-ten-search-engine-optimization-tips.html
]]></description>
			<content:encoded><![CDATA[<p>Some great tips I found on SEO:</p>
<p><a target="_blank" href="http://www.understandingwordpress.com/blog/top-ten-search-engine-optimization-tips.html">http://www.understandingwordpress.com/blog/top-ten-search-engine-optimization-tips.html</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/JavascriptWorkshop?a=pXQjCn37Mdk:Xa3F9fUF-ew:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/JavascriptWorkshop?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/JavascriptWorkshop/~4/pXQjCn37Mdk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.javascriptworkshop.com/2009/05/06/understanding-wordpress-top-ten-search-engine-tips/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.javascriptworkshop.com/2009/05/06/understanding-wordpress-top-ten-search-engine-tips/</feedburner:origLink></item>
		<item>
		<title>Understanding WordPress Online Courses</title>
		<link>http://feedproxy.google.com/~r/JavascriptWorkshop/~3/vrx0yhAaSvw/</link>
		<comments>http://www.javascriptworkshop.com/2009/04/24/understanding-wordpress-class/#comments</comments>
		<pubDate>Fri, 24 Apr 2009 14:05:19 +0000</pubDate>
		<dc:creator>Frank Stepanski</dc:creator>
				<category><![CDATA[Understanding WordPress]]></category>
		<category><![CDATA[Learning WordPress]]></category>
		<category><![CDATA[Online WordPress class]]></category>
		<category><![CDATA[WordPress class]]></category>
		<category><![CDATA[WordPress themes]]></category>
		<category><![CDATA[WordPress training]]></category>

		<guid isPermaLink="false">http://www.javascriptworkshop.com/?p=477</guid>
		<description><![CDATA[These courses are offered through this website and can be considered a &#8220;self-study&#8221; which includes email support from the instructor. 
Checkout http://www.understandingwordpress.com for more information and additional resources on WordPress.  

Introduction to WordPress: ($25) Six lessons guiding you step-by-step through all of the basic aspects of WordPress development.

Manual installation of WordPress software on a [...]]]></description>
			<content:encoded><![CDATA[<p>These courses <strong>are offered through this website</strong> and can be considered a &#8220;self-study&#8221; which includes email support from the instructor. </p>
<p>Checkout <a class="externalLink" href="http://www.understandingwordpress.com">http://www.understandingwordpress.com</a> for more information and additional resources on WordPress.  </p>
<p><br/></p>
<p><strong>Introduction to WordPress:</strong> ($25) Six lessons guiding you step-by-step through all of the basic aspects of WordPress development.</p>
<ul>
<li>Manual installation of WordPress software on a remote web server.</li>
<li>Understanding the Dashboard interface</li>
<li>Installing different themes to change your blog design.</li>
<li>How to use plugins to extend the functionality</li>
<li>How to market and monetize your blog</li>
<li>SEO tips and tricks</li>
<li>Review of WordPress template tags</li>
<li>Learn the basics of PHP syntax.</li>
<li>Creating a basic theme from scratch (including example files).</li>
<li>Code review of basic theme (line by line).</li>
</ul>
<p>View the complete <a  target="_blank" href="http://www.understandingwordpress.com/SampleLesson/Intro/Lesson1.pdf">first lesson</a> (.pdf) to give you an idea of how topics are covered.</p>
<form target="paypal" action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="9348809">
<input type="image" src="https://www.paypal.com/en_US/i/btn/btn_cart_SM.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
<img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1"><br />
</form>
<p><br/></p>
<p><strong>Intermediate WordPress:</strong> ($5) One lesson on how to setup and install a local &#8216;development&#8217; blog on your home computer.</p>
<p>Once you creating your online blog, you will probably want to continue &#8216;tweaking&#8217; it (themes, plugins, pages, etc.). Professional designers and developers always have a local environment to develop and test before it goes &#8216;live&#8217;. WordPress is no different.</p>
<ul>
<li>Easily install Apache, PHP, and MySQL on any Windows PC (or Mac)</li>
<li>Setup a local installation of WordPress as your local &#8216;development&#8217; blog site</li>
</ul>
<form target="paypal" action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="9348862">
<input type="image" src="https://www.paypal.com/en_US/i/btn/btn_cart_SM.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
<img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1"><br />
</form>
<p><br/></p>
<p><strong>Intermediate WordPress:</strong> ($15) Three lessons showing you how to create a theme from scratch.</p>
<ul>
<li>Blog design considerations</li>
<li>Development of a 3-column HTML/CSS theme mockup</li>
<li>Explanation and use of various WordPress template tags</li>
<li>Breaking up mockup to various template files</li>
<li>Understanding template files for use with static pages</li>
<li>Creation of a Magazine format <a target="_blank" href="http://www.understandingwordpress.com/SampleBlog">WordPress theme</a></li>
<li>Debugging and troubleshooting best practices</li>
<li>All files (JPG, HTML, CSS, PHP) included</li>
</ul>
<p>View a partial <a  target="_blank" href="http://www.understandingwordpress.com/SampleLesson/CreatingTheme/PartialLesson3.pdf">third lesson</a> (.pdf) to give you an idea of how topics are covered.</p>
<form target="paypal" action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="9422080">
<input type="image" src="https://www.paypal.com/en_US/i/btn/btn_cart_SM.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
<img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1"><br />
</form>
<p><br/></p>
<p><strong>Intermediate WordPress:</strong> ($5) One lesson on learning more useful plugins that can be used with your blog.</p>
<ul>
<li>Speed up your blog&#8217;s performance</li>
<li>Help you get more traffic</li>
<li>Give better search results</li>
<li>Display multiple posts more efficiently</li>
<li>Add a forum to your site</li>
</ul>
<form target="paypal" action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="9480561">
<input type="image" src="https://www.paypal.com/en_US/i/btn/btn_cart_SM.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
<img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1"><br />
</form>
<p></br><br />
<strong>When Do the Courses Start?</strong></p>
<p>You can start the class anytime you want since after you sign up, I will send you all the materials for class (lessons in PDF format).  When you have any questions about the material you can just send me an email. </p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/JavascriptWorkshop?a=vrx0yhAaSvw:WPqRZZu9vLw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/JavascriptWorkshop?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/JavascriptWorkshop/~4/vrx0yhAaSvw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.javascriptworkshop.com/2009/04/24/understanding-wordpress-class/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		<feedburner:origLink>http://www.javascriptworkshop.com/2009/04/24/understanding-wordpress-class/</feedburner:origLink></item>
		<item>
		<title>Interview with Lorelle VanFossen</title>
		<link>http://feedproxy.google.com/~r/JavascriptWorkshop/~3/ekWfld_yrJQ/</link>
		<comments>http://www.javascriptworkshop.com/2009/04/14/interview-with-lorelle-vanfossen/#comments</comments>
		<pubDate>Tue, 14 Apr 2009 07:44:22 +0000</pubDate>
		<dc:creator>Frank Stepanski</dc:creator>
				<category><![CDATA[Interviews]]></category>
		<category><![CDATA[blogging]]></category>
		<category><![CDATA[Interview]]></category>
		<category><![CDATA[Lorelle VanFossen]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.javascriptworkshop.com/?p=423</guid>
		<description><![CDATA[Lorelle VanFossen is considered one of top experts on blogging and WordPress in the world and can be regularly seen keynoting at large blogger conferences such as WordCamp and SOBcon. 
Lorelle was kind enough to give me some of her time to answer a few questions on blogging, analytics and the WordPress community.

JW: For people [...]]]></description>
			<content:encoded><![CDATA[<p><a class="externalLink" href="http://lorelle.wordpress.com">Lorelle VanFossen</a> is considered one of top experts on blogging and WordPress in the world and can be regularly seen keynoting at large blogger conferences such as <a class="externalLink" href="http://central.wordcamp.org/">WordCamp</a> and <a class="externalLink"  href="http://www.sobevent.com/">SOBcon</a>. </p>
<p>Lorelle was kind enough to give me some of her time to answer a few questions on blogging, analytics and the WordPress community.<br />
<span id="more-423"></span></p>
<p><strong>JW:</strong> For people who do not know you, would you mind giving a brief introduction of what you do and how blogging affects your life?</p>
<p><strong>Lorelle VanFossen:</strong> <a class="externalLink" href="http://lorelle.wordpress.com/about/" title="About">I blog</a>. I write technical and editorial articles on blogging, travel, web analytics, blogging, WordPress, blogging, and more WordPress, and some life and more travel.</p>
<p>I have several blogs and write for magazines, ezines, and other blogs, podcasts and even video blogs. I speak, teach, and present workshops on blogging, social media, WordPress, and web technology, as well as travel and writing, all over the world. I&#8217;m also a consultant for a variety of clients on social media and blogging, helping them to integrate social media marketing cultures into their businesses.</p>
<p>I&#8217;m also a major WordCamp fan and if I can get into a WordCamp anywhere in the world, whether as an attending fan, keynote, or presenter, I&#8217;m there &#8211; as much as I can be. Matt Mullenweg and I were in a race for most frequent flier miles. Last year, I finally lost to my friend. <img src='http://www.javascriptworkshop.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>I adore the WordPress Community. WordPress users want to work with WordPress users. They are the best people and I love working with them. Their needs are constantly in my mind when I write on <a class="externalLink" href="http://lorelle.wordpress.com/" title="Lorelle on WordPress" rel="tag">Lorelle on WordPress</a> or the <a class="externalLink"  href="http://www.blogherald.com/tag/wordpress-news/" title="Articles on WordPress News on the Blog Herald" rel="tag">Blog Herald WordPress News</a>. </p>
<p>Blogging is my life. It&#8217;s a platform for me to have my say and teach others about having their say.</p>
<p><strong>JW:</strong>  You&#8217;ve been blogging for over 10 years now, what made you first start?</p>
<p><strong>Lorelle VanFossen:</strong> There was no first start. Since the 1970s and 80s, I&#8217;ve been involved in the development of the web in all its forms. I had one of the first (and now oldest) websites in the world and its evolution to &#8220;blog&#8221; was just part of the process. For me, there has been no beginning or end. It&#8217;s part of the evolution of technology and publishing.</p>
<p><strong>JW:</strong>  What helps you generate ideas on what to post about?</p>
<p><strong>Lorelle VanFossen:</strong> Everything. <a class="externalLink"  href="http://lorelle.wordpress.com/2007/10/05/blog-struggles-the-search-for-blog-content/" title="The Search for Blog Content">Anything can be a blog post</a>. From a walk in the woods to a visit with a friend to a business meeting, conference, radio news item, book I&#8217;m reading&#8230;it doesn&#8217;t matter. Anything and everything can be written about and inspiration has no rules. It comes when it comes and if you are paying attention, your muse will guide you accordingly.</p>
<p>The issue for me is not to come up with the ideas but to find the time to write all the ideas down, then finding more time to actually turn a few of those into publishable content.</p>
<p><strong>JW:</strong>  Do you still track the analytics of your blog?</p>
<p><strong>Lorelle VanFossen:</strong> No. Lately, this makes people laugh. I work with <a class="externalLink"  href="http://www.woopra.com/" title="Woopra Real Time Live Web Analytics" rel="tag">Woopra</a>, the first live, real-time web analytics program, and it&#8217;s all about tracking the stats. But Woopra isn&#8217;t about tracking the numbers as much as the individuals.</p>
<p>Woopra changes the whole dynamics of web statistics. It&#8217;s not about the numbers. I don&#8217;t care about the numbers. I could have 5 visitors or 5,000. I don&#8217;t care. It&#8217;s what they take away from my site that matters. If I impact one person, my work is a success. If I can change the lives of a few more, I&#8217;ve overwhelmed and humbled.</p>
<p>It&#8217;s the personal touch that makes web analytics special with Woopra. Woopra turns those numbers into faces. Instead of tracking visitor 45398, I&#8217;m tracking Fred Smith or Alice Anderson through my blog. If they are using <a class="externalLink"  href="http://www.gravatar.com/" title="Gravatar" rel="tag">Gravatars</a>, I see their face or avatar in Woopra. I now have a name and face to go with the stats. I&#8217;m learning about what they enjoy reading, what they are searching for, what answers they want, and what they come back for. They become friends and acquaintances. I&#8217;m like a restaurateur, chatting up my customers to find out what they really want to eat in my restaurant. That&#8217;s what I want to put on my menu, making them want to come back for more.</p>
<p>We&#8217;re still in the early days of web analytics, and I fear that so many are taking the profiling path. I&#8217;m a huge fan of what Woopra is doing with analytics and stats, to track the individual not the numbers, and thrilled to be a part of something I think is going to change the face of the web.</p>
<p><strong>JW:</strong> What changes do you see in the future of blogging? </p>
<p><strong>Lorelle VanFossen:</strong> As I said, I believe that services like Woopra are going to change much of our experience on the web. The web is breaking down barriers in so many ways &#8211; we are still in diapers.</p>
<p>I see blogs becoming the focal point again in online communication. While services like Twitter and other social networks are growing quickly, there is only so much you can share within a 140 character limit. Sound bites. The world of relationships isn&#8217;t possible in 140 characters or less. But it&#8217;s a start.</p>
<p>A blog is becoming a business card and resume for many people. It is the center of their online experience, and many are returning to it, understanding that they need a place to showcase themselves and their thoughts and experiences. A referral point. People come from YouTube, social media services, networking groups, blog comments, and all over the web to find out who you are and what you do, and why should they trust what you say and do. </p>
<p>I see social networking expanding, but the blog returning to the center of people&#8217;s world as they integrate all their spheres of influence back into the core. </p>
<p>I also see that features like what <a class="externalLink" href="http://buddypress.org/" title="BuddyPress" rel="tag">BuddyPress</a> has to offer, integrating social network features into a blog, will change the blogging experience. The ability for people to group themselves within a blog by interests is fascinating &#8211; and distracting. It will be interesting to watch the evolution.</p>
<p><strong>JW:</strong>  How do you keep readers interested? </p>
<p><strong>Lorelle VanFossen:</strong> Give them what they want and more. Not more as in anything and everything or over the top sensationalism, but give them more than they want in bits and pieces so they will stay interested and enthused.</p>
<p>Over all, give them something to tell others about. Water cooler stories do much better than staid, home work exercises in writing. </p>
<p><strong>JW:</strong> With your busy schedule how do you schedule time to blog on a consistent basis? </p>
<p><strong>Lorelle VanFossen:</strong> I thrive on <a class="externalLink"  href="http://lorelle.wordpress.com/2006/10/01/working-ahead-future-posts-with-wordpress/" title="Working Ahead - Future Posts with WordPress">future posts</a> in WordPress. I work when I can and work ahead as much as possible. </p>
<p>Many bloggers are what I call <a class="externalLink"  href="http://www.blogherald.com/2008/01/23/the-art-of-the-weekend-blogger/" title="The Art of the Weekend Blogger | The Blog Herald">Weekend Bloggers</a>. They save up their time all week to pound out 1-7 posts on the weekend to release throughout the week, making them look like they are blogging every day. Sometimes I will do that or do 14 &#8211; 21 posts ahead, always finding something to write about.</p>
<p>Yet, it depends. A single blog post can take me a few minutes or weeks or months to finish. I keep an <a class="externalLink"  href="http://lorelle.wordpress.com/2007/10/10/blog-struggles-ideas-and-drafts/" title="Ideas and Drafts">Idea/Drafts file</a> with all my blog story ideas. I go through them frequently to see if a story is ready to publish, or what needs more work. It&#8217;s an ongoing process. </p>
<p>I think of blogging much like magazine publishing. It involves contributions from a lot of folks, from photographers to writers. The editor has to work with all the different contributors to plan and schedule the content for every issue. Some get pushed to the front due to their timeliness, and others get pushed back for later issues. The only difference between a blog and a magazine is that I&#8217;m the editor, publisher, photographer, writer, editorial manager, etc. </p>
<p>A while ago, I started a series called <a class="externalLink"  href="http://lorelle.wordpress.com/2007/10/04/new-article-series-blog-struggles/" title="New Article Series - Blog Struggles">Blog Struggles</a> about the real life of a blogger and the hard work that goes into blogging. It&#8217;s gotten an amazing response and resonated with so many. They loved that we&#8217;re finally talking about the elephant in the room that bloggers have to deal with but few talk about.</p>
<p>Blogging is my job, but it is also a part of my life. I work it in. When I&#8217;m traveling and working on not creating content for my blogs, I will actually go through withdrawal. Writing is my passion and I love working on stories to share with people. Luckily, it&#8217;s my job, too.</p>
<p><strong>JW:</strong> Do you think it is an easy transition for a writer to be a blogger? </p>
<p><strong>Lorelle VanFossen:</strong> Easy? To move from what kind of writer to writing blogs? That&#8217;s too open a question. </p>
<p>For technical writers moving to a technical blog, there is little transition. For creative or fiction writers, also not a big transition. It all depends upon the skill and training of the writer and what their goals are with their blog.</p>
<p>A few <a class="externalLink"  href="http://www.problogger.net/archives/2007/04/02/blogging-is-about-writing/" title="Blogging Is About Writing">key things a writer needs to know about writing online</a> are:</p>
<ul>
<li>Keywords: You must use words people search for in order to be found.</li>
<li>NO Pronouns: Stop using it, he, she, those, these, and other pronouns.</li>
<li>Shorter Paragraphs Increase Readability: Keep paragraphs short and break up multiple point paragraphs.</li>
<li>One Point Per Post: Keep your content to one point per post if possible.</li>
<li>Short versus Long Posts: If the writing is good, long posts will work. Don&#8217;t believe the myth that short posts are best. It depends upon the quality of writing and the points that need to be made.</li>
<li>It&#8217;s About Conversation: Writing for the web can be an ongoing conversation rather than a thesis, if you want interaction.</li>
<li>Write Linkable Content: If it ain&#8217;t worth linking to, consider not writing it. Make people want to talk and link to your content.</li>
</ul>
<p><strong>JW:</strong>  You have such great passion in your posts and about your industry, what advice do you have in novice bloggers? </p>
<p><strong>Lorelle VanFossen:</strong> Blog your passion, or don&#8217;t blog. </p>
<p>Don&#8217;t blog about what everyone else is blogging about. There are enough blogs about blogging, WordPress, celebrities&#8230;unless you can bring something special to the game, don&#8217;t blog.</p>
<p><strong>JW:</strong> I hear you have a talent for snow sculptures? What have you done lately? </p>
<p><strong>Lorelle VanFossen:</strong> I do indeed enjoy snow sculptures. A couple years ago I did a guitar, and I&#8217;ve done dinosaurs, reptiles, rats, people, dogs, cats, castles, and all kinds of things out of the beautiful but ethereal white stuff. </p>
<p>Unfortunately, a sledding accident this year ripped my shoulder, so sculpting was out for me during one of the best snow seasons in the Pacific Northwestern United States. My friend, Ed Morita of <a class="externalLink"  href="http://www.bakershours.com/" title="Baker’s Hours">Baker’s Hours</a>, the first person with a permanent WordPress tattoo, sent me a beautiful huge picture of a Chinese dragon he carved out of 30 pounds of chocolate to make up for my downtime. He&#8217;s inspiring me to consider trying chocolate carving for a longer lasting (and not so cold) creative experience.</p>
<p>Next year&#8230;I have a great list of ideas for sculptures inspired by the beautiful nature and wildlife we have here in Oregon, where we just moved and have made our new home base. </p>
<p><strong>JW:</strong> Thank you so much for your time.</p>
<p><strong>Lorelle VanFossen:</strong> And thank you for your support of the WordPress Community.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/JavascriptWorkshop?a=ekWfld_yrJQ:GsVl2fpD4pQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/JavascriptWorkshop?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/JavascriptWorkshop/~4/ekWfld_yrJQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.javascriptworkshop.com/2009/04/14/interview-with-lorelle-vanfossen/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.javascriptworkshop.com/2009/04/14/interview-with-lorelle-vanfossen/</feedburner:origLink></item>
		<item>
		<title>JavaScript: The Basics Class</title>
		<link>http://feedproxy.google.com/~r/JavascriptWorkshop/~3/AVZiqp-ZbKQ/</link>
		<comments>http://www.javascriptworkshop.com/2009/04/13/javascript-the-basics-class/#comments</comments>
		<pubDate>Mon, 13 Apr 2009 16:36:22 +0000</pubDate>
		<dc:creator>Frank Stepanski</dc:creator>
				<category><![CDATA[Online classes]]></category>
		<category><![CDATA[JavaScript class]]></category>
		<category><![CDATA[LVSOnline]]></category>
		<category><![CDATA[LVSOnline classes]]></category>
		<category><![CDATA[online teaching]]></category>

		<guid isPermaLink="false">http://www.javascriptworkshop.com/?p=413</guid>
		<description><![CDATA[I created a beginner JavaScript class called JavaScript: The Basics at LVS Online.com.  
This 6-week class will teach the students the basics of programming in general as well as the core concepts of using JavaScript. This will also prepare students to take my JavaScript: Unobtrusive Programming class.  JavaScript&#8217;s popularity is still on the [...]]]></description>
			<content:encoded><![CDATA[<p>I created a beginner JavaScript class called <a target="_blank" href = "http://www.lvsassociates.com/register/product_info.php?manufacturers_id=92&#038;products_id=54">JavaScript: The Basics</a> at <a class="externalLink" href="http://www.lvsonline.com/">LVS Online.com</a>.  </p>
<p>This 6-week class will teach the students the basics of programming in general as well as the core concepts of using JavaScript. This will also prepare students to take my <a href="http://www.javascriptworkshop.com/2008/08/01/javascript-unobtrusive-programming-lvs-onlinecom/">JavaScript: Unobtrusive Programming</a> class.  JavaScript&#8217;s popularity is still on the rise and this is a great way to get some experience on programming and understand what cool things you can do with this language.</p>
<p>The class is only $30 and there are no other materials or software needed.</p>
<p><strong>Topics Covered:</strong></p>
<p>Week 1: Components of JavaScript and ECMAScript<br />
Week 2: Data types, Arrays, and Conditional Statements: If..else, and switch<br />
Week 3: Writing Loops, Functions and Understanding Variable Scope<br />
Week 4: JavaScript Native Objects: Math, Date, Array and String<br />
Week 5: Browser Objects (Location, Screen, Forms, Images) and DOM Overview<br />
Week 6: Script Review and Common Troubleshooting</p>
<p>To give you an  idea of how each lesson looks, here is the <a target="_blank" href = "http://www.javascriptworkshop.com/wp-content/uploads/pdf/LVSOnline_JavaScriptBasics_wk1.pdf">first lesson</a> (.pdf).</p>
<p><strong>When Does Class Start?</strong></p>
<p>The class runs five times a year for six weeks in January, March, May, August and October.  To learn more view the <a target="_blank"  href="http://www.lvsassociates.com/register/product_info.php?cPath=5_18&#038;products_id=54">course description page </a>and <a href="http://www.javascriptworkshop.com/contact-me/">contact me</a> to find out the exact date on when you can register.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/JavascriptWorkshop?a=AVZiqp-ZbKQ:lbjs5RgDrMg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/JavascriptWorkshop?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/JavascriptWorkshop/~4/AVZiqp-ZbKQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.javascriptworkshop.com/2009/04/13/javascript-the-basics-class/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		<feedburner:origLink>http://www.javascriptworkshop.com/2009/04/13/javascript-the-basics-class/</feedburner:origLink></item>
		<item>
		<title>Interview with Christian Heilmann</title>
		<link>http://feedproxy.google.com/~r/JavascriptWorkshop/~3/-4BoqcwuVEY/</link>
		<comments>http://www.javascriptworkshop.com/2009/03/15/interview-with-chris-heilmann/#comments</comments>
		<pubDate>Sun, 15 Mar 2009 20:24:37 +0000</pubDate>
		<dc:creator>Frank Stepanski</dc:creator>
				<category><![CDATA[Interviews]]></category>
		<category><![CDATA[Christian Heilmann]]></category>
		<category><![CDATA[Interview]]></category>
		<category><![CDATA[JavaScript topics]]></category>
		<category><![CDATA[scripting enabled]]></category>
		<category><![CDATA[Yahoo]]></category>

		<guid isPermaLink="false">http://www.javascriptworkshop.com/?p=249</guid>
		<description><![CDATA[Christian Heilmann is an author of books such as Beginning JavaScript with DOM Scripting and Ajax: From Novice to Professional and Web Development Solutions: Ajax, APIs, Libraries, and Hosted Services Made Easy, speaks all around world as an International Developer Evangelist for Yahoo!, and is an all around Web guru. 
Christian was nice enough to [...]]]></description>
			<content:encoded><![CDATA[<p><a class="externalLink" href="http://www.wait-till-i.com/">Christian Heilmann</a> is an author of books such as <a class="externalLink" href="http://www.amazon.com/Beginning-JavaScript-DOM-Scripting-Ajax/dp/1590596803/">Beginning JavaScript with DOM Scripting and Ajax: From Novice to Professional</a> and <a class="externalLink" href="http://www.amazon.com/Web-Development-Solutions-Libraries-Services/dp/1590598067/">Web Development Solutions: Ajax, APIs, Libraries, and Hosted Services Made Easy</a>, speaks all around world as an International Developer Evangelist for Yahoo!, and is an all around Web guru. </p>
<p>Christian was nice enough to give me some of his time to answer questions about the future of the web, accessibility, conferences and of course JavaScript.</p>
<p><span id="more-249"></span></p>
<p><strong>JW:</strong> You recently wrote an article on <a class="externalLink" href="http://thinkvitamin.com/dev/web-development-is-moving-on-are-you/">ThinkVitamin</a> on how you have seen the changes in web development. Do you think that the web community will soon become stagnant because the hype of Web 2.0 has died down? </p>
<p><strong>Christian Heilmann:</strong> Actually no, I think there is now more of a need for good developers than ever. The hype in Web 2.0 resulted in a lot of products that needed to go out to the market yesterday and not in the four month they really need to be good products. Now that the rush and the silly money is ebbing down developers will have less illusions of grandeur and have to do a better job in producing products that work, are sustainable and maintainable and bring a longer-term revenue stream. </p>
<p>This means working more professionally and thinking about what we do rather than creating the next rounded corner, gradient and vowel dropping one month wonder.</p>
<p>Of course less will be produced, but that is totally fine by me. I&#8217;d rather see 4 new good products than 30 that die soon after being a TechCrunch article. </p>
<p><strong>JW:</strong> Do you have any tips for developers on how to communicate better to management the importance of quality code as opposed to just getting it to work? </p>
<p><strong>Christian Heilmann:</strong> Keep detailed reports on how much time had to be spent fixing issues caused by code shortcuts and &#8220;fix it now and we make it work later&#8221; decisions. Show examples of how other companies managed to release products faster and better by sticking to best practices and a defined code standard. </p>
<p>Ask why it is totally needed to follow defined processes in HR and PR but on the other hand everything in development should be played by ear. </p>
<p>I have set up a Wiki on the subject matter quite a while ago that has some good examples: <a class="externalLink" href="http://icant.co.uk/webstandardsforbusiness">http://icant.co.uk/webstandardsforbusiness</a>.</p>
<p>In any case you catch more flies with honey than with vinegar. Good code and clever development practices are first and foremost a safeguard for yourself and should be something you do to protect your own sanity. Best practices being ordered from top-down are never likely to work out but instead are more likely to cause unhappiness in the development team.</p>
<p><strong>JW:</strong> Late last year you organized a much needed workshop/conference called <a class="externalLink"  href="http://scriptingenabled.org/">Scripting Enabled</a>, which helped join web developers and users with disabilities better understand the importance of web accessibility.  Could you give us a quick review of how well it did?  </p>
<p><strong>Christian Heilmann:</strong> I am still amazed as to how smoothly the conference went given the ridiculous amount of real time and money I invested in it. I guess it is another sign that having a good network of people who are as excited as you are about a certain topic is the most important thing in making anything a success. </p>
<p>We had great speakers giving real hands-on information of how different disabilities affect the way you access the web and what barriers they face and we had a lot of developers on the second day working with this information to build interfaces that work around these issues. </p>
<p>Several new products started on the event and first and foremost I managed to bridge the gap between accessibility fans and developers a lot more than most of the other conferences did. All the slides are available, all the things that were built are described on a wiki and I am now releasing the videos bit by bit with transcriptions. </p>
<p>Right now I am working on an upcoming accessibility section for the <a class="externalLink"  href="http://developer.yahoo.com/">Yahoo Developer Network</a> and we&#8217;ll publish a lot of the information gathered and videos there soon. </p>
<p>What I am a bit disappointed is that not many people take on the idea &#8211; anybody can do an own scripting enabled and I&#8217;ll be happy to promote them for it but so far there was only a second one in the US. I think it is quite a step for people to say &#8220;I can do this&#8221;. </p>
<p><strong>JW:</strong> What do you think are the main reasons that web developers do not put more emphasis on development for accessibility?</p>
<p><strong>Christian Heilmann:</strong> I guess the biggest part is that accessibility is just not an integral part of the product roadmap. Most of the time developers get a design and have to implement it. Whilst we develop in agile ways the design process in most companies is still very much &#8220;make it pretty then send it to the developers&#8221;. Real accessibility comes from an open, iterative approach across the board that starts with user centered design rather than fixed interfaces. </p>
<p>Another reason is that there is a terribly large amount of myths and bad examples of accessibility out on the web. Instead of embracing the idea of accessibility &#8211; which includes a lot of flexibility &#8211; a lot of developers just want a quick solution to be able to say they&#8217;ve done something. </p>
<p>This is to a large degree the fault of the accessibility community itself &#8211; feedback is hard to get and if you get it a lot of truisms and old school thinking is coming back to you. Personally I am very worried about the gap between where web development is right now and where a lot of accessibility advocates consider it to still be. </p>
<p>There is an amazing amount of open source solutions for assistive technology and Firefox has a lot of great extensions. Yet most of the time you ask for testing with screen readers you will hear tales of woe of how expensive these are and how hard it is to install them and that is why we should all support really outdated versions running on Windows 2000 and IE6. </p>
<p>The biggest issue however is bad time planning &#8211; most of the time we are already behind on the delivery of our products which would make accessibility a luxury item. This is also caused by developers being overly optimistic about their own delivery skills &#8211; we are very much likely to under-estimate delivery times as we are such awesome developers who can do everything in 5 lines and 2 regular expressions. </p>
<p>You won&#8217;t find yourself able to rush a plumber into delivering a four hour job in one hour, but it is easy to do that with a developer. We also are happy to get more developers to release a product faster. This is not going to happen as with more developers you also add more collaboration overhead. Nine people can&#8217;t make a baby in a month.</p>
<p><strong>JW:</strong> Has the recent version of the <a class="externalLink" href="http://developer.yahoo.com/yui/">YUI library</a> (ver 2.6) focused enough on web accessibly in your opinion?</p>
<p><strong>Christian Heilmann:</strong> The groundwork is there and all YUI components can be built using progressive enhancement. There are <a class="externalLink" href="http://www.w3.org/TR/wai-aria/">ARIA</a> plugins available for the newer components, and this is where YUI3 is headed. It was a bit of a job to get all the things working and make sure we get the components up to current accessibility standards but I have to say I am very happy with where this is going. </p>
<p>Todd Kloots and Victor Tsaran are doing a sterling job with the 3.0 components and the need to re-write YUI for new Yahoo dependencies (the new homepage) kept the team very busy. I don&#8217;t know any other library other than <a class="externalLink" href="http://www.dojotoolkit.org/">Dojo</a> (which is a framework not a library) that does as good a job.</p>
<p><strong>JW:</strong> What are some web developers that really inspire you?</p>
<p><strong>Christian Heilmann:</strong> Ouh, a lot. I think one of the best all-round amazing guys I know is <a class="externalLink" href="http://simonwillison.net/">Simon Wilison</a>, then there is &#8220;Mr Pragmatic CSS&#8221; <a class="externalLink" href="http://simplebits.com/">Dan Cederholm</>. <a class="externalLink" href="http://ejohn.org/">John Resig</a> puts quite a stake in the ground when it comes to moving ahead in JavaScript technology and release numbers, <a class="externalLink" href="http://www.scottschiller.com/">Scott Schiller</a> pushes the envelope when it comes to interesting interfaces and multimedia functionality in JavaScript, <a class="externalLink" href="http://aralbalkan.com/">Aral Balkan</a> is a good channel into the Flash/Flex world, <a class="externalLink" href="http://juicystudio.com/">Gez Lemon</a> and <a class="externalLink" href="http://www.stevefaulkner.com/">Steve Faulkner</a> do great accessibility work&#8230; to name just a few. </p>
<p>Right now I get most inspired by people I work with who are not known names but release a lot of cool stuff to the outside world, and do my best to egg them on to get out more into the speaking and publishing world. Examples for those guys are <a class="externalLink" href="http://blog.ginader.de/">Dirk Ginader</a>, <a class="externalLink" href="http://www.i-marco.nl/weblog/">Marco van Hylckama-Vlieg</a>, <a class="externalLink" href="http://rajatpandit.com/">Rajat Pandit</a>, <a class="externalLink" href="http://www.workingwith.me.uk/">Neil Crosby</a>, <a class="externalLink" href="http://ianpouncey.com/">Ian Pouncey</a> and of course ex colleagues <a class="externalLink"  href="http://www.ejeliot.com/">Ed Eliot</a>, <a class="externalLink" href="http://muffinresearch.co.uk/">Stuart Colville</a>, <a class="externalLink" href="http://www.nodetraveller.com/blog/"> Lawrence Carvalho</a> and and and&#8230;</p>
<p>Frankly there are not many developers out there who have their eyes open that don&#8217;t inspire me.</p>
<p><strong>JW:</strong> Can you describe some of your duties as an International Developer Evangelist at Yahoo?</p>
<p><strong>Christian Heilmann:</strong> My job is mainly being a translator. I talk to the outside world about our products and other people&#8217;s products ours work well with or are in competition with. I talk internally about what I heard in the outside world what people want and what they struggle with. I train new developers and give tech talks in the different offices around the globe about things coming down the pipeline that will be of relevance soon and in general keep up with the market. </p>
<p>I&#8217;ve asked for this role as I found myself getting a lot of offers to speak at conferences, write articles and blog posts (and give interviews) and I didn&#8217;t have the time to do so. Now it is my job and I can bring good stuff to people I tried to reach for years.</p>
<p>I&#8217;ve been developing for a long time and proved my worth. I&#8217;d rather give more junior developers the chance to not have to make the same mistakes I had to go through but deliver better products instead. </p>
<p>That is why I am there to listen to their issues and find ways to explain new products internally and externally. A lot of bad code is being developed in companies because people don&#8217;t know how to talk to each other and people that should collaborate are oblivious that the others exist. I am here to fill this gap. </p>
<p>Right now I am doing a lot of work talking to other companies about what worked well for Yahoo in terms of building APIs, allowing developers access to our data and how to foster innovation in the company. It is thrilling to see how many companies are out there that could give us amazing data to play with but are not doing it because of easy to solve technical problems.</p>
<p><strong>JW:</strong>  Many of your <a class="externalLink" href="http://www.wait-till-i.com/presentations/">presentations</a> focus on script maintainability. Over the years do you believe that developers have made more of concerted effort in improving this?</p>
<p><strong>Christian Heilmann:</strong> I think we are on a good way of doing that. Far from concentrating on it as it is a lot more interesting to write yet another speed comparison of different libraries and to try to persuade each other what the best way of writing a loop is but I see good work being done. Especially when it comes to build scripts and processes we could do with a lot more collaboration and release information but the problem is in a lot of cases that this is information that is company specific.</p>
<p><strong>JW:</strong>  I heard that you do not own a television? Is this still true and how do you watch <a class="externalLink" href="http://www.topgear.com/">Top Gear</a> (my favorite show)?</p>
<p><strong>Christian Heilmann:</strong> That is still true, as I just explained in another letter to the <a class="externalLink" href="http://www.bbc.co.uk/info/licencefee/">TV Licensing people</a> who are very much confused about this. To answer the Top Gear question,  I don&#8217;t as I don&#8217;t have a car either (would be pointless living in zone 2 in London). I&#8217;ve seen a few episodes on planes and in the gym on the bicycle but that is about it. </p>
<p>I liked what I saw but it doesn&#8217;t beat <a class="externalLink" href="http://www.tv.com/the-big-bang-theory/show/58056/summary.html">Big Bang Theory</a> by a long shot <img src='http://www.javascriptworkshop.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>JW:</strong> Thank you so much for your time.</p>
<p><strong>Christian Heilmann:</strong> Thank you for being interested in what I do and say and challenging me with some interesting questions. I am better in answering them live, but I hope I managed to get something good out there. Keep playing, the web is yours!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/JavascriptWorkshop?a=-4BoqcwuVEY:HjNWiBzM8m0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/JavascriptWorkshop?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/JavascriptWorkshop/~4/-4BoqcwuVEY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.javascriptworkshop.com/2009/03/15/interview-with-chris-heilmann/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.javascriptworkshop.com/2009/03/15/interview-with-chris-heilmann/</feedburner:origLink></item>
		<item>
		<title>PHP Style Switcher</title>
		<link>http://feedproxy.google.com/~r/JavascriptWorkshop/~3/hK9b4VlNMdk/</link>
		<comments>http://www.javascriptworkshop.com/2009/02/12/php-style-switcher/#comments</comments>
		<pubDate>Thu, 12 Feb 2009 05:00:45 +0000</pubDate>
		<dc:creator>Frank Stepanski</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[PHP Style Switcher]]></category>
		<category><![CDATA[Style Switcher]]></category>

		<guid isPermaLink="false">http://www.javascriptworkshop.com/?p=247</guid>
		<description><![CDATA[A while ago, I wrote a post on how to create a JavaScript Style Switcher, but recently I found the need to create a PHP based one. There are many ways to do this in PHP using sessions, arrays, cookies, etc. I created one that only takes a few lines of code and is super [...]]]></description>
			<content:encoded><![CDATA[<p>A while ago, I wrote a post on how to create a <a href="http://www.javascriptworkshop.com/2007/06/16/june-meeting-javascript-style-switcher/">JavaScript Style Switcher</a>, but recently I found the need to create a PHP based one. There are many ways to do this in PHP using sessions, arrays, cookies, etc. I created one that only takes a few lines of code and is super easy to implement.</p>
<p>This <a class="externalLink" href="http://www.javascriptworkshop.com/PHPWebHost/php_css_switcher/index.php">PHP Style Switcher</a> can be done in two easy steps.</p>
<p><strong>Step One: Setting styles</strong></p>
<p>The first step is to create a new file on your server named <strong>switcher.php</strong> and paste the following code into it:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #666666; font-style: italic;">/* expire in 1 year */</span>
<span style="color: #990000;">setcookie</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;sitestyle&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'set'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #990000;">time</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #cc66cc;">31536000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Location: <span style="color: #006699; font-weight: bold;">$HTTP_REFERER</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>When it&#8217;s queried, this file will write a cookie for the user detailing which site style to use. The cookie is set to expire in one year, and then the script sends the user back to the referring page. All of this happens behind the scenes, so the user will never really &#8220;see&#8221; switcher.php in action. </p>
<p>Telling switcher.php which site style to use is an equally simple matter. You can query it using conventional HREF links in text, images, or even flash</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;switcher.php?set=red&quot;</span>&gt;</span>change to RED style!<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;</span></pre></div></div>

<p><strong>Step Two: Detecting styles</strong></p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">link</span> <span style="color: #000066;">rel</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;stylesheet&quot;</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/css&quot;</span> <span style="color: #000066;">media</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;screen&quot;</span></span>
<span style="color: #009900;"><span style="color: #000066;">title</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;User Defined Style&quot;</span><span style="color: #ff0000;">' href=&quot;&lt;?php echo </span>
<span style="color: #009900;">(!$_COOKIE[&quot;sitestyle&quot;]) </span>
<span style="color: #009900;">?'</span>default<span style="color: #ff0000;">':$_COOKIE[&quot;sitestyle&quot;] </span>
<span style="color: #009900;">?&gt;</span></span>.css&quot; /&gt;</pre></div></div>

<p>This tiny script detects which style is in the user’s cookies and prints out the result. If the user doesn’t have cookies enabled, or just hasn’t chosen a site style for themselves yet, the script will default to &#8220;default.css&#8221;. </p>
<p>So there you have it. A cross-browser, backwards-compatible, forwards-compatible, standards-compliant style sheet switcher in just five lines of code. It’s fast, straightforward, and universally accessible because there’s no processing done on the client side.</p>
<p>Here is the <a href="http://www.javascriptworkshop.com/PHPWebHost/php_css_switcher/php_css_switcher.zip" >code</a> (.zip) as well for you to review.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/JavascriptWorkshop?a=hK9b4VlNMdk:kc3qWQ6IEc8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/JavascriptWorkshop?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/JavascriptWorkshop/~4/hK9b4VlNMdk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.javascriptworkshop.com/2009/02/12/php-style-switcher/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		<feedburner:origLink>http://www.javascriptworkshop.com/2009/02/12/php-style-switcher/</feedburner:origLink></item>
		<item>
		<title>Intermediate Web Development with ASP.NET Class</title>
		<link>http://feedproxy.google.com/~r/JavascriptWorkshop/~3/lS0-8Q4WBV8/</link>
		<comments>http://www.javascriptworkshop.com/2009/01/18/intermediate-web-development-with-aspnet-lvs-onlinecom/#comments</comments>
		<pubDate>Sun, 18 Jan 2009 04:28:44 +0000</pubDate>
		<dc:creator>Frank Stepanski</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Online classes]]></category>
		<category><![CDATA[LVSOnline classes]]></category>
		<category><![CDATA[online teaching]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.javascriptworkshop.com/?p=246</guid>
		<description><![CDATA[I created a second ASP.NET online class called Intermediate Web Development with ASP.NET at LVS Online.com.  
This 6-week class will continue from my Beginning Web Development with ASP.NET  class and focus more on &#8216;real-world&#8217; ASP.NET programming topics.  Since the first class focused on getting you up to speed on how ASP.NET works [...]]]></description>
			<content:encoded><![CDATA[<p>I created a second ASP.NET online class called <a target="_blank" href = "http://www.lvsassociates.com/register/product_info.php?products_id=273">Intermediate Web Development with ASP.NET</a> at <a class="externalLink" href="http://www.lvsonline.com/">LVS Online.com</a>.  </p>
<p>This 6-week class will continue from my <a href="http://www.javascriptworkshop.com/2008/04/15/beginning-web-development-with-aspnet-lvs-onlinecom/">Beginning Web Development with ASP.NET </a> class and focus more on &#8216;real-world&#8217; ASP.NET programming topics.  Since the first class focused on getting you up to speed on how ASP.NET works and the C# programming language, this intermediate class lets you take those skills in developing ASP.NET web sites.</p>
<p>The class is only $30 and there are no other materials or software needed.</p>
<p><strong>Topics Covered:</strong></p>
<p>Week 1: Master Page Basics<br />
Week 2: Creating an ASP.NET Website from and HTML/CSS Design<br />
Week 3: View State, Query String, Cookies, and Session State<br />
Week 4: OOP: Building Your Own Objects<br />
Week 5: Creating Your Own Controls: User Controls<br />
Week 6: Error Handling<br />
Extra: &nbsp;&nbsp; Website Navigation: Building a SiteMap</p>
<p>To give you an  idea of how each lesson looks, here is the <a target="_blank" href = "http://www.javascriptworkshop.com/wp-content/uploads/pdf/LVSOnline_ASPNETIntermediate_wk1.pdf">first lesson</a> (.pdf).</p>
<p><strong>When Does Class Start?</strong></p>
<p>The class runs five times a year for six weeks in January, March, May, August and October.  To learn more view the <a target="_blank"  href="http://www.lvsassociates.com/register/product_info.php?cPath=5_18&#038;products_id=273">course description page </a>and <a href="http://www.javascriptworkshop.com/contact-me/">contact me</a> to find out the exact date on when you can register.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/JavascriptWorkshop?a=lS0-8Q4WBV8:GU1nSELnSZc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/JavascriptWorkshop?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/JavascriptWorkshop/~4/lS0-8Q4WBV8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.javascriptworkshop.com/2009/01/18/intermediate-web-development-with-aspnet-lvs-onlinecom/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://www.javascriptworkshop.com/2009/01/18/intermediate-web-development-with-aspnet-lvs-onlinecom/</feedburner:origLink></item>
		<item>
		<title>XML with ActionScript 3.0 Examples</title>
		<link>http://feedproxy.google.com/~r/JavascriptWorkshop/~3/bI1LqvPFfTQ/</link>
		<comments>http://www.javascriptworkshop.com/2008/12/29/integrating-xml-with-actionscript-30/#comments</comments>
		<pubDate>Tue, 30 Dec 2008 03:15:06 +0000</pubDate>
		<dc:creator>Frank Stepanski</dc:creator>
				<category><![CDATA[Adobe Flash]]></category>
		<category><![CDATA[ActionScript 3.0]]></category>
		<category><![CDATA[Flash CS3]]></category>
		<category><![CDATA[Image Slide Show]]></category>
		<category><![CDATA[Music Juke Box]]></category>
		<category><![CDATA[News Reader]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.javascriptworkshop.com/?p=243</guid>
		<description><![CDATA[On a previous post I talked about the basics of XML so I thought I&#8217;d show some examples of how to incorporate XML with Flash.
Since XML is primarily used to store and transfer data, it makes for a nice flexible way to store data that Flash applications can use. Since it&#8217;s external to your SWF [...]]]></description>
			<content:encoded><![CDATA[<p>On a <a href="http://www.javascriptworkshop.com/2007/09/09/xml-basics-video-tutorials/">previous post</a> I talked about the basics of XML so I thought I&#8217;d show some examples of how to incorporate XML with Flash.</p>
<p>Since XML is primarily used to store and transfer data, it makes for a nice flexible way to store data that Flash applications can use. Since it&#8217;s external to your SWF file, it can be easily updated.  So whether your Flash application pulls in data for a <strong>News Reader</strong> or a <strong>Slide Show</strong> or <strong>Music Juke Box</strong>, any change will be dynamic and ready to go.</p>
<p>These examples use ActionScript 3.0, which allows for easier manipulation of XML data compared to previous versions of AS.  I broke up the three examples into three parts so you can see the evolution of each example and can follow it better with a gradual change in the AS code (saved as Flash CS3).</p>
<p><span id="more-243"></span></p>
<p><strong>News Reader</strong></p>
<p>In this Flash example (like the other two as well), I show you how to pull information into Flash and parse the information needed into an text field, dynamically loop through the XML file, and add HTML and CSS styling to the text field.</p>
<p>Here is the <a class="externalLink" href= "http://www.javascriptworkshop.com/PHPWebHost/FlashXML/NewsReader/NewsReader-part3.html">finished version</a> and the <a href="http://www.javascriptworkshop.com/wp-content/uploads/zip/FlashXML_NewsReader.zip">source files</a> (.zip).</p>
<p><strong>Slide Show</strong></p>
<p>There are so many Flash slide shows on the web and most use an XML file to store the image properties (url, title, description, etc) of each. This way updating is separate from the re-publishing the FLA and anyone can do it.</p>
<p>This application not only uses the <a class="externalLink" href = "http://help.adobe.com/en_US/AS3LCR/Flash_10.0/XMLList.html">XMLList</a> object, but the <a class = "externalLink" href="http://help.adobe.com/en_US/AS3LCR/Flash_10.0/fl/containers/UILoader.html"> UILoader</a>  component and the <a class="externalLink" href="http://help.adobe.com/en_US/AS3LCR/Flash_10.0/flash/utils/Timer.html">Timer</a> class (rotate image every 3 seconds). </p>
<p><strong>note:</strong> You could create a custom loader for the loading of the images by either using the Progress Bar component or creating your own.</p>
<p>In AS 3.0, a <u>simple pre-loader</u> would look something like this:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;">loaderInfo.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>ProgressEvent.<span style="color: #006600;">PROGRESS</span>, onProgress<span style="color: #66cc66;">&#41;</span>;
loaderInfo.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">COMPLETE</span>, onComplete<span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> onProgress<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>:ProgressEvent<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
<span style="color: #66cc66;">&#123;</span>
     <span style="color: #000000; font-weight: bold;">var</span> <span style="color: #0066CC;">loaded</span>:<span style="color: #0066CC;">Number</span> = <span style="color: #0066CC;">e</span>.<span style="color: #0066CC;">target</span>.<span style="color: #0066CC;">bytesLoaded</span>;
     <span style="color: #000000; font-weight: bold;">var</span> total:<span style="color: #0066CC;">Number</span> = <span style="color: #0066CC;">e</span>.<span style="color: #0066CC;">target</span>.<span style="color: #0066CC;">bytesTotal</span>;
     <span style="color: #000000; font-weight: bold;">var</span> pct:<span style="color: #0066CC;">Number</span> = <span style="color: #0066CC;">loaded</span><span style="color: #66cc66;">/</span>total;
     loader_mc.<span style="color: #006600;">scaleX</span> = pct;
     loaded_txt.<span style="color: #0066CC;">text</span> = <span style="color: #ff0000;">&quot;Loading... &quot;</span>; 
     loaded_txt += <span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">round</span><span style="color: #66cc66;">&#40;</span>pct <span style="color: #66cc66;">*</span> <span style="color: #cc66cc;">100</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> + <span style="color: #ff0000;">&quot;%&quot;</span>;
<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> onComplete<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>:Event<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
<span style="color: #66cc66;">&#123;</span>
    <span style="color: #808080; font-style: italic;">// show something</span>
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>Here is the <a class="externalLink" href= "http://www.javascriptworkshop.com/PHPWebHost/FlashXML/SlideShow/SlideShow-part3.html">finished version</a> and the <a href="http://www.javascriptworkshop.com/wp-content/uploads/zip/FlashXML_SlidesShow.zip">source files</a> (.zip).</p>
<p><strong>Music Juke Box</strong></p>
<p>Finally another use of XML would be to create a song Juke Box to play different MP3 files. This project uses previous techniques of the first two projects plus the <a class="externalLink" href = "http://help.adobe.com/en_US/AS3LCR/Flash_10.0/flash/media/Sound.html">Sound</a> and <a class="externalLink" href = "http://help.adobe.com/en_US/AS3LCR/Flash_10.0/flash/media/SoundChannel.html">SoundChannel</a> class. </p>
<p>This project focuses a little more on programming since how to load and parse and XML file have been already covered in the first two projects so it’s a nice finishing project on how to create a simple Flash application.</p>
<p>Here is the <a class="externalLink" href= "http://www.javascriptworkshop.com/PHPWebHost/FlashXML/JukeBox/JukeBox-part3.html">finished version</a> and the <a href="http://www.javascriptworkshop.com/wp-content/uploads/zip/FlashXML_JukeBox.zip">source files</a> (.zip).</p>
<p><strong>note:</strong> If you want a more robust example of a Music Juke Box (pause, volume slider, etc), then take a look at this <a class = "externalLink" href="http://www.javascriptworkshop.com/PHPWebHost/FlashXML/AdvancedJukeBox/AdvancedJukebox.html">example</a> and <a href="http://www.javascriptworkshop.com/wp-content/uploads/zip/FlashXML_AdvancedJukeBox.zip">source code</a> (.zip) created by Craig Campbell.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/JavascriptWorkshop?a=bI1LqvPFfTQ:0eboVd0LC_I:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/JavascriptWorkshop?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/JavascriptWorkshop/~4/bI1LqvPFfTQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.javascriptworkshop.com/2008/12/29/integrating-xml-with-actionscript-30/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.javascriptworkshop.com/2008/12/29/integrating-xml-with-actionscript-30/</feedburner:origLink></item>
		<item>
		<title>New Features in Flash CS4</title>
		<link>http://feedproxy.google.com/~r/JavascriptWorkshop/~3/6McApDkx4nU/</link>
		<comments>http://www.javascriptworkshop.com/2008/12/18/new-features-in-flash-cs4/#comments</comments>
		<pubDate>Thu, 18 Dec 2008 18:48:39 +0000</pubDate>
		<dc:creator>Frank Stepanski</dc:creator>
				<category><![CDATA[Adobe Flash]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[animation effects]]></category>
		<category><![CDATA[Flash CS4]]></category>

		<guid isPermaLink="false">http://www.javascriptworkshop.com/?p=242</guid>
		<description><![CDATA[With the recent release of Flash CS4, I&#8217;d thought I&#8217;d cover some of the highlights of the new features. 
Interface
The  user interface has been overhauled to match all of the adobe creative suite tools. It may take some users a little while to get used to it, but it seems to be for the [...]]]></description>
			<content:encoded><![CDATA[<p>With the recent release of Flash CS4, I&#8217;d thought I&#8217;d cover some of the highlights of the new features. </p>
<p><strong>Interface</strong><br />
The <a class="externalLink" href = "http://www.javascriptworkshop.com/flashCS4-interface.jpg"> user interface</a> has been overhauled to match all of the adobe creative suite tools. It may take some users a little while to get used to it, but it seems to be for the better. </p>
<p><strong>Tweening Engine</strong><br />
The timeline&#8217;s tweening engine now supports object-based animation with motion tweening. What this means is that you do not have to create a new keyframe, modify your symbol then create the motion tween (&#8220;Create Classic Tween&#8221;). </p>
<p>All you have to do now is create your symbol and then add a motion tween to that object. The containing layer becomes a &#8220;tween layer&#8221; which has a unique layer icon and ending keyframe (diamond). The motion tween includes a motion guide giving you full control of the animation itself (even with the free transform tool).</p>
<p><strong>Motion Editor</strong><br />
The Motion Editor gives you a graph of all the properties of your object (symbol).  This allows for a great overview of your animation properties (rotation, easing, etc) and allows for fine-tune control. A neat feature is the added options of Easing for each of the animation properties.<br />
<span id="more-242"></span><br />
<strong>Motion Preset</strong><br />
You can save any of your animations as a &#8220;Motion Preset&#8221; and can use many of the predefined Default Preset animations on any object (can be used like a library of animations).</p>
<p><strong>3D Support</strong><br />
3D support is now available and allows animators to create cool 3D effects with two new tools in the toolbox: 3D Rotation Tool and 3D Translation Tool. The 3D Translation Tool allows moving an object (symbol) in the x, y and z axis. </p>
<p><strong>Bones &#8211; kinematics</strong><br />
The new &#8220;Bones&#8221; feature is a new tool in the toolbox (Bone) that allows you to create animated objects that behave like a skeleton.  So you can have many symbols that together follow the same &#8220;bone structure&#8221;.  A neat use for this would also be applying a bone structure to a solid shape which would give it a cool shape tween effect. This would be almost impossible to do in previous versions of Flash.</p>
<p><strong>Adobe Media Encoder</strong><br />
Adobe changed the name of the Flash Video Encoder to Adobe media Encoder because it is capable of encoding a lot of different types of files. You can still import video files like you normally did in Flash (Import -> Import Video) and go through that wizard to convert it to FLV/F4V formats. </p>
<p>The encoder gives you options for the type of codec, bitrate, frame rate, batch encoding, etc. Check oout this <a class = "externalLink" href="http://www.javascriptworkshop.com/PHPWebHost/CS4_Flash_Video/index.html">video</a> to learn more.</p>
<p><strong>Project Panel</strong><br />
The new Project Panel (acquired from <a class="externalLink" href = "http://www.gskinner.com/products/gProject/about.php">gskinner.com</a>) allows developers to easily create new .fla and .as (class) files.  Class files can now have fully customizable starter code created for them as well. </p>
<div id="update">
Check out this <a class="externalLink" href="http://www.javascriptworkshop.com/PHPWebHost/CS4_Flash_New_Features/index.html">video</a> showing many of the new features of Flash CS4 and the official <a class="externalLink" href = "http://www.javascriptworkshop.com/wp-content/uploads/pdf/flash_cs4_help.pdf#page=9">Flash CS4 documentation</a> (.pdf) from Adobe.</div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/JavascriptWorkshop?a=6McApDkx4nU:0Sl0JULTb4M:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/JavascriptWorkshop?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/JavascriptWorkshop/~4/6McApDkx4nU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.javascriptworkshop.com/2008/12/18/new-features-in-flash-cs4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.javascriptworkshop.com/2008/12/18/new-features-in-flash-cs4/</feedburner:origLink></item>
		<item>
		<title>Free CSS Book</title>
		<link>http://feedproxy.google.com/~r/JavascriptWorkshop/~3/REIqzsPo9oY/</link>
		<comments>http://www.javascriptworkshop.com/2008/12/10/free-css-book/#comments</comments>
		<pubDate>Thu, 11 Dec 2008 01:05:37 +0000</pubDate>
		<dc:creator>Frank Stepanski</dc:creator>
				<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://www.javascriptworkshop.com/?p=240</guid>
		<description><![CDATA[Last month, Sitepoint.com was giving away its great CSS book: The Art &#038; Science of CSS in PDF format. It covers topics such as headings, images, backgrounds, navigation, forms, rounded corners, and tables. 
Here is a copy (.pdf) if you didn&#8217;t get yours.
]]></description>
			<content:encoded><![CDATA[<p>Last month, Sitepoint.com was giving away its great CSS book: The Art &#038; Science of CSS in PDF format. It covers topics such as headings, images, backgrounds, navigation, forms, rounded corners, and tables. </p>
<p>Here is a <a class="externalLink" href="http://www.javascriptworkshop.com/wp-content/uploads/pdf/Art_Science_Of_CSS.pdf">copy</a> (.pdf) if you didn&#8217;t get yours.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/JavascriptWorkshop?a=REIqzsPo9oY:KPmtfbFc62E:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/JavascriptWorkshop?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/JavascriptWorkshop/~4/REIqzsPo9oY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.javascriptworkshop.com/2008/12/10/free-css-book/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.javascriptworkshop.com/2008/12/10/free-css-book/</feedburner:origLink></item>
		<item>
		<title>10 Ways to Speed Web Page Download Time</title>
		<link>http://feedproxy.google.com/~r/JavascriptWorkshop/~3/sN_4sYV9HHA/</link>
		<comments>http://www.javascriptworkshop.com/2008/11/27/10-ways-to-speed-web-page-download-time/#comments</comments>
		<pubDate>Thu, 27 Nov 2008 06:42:11 +0000</pubDate>
		<dc:creator>Frank Stepanski</dc:creator>
				<category><![CDATA[Web stuff]]></category>
		<category><![CDATA[page downloading]]></category>
		<category><![CDATA[Speeding web pages]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://www.javascriptworkshop.com/?p=216</guid>
		<description><![CDATA[We all want or pages to load as fast as possible. But when we develop our site, time constraints may prevent us from properly designing it for speed. Here are a few tips that should help:
1. Lay out your pages with CSS, not tables
2. Don&#8217;t use images to display text
3. Call up decorative images through [...]]]></description>
			<content:encoded><![CDATA[<p>We all want or pages to load as fast as possible. But when we develop our site, time constraints may prevent us from properly designing it for speed. Here are a few tips that should help:</p>
<p>1. Lay out your pages with CSS, not tables<br />
2. Don&#8217;t use images to display text<br />
3. Call up decorative images through CSS<br />
4. Use contextual selectors<br />
5. Use shorthand CSS properties<br />
6. Minimize white space, line returns and comment tags<br />
7. Use relative call-ups<br />
8. Remove unnecessary META tags and META content<br />
9. Put CSS and JavaScript into external documents<br />
10. Use / at the end of directory links</p>
<p>For a more detailed explanantion read over this <a class = "externalLink" href = "http://www.javascriptworkshop.com/wp-content/uploads/pdf/SpeedUp_WebPages.pdf"> article</a> (.pdf).</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/JavascriptWorkshop?a=sN_4sYV9HHA:l6qsYzdaUmA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/JavascriptWorkshop?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/JavascriptWorkshop/~4/sN_4sYV9HHA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.javascriptworkshop.com/2008/11/27/10-ways-to-speed-web-page-download-time/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.javascriptworkshop.com/2008/11/27/10-ways-to-speed-web-page-download-time/</feedburner:origLink></item>
	</channel>
</rss>
