<?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/" 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>Sun, 21 Jun 2009 19:29:36 +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" href="http://feeds.feedburner.com/JavascriptWorkshop" type="application/rss+xml" /><feedburner:emailServiceId xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">JavascriptWorkshop</feedburner:emailServiceId><feedburner:feedburnerHostname xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://feedburner.google.com</feedburner:feedburnerHostname><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>AJAX 101 – part 1</title>
		<link>http://www.javascriptworkshop.com/2009/06/21/ajax-101-part-1/</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)" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Ajax_programming?referer=');">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" onclick="pageTracker._trackPageview('/outgoing/developer.mozilla.org/en/XmlHttpRequest?referer=');">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/" onclick="pageTracker._trackPageview('/outgoing/www.json.org/?referer=');">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" onclick="pageTracker._trackPageview('/outgoing/www.w3schools.com/ajax/ajax_xmlhttprequest.asp?referer=');">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" onclick="pageTracker._trackPageview('/outgoing/www.w3schools.com/ajax/ajax_server.asp?referer=');">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" onclick="pageTracker._trackPageview('/outgoing/www.w3schools.com/ajax/ajax_server.asp?referer=');">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/" onclick="pageTracker._trackPageview('/outgoing/www.w3.org/?referer=');">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>{&#8217;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>]]></content:encoded>
			<wfw:commentRss>http://www.javascriptworkshop.com/2009/06/21/ajax-101-part-1/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Database Web Development with ASP.NET Class</title>
		<link>http://www.javascriptworkshop.com/2009/06/10/database-web-development-with-aspnet-class/</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/" onclick="pageTracker._trackPageview('/outgoing/www.lvsonline.com/?referer=');">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/" onclick="pageTracker._trackPageview('/outgoing/www.mysql.com/?referer=');">MySQL</a> and <a target="_blank" href="http://office.microsoft.com/en-us/access/default.aspx" onclick="pageTracker._trackPageview('/outgoing/office.microsoft.com/en-us/access/default.aspx?referer=');">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 $25 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>
