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

<channel>
	<title>mitch&#039;s meanderings &#187; Programming</title>
	<atom:link href="http://mitchcontla.com/tag/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://mitchcontla.com</link>
	<description>thoughts on life, technology, and running; links, photos, and videos</description>
	<lastBuildDate>Wed, 19 May 2010 04:58:16 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Nautilus Script: Edit Remote Files (SSH) with Vim</title>
		<link>http://mitchcontla.com/2007/09/06/nautilus-script-edit-remote-files-ssh-with-vim/</link>
		<comments>http://mitchcontla.com/2007/09/06/nautilus-script-edit-remote-files-ssh-with-vim/#comments</comments>
		<pubDate>Thu, 06 Sep 2007 08:11:41 +0000</pubDate>
		<dc:creator>mitch</dc:creator>
				<category><![CDATA[Geekery]]></category>
		<category><![CDATA[Gnome]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[gvim]]></category>
		<category><![CDATA[nautilus]]></category>
		<category><![CDATA[nautilus-script]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://mitch.contlafamily.com/2007/09/06/nautilus-script-edit-remote-files-ssh-with-vim/</guid>
		<description><![CDATA[My on again, off again love affair with KDE is currently off (but that&#8217;s another story). I&#8217;m once again enjoying the simplicity of Gnome, and the elegance of Nautilus.

The ability to graphically browse remote servers via SSH is great, but I found out that trying to edit a remote file chokes Vim. Apparently the netrw [...]]]></description>
			<content:encoded><![CDATA[<p>My on again, off again love affair with <a href="http://www.kde.org/" title="K Desktop Environment"><span class="caps">KDE</span></a> is currently off (but that&#8217;s another story). I&#8217;m once again enjoying the simplicity of <a href="http://www.gnome.org/" title="Gnome Desktop">Gnome</a>, and the elegance of <a href="http://www.gnome.org/projects/nautilus/" title="Nautilus file manager">Nautilus</a>.</p>

<p>The ability to graphically browse remote servers via <acronym title="secure shell">SSH</acronym> is great, but I found out that trying to edit a remote file chokes <a href="http://www.vim.org/" title="Vim editor">Vim</a>. Apparently the netrw module does not handle an <span class="caps">SSH </span><acronym title="Uniform Resource Identifier">URI</acronym>, but rather prefers <acronym title="secure copy">SCP</acronym>. So a quick nautilus-script to the rescue.</p>

<pre class="code python"><span style="color: #808080; font-style: italic;">#!/usr/bin/env python</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">os</span>, <span style="color: #dc143c;">sys</span>
<span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">re</span>
<span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">urllib</span>
&nbsp;
files = <span style="color: black;">&#91;</span><span style="color: black;">&#93;</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">def</span> unescape<span style="color: black;">&#40;</span>uri<span style="color: black;">&#41;</span>:
    <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #dc143c;">re</span>.<span style="color: black;">sub</span><span style="color: black;">&#40;</span>r<span style="color: #483d8b;">'<span style="color: #000099; font-weight: bold;">\s</span>'</span>, r<span style="color: #483d8b;">'<span style="color: #000099; font-weight: bold;">\</span> '</span>, <span style="color: #dc143c;">urllib</span>.<span style="color: black;">unquote</span><span style="color: black;">&#40;</span>uri<span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">for</span> <span style="color: #008000;">file</span> <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #dc143c;">os</span>.<span style="color: black;">getenv</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;NAUTILUS_SCRIPT_SELECTED_URIS&quot;</span>, <span style="color: #008000;">None</span><span style="color: black;">&#41;</span>.<span style="color: black;">split</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: black;">&#41;</span>:
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #dc143c;">re</span>.<span style="color: black;">match</span><span style="color: black;">&#40;</span>r<span style="color: #483d8b;">'^file://'</span>, <span style="color: #008000;">file</span><span style="color: black;">&#41;</span>:
        files.<span style="color: black;">append</span><span style="color: black;">&#40;</span>unescape<span style="color: black;">&#40;</span><span style="color: #dc143c;">re</span>.<span style="color: black;">sub</span><span style="color: black;">&#40;</span>r<span style="color: #483d8b;">'^file://'</span>, r<span style="color: #483d8b;">&quot;&quot;</span>, <span style="color: #008000;">file</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">elif</span> <span style="color: #dc143c;">re</span>.<span style="color: black;">match</span><span style="color: black;">&#40;</span>r<span style="color: #483d8b;">'^ssh://'</span>, <span style="color: #008000;">file</span><span style="color: black;">&#41;</span>:
        files.<span style="color: black;">append</span><span style="color: black;">&#40;</span>unescape<span style="color: black;">&#40;</span><span style="color: #dc143c;">re</span>.<span style="color: black;">sub</span><span style="color: black;">&#40;</span>r<span style="color: #483d8b;">'^ssh://([^/]+)(/[^/]+){2}/(.*)$'</span>, r<span style="color: #483d8b;">'scp://<span style="color: #000099; font-weight: bold;"></span>/<span style="color: #000099; font-weight: bold;"></span>'</span>, <span style="color: #008000;">file</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">else</span>:
        <span style="color: #ff7700;font-weight:bold;">pass</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">if</span> files:
    <span style="color: #dc143c;">os</span>.<span style="color: black;">system</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;&quot;</span><span style="color: #483d8b;">&quot;gvim &quot;</span><span style="color: #483d8b;">&quot;&quot;</span> + <span style="color: #483d8b;">&quot; &quot;</span>.<span style="color: black;">join</span><span style="color: black;">&#40;</span>files<span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
&nbsp;
<span style="color: #dc143c;">sys</span>.<span style="color: black;">exit</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">0</span><span style="color: black;">&#41;</span>
&nbsp;</pre>

<p>Still some work to do, but for now it&#8217;s simple and effective.</p>]]></content:encoded>
			<wfw:commentRss>http://mitchcontla.com/2007/09/06/nautilus-script-edit-remote-files-ssh-with-vim/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sanitize File Names Using VBScript</title>
		<link>http://mitchcontla.com/2006/05/18/sanitize-file-names-using-vbscript/</link>
		<comments>http://mitchcontla.com/2006/05/18/sanitize-file-names-using-vbscript/#comments</comments>
		<pubDate>Fri, 19 May 2006 02:46:48 +0000</pubDate>
		<dc:creator>mitch</dc:creator>
				<category><![CDATA[Geekery]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[VBScript]]></category>
		<category><![CDATA[regular-expressions]]></category>

		<guid isPermaLink="false">http://mitch.contla.net/2006/05/18/sanitize-file-names-using-vbscript/</guid>
		<description><![CDATA[We use an ASP based form to enable our customers to submit files created as part of a registration process. During the submission, the file is sent as an email attachment to our support staff, and a copy is written to a file server as a backup. The application uses a standard Win32 Save dialog [...]]]></description>
			<content:encoded><![CDATA[<p>We use an <acronym title="Active Server Pages">ASP</acronym> based form to enable our customers to submit files created as part of a registration process. During the submission, the file is sent as an email attachment to our support staff, and a copy is written to a file server as a backup. The application uses a standard <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winprog/winprog/windows_api_start_page.asp">Win32</a> Save dialog that suggests a default filename. In nearly every case, the file is submitted by the customer without changing the default name. If the email process fails, retrieving the backup copy is difficult at best.</p>

<p>I modified the form to create a unique filename using values from certain form elements. Since these values can, and often do, use characters that are invalid as part of a filename, I needed a way to &#8220;sanitize&#8221; the name during the submission process. I wrote the following <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/0a8270d7-7d8f-4368-b2a7-065acb52fc54.asp"><span class="caps">VBS</span>cript</a> code to replace these characters before attempting to save the file.</p>

<pre class="code vb">&nbsp;
   <span style="color: #b1b100;">Function</span> SanitizeFilename<span style="color: #66cc66;">&#40;</span>byVal strFilename, byVal strReplChar<span style="color: #66cc66;">&#41;</span>	
      
      <span style="color: #b1b100;">Set</span> objRegExp = <span style="color: #b1b100;">New</span> RegExp <span style="color: #808080;">' Create new RegExp object</span>
      
      <span style="color: #808080;">' Define regex pattern and set Global replacement property</span>
      objRegExp.<span style="color: #66cc66;">Pattern</span> = <span style="color: #ff0000;">&quot;[\x00-\x1f\x22\\/:\*\?&lt;&gt;\|]&quot;</span>
      objRegExp.<span style="color: #66cc66;">Global</span> = <span style="color: #b1b100;">True</span>
      
      <span style="color: #808080;">' Check strReplChar parameter for invalid length or character,</span>
      <span style="color: #808080;">' default to underscore</span>
      <span style="color: #b1b100;">If</span> <span style="color: #b1b100;">Len</span><span style="color: #66cc66;">&#40;</span>strReplChar<span style="color: #66cc66;">&#41;</span> = <span style="color: #cc66cc;">1</span> <span style="color: #b1b100;">Then</span> 
         strReplChar = objRegExp.<span style="color: #66cc66;">Replace</span><span style="color: #66cc66;">&#40;</span>strReplChar, <span style="color: #ff0000;">&quot;_&quot;</span><span style="color: #66cc66;">&#41;</span>
      <span style="color: #b1b100;">Else</span> 
         strReplChar = <span style="color: #ff0000;">&quot;_&quot;</span>
      <span style="color: #b1b100;">End</span> <span style="color: #b1b100;">If</span>
      
      <span style="color: #808080;">' Return clean filename</span>
      SanitizeFilename = objRegExp.<span style="color: #66cc66;">Replace</span><span style="color: #66cc66;">&#40;</span>strFilename, strReplChar<span style="color: #66cc66;">&#41;</span>
      
      <span style="color: #b1b100;">Set</span> objRegExp = <span style="color: #b1b100;">Nothing</span>
   <span style="color: #b1b100;">End</span> <span style="color: #b1b100;">Function</span>
&nbsp;
&nbsp;</pre>

<p>This function accepts two arguments, <code>strFilename</code> which receives the string created from the form values, and <code>strReplChar</code> which receives the character used for replacement. The function uses a <a href="http://en.wikipedia.org/wiki/Regex">regular expression</a> pattern to match the invalid characters (control characters through 31, double-quotes, and a handful of others). There is a check to make sure that the <code>strReplChar</code> argument is valid, but not much else. The <a href="http://msdn.microsoft.com/library/en-us/script56/html/9f1c25ba-46ce-46af-9f19-ac1d2bcf05d8.asp">RegExp Object</a> member <code>Replace</code> does the heavy lifting, before the function returns the modified string.</p>

<p>The <acronym title="Regular Expression">regex</acronym> pattern replaces invalid characters for Windows <a href="http://en.wikipedia.org/wiki/NTFS"><acronym title="New Technology File System">NTFS</acronym></a> (generally), but could easily be altered for other <acronym title="Operating System">OS</acronym> file systems. You could also use a more restrictive regular expression like:</p>

<div class="example">


<pre><code>
      [&amp;#094;\w\x20\&amp;%'`\-\@{}~!#\(\)&amp;_\&amp;#094;\+,\.=\[\]]
</code></pre>


</div>

<p>Then again, that may be a bit much. Wikipedia has a good <a href="http://en.wikipedia.org/wiki/Filename">filename</a> reference that includes a fairly comprehensive list of reserved words and allowable character sets. As always, if you need a good regex reference, try <a href="http://www.regular-expressions.info/">Regular-Expressions.info</a>.</p>

<p><strong><span class="caps">UPDATE</span>:</strong> The logic in my if/then statement to check the length and validity of the <code>strReplChar</code> was backwards. The example has been corrected.</p>]]></content:encoded>
			<wfw:commentRss>http://mitchcontla.com/2006/05/18/sanitize-file-names-using-vbscript/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Linkto: Scriptaculous Cheat Sheet</title>
		<link>http://mitchcontla.com/2006/04/24/linkto-scriptaculous-cheat-sheet/</link>
		<comments>http://mitchcontla.com/2006/04/24/linkto-scriptaculous-cheat-sheet/#comments</comments>
		<pubDate>Mon, 24 Apr 2006 13:22:06 +0000</pubDate>
		<dc:creator>mitch</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Asides]]></category>
		<category><![CDATA[Geekery]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://mitch.contla.net/2006/04/24/linkto-scriptaculous-cheat-sheet/</guid>
		<description><![CDATA[Amy Hoy offers up  Scriptaculous Cheat Sheet #1, a &#8220;Field Guide to Script.aculo.us Combination Effects&#8221;. Basic effects syntax all on a single-page PDF. Nicely done.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.slash7.com">Amy Hoy</a> offers up  <a href="http://www.slash7.com/articles/2006/04/22/scriptaculous-cheat-sheet-1">Scriptaculous Cheat Sheet #1</a>, a &#8220;Field Guide to <a href="http://script.aculo.us">Script.aculo.us</a> Combination Effects&#8221;. Basic effects syntax all on a single-page <acronym title="Portable Document Format"><span class="caps">PDF</span></acronym>. Nicely done.</p>]]></content:encoded>
			<wfw:commentRss>http://mitchcontla.com/2006/04/24/linkto-scriptaculous-cheat-sheet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>More Ajax Resources for Beginners</title>
		<link>http://mitchcontla.com/2006/04/10/more-ajax-resources-for-beginners/</link>
		<comments>http://mitchcontla.com/2006/04/10/more-ajax-resources-for-beginners/#comments</comments>
		<pubDate>Mon, 10 Apr 2006 23:30:16 +0000</pubDate>
		<dc:creator>mitch</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Geekery]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Links]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[hints]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[tutorials]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[web2.0]]></category>

		<guid isPermaLink="false">http://mitch.contla.net/2006/04/10/more-ajax-resources-for-beginners/</guid>
		<description><![CDATA[When I first became involved in a project that would require Ajax techniques, I quickly went to the web in search of tutorials to learn how to use the XMLHttpRequest object. Following are the resources I found most helpful as I learned to create dynamic web applications. Links to various JavaScript libraries and other sites [...]]]></description>
			<content:encoded><![CDATA[<p>When I first became involved in a project that would require Ajax techniques, I quickly went to the web in search of tutorials to learn how to use the <span class="caps">XMLH</span>ttpRequest object. Following are the resources I found most helpful as I learned to create dynamic web applications. Links to various JavaScript libraries and other sites I like are also listed. Hat tip to Rushi for writing the <a href="http://rushi.wordpress.com/2006/04/04/beginning-ajax/">post</a> that prompted this compilation.<br />
<span id="more-40"></span></p>

<p>The <a href="http://developer.apple.com/">Apple Developer Network</a> is a great source of information including a nice, easy-to-follow introduction to <a href="http://developer.apple.com/internet/webcontent/xmlhttpreq.html">The <span class="caps">XMLH</span>ttpRequest Object</a>. This brief tutorial includes a description of object methods and properties, simple examples of instantiation, and a fully functional <a href="http://developer.apple.com/internet/webcontent/XMLHttpRequestExample/example.html">example</a>. Other good <acronym title="Apple Developer Connection">ADC</acronym> articles include: <a href="http://developer.apple.com/internet/webcontent/iframe.html">Remote Scripting with <span class="caps">IFRAME</span></a>, <a href="http://developer.apple.com/internet/webcontent/dom2i.html">Dynamic Content with <span class="caps">DOM</span>-2 Part I</a> and <a href="http://developer.apple.com/internet/webcontent/dom2ii.html">Part II</a>, and <a href="http://developer.apple.com/internet/webcontent/objectdetection.html">Object Detection</a>.</p>

<p>Jim Ley&#8217;s article <a href="http://jibbering.com/2002/4/httprequest.html">Using the <span class="caps">XML HTTP</span> Request Object</a> shows you how to create an <acronym title="XMLHttpRequest">XHR</acronym> object using conditional compilation that degrades nicely to support all browsers. Examples include using <span class="caps">XHR </span>to make a <span class="caps">HEAD </span>request, or to check if a <acronym title="Uniform Resource Locator">URL</acronym> exists.</p>

<p><a href="http://24">Easy Ajax with Prototype</a>-1 is a ridiculously simple example from <a href="http://24">24 ways</a>-2 and a great introduction to using <a href="http://prototype.conio.net/">prototype.js</a>, the big-daddy of JavaScript libraries (read on for more information).</p>

<p><a href="http://alistapart.com/articles/gettingstartedwithajax">Getting Started with Ajax</a> shows you how to make an Ajax request, then use the responseText property and <acronym title="Document Object Model">DOM</acronym> innerHTML property to update the page. Later, a slight modification to the example uses responseXML, and <span class="caps">DOM </span>manipulation to perform the same update. This article makes use of the <a href="http://xkr.us/code/javascript/XHConn/"><span class="caps">XHC</span>onn library</a>, a &#8220;simple <span class="caps">XMLHTTP </span>interface&#8221;.</p>

<p>There is <a href="http://www.quirksmode.org/blog/archives/2005/12/the_ajax_respon.html">a great post</a> over on the <a href="http://www.quirksmode.org/blog/index.html">QuirksBlog</a> describing the pros and cons of <acronym title="eXtensible Markup Language">XML</acronym>, <acronym title="HyperText Markup Language">HTML</acronym>, and <acronym title="JavaScript Object Notation">JSON</acronym> responses, (<a href="http://www.quirksmode.org/blog/archives/2006/01/the_ajax_respon_1.html">part II here</a>). As you begin to develop web applications that use <span class="caps">XHR, </span>the response format/language you choose deserves some consideration. My projects thus far have all been simple enough to use the <span class="caps">XHR </span>responseText and <span class="caps">DOM </span>innerHTML property.</p>

<p>Paven Keely&#8217;s <a href="http://keelypavan.blogspot.com/2006/03/reusing-xmlhttprequest-object-in-ie.html">Reusing <span class="caps">XMLH</span>ttpRequest Object in IE</a> is a great read, as is Alex Bosworth&#8217;s <a href="http://sourcelabs.com/ajb/archives/2005/05/ajax_mistakes.html">Ajax Mistakes</a>. For the authoritative (albeit dry) reference on the <span class="caps">XHR </span>object, see Microsoft&#8217;s <a href="http://msdn.microsoft.com/library/default.asp?url=%2Flibrary%2Fen-us%2Fxmlsdk%2Fhtml%2F7924f6be-c035-411f-acd2-79de7a711b38.asp"><span class="caps">IXMLHTTPR</span>equest Members</a>.</p>

<h3>JavaScript Libraries</h3>

<p>At some point you may want to consider the many JavaScript libraries available designed to make development easier (especially <span class="caps">XHR </span>calls) and/or provide some amazing effects.</p>

<p><a href="http://prototype.conio.net/">prototype.js</a> is a widely used library popularized by it&#8217;s use in <a href="http://www.37signals.com/">37 Signals</a> many web-based offerings. The Ajax.Request and Ajax.Updater classes are fantastic! This library packs a powerful punch and is the basis for the <a href="http://script.aculo.us/">Script.aculo.us</a> and <a href="http://openrico.org/">Rico</a> effects libraries. If prototype is too much, try <a href="http://moofx.mad4milk.net/">Moo.fx</a>, a lightweight effects library based on &#8220;prototype-lite&#8221;. Lots of fun!</p>

<p>Other libraries worth considering include <a href="http://dojotoolkit.org/">Dojo</a>, <a href="http://mochikit.com/">MochiKit</a>, <a href="http://www.zimbra.com/community/ajaxtk_download.html">Zimbra</a>, and <a href="http://developer.yahoo.com/yui/">Yahoo! User Interface Library</a>. In addition to <span class="caps">XHR </span>classes/objects each of these include other classes designed to streamline development. For libraries primarily focused on encapsulating the <span class="caps">XHR </span>object try the <a href="http://xkr.us/code/javascript/XHConn/"><span class="caps">XHC</span>onn library</a>, <a href="http://microformats.org/wiki/rest/ahah"><span class="caps">AHAH</span></a>, or <a href="http://www.robertnyman.com/ask/"><span class="caps">ASK</span></a>.</p>

<h3>Other Great Resources</h3>

<p><a href="http://www.maxkiesler.com/index.php/weblog/comments/round_up_of_30_ajax_tutorials/">Round-up of 30 <span class="caps">AJAX</span> Tutorials</a><br />
<a href="http://www.fiftyfoureleven.com/resources/programming/xmlhttprequest/"><span class="caps">XMLH</span>ttpRequest &amp; Ajax Based Applications</a><br />
<a href="http://ajaxpatterns.org/wiki/index.php?title=Main_Page">Ajax Patterns</a><br />
<a href="http://www.ajaxmatters.com/r/welcome">Ajax Matters</a><br />
<a href="http://ajaxian.com/">Ajaxian Blog</a></p>

<p>I hope this helps some of you get started. The Ajax buzz seems to have breathed new life into the web, and has certainly made it fun to develop.</p>

<p>Leave a comment if you have other good links!</p>]]></content:encoded>
			<wfw:commentRss>http://mitchcontla.com/2006/04/10/more-ajax-resources-for-beginners/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>AJAX for Newbies</title>
		<link>http://mitchcontla.com/2006/04/07/ajax-for-newbies/</link>
		<comments>http://mitchcontla.com/2006/04/07/ajax-for-newbies/#comments</comments>
		<pubDate>Fri, 07 Apr 2006 12:34:55 +0000</pubDate>
		<dc:creator>mitch</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Asides]]></category>
		<category><![CDATA[Geekery]]></category>
		<category><![CDATA[Links]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[web2.0]]></category>

		<guid isPermaLink="false">http://mitch.contla.net/2006/04/07/ajax-for-newbies/</guid>
		<description><![CDATA[Scoble points to Ajax Resources for Beginners, a great little link source for Ajax tutorials. I&#8217;ve seen most of the sites referenced, but one completely new to me (and very valuable) is Ajax Activity Indicators, a page containing dozens of animated gif images for your downloading pleasure. ]]></description>
			<content:encoded><![CDATA[<p><a href="http://scobleizer.wordpress.com/2006/04/06/ajax-for-newbies/">Scoble</a> points to <a href="http://rushi.wordpress.com/2006/04/04/beginning-ajax/">Ajax Resources for Beginners</a>, a great little link source for <acronym title="Asynchronous JavaScript + XML">Ajax</acronym> tutorials. I&#8217;ve seen most of the sites referenced, but one completely new to me (and very valuable) is <a href="http://www.napyfab.com/ajax-indicators/">Ajax Activity Indicators</a>, a page containing dozens of animated gif images for your downloading pleasure. </p>]]></content:encoded>
			<wfw:commentRss>http://mitchcontla.com/2006/04/07/ajax-for-newbies/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
