<?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>sandmoose.com &#187; Web Development</title>
	<atom:link href="http://www.sandmoose.com/wordpress/category/web-development/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.sandmoose.com/wordpress</link>
	<description>A bunch of nonsense about nothing in particular</description>
	<lastBuildDate>Tue, 25 May 2010 05:33:36 +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>The Ruby Diaries</title>
		<link>http://www.sandmoose.com/wordpress/2006/03/31/the-ruby-diaries/</link>
		<comments>http://www.sandmoose.com/wordpress/2006/03/31/the-ruby-diaries/#comments</comments>
		<pubDate>Sat, 01 Apr 2006 00:50:22 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.sandmoose.com/wordpress/?p=371</guid>
		<description><![CDATA[Rather than assault the few people who read this blog with my web development posts I decided to create a whole another blog dedicated to that subject. Enter The Ruby Diaries. Here&#8217;s an excerpt from my first entry.
This purpose of this blog is to document my learning process with Ruby on Rails. Everyone has seen [...]]]></description>
			<content:encoded><![CDATA[<p>Rather than assault the few people who read this blog with my web development posts I decided to create a whole another blog dedicated to that subject. Enter <a href="http://www.sandmoose.com/rubydiaries/">The Ruby Diaries</a>. Here&#8217;s an excerpt from my first entry.</p>
<blockquote><p>This purpose of this blog is to document my learning process with Ruby on Rails. Everyone has seen the videos that make Ruby on Rails look unbelievably easy. Even more have seen the amazing applications that are practically the gold standard of â€œWeb 2.0â€³. Thatâ€™s all great for the people who invented the Rails framework but what about a normal day-to-day web developer deeply entrenched in the world of PHP or Java. How easy is it for someone like me to learn Ruby on Rails? Letâ€™s find out.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.sandmoose.com/wordpress/2006/03/31/the-ruby-diaries/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GamesRadar.com</title>
		<link>http://www.sandmoose.com/wordpress/2006/03/20/gamesradar/</link>
		<comments>http://www.sandmoose.com/wordpress/2006/03/20/gamesradar/#comments</comments>
		<pubDate>Mon, 20 Mar 2006 18:27:16 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.sandmoose.com/wordpress/?p=309</guid>
		<description><![CDATA[For those of you who care about such things this is what I&#8217;ve been working on for the better part of the past year.
www.gamesradar.com
The site has been online for a couple of weeks now. However, there are of course some problems with it as is the case with any new launch.
My contributions to the site [...]]]></description>
			<content:encoded><![CDATA[<p>For those of you who care about such things this is what I&#8217;ve been working on for the better part of the past year.</p>
<p><a href="http://www.gamesradar.com">www.gamesradar.com</a></p>
<p>The site has been online for a couple of weeks now. However, there are of course some problems with it as is the case with any new launch.</p>
<p>My contributions to the site include most of the back-end programming for the movie player, screenshot viewer, account registration system, and any cheat/strategy related pages.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sandmoose.com/wordpress/2006/03/20/gamesradar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Weblogic 9 on OS X</title>
		<link>http://www.sandmoose.com/wordpress/2005/08/22/weblogic-9-on-os-x/</link>
		<comments>http://www.sandmoose.com/wordpress/2005/08/22/weblogic-9-on-os-x/#comments</comments>
		<pubDate>Mon, 22 Aug 2005 23:56:22 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.sandmoose.com/wordpress/?p=336</guid>
		<description><![CDATA[Download and Install Apple&#8217;s JVM (1.5.02)
http://www.apple.com/support/downloads/java2se50release1.html
Download Weblogic 9 for &#8220;Red Hat Enterprise Linux (3.0, 4.0, x86)&#8221;
http://commerce.bea.com/showproduct.jsp?family=WLS&#038;major=9.0&#038;minor=0
Install on a Linux Machine
Find an available Linux machine on your network and install Weblogic on it. Yes, it really helps to have a Red Hat box lying around for this step as you can&#8217;t run the binary installer on [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Download and Install Apple&#8217;s JVM (1.5.02)</strong><br />
<a href="http://www.apple.com/support/downloads/java2se50release1.html">http://www.apple.com/support/downloads/java2se50release1.html</a></p>
<p><strong>Download Weblogic 9 for &#8220;Red Hat Enterprise Linux (3.0, 4.0, x86)&#8221;</strong><br />
<a href="http://commerce.bea.com/showproduct.jsp?family=WLS&#038;major=9.0&#038;minor=0">http://commerce.bea.com/showproduct.jsp?family=WLS&#038;major=9.0&#038;minor=0</a></p>
<p><strong>Install on a Linux Machine</strong><br />
Find an available Linux machine on your network and install Weblogic on it. Yes, it really helps to have a Red Hat box lying around for this step as you can&#8217;t run the binary installer on your OS X machine.</p>
<p><strong>Copy Installation to Local Machine</strong><br />
Using whatever means you have at your disposal copy the Weblogic installation directory from the Linux server to your OS X machine. You can put it anywhere you want  on your OS X machine. I put mine at <code>/usr/local/bea</code>.</p>
<p><strong>Remove Installed JVMs</strong><br />
<code>cd $BEA_HOME<br />
rm -fr jdk150_03<br />
rm -fr jrockit90_150_03</code></p>
<p><strong>Create Symbolic Link for Apple JVM</strong><br />
<code>cd $BEA_HOME<br />
ln -s /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home jdk150_02</code></p>
<p><strong>Edit Config Files</strong><br />
Edit the following two configuration files and replace all references to the installed JVM to the Apple JVM.<br />
<code>bea/registry.xml<br />
bea/weblogic90/common/bin/commEnv.sh</code></p>
<p><strong>Carry On With Business as Usual</strong><br />
That&#8217;s it. From here on out you can treat this installation as any other UNIX-based Weblogic installation.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sandmoose.com/wordpress/2005/08/22/weblogic-9-on-os-x/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wired on Firefox</title>
		<link>http://www.sandmoose.com/wordpress/2005/01/25/wired-on-firefox/</link>
		<comments>http://www.sandmoose.com/wordpress/2005/01/25/wired-on-firefox/#comments</comments>
		<pubDate>Tue, 25 Jan 2005 17:48:46 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.sandmoose.com/?p=282</guid>
		<description><![CDATA[If you&#8217;re not using Firefox as your web-browser these days you really should be. Wired has a great article that goes into the history of how the world&#8217;s best browser came to be.
Now if we can get the idiotic web developers at Blockbuster.com to make their site fully compatible with non-IE browsers I&#8217;ll be happy. [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re not using <a href="http://www.mozilla.org/products/firefox/">Firefox</a> as your web-browser these days you really should be. Wired has a <a href="http://www.wired.com/wired/archive/13.02/firefox.html?tw=wn_tophead_4">great article</a> that goes into the history of how the world&#8217;s best browser came to be.</p>
<p>Now if we can get the idiotic web developers at <a href="http://www.blockbuster.com">Blockbuster.com</a> to make their site fully compatible with non-IE browsers I&#8217;ll be happy. Get a clue Blockbuster! IE-only websites are, thankfully, a thing of the past. Standards rule. Use them. Seriously, you&#8217;re one of the last holdouts. And what&#8217;s with making us listen to a stupid sound clip every time we load your home page. Any web developer with half a clue figured out many years ago that unrequested sound on a web page is extremely annoying! It&#8217;s 2005. Why are you doing this now?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sandmoose.com/wordpress/2005/01/25/wired-on-firefox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Beware: I&#8217;m Learning Flash</title>
		<link>http://www.sandmoose.com/wordpress/2004/05/21/beware-im-learning-flash/</link>
		<comments>http://www.sandmoose.com/wordpress/2004/05/21/beware-im-learning-flash/#comments</comments>
		<pubDate>Fri, 21 May 2004 22:09:00 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.sandmoose.com/?p=223</guid>
		<description><![CDATA[Look out Homestar Runner! I have a book on Flash and I&#8217;m not afraid to use it. I had to plow through half the book &#8212; passing over boring topics like drawing curves, smoothing lines, and symbol libraries &#8212; to get to the good animation stuff. In less than four hours I learned enough about [...]]]></description>
			<content:encoded><![CDATA[<p>Look out <a href="http://www.homestarrunner.com">Homestar Runner</a>! I have a book on Flash and I&#8217;m not afraid to use it. I had to plow through half the book &#8212; passing over boring topics like drawing curves, smoothing lines, and symbol libraries &#8212; to get to the good animation stuff. In less than four hours I learned enough about animation and motion &#8220;tweening&#8221; to put together a little Flash project. Check it out.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="200" height="150" id="TylerJosh" align="middle"><param name="allowScriptAccess" value="sameDomain" /><param name="movie" value="/flash/TylerJosh.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" /><embed src="/flash/TylerJosh.swf" quality="high" bgcolor="#ffffff" width="200" height="150" name="TylerJosh" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /><br />
</object></p>
<p>Now that I know a little bit about Flash you should consider me extremely dangerous.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sandmoose.com/wordpress/2004/05/21/beware-im-learning-flash/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New JavaScript Example: File Upload &#8220;Progress Indicator&#8221;</title>
		<link>http://www.sandmoose.com/wordpress/2004/04/06/new-javascript-example-file-upload-progress-indicator/</link>
		<comments>http://www.sandmoose.com/wordpress/2004/04/06/new-javascript-example-file-upload-progress-indicator/#comments</comments>
		<pubDate>Tue, 06 Apr 2004 20:36:41 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.sandmoose.com/?p=217</guid>
		<description><![CDATA[
It&#8217;s been a long time but I have a new JavaScript example on the JavaScript examples page. For those of you who don&#8217;t know, this is page of proof-of-concept scripts I&#8217;ve written in order to complete various work related projects over the past few years.


This one show how to display a pop-up window while a [...]]]></description>
			<content:encoded><![CDATA[<p>
It&#8217;s been a long time but I have a new JavaScript <a href="/code/javascript/upload_progress/">example</a> on the <a href="/code/javascript/">JavaScript examples</a> page. For those of you who don&#8217;t know, this is page of proof-of-concept scripts I&#8217;ve written in order to complete various work related projects over the past few years.
</p>
<p>
This one show how to display a pop-up window while a file is uploading as part of a form submission. It doesn&#8217;t actually measure the percentage of the file that has been transferred as the file is uploading. It just displays a window while the upload is happening and closes the window when the upload is finished. For forms that handle large file uploads this can give the user a little more piece of mind than than seeing &#8220;frozen&#8221; browser while the upload takes place.
</p>
<p>
What would be really cool is if at some point in the future web browsers provided a mechanism where we can query the progress of a form submission via JavaScript. Then it would be possible to develop a true progress indicator for file uploads.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sandmoose.com/wordpress/2004/04/06/new-javascript-example-file-upload-progress-indicator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Manipulating Tables with DOM in JavaScript</title>
		<link>http://www.sandmoose.com/wordpress/2003/05/09/manipulating-tables-with-dom-in-javascript/</link>
		<comments>http://www.sandmoose.com/wordpress/2003/05/09/manipulating-tables-with-dom-in-javascript/#comments</comments>
		<pubDate>Fri, 09 May 2003 16:03:00 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.sandmoose.com/?p=154</guid>
		<description><![CDATA[Here&#8217;s what I&#8217;ve been doing at work this week.
Manipulating Tables with DOM in Javascript
This is a proof-of-concept example I did for myself before integrating it in with its intended application. The intention is that a managing editor for a magazine would use something like this to define a layout for a page containing multiple pieces [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s what I&#8217;ve been doing at work this week.</p>
<p><a href="/code/javascript/dom_table">Manipulating Tables with DOM in Javascript</a></p>
<p>This is a proof-of-concept example I did for myself before integrating it in with its intended application. The intention is that a managing editor for a magazine would use something like this to define a layout for a page containing multiple pieces of content. Sometimes a page will have an ad on one third of a page and editorial on the remaining two thirds. Other times they will squeeze reviews for two or three products on one page. With this they can define reusable templates for use in our flat plan application, which is currently in development. A flat plan is kind of like a storyboard for a magazine where all the pages and what goes on them is laid out in neat little rows.</p>
<p>Implementing this functionally entirely with JavaScript was quite a challenge for me and I was almost ready to throw in the towel when I remembered Mozilla ships with a DOM Inspector. This turned out to be an essential debugging tool!</p>
<p>This code only works in Mozilla and Netscape 6+. IE 6.x and the Safari beta can&#8217;t handle a dynamically changing table structure.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sandmoose.com/wordpress/2003/05/09/manipulating-tables-with-dom-in-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaScript Examples</title>
		<link>http://www.sandmoose.com/wordpress/2003/02/21/javascript-examples/</link>
		<comments>http://www.sandmoose.com/wordpress/2003/02/21/javascript-examples/#comments</comments>
		<pubDate>Fri, 21 Feb 2003 18:15:04 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.sandmoose.com/?p=117</guid>
		<description><![CDATA[Something I have not done a very good job of in the past is preserving my programming work for future reference. Moving into the future I&#8217;m going to try to keep as much of my work as possible actively maintained on my personal servers for demo and reference purposes. I&#8217;ve actually been working on this [...]]]></description>
			<content:encoded><![CDATA[<p>Something I have not done a very good job of in the past is preserving my programming work for future reference. Moving into the future I&#8217;m going to try to keep as much of my work as possible actively maintained on my personal servers for demo and reference purposes. I&#8217;ve actually been working on this for several months in my spare time but for larger projects this will take some more time and effort to complete. However, I have started a small JavaScript archive. It&#8217;s a good idea to keep simple JavaScript examples around to answer questions such as &#8220;Is it possible to do such and such in a web browser?&#8221; and &#8220;How do you do such and such in a web browser?&#8221;. Before I often turned to a site a former co-worker created: <a href="http://www.anders.com/projects/javascript/">The Funky-fine JavaScript Archive</a>. However, most of his examples only work in Internet Explorer and haven&#8217;t been updated to take the advances of Mozilla 1.x into account. </p>
<p>So I&#8217;m starting my own <a href="/code/javascript">JavaScript Examples</a> page. Sure, right now there&#8217;s only two items but I expect this will increase as I do more research for my current big project which will include a more than average amount of JavaScript and DHTML.</p>
<p>I posted the <a href="/code/javascript/date_chooser/">Date Chooser</a> example last summer. Nothing new there. This morning I added the <a href="/code/javascript/rewritting_html/">Rewritting HTML</a> example. This comes in handy if you ever need to update a piece of content on a page without sending a request to the server and reloading the whole page. Of course you have to know (or be able to calculate on the client) all possible values for the content you want to change. That&#8217;s not always feasible but in the cases where it is I think this greatly enhances the user experience. If used right this can add lightning fast response times to web applications which generally rely on the slow request/response interaction with a server.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sandmoose.com/wordpress/2003/02/21/javascript-examples/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apache&#8217;s UserDir Directive</title>
		<link>http://www.sandmoose.com/wordpress/2003/01/28/apaches-userdir-directive/</link>
		<comments>http://www.sandmoose.com/wordpress/2003/01/28/apaches-userdir-directive/#comments</comments>
		<pubDate>Tue, 28 Jan 2003 17:04:54 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.sandmoose.com/?p=100</guid>
		<description><![CDATA[Here&#8217;s one for my web development knowledge base. Most likely no one except for myself will care about this entry but it&#8217;ll be valuable for me to look back on when I need to do this again. For everyone else, I&#8217;ll try to include enough information so it&#8217;ll make some kind of sense.
I&#8217;m currently setting [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s one for my web development knowledge base. Most likely no one except for myself will care about this entry but it&#8217;ll be valuable for me to look back on when I need to do this again. For everyone else, I&#8217;ll try to include enough information so it&#8217;ll make some kind of sense.</p>
<p>I&#8217;m currently setting up a Red Hat Linux box at work that will serve as our main development server. Something I would like to be able to do with this new server is give each developer their own web space. This way each developer can checkout of copy of our code base from CVS into their own web space and work with it there. When they&#8217;re finished with a certain task they check their code back into the CVS repository. Periodically, I will update the code in our testing area and see if everything looks good. If it does, then I&#8217;ll sync the code to our production server. Of course, right now there is only one developer (me) but we do occasionally contract with a developer in Australia so having personal working areas is definitely beneficial.</p>
<p>I figured the easiest way to give users their own web spaces is to use Apache&#8217;s UserDir directive. The way it works is this. Each user on the server has a &#8216;home&#8217; directory where they store all of their files. If you create a directory within your home directory called &#8216;public_html&#8217; then anything within that directory will be available on the web. You generally use a URL like &#8216;www.server.com/~user&#8217; to view the pages in someone&#8217;s public_html directory.</p>
<p>That sounds simple enough. The problem is that Apache (the web server) can be very picky about the permissions on the public_html directory and the user and group that the Apache process runs as. This is not really a bad thing as security is very important. I would just have to set the permissions on public_html right. However, I kept getting &#8220;Forbidden&#8221; messages when trying to access anything in my public_html directory. I tried all different combinations of permissions and users and found that even if the public_html had full read and write permissions the only way I could view web pages in my public_html directory was to run Apache as my own userid. Not a solution at all. Even if I changed the owership of the public_html directory to another user and ran Apache as that user I would still be &#8220;Forbidden&#8221;. Which got me thinking. Maybe it has something to do with the permissions on my home directory itself. I assumed the permissions on the public_html directory would be only thing that really mattered but maybe there was more to it.</p>
<p>So I checked out the permissions on my home directory. It turns out default permissions on home directories in Red Hat 8.0 are pretty darn tight. Only the owner can view files. Nobody else can do anything at all. So, after a couple of changes to the it worked. Apparently, Apache looks at the permissions on the home directory before doing anything with the public_html directory. I wish it had been documented a little better but at least now I know.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sandmoose.com/wordpress/2003/01/28/apaches-userdir-directive/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>XSLT in Action</title>
		<link>http://www.sandmoose.com/wordpress/2002/11/14/xslt-in-action/</link>
		<comments>http://www.sandmoose.com/wordpress/2002/11/14/xslt-in-action/#comments</comments>
		<pubDate>Thu, 14 Nov 2002 21:40:54 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.sandmoose.com/?p=65</guid>
		<description><![CDATA[People often ask me what I do at work and it&#8217;s hard to give a straight answer because I do a lot of different things. Today, I&#8217;ll tell you about what I&#8217;ve been doing for the past week. To most people this is about as exciting as reading the phone book but this is what [...]]]></description>
			<content:encoded><![CDATA[<p>People often ask me what I do at work and it&#8217;s hard to give a straight answer because I do a lot of different things. Today, I&#8217;ll tell you about what I&#8217;ve been doing for the past week. To most people this is about as exciting as reading the phone book but this is what I do for a living and it&#8217;s exciting to me. </p>
<p>In case you don&#8217;t know, XML is an emerging technology that is getting a lot of attention these days. XML and it&#8217;s related technologies provide for a way to store and manipulate structured data in text format. XSLT deals with the &#8220;manipulate&#8221; part and this is what I&#8217;ve been learning about this week.</p>
<p>A while ago I was asked to put together a web-based photo album application for our marketing department. I started thinking about whether using XML would be appropriate for the project. I pulled together some images and text for a few sample photo albums and started researching various XML related technologies that could be of use. I eventually settled on using XSLT to produce the output for the photo albums with <a href="http://xml.apache.org/xalan-c/index.html">Xalan-C++</a> being my XSLT processor. After learning the ins and outs of the XSLT language I ended up with a style sheet that produces decent looking output.</p>
<p>See my <a href="/code/xslt">XSLT Examples</a> page for the results.</p>
<p>XSLT kind of reminds me of the tag-based directives used by Informix&#8217;s WebBlade product from a few years ago. I hated that crap and apparently enough other people also hated it because Informix has ceased to exist as an independent company. XSLT is much better than the WebBlade tags but there are a couple of things I find troubling.</p>
<p>First, variables aren&#8217;t exactly variable. Once you&#8217;ve assigned a value to a variable you can&#8217;t change it! Why didn&#8217;t they call them constants instead? On the other hand &#8220;params&#8221; can change value but only when being passed to another template. This forces many applications (my photo album style sheet included) to use recursion to keep track of &#8220;counter variables&#8221;. I&#8217;m not a big fan of recursion because it&#8217;s difficult to understand and the same effect can usually be accomplished through the use of loops. Clever recursive code is almost always a headache to maintain.</p>
<p>But XML and it&#8217;s related technologies are still in their infancy so I think we can expect to see many improvements over the coming years.</p>
<p>So&#8230; ya. That&#8217;s what I&#8217;ve been working on this week. The coming weeks will see me writing the PHP code to generate the source XML. Then we&#8217;ll have the beginnings of a serious web-based photo album application.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sandmoose.com/wordpress/2002/11/14/xslt-in-action/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