<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>]]></content:encoded>
			<wfw:commentRss>http://www.javascriptworkshop.com/2009/06/10/database-web-development-with-aspnet-class/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Creating Even Faster Websites Podcast</title>
		<link>http://www.javascriptworkshop.com/2009/05/19/creating-even-faster-websites-podcast/</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/" onclick="pageTracker._trackPageview('/outgoing/stevesouders.com/?referer=');">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" onclick="pageTracker._trackPageview('/outgoing/www.amazon.com/gp/product/0596529309?ie=UTF8_038_tag=underwordp-20_038_linkCode=as2_038_camp=1789_038_creative=9325_038_creativeASIN=0596529309&amp;referer=');">High Performance Web Sites</a> and the creator of <a target=_"blank" href="http://developer.yahoo.com/yslow/" onclick="pageTracker._trackPageview('/outgoing/developer.yahoo.com/yslow/?referer=');">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>]]></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" />
		</item>
		<item>
		<title>Understanding WordPress: Top Ten SEO Tips</title>
		<link>http://www.javascriptworkshop.com/2009/05/06/understanding-wordpress-top-ten-search-engine-tips/</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" onclick="pageTracker._trackPageview('/outgoing/www.understandingwordpress.com/blog/top-ten-search-engine-optimization-tips.html?referer=');">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>]]></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>
		</item>
		<item>
		<title>Understanding WordPress Class</title>
		<link>http://www.javascriptworkshop.com/2009/04/24/understanding-wordpress-class/</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[Learn WordPress]]></category>
		<category><![CDATA[Online class]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[template tags]]></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[I am teaching an online class to help students learn how to install, setup, monetize and customize a WordPress blog. This six week class will guide you step-by-step through all aspects of WordPress development. 
This class is offered through this website only and I will email students a new lesson each week. Each lesson will [...]]]></description>
			<content:encoded><![CDATA[<p>I am teaching an online class to help students learn how to install, setup, monetize and customize a WordPress blog. This six week class will guide you step-by-step through all aspects of WordPress development. </p>
<p>This class <strong>is offered through this website only</strong> and I will email students a new lesson each week. Each lesson will be between 8-15 pages in length and have an assignment(s) that the student can work on if they desire. </p>
<p><strong>Week 1 &#8211; Getting Started</strong></p>
<ul>
<li>Blogging Basics</li>
<li>Types of blogs</li>
<li>Manual installation on a web server</li>
</ul>
<p><strong>Week 2 &#8211; Administration</strong></p>
<ul>
<li>Understanding the Dashboard</li>
<li>Setting up user accounts</li>
<li>Elements of a Post</li>
<li>Managing Posts, Categories and tags</li>
<li>Adding an About page</li>
<li>Adding your links</li>
</ul>
<p><strong>Week 3 &#8211; Site Design: Themes</strong></p>
<ul>
<li>How to find and install new themes</li>
<li>The basics components and files of a theme</li>
<li>How to use widgets</li>
<li>Quick PHP Overview</li>
<li>Review of basics template tags</li>
</ul>
<p><strong>Week 4 &#8211; Adding Functionality</strong></p>
<ul>
<li>What is a Plugin?</li>
<li>How to find and install plugins</li>
<li>Popular and useful plugins</li>
</ul>
<p><strong>Week 5 &#8211; Marketing</strong></p>
<ul>
<li>Adding Analytics and RSS Feeds</li>
<li>SEO Optimization</li>
<li>Integrating social media sites</li>
<li>How to monetize your blog</li>
</ul>
<p><strong>Week 6 &#8211; Themes: &#8216;Under the Hood&#8217;</strong></p>
<ul>
<li>Blog design considerations</li>
<li>Dissecting how a theme works</li>
<li>Creating a basic theme from scratch</li>
</ul>
<p><strong>Class Requirements</strong></p>
<p>The only requirement for the class is that you have a environment that includes Apache, PHP and MySQL. This can be obtained either by having a webhost webhost (I use <a class="externalLink" href="http://www.godaddy.com/" onclick="pageTracker._trackPageview('/outgoing/www.godaddy.com/?referer=');">GoDaddy</a>) or using a prebuilt installation on your local Windows PC using <a class="externalLink" href="http://www.wampserver.com/en/" onclick="pageTracker._trackPageview('/outgoing/www.wampserver.com/en/?referer=');">WAMP Server</a> or <a class="externalLink" href="http://www.apachefriends.org/en/xampp.html" onclick="pageTracker._trackPageview('/outgoing/www.apachefriends.org/en/xampp.html?referer=');">XAMPP</a>. </p>
<p><strong>Class Website</strong></p>
<p>I have created a seperate website <a class="externalLink" href="http://www.understandingwordpress.com" onclick="pageTracker._trackPageview('/outgoing/www.understandingwordpress.com?referer=');">http://www.understandingwordpress.com</a> for this class for which I will post additional material as well as answer students questions that can be viewed by everyone. </p>
<p><strong>Sample Lesson</strong></p>
<p>Here is the <a  class="externalLink" href="http://www.understandingwordpress.com/SampleLesson/Lesson1.pdf" onclick="pageTracker._trackPageview('/outgoing/www.understandingwordpress.com/SampleLesson/Lesson1.pdf?referer=');">first lesson</a> (.pdf) for you to look over and give you an idea of how topics will be covered.</p>
<p><strong>Cost</strong></p>
<p>The cost of the class will be $25 and will be payable to me via PayPal. Once I receive payment, within 48 hours (normally sooner), I will email you giving you details about the class and when the class will start.</p>
<p></p>
<form 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="4961371"/>
<input type="image" src="https://www.paypal.com/en_US/i/btn/btn_buynowCC_LG.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>
<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>]]></content:encoded>
			<wfw:commentRss>http://www.javascriptworkshop.com/2009/04/24/understanding-wordpress-class/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Interview with Lorelle VanFossen</title>
		<link>http://www.javascriptworkshop.com/2009/04/14/interview-with-lorelle-vanfossen/</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" onclick="pageTracker._trackPageview('/outgoing/lorelle.wordpress.com?referer=');">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/" onclick="pageTracker._trackPageview('/outgoing/central.wordcamp.org/?referer=');">WordCamp</a> and <a class="externalLink"  href="http://www.sobevent.com/" onclick="pageTracker._trackPageview('/outgoing/www.sobevent.com/?referer=');">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" onclick="pageTracker._trackPageview('/outgoing/lorelle.wordpress.com/about/?referer=');">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" onclick="pageTracker._trackPageview('/outgoing/lorelle.wordpress.com/?referer=');">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" onclick="pageTracker._trackPageview('/outgoing/www.blogherald.com/tag/wordpress-news/?referer=');">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" onclick="pageTracker._trackPageview('/outgoing/lorelle.wordpress.com/2007/10/05/blog-struggles-the-search-for-blog-content/?referer=');">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" onclick="pageTracker._trackPageview('/outgoing/www.woopra.com/?referer=');">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" onclick="pageTracker._trackPageview('/outgoing/www.gravatar.com/?referer=');">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" onclick="pageTracker._trackPageview('/outgoing/buddypress.org/?referer=');">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" onclick="pageTracker._trackPageview('/outgoing/lorelle.wordpress.com/2006/10/01/working-ahead-future-posts-with-wordpress/?referer=');">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" onclick="pageTracker._trackPageview('/outgoing/www.blogherald.com/2008/01/23/the-art-of-the-weekend-blogger/?referer=');">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" onclick="pageTracker._trackPageview('/outgoing/lorelle.wordpress.com/2007/10/10/blog-struggles-ideas-and-drafts/?referer=');">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" onclick="pageTracker._trackPageview('/outgoing/lorelle.wordpress.com/2007/10/04/new-article-series-blog-struggles/?referer=');">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" onclick="pageTracker._trackPageview('/outgoing/www.problogger.net/archives/2007/04/02/blogging-is-about-writing/?referer=');">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" onclick="pageTracker._trackPageview('/outgoing/www.bakershours.com/?referer=');">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>]]></content:encoded>
			<wfw:commentRss>http://www.javascriptworkshop.com/2009/04/14/interview-with-lorelle-vanfossen/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>JavaScript: The Basics Class</title>
		<link>http://www.javascriptworkshop.com/2009/04/13/javascript-the-basics-class/</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 intermediate JavaScript class. JavaScript&#8217;s popularity is still on the rise and [...]]]></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/" onclick="pageTracker._trackPageview('/outgoing/www.lvsonline.com/?referer=');">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/">intermediate JavaScript class.</a> 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 $25 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>
<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>]]></content:encoded>
			<wfw:commentRss>http://www.javascriptworkshop.com/2009/04/13/javascript-the-basics-class/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Interview with Christian Heilmann</title>
		<link>http://www.javascriptworkshop.com/2009/03/15/interview-with-chris-heilmann/</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/" onclick="pageTracker._trackPageview('/outgoing/www.wait-till-i.com/?referer=');">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/" onclick="pageTracker._trackPageview('/outgoing/www.amazon.com/Beginning-JavaScript-DOM-Scripting-Ajax/dp/1590596803/?referer=');">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/" onclick="pageTracker._trackPageview('/outgoing/www.amazon.com/Web-Development-Solutions-Libraries-Services/dp/1590598067/?referer=');">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/" onclick="pageTracker._trackPageview('/outgoing/thinkvitamin.com/dev/web-development-is-moving-on-are-you/?referer=');">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" onclick="pageTracker._trackPageview('/outgoing/icant.co.uk/webstandardsforbusiness?referer=');">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/" onclick="pageTracker._trackPageview('/outgoing/scriptingenabled.org/?referer=');">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/" onclick="pageTracker._trackPageview('/outgoing/developer.yahoo.com/?referer=');">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/" onclick="pageTracker._trackPageview('/outgoing/developer.yahoo.com/yui/?referer=');">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/" onclick="pageTracker._trackPageview('/outgoing/www.w3.org/TR/wai-aria/?referer=');">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/" onclick="pageTracker._trackPageview('/outgoing/www.dojotoolkit.org/?referer=');">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/" onclick="pageTracker._trackPageview('/outgoing/simonwillison.net/?referer=');">Simon Wilison</a>, then there is &#8220;Mr Pragmatic CSS&#8221; <a class="externalLink" href="http://simplebits.com/" onclick="pageTracker._trackPageview('/outgoing/simplebits.com/?referer=');">Dan Cederholm</>. <a class="externalLink" href="http://ejohn.org/" onclick="pageTracker._trackPageview('/outgoing/ejohn.org/?referer=');">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/" onclick="pageTracker._trackPageview('/outgoing/www.scottschiller.com/?referer=');">Scott Schiller</a> pushes the envelope when it comes to interesting interfaces and multimedia functionality in JavaScript, <a class="externalLink" href="http://aralbalkan.com/" onclick="pageTracker._trackPageview('/outgoing/aralbalkan.com/?referer=');">Aral Balkan</a> is a good channel into the Flash/Flex world, <a class="externalLink" href="http://juicystudio.com/" onclick="pageTracker._trackPageview('/outgoing/juicystudio.com/?referer=');">Gez Lemon</a> and <a class="externalLink" href="http://www.stevefaulkner.com/" onclick="pageTracker._trackPageview('/outgoing/www.stevefaulkner.com/?referer=');">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/" onclick="pageTracker._trackPageview('/outgoing/blog.ginader.de/?referer=');">Dirk Ginader</a>, <a class="externalLink" href="http://www.i-marco.nl/weblog/" onclick="pageTracker._trackPageview('/outgoing/www.i-marco.nl/weblog/?referer=');">Marco van Hylckama-Vlieg</a>, <a class="externalLink" href="http://rajatpandit.com/" onclick="pageTracker._trackPageview('/outgoing/rajatpandit.com/?referer=');">Rajat Pandit</a>, <a class="externalLink" href="http://www.workingwith.me.uk/" onclick="pageTracker._trackPageview('/outgoing/www.workingwith.me.uk/?referer=');">Neil Crosby</a>, <a class="externalLink" href="http://ianpouncey.com/" onclick="pageTracker._trackPageview('/outgoing/ianpouncey.com/?referer=');">Ian Pouncey</a> and of course ex colleagues <a class="externalLink"  href="http://www.ejeliot.com/" onclick="pageTracker._trackPageview('/outgoing/www.ejeliot.com/?referer=');">Ed Eliot</a>, <a class="externalLink" href="http://muffinresearch.co.uk/" onclick="pageTracker._trackPageview('/outgoing/muffinresearch.co.uk/?referer=');">Stuart Colville</a>, <a class="externalLink" href="http://www.nodetraveller.com/blog/" onclick="pageTracker._trackPageview('/outgoing/www.nodetraveller.com/blog/?referer=');"> 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/" onclick="pageTracker._trackPageview('/outgoing/www.wait-till-i.com/presentations/?referer=');">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/" onclick="pageTracker._trackPageview('/outgoing/www.topgear.com/?referer=');">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/" onclick="pageTracker._trackPageview('/outgoing/www.bbc.co.uk/info/licencefee/?referer=');">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" onclick="pageTracker._trackPageview('/outgoing/www.tv.com/the-big-bang-theory/show/58056/summary.html?referer=');">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>]]></content:encoded>
			<wfw:commentRss>http://www.javascriptworkshop.com/2009/03/15/interview-with-chris-heilmann/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP Style Switcher</title>
		<link>http://www.javascriptworkshop.com/2009/02/12/php-style-switcher/</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>]]></content:encoded>
			<wfw:commentRss>http://www.javascriptworkshop.com/2009/02/12/php-style-switcher/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Intermediate Web Development with ASP.NET Class</title>
		<link>http://www.javascriptworkshop.com/2009/01/18/intermediate-web-development-with-aspnet-lvs-onlinecom/</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 first 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 and the C# programming [...]]]></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/" onclick="pageTracker._trackPageview('/outgoing/www.lvsonline.com/?referer=');">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/">first ASP.NET class</a> 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 $25 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>
<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>]]></content:encoded>
			<wfw:commentRss>http://www.javascriptworkshop.com/2009/01/18/intermediate-web-development-with-aspnet-lvs-onlinecom/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>XML with ActionScript 3.0 Basics</title>
		<link>http://www.javascriptworkshop.com/2008/12/29/integrating-xml-with-actionscript-30/</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>Lots more AS 3.0 examples can be found in: <a href="http://www.javascriptworkshop.com/2007/05/01/my-intro-to-actionscript-class/">My Intro to ActionScript Class</a>.<br />
<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" onclick="pageTracker._trackPageview('/outgoing/help.adobe.com/en_US/AS3LCR/Flash_10.0/fl/containers/UILoader.html?referer=');"> UILoader</a>  component and the <a class="externalLink" href="http://help.adobe.com/en_US/AS3LCR/Flash_10.0/flash/utils/Timer.html" onclick="pageTracker._trackPageview('/outgoing/help.adobe.com/en_US/AS3LCR/Flash_10.0/flash/utils/Timer.html?referer=');">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>]]></content:encoded>
			<wfw:commentRss>http://www.javascriptworkshop.com/2008/12/29/integrating-xml-with-actionscript-30/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Features in Flash CS4</title>
		<link>http://www.javascriptworkshop.com/2008/12/18/new-features-in-flash-cs4/</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 (&#8221;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>]]></content:encoded>
			<wfw:commentRss>http://www.javascriptworkshop.com/2008/12/18/new-features-in-flash-cs4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Free CSS Book</title>
		<link>http://www.javascriptworkshop.com/2008/12/10/free-css-book/</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>]]></content:encoded>
			<wfw:commentRss>http://www.javascriptworkshop.com/2008/12/10/free-css-book/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>10 Ways to Speed Web Page Download Time</title>
		<link>http://www.javascriptworkshop.com/2008/11/27/10-ways-to-speed-web-page-download-time/</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>]]></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>
		</item>
		<item>
		<title>The Seven Deadly Sins of Landing Page Usability</title>
		<link>http://www.javascriptworkshop.com/2008/11/16/the-seven-deadly-sins-of-landing-page-usability/</link>
		<comments>http://www.javascriptworkshop.com/2008/11/16/the-seven-deadly-sins-of-landing-page-usability/#comments</comments>
		<pubDate>Sun, 16 Nov 2008 06:05:52 +0000</pubDate>
		<dc:creator>Frank Stepanski</dc:creator>
				<category><![CDATA[Web stuff]]></category>
		<category><![CDATA[best practices]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[web usability]]></category>

		<guid isPermaLink="false">http://www.javascriptworkshop.com/?p=233</guid>
		<description><![CDATA[There are seven serious usability mistakes that most corporate websites commit.  Interestly, these common errors are often products of sound principles that Web designers mistakenly apply:
1. Too Much Introductory Text on Your Landing Page
The worst kind of filler copy usually starts with, &#8220;Welcome to our site&#8221;, click on the blah, blah, etc. Telling people [...]]]></description>
			<content:encoded><![CDATA[<p>There are seven serious usability mistakes that most corporate websites commit.  Interestly, these common errors are often products of sound principles that Web designers mistakenly apply:</p>
<p><strong>1. Too Much Introductory Text on Your Landing Page</strong><br />
The worst kind of filler copy usually starts with, &#8220;Welcome to our site&#8221;, click on the blah, blah, etc. Telling people what to do on your site futile.  The user will go where he or she feels like.  People generally read very little on a website.  Instead, users scan the page, picking out words that are relevant to them.</p>
<p><strong>2. Not Showing What Your Site Offers to Users</strong><br />
Many sites are horrible at explicitly stating what they offer and how their services or products differ from those of their key competitors. Keep in mind that users will only spend a few seconds to scan teh site for what they need.</p>
<p><strong>3. Using Gratuitous Animation and Graphics on a Site</strong><br />
The dirty secret among site owners is that they love to see cool animation and graphics, even though these don&#8217;t contain real content.<br />
<span id="more-233"></span><br />
<strong>4. Not Showing Usrs Where They Have Been on Your Site</strong><br />
Knowing what pages have been visited is a basic function that all navigational designs should support. Flash sites are notorious for this basic omission.  Only one-third of corporate sites use link color to show users at a glance where they have been. Without this basic browser function, the result is navigational confusion and users re-visiting the same page twice.</p>
<p><strong>5. Not Telling Users What the Site Does on its Landing Page</strong><br />
One of the most popular links on a website is hte &#8220;About Us&#8221; link.  Most people click to find out what the company does or what the site is all about. It&#8217;s popular because the tag lines and advertising copy are so generic and content-free that users have to work hard to find out who you are or what you sell.</p>
<p><strong>6. Using a Heading to Label a Search Area</strong><br />
Sites that label a &#8220;Search&#8221; area with an information field, followed by a &#8220;Go!&#8221; button waste space with extraneous labeling. Like most search engines, your site&#8217;s internal search should have as few elements as possible to communicate its function.</p>
<p><strong>7. Making a Home Page Link on the Home Page</strong><br />
You should never have a link that points to the current page. If the user clicks it, he or she wastes time and begins to question whether they really are on the home page or not.  Disable or highlight the link of the page the user is currently on to avoid confusion.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/JavascriptWorkshop?a=dk5RKv-JRQM:2dtkDEJShaI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/JavascriptWorkshop?d=yIl2AUoC8zA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.javascriptworkshop.com/2008/11/16/the-seven-deadly-sins-of-landing-page-usability/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Color Theory and Web Design</title>
		<link>http://www.javascriptworkshop.com/2008/10/20/color-and-web-design/</link>
		<comments>http://www.javascriptworkshop.com/2008/10/20/color-and-web-design/#comments</comments>
		<pubDate>Mon, 20 Oct 2008 08:57:05 +0000</pubDate>
		<dc:creator>Frank Stepanski</dc:creator>
				<category><![CDATA[Web stuff]]></category>
		<category><![CDATA[color]]></category>
		<category><![CDATA[color blindness]]></category>
		<category><![CDATA[color theory]]></category>
		<category><![CDATA[color wheel]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[tutorials]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://www.javascriptworkshop.com/?p=217</guid>
		<description><![CDATA[Color theroy is a set of principles that enables the creation of harmonious color combinations via the comprehension of color relationships.  Making things more complicated is the fact that color theory doesn&#8217;t take tints, tones and shades into account, instead it concerns itself solely with the base hues themselves.
There are significant psychological aspects to [...]]]></description>
			<content:encoded><![CDATA[<p>Color theroy is a set of principles that enables the creation of harmonious color combinations via the comprehension of color relationships.  Making things more complicated is the fact that color theory doesn&#8217;t take tints, tones and shades into account, instead it concerns itself solely with the base hues themselves.</p>
<p>There are significant psychological aspects to color; it&#8217;s a cultural signifier and can even affect mood. Much of this works on an entirely subconscious level. Marketing and design decisions have long been influenced by the psychology of color. Color schemes are picked for their subconscious significance or for positive associations with the intended audience.</p>
<p>At the most basic level, colors can be categorized by their attributes.  Red-based colors are warm, while blues are cool.  The use of neutral colors such as black, greys and whites, as well as some browns and beiges with the chosen palette limited to accent colors, can help to calm down a design, bringing greater harmony to the palette.</p>
<p><span id="more-217"></span></p>
<p><strong>Color Wheels</strong></p>
<p>A key tool in color theory is the color wheel.  The color wheel is a visual representation of the color spectrum wrapped onto a circular device.  One of the earliest accurate wheels was devised by Goethe in the 19th century, building on the work of Issac Newton.  Newton&#8217;s earlier version didn&#8217;t take into account the idea of complementary symmetry.</p>
<p>The purpose of the color wheel is deceptively simple &#8212; harmonious color combinations consist of any two colors opposite of each other on the color wheel, any three colors eqally spaced around the wheel in a triangle, or any four colors that form a rectangle.  Despite sounding rather rarefield, the color wheel is actually a very useful design device.</p>
<p>For a start, it brings sound scientific principles to something that might otherwise be an incomprehensible and fashion-led veil of confusion. When using a color wheel, it&#8217;s worth looking beyond simple complementary colors.  A design based solely on complementary colors will surely work, but it will also be high-contrast, vibrant, jazzy and perhaps a bit harsh.  Depending on the design, such a color scheme could be very strong or it could be overwhelming. </p>
<p>A color scheme based on analogous colors, meanwhile, is much more likely to feel relaxed and harmonised, although it could be lacking in contrast.  </p>
<p>The color model used in displays such as CRT and LCD montors or televisions is RGB, which stands for red, green and blue.  As displays create images from light emissions rather than pigment, colors are created by addition.  Combining one of the three additive primary colors emitted from the light source, with another in equal amounts, produces an additive secondary color: cyan, magenta or yellow.</p>
<p>In practice, this means each pixel can be lit in a combination of red, green and blue light, creating a maximum of 16,777,216 colors.  A typical human eye can distinguish between 10 milion distinct colors.</p>
<p><a class="externalLink" href = "http://www.colorwheelco.com/"><img src="http://www.javascriptworkshop.com/colorwheel.gif" /></a> <br / ><br / ></p>
<p><strong>Color on the web</strong></p>
<p>Back in the dark days of the early web, it was common to have a monitor with an 8-bit screen depth, meaning there was a maximum usable palette of 256 colors.  Still worse, Macs and Windows machines had slightly different color models, resulting in a maximum usable palette of 216 colors &#8212; 216 common to both platforms.  That was known as the &#8216;web safe&#8217; palette.</p>
<p>Thankfully, today&#8217;s machines routinely offer millions of colors, so the web safe palette can be safely ignored, but that doesn&#8217;t necessarily mean you always should.</p>
<p>There are times, however, when other people&#8217;s screens may not show subtleties.  Gamma, and even the kinds of monitor (LCD or CRT) people are using, cannot be controlled.  If you&#8217;re being too subtle, you may lose it on LCDs.  </p>
<p>On top of this, there&#8217;s the issue of the mobile web.  Many mobile devices such as PDAs and mobile phones may have lower bit depth than PCs or Macs, though an increasing amount can display at least 16-bits per pixel, allowing for thousands of colors.  </p>
<p><strong>Color-blindness</strong></p>
<p>One of the main things to be aware of is people with color-blindness and color deficiencies.  </p>
<p>In fact, one in 10 males are estimated to suffer from some form of color-blindness, primarily deuteranomaly, a form of red-green color-blindness.  As red-green color-blindness is a gender-related deficiency linked to the X chromosome, it&#8217;s much less common in women as it requires the deficiency to be present in both X chromosomes. </p>
<p><strong>Resources</strong></p>
<p>Here are some great articles (.pdf) by Linda Goin about color:</p>
<p><a class = "externalLink" href = "http://www.javascriptworkshop.com/wp-content/uploads/pdf/Color_colorschemes1.pdf" />Color Schemes part 1</a> <br />
<a class = "externalLink" href = "http://www.javascriptworkshop.com/wp-content/uploads/pdf/Color_colorschemes2.pdf" />Color Schemes part 2: Triad, Tetrad, and the Perception of Depth</a> <br />
<a class = "externalLink" href = "http://www.javascriptworkshop.com/wp-content/uploads/pdf/Color_perceptions.pdf" />Color Perceptions</a> <br />
<a class = "externalLink" href = "http://www.javascriptworkshop.com/wp-content/uploads/pdf/Color_colorusage.pdf" />Color Usage: Color Schemes and Themes</a> </p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/JavascriptWorkshop?a=U7kuW5bu8DM:9FS6gnz-ANA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/JavascriptWorkshop?d=yIl2AUoC8zA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.javascriptworkshop.com/2008/10/20/color-and-web-design/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bookmark your Webpage?</title>
		<link>http://www.javascriptworkshop.com/2008/10/06/bookmark-your-webpage/</link>
		<comments>http://www.javascriptworkshop.com/2008/10/06/bookmark-your-webpage/#comments</comments>
		<pubDate>Mon, 06 Oct 2008 07:51:13 +0000</pubDate>
		<dc:creator>Frank Stepanski</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[JavaScript topics]]></category>
		<category><![CDATA[bookmark]]></category>
		<category><![CDATA[bookmark page]]></category>
		<category><![CDATA[web browsers]]></category>

		<guid isPermaLink="false">http://www.javascriptworkshop.com/?p=179</guid>
		<description><![CDATA[I&#8217;m not a fan of creating a script that only works in one browser or differently in other browser(s). I had to create a link on a website for work that made a URL their home page.  This annoying task proved difficult as there wasn&#8217;t much good information online and it seems only IE [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m not a fan of creating a script that only works in one browser or differently in other browser(s). I had to create a link on a website for work that made a URL their home page.  This annoying task proved difficult as there wasn&#8217;t much good information online and it seems only IE allows this.  The Firefox browser will only allow you to make a web page a &#8216;favorite&#8217;.</p>
<p>So I found the code to make it work on both IE and Firefox (will not work on any other browser), as well as improving its &#8216;unobtrusiveness&#8217;.  As you can see from the code, I only display the link if the browser is either Internet Explorer or Firefox otherwise the link text is blank. </p>
<p>The &#8216;Browser.Detect&#8217; object is from a script from the JavaScript guru himself, <a class="externalLink" href="http://www.quirksmode.org/" onclick="pageTracker._trackPageview('/outgoing/www.quirksmode.org/?referer=');">PPK</a> which detects what browser the visitor is using. Browser detection isn&#8217;t used as much today as it once was but it is still needed on some occasions.</p>
<p><span id="more-179"></span></p>
<p><img src="http://www.javascriptworkshop.com/PHPWebHost/Make_homepage/screenshot_IE.gif" /></p>
<p>Internet Explorer <br/><br />
<img src="http://www.javascriptworkshop.com/PHPWebHost/Make_homepage/screenshot_FF.gif" /></p>
<p>Firefox</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> browserBoomkark<span style="color: #009900;">&#40;</span>id<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">var</span> link <span style="color: #339933;">=</span> document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span>id<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000066; font-weight: bold;">switch</span> <span style="color: #009900;">&#40;</span>BrowserDetect.<span style="color: #660066;">browser</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
     <span style="color: #000066; font-weight: bold;">case</span> <span style="color: #3366CC;">'Explorer'</span><span style="color: #339933;">:</span>
&nbsp;
          link.<span style="color: #660066;">innerHTML</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">'Set to Home Page'</span><span style="color: #339933;">;</span>	
          link.<span style="color: #660066;">style</span>.<span style="color: #660066;">cursor</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">'pointer'</span><span style="color: #339933;">;</span>
          link.<span style="color: #660066;">onclick</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;">this</span>.<span style="color: #660066;">style</span>.<span style="color: #660066;">behavior</span><span style="color: #339933;">=</span><span style="color: #3366CC;">'url(#default#homepage)'</span><span style="color: #339933;">;</span>
               <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">setHomePage</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'URL'</span><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;">break</span><span style="color: #339933;">;</span>
&nbsp;
      <span style="color: #000066; font-weight: bold;">case</span> <span style="color: #3366CC;">'Firefox'</span><span style="color: #339933;">:</span> <span style="color: #006600; font-style: italic;">// only supports making page a favorite</span>
&nbsp;
           link.<span style="color: #660066;">innerHTML</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">'Set to Favorite'</span><span style="color: #339933;">;</span>
           link.<span style="color: #660066;">style</span>.<span style="color: #660066;">cursor</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">'pointer'</span><span style="color: #339933;">;</span>
           link.<span style="color: #660066;">onclick</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>
&nbsp;
                window.<span style="color: #660066;">sidebar</span>.<span style="color: #660066;">addPanel</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'label'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'URL'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;&quot;</span><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;">break</span><span style="color: #339933;">;</span>
&nbsp;
      <span style="color: #003366; font-weight: bold;">default</span><span style="color: #339933;">:</span>
&nbsp;
           <span style="color: #006600; font-style: italic;">// nothing is displayed for other browsers</span>
      <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Test the <a class="externalLink" href="http://www.javascriptworkshop.com/PHPWebHost/Make_homepage/bookmark.html"> page</a> yourself to test it out and download the <a href="http://www.javascriptworkshop.com/PHPWebHost/Make_homepage/Bookmark_page.zip">code</a> (.zip).</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/JavascriptWorkshop?a=dCg8tB4ezJU:4Hy_IwgD52g:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/JavascriptWorkshop?d=yIl2AUoC8zA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.javascriptworkshop.com/2008/10/06/bookmark-your-webpage/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>John Resig Interview at Boagworld Podcast</title>
		<link>http://www.javascriptworkshop.com/2008/09/23/john-resig-interview-at-boagworldcom-podcast/</link>
		<comments>http://www.javascriptworkshop.com/2008/09/23/john-resig-interview-at-boagworldcom-podcast/#comments</comments>
		<pubDate>Tue, 23 Sep 2008 13:51:14 +0000</pubDate>
		<dc:creator>Frank Stepanski</dc:creator>
				<category><![CDATA[Podcasts]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA["John Resig"]]></category>
		<category><![CDATA[BoagWorld]]></category>
		<category><![CDATA[JavaScript topics]]></category>
		<category><![CDATA[Podcast]]></category>

		<guid isPermaLink="false">http://www.javascriptworkshop.com/?p=236</guid>
		<description><![CDATA[In a recent Boagworld podcast, Paul Boag interviews John Resig, creator of jQuery. Boagworld is a weekly podcast show that talks about topics for people who design, develop and run websites.
In this snipet of the full weekly podcast, Paul asks John questions such as: when is it appropriate to use a JavaScript library; do people [...]]]></description>
			<content:encoded><![CDATA[<p>In a recent <a class="externalLink" href="http://www.boagworld.com/" onclick="pageTracker._trackPageview('/outgoing/www.boagworld.com/?referer=');">Boagworld</a> podcast, Paul Boag interviews John Resig, creator of jQuery. Boagworld is a weekly podcast show that talks about topics for people who design, develop and run websites.</p>
<p>In this snipet of the full weekly podcast, Paul asks John questions such as: when is it appropriate to use a JavaScript library; do people need to learn JavaScript before using a library, do libraries hide too much, what are some pros and cons of choosing a library, and much more. </p>
<p>Feel free to listen to all Boagworld&#8217;s <a class="externalLink" href="http://boagworld.com/podcast/" onclick="pageTracker._trackPageview('/outgoing/boagworld.com/podcast/?referer=');">podcasts</a> or learn and talk to other fellow designers in their <a class="externalLink"  href="http://boagworld.com/forum/" onclick="pageTracker._trackPageview('/outgoing/boagworld.com/forum/?referer=');">forum</a>.<br />
<br/></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/JavascriptWorkshop?a=Y5BKHWygnqQ:L1l3AcK2Y5k:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/JavascriptWorkshop?d=yIl2AUoC8zA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.javascriptworkshop.com/2008/09/23/john-resig-interview-at-boagworldcom-podcast/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://www.javascriptworkshop.com/wp-content/uploads/Boagworld-John Resig.mp3" length="" type="audio/mpeg" />
		</item>
		<item>
		<title>Unravel the SQL and Database Mysteries</title>
		<link>http://www.javascriptworkshop.com/2008/09/05/unravel-the-sql-and-database-mysteries/</link>
		<comments>http://www.javascriptworkshop.com/2008/09/05/unravel-the-sql-and-database-mysteries/#comments</comments>
		<pubDate>Fri, 05 Sep 2008 09:10:07 +0000</pubDate>
		<dc:creator>Frank Stepanski</dc:creator>
				<category><![CDATA[SQL]]></category>
		<category><![CDATA[data-driven web sites]]></category>
		<category><![CDATA[database development]]></category>
		<category><![CDATA[databases]]></category>
		<category><![CDATA[query]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[t-SQL]]></category>

		<guid isPermaLink="false">http://www.javascriptworkshop.com/?p=226</guid>
		<description><![CDATA[Understanding how databases work and learning basic SQL (Structured Query Language) techniques is crucial for any type of web development that requires you to store your data in a database. No matter what DBMS you use for your own website (SQL Server, MySQL, Oracle, etc.), the basics of design and retrieving data are the same. [...]]]></description>
			<content:encoded><![CDATA[<p>Understanding how databases work and learning basic SQL (Structured Query Language) techniques is crucial for any type of web development that requires you to store your data in a database. No matter what <a class = "externalLink" href="http://en.wikipedia.org/wiki/Database_management_system" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Database_management_system?referer=');">DBMS</a> you use for your own website (SQL Server, MySQL, Oracle, etc.), the basics of design and retrieving data are the same. </p>
<p>Here is a great <a class="externalLink" href="http://www.javascriptworkshop.com/wp-content/uploads/pdf/E-Book_SQL_Databases.pdf">e-book</a> (.pdf) covering all the topics to get you started.</p>
<p><strong>Topics Covered:</strong></p>
<p>Database Design<br />
Normalisation<br />
Simple SQL Queries<br />
Database Performance Tuning<br />
SQL Server Stored Procedures<br />
SQL: Cross Joins, UNION, Case Expressions, Paging and Duplicates<br />
Working with Strings</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/JavascriptWorkshop?a=eAEzNuvIE9U:lok1CB-wrb8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/JavascriptWorkshop?d=yIl2AUoC8zA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.javascriptworkshop.com/2008/09/05/unravel-the-sql-and-database-mysteries/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why and Which of JavaScript Libraries Podcast</title>
		<link>http://www.javascriptworkshop.com/2008/08/13/the-why-and-which-of-javascript-libraries-podcast/</link>
		<comments>http://www.javascriptworkshop.com/2008/08/13/the-why-and-which-of-javascript-libraries-podcast/#comments</comments>
		<pubDate>Thu, 14 Aug 2008 03:39:05 +0000</pubDate>
		<dc:creator>Frank Stepanski</dc:creator>
				<category><![CDATA[Podcasts]]></category>
		<category><![CDATA["John Resig"]]></category>
		<category><![CDATA[JavaScript topics]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Podcast]]></category>

		<guid isPermaLink="false">http://www.javascriptworkshop.com/?p=222</guid>
		<description><![CDATA[John Resig, creator of jQuery and author of Pro JavaScript Techniques, spoke at @Media 2008 in London  about the different types of JavaScript libraries such as Prototype, jQuery, Yahoo! UI, and Dojo and why should one be used.  John compares how each library can help the developer with DOM, Events, Animations, Ajax as [...]]]></description>
			<content:encoded><![CDATA[<p>John Resig, creator of <a class = "externalLink" href="http://jQuery.com" onclick="pageTracker._trackPageview('/outgoing/jQuery.com?referer=');">jQuery</a> and author of <a  class="externalLink" href = "http://www.amazon.com/dp/1590597273?tag=javascriptwor-20&#038;camp=0&#038;creative=0&#038;linkCode=as1&#038;creativeASIN=1590597273&#038;adid=19KG1DYMPJWGDD8RTVW3&#038;">Pro JavaScript Techniques</a>, spoke at @Media 2008 in London  about the different types of JavaScript libraries such as Prototype, jQuery, Yahoo! UI, and Dojo and why should one be used.  John compares how each library can help the developer with DOM, Events, Animations, Ajax as well as interface widgets.  </p>
<p>Here are the <a class=externalLink" href="http://www.javascriptworkshop.com/wp-content/uploads/pdf/jslibraries_JohnResig.pdf">presentation slides</a> (.pdf) he used for his talk.</p>
<p><br/></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/JavascriptWorkshop?a=_nRmNqneJBs:qThS4xa0Z_4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/JavascriptWorkshop?d=yIl2AUoC8zA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.javascriptworkshop.com/2008/08/13/the-why-and-which-of-javascript-libraries-podcast/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://www.javascriptworkshop.com/wp-content/uploads/JavaScriptLibrariesJohnResig.mp3" length="21906900" type="audio/mpeg" />
		</item>
	</channel>
</rss>
