<?xml version="1.0" encoding="ISO-8859-1"?>
<?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 version="2.0"><channel><title>Nick Brown - Web Dude</title><link>http://www.nickbrowndesign.com/</link><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/nickbrowndesign" /><description>NickBrownDesign.com Blog Feed</description><language>en</language><image><link>http://www.nickbrowndesign.com/</link><url>http://www.nickbrowndesign.com/images/logo3.png</url><title>Nick Brown - Web Dude</title><description>Feed provided by nickbrowndesign.com.</description></image><lastBuildDate>Fri, 01 Jun 2012 05:33:32 PDT</lastBuildDate><generator>FeedCreator 1.7.2-ppt (info@mypapit.net)</generator><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/nickbrowndesign" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="nickbrowndesign" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item><title>EasyUp - Simple File Uploads</title><link>http://www.nickbrowndesign.com/articles/easy-php-upload-class</link><author>c.nicholas.brown@gmail.com (Nick Brown)</author><pubDate>Sat, 09 Jan 2010 11:00:00 PST</pubDate><description>&lt;p&gt;
If you're working with PHP (or any server side language), you've probably constructed a script to upload files at some point or another, especially if you 

are constantly developing tools to assist people with no knowledge of code or basic FTP to manage files.  You also might be searching for a way to accomplish 

this for the first time.  In either case, let's see if we can't make your job easier.
&lt;/p&gt;

&lt;p&gt;
There are no lack of &lt;a href="http://pear.php.net/package/HTTP_Upload/"&gt;PHP&lt;/a&gt; &lt;a href="http://www.verot.net/php_class_upload.htm"&gt;uploader&lt;/a&gt; &lt;a 

href="http://www.phpclasses.org/browse/package/1841.html"&gt;classes&lt;/a&gt; out there, so let's not pretend this is groundbreaking.  The problem is a lot of those 

classes are extremely bloated and difficult to either learn the basics from or adapt to your program's specific needs.
&lt;/p&gt;

&lt;p&gt;File handling is also one of the best 

places to implement some simple &lt;acronym title="Object Oriented Programming"&gt;OOP&lt;/acronym&gt; to make this oft-used functionality reusable.  If your eyes darted 

nervously and your cursor went for that back button as soon as you read &lt;em&gt;OOP&lt;/em&gt;, fear not, you can easily find all of the tools to build a procedural 

file uploader here.
&lt;/p&gt;

&lt;h3&gt;Cut to the Chase&lt;/h3&gt;
&lt;p&gt;
Our class, affectionately called &lt;em&gt;easyUp&lt;/em&gt; until someone inevitably informs me the name is already in use, is a pared down, easy to read, and easy to 

implement class:
&lt;/p&gt;

&lt;pre class="brush:php"&gt;
class fileDir {
  private $fileInfo;
  private $fileLocation;
  private $error;
  private $direct;
  
  function __construct($dir){
	  $this-&gt;direct = $_SERVER['DOCUMENT_ROOT'].$dir;
	  if(!is_dir($this-&gt;direct)){
		  die('Supplied directory is not valid: '.$this-&gt;direct);	
	  }
  }
  function upload($theFile){
	  $this-&gt;fileInfo = $theFile;
	  $this-&gt;fileLocation = $this-&gt;direct . $this-&gt;fileInfo['name'];
	   if(!file_exists($this-&gt;fileLocation)){
		if(move_uploaded_file($this-&gt;fileInfo['tmp_name'], $this-&gt;fileLocation)){
			return 'File was successfully uploaded';
		} else {
			return 'File could not be uploaded';
			$this-&gt;error = "Error: File could not be uploaded.\n";
			$this-&gt;error .= 'Here is some more debugging info:';
			$this-&gt;error .= print_r($_FILES);	
		}
	  } else {
		  return 'File by this name already exists';	
	  }
  }
  function overwrite($theFile){
	  $this-&gt;fileInfo = $theFile;
	  $this-&gt;fileLocation = $this-&gt;direct . $this-&gt;fileInfo['name'];
	  if(file_exists($this-&gt;fileLocation)){
		  $this-&gt;delete($this-&gt;fileInfo['name']);
	  }
	  return $this-&gt;upload($this-&gt;fileInfo);
  }
  function location(){
	  return $this-&gt;fileLocation;	
  }
  function fileName(){
	  return $this-&gt;fileInfo['name'];
  }
  function delete($fileName){
	  $this-&gt;fileLocation = $this-&gt;direct.$fileName;
	  if(is_file($this-&gt;fileLocation)){
		unlink($this-&gt;fileLocation);
		return 'Your file was successfully deleted';
	  } else {
		return 'No such file exists: '.$this-&gt;fileLocation;	
	  }
  }
  function reportError(){
	  return $this-&gt;error;	
  }
}
&lt;/pre&gt;

&lt;p&gt;
For some the class may be self-explanatory, but no worries if not.  Before we can create file manipulation magic, we need some HTML.
&lt;/p&gt;

&lt;h3&gt;The HTML&lt;/h3&gt;

&lt;pre class="brush:xml"&gt;
&lt;form action="&lt;?php echo $_SERVER['PHP_SELF']; ?&gt;" method="post" enctype="multipart/form-data"&gt;
  &lt;input type="file" name="myFile" /&gt;
  &lt;br /&gt;
  &lt;input type="submit" name="mySubmit" value="Upload" /&gt;
&lt;/form&gt;
&lt;/pre&gt;

&lt;p&gt;
Nothing unusual here.  A form that submits to the same page with a single &lt;em&gt;browse for file&lt;/em&gt; input and a submit button.  In addition to the HTML file, 

we're going to need a folder on the server to house our files.  Here, we'll be using a directory called myUploads.
&lt;/p&gt;

&lt;h3&gt;The Implementation&lt;/h3&gt;

&lt;pre class="brush:php"&gt;
if(isset($_POST['mySubmit'])){
  include 'easyUp.php';
  $up = new fileDir('/myUploads/');
	
  $up-&gt;upload($_FILES['myFile']);
}
&lt;/pre&gt;

&lt;p&gt;
First we set up an if statement to see if our form was submitted, and then set include our neatly packaged class inside the if statement.  After that we 

create a new object and set it to a variable name.  This can be whatever you'd like, but we're going to go with $up this time.  When the object is created, 

we're going to let it know which directory we're working with.  The path is always taken from the root directory, so for our myUploads folder, we simply pass 

in /myUploads/.  You can also get more organized with a subfolder such as /myUploads/images/.  
&lt;/p&gt;

&lt;p&gt;
Next we just need to call the upload() method, and direct it to the name of our file in the $_FILES array.  In this case: $_FILES['myFile'].  You may repeat this step for as many files as you'd like, simply changing the file name: 

&lt;pre class="brush:php"&gt;
$up-&gt;upload($_FILES['myFile2']);
&lt;/pre&gt;

&lt;p&gt;
That's it.  Fire it up and start uploading  files to your server.
&lt;/p&gt;

&lt;p&gt;
Deleting a file is just as easy.
&lt;/p&gt;

&lt;pre class="brush:php"&gt;
include 'easyUp.php';
$up = new fileDir('/myUploads/');
	
$up-&gt;delete('myPic.jpg');
&lt;/pre&gt;

&lt;p&gt;
This will delete a jpeg named myPic.jpg from the /myUploads/ directory.  Keep in mind that you will receive an error if you try to upload a file where one 

already exists with the same name.  In this situation, use the overwrite() method instead of upload() to replace the old one.
&lt;/p&gt;

&lt;p&gt;
Finally, location() and fileName()  retrieve information about the last file uploaded.
&lt;/p&gt;

&lt;pre class="brush:php"&gt;
if(isset($_POST['mySubmit'])){
  include 'easyUp.php';
  $up = new fileDir('/myUploads/');
	
  $up-&gt;upload($_FILES['myFile']);

  echo $up-&gt;location();
  // outputs: yourServersAbsolutePath/myUploads/
  
  echo $up-&gt;fileName();
  // outputs: myPic.jpg if our last uploaded file was named myPic.jpg.
}
&lt;/pre&gt;

&lt;p&gt;
That's all for now.  Upload to your heart's content or use this as a base model for tweaking your own upload class.  If you do find something useful to add, 

leave me a comment.
&lt;/p&gt;</description></item><item><title>Easy jQuery Form Values</title><link>http://www.nickbrowndesign.com/articles/easy-jquery-form-values</link><author>c.nicholas.brown@gmail.com (Nick Brown)</author><pubDate>Thu, 03 Dec 2009 11:00:00 PST</pubDate><description>&lt;p&gt;
Been hectic as hell around here, but I still need to make time to post new content.  There are always ways to improve and refactor your code, and this should help.  You've probably seen some pretty bloated and static ways to grab form values for use in Ajax, and if you're still grabbing each value individually, it's time to step it up.    
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;&lt;span class="underline"&gt;Edit:&lt;/span&gt; Received some valuable criticism from a reader (Mike T.) and altered my post accordingly.  Thanks for the comments!&lt;/em&gt; 
&lt;/p&gt;
&lt;p&gt;
You've seen values retrieved using something similar to:
&lt;/p&gt;
&lt;pre class="brush:js"&gt;
var name = $('#myForm input[name="userName"]').val();
var website = $('#myForm input[name="website"]').val();
var comment = $('#myForm textarea[name="comment"]').val();
&lt;/pre&gt;
&lt;p&gt;
This is almost acceptable if you're only grabbing one or two values, but beyond that it's cumbersome and sloppy.  It only gets worse if you're assigning arbitrary id's to each input. 
&lt;/p&gt;
&lt;p&gt;
Instead, use the .serialize() function to grab all of your values any time you want to retrieve form information for an Ajax call.  This function will take all of your input names and values and format them for the server.  Keep in mind for elements such as radios and checkboxes that serialize will grab only the :selected and or :checked items.
&lt;/p&gt;
&lt;h3&gt;The HTML&lt;/h3&gt;
&lt;pre class="brush:xml"&gt;
&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
	&amp;lt;title&amp;gt;Grabbing Form Values&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;

&amp;lt;form id="myForm"&amp;gt;
    &amp;lt;input type="text" name="firstName" /&amp;gt;
    &amp;lt;br /&amp;gt;
    &amp;lt;input type="text" name="lastName" /&amp;gt;
    &amp;lt;br /&amp;gt;
    &amp;lt;input type="radio" name="receiveEmail" value="yes" /&amp;gt;  
    &amp;lt;input type="radio" name="receiveEmail" value="no" /&amp;gt;
    &amp;lt;br /&amp;gt;
    &amp;lt;textarea name="comments"&amp;gt;&amp;lt;/textarea&amp;gt;
    &amp;lt;br /&amp;gt;
    &amp;lt;input type="submit" value="Submit" /&amp;gt;
&amp;lt;/form&amp;gt;

&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/pre&gt;

&lt;p&gt;
Now we can use the function to retrieve our form info and send it off.
&lt;/p&gt;
&lt;h3&gt;The Usage&lt;/h3&gt;
&lt;pre class="brush:js"&gt;
function sendForm(){ // Your Ajax function for sending info
  var formInfo = $('#myForm').serialize(); // Grab form values
  $.post('_myPHP.php', // Use .post() for your Ajax call
        formInfo,
        function(data){
          // Do something on successful return
        }
  ); 
}
&lt;/pre&gt;
&lt;p&gt;
Obviously there is a lot more you can do here such as validating your info or attaching the function directly to a &lt;a href="http://docs.jquery.com/Events/submit" title="jQuery Documentation on .submit()"&gt;.submit()&lt;/a&gt; call, but this should get the ball rolling in the right direction.
&lt;/p&gt;
&lt;p&gt;
Love it?  Hate it?  Leave a comment.
&lt;/p&gt;</description></item><item><title>Quit Being a Nightmare Client</title><link>http://www.nickbrowndesign.com/articles/quit-being-a-nightmare-client</link><author>c.nicholas.brown@gmail.com (Nick Brown)</author><pubDate>Thu, 15 Oct 2009 12:00:00 PDT</pubDate><description>&lt;p&gt;Alright clients, I'm calling you out.  No not all of you, just most of you.&lt;br /&gt;&lt;br /&gt;
&lt;span style="text-decoration:line-through;"&gt;With the recent scarcity of money and jobs in many industries worldwide&lt;/span&gt; The economy blows and many of you in charge of teams or projects are switching to contract / freelance workers to complete those projects.  Or you may just be contracting people as a way to test them out before you offer them a full-time position.  &lt;br /&gt;&lt;br /&gt;Either way, I'm here to prepare you.
&lt;/p&gt;
&lt;p&gt;
Many of you have never worked with a freelancer before &lt;em&gt;and it shows&lt;/em&gt;.  This causes frustration for both you and the freelancers, and while it can be avoided with some communication, the business world moves quickly and there is rarely time for proper dialogue.  Going in educated benefits everyone.  The web is my business, so while all of these points apply to the web, most can be applied to any freelance work.
&lt;/p&gt;
&lt;h3&gt;What you can expect&lt;/h3&gt;
&lt;p&gt;
&lt;strong&gt;Pay a higher rate&lt;/strong&gt; - you are not paying for medical insurance, retirement funds, social security, sick days, vacation days, or facilities for them to work in.  Expect to spend some of that money.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Sign a contract&lt;/strong&gt; - these protect freelancers and clients.  I'm not saying you're a bad person, freelancers just want to prevent getting intentionally (or otherwise) screwed.  If you see a clause in a contract you find ridiculous, ask.  Chances are there is a very real world (and very unfortunate) example of why it exists.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Answer some questions&lt;/strong&gt; - I always start clients off with a questionnaire, even if I'm going to repeat them in our first meeting.  Answer the questions.  They allow everyone to identify goals and create a plan for getting there and you may find that some concepts take shape more easily on paper.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Ask some questions&lt;/strong&gt; - If you need answers, ask.  I never mind answering client questions because they generally prevent future misunderstandings.  Assumptions are one thing when you have a solid understanding of what's going on.  They are quite another when you are in unfamiliar territory.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Do some homework&lt;/strong&gt; - I'll be honest, this one is personal.  There's a difference between hiring someone to create a physical book for you and write a story for you.  Websites are closer to creating a book than writing it, and most freelancers will require most if not all of your content (text, images, video) to be provided up front.  You may think, "well that's stupid, I'm paying them, why does it matter if they have my content or not."  The answer is because hounding you for your content is about as much fun as being hounded.
&lt;/p&gt;
&lt;h3&gt;Bottom Line&lt;/h3&gt;
&lt;p&gt;
Freelancers aren't perfect either, but knowing these facts ahead of time can get you past a lot of basic problems.  
&lt;/p&gt;
&lt;p&gt;
Most freelancers are happy to reduce rates for return customers who were easy to work with the first time around, so if you're saying "I don't care about making friends, it's business," keep the dollar signs in mind.
&lt;/p&gt;</description></item><item><title>Steam: Rags to Riches</title><link>http://www.nickbrowndesign.com/articles/valve-steam-rags-to-riches</link><author>c.nicholas.brown@gmail.com (Nick Brown)</author><pubDate>Sat, 15 Aug 2009 12:00:00 PDT</pubDate><description>&lt;p&gt;
I find it's almost unheard of nowadays for a digital product to overcome a poor launch.  There's a number of reasons for this, not the least of which is bad word-of-mouth mixed with the incredible rate at which said information travels.  The product is crushed before it has time to right itself.  Maybe it's a good thing: survival of the fittest, etc, but I'd like to see some underdogs come out on top occasionally.  And the one product I've seen do just that is Valve's &lt;a href="http://www.steampowered.com"&gt;Steam&lt;/a&gt; client.
&lt;/p&gt;
&lt;p&gt;
Steam is a combination of 
&lt;ul&gt;
&lt;li&gt;messaging service&lt;/li&gt;
&lt;li&gt;community forums&lt;/li&gt;
&lt;li&gt;online store&lt;/li&gt;
&lt;li&gt;content delivery system&lt;/li&gt;
&lt;li&gt;and game management client&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;
&lt;p&gt;
There are also controversial elements of &lt;acronym title="Digital Rights Management"&gt;DRM&lt;/acronym&gt; here but that's not the focus, so I'm willing to overlook it.
&lt;/p&gt;
&lt;h3&gt;Failure to Launch&lt;/h3&gt;
&lt;p&gt;
Steam came on the scene in 2003 and most people, myself included, thought it was a cumbersome piece of crap.  It wasn't the first product of its kind and it didn't even outperform it's peers when it released.  I was annoyed at requiring a persistent internet connection to enjoy my content as well as the ridiculous advertisements that appeared constantly.  
&lt;/p&gt;    
&lt;p&gt;
Present day Steam is top of its class and a pleasure to use.  Some of the basic services like the messaging system and community features are nothing revolutionary, but they work well.  It's the online store and the content delivery system that make Steam shine.   
&lt;/p&gt;
&lt;p&gt;
Having worked in advertising I find myself painfully aware of being sold something.  On the rare occasions that I do get an advertisement from Steam I more often than not end up purchasing the product.  Their sales usually allow you to play a game free over the weekend and buy it on Monday for 40%-75% off.  Most of these are older games that I would have forgotten about or indie games that don't get much media coverage.  I usually find myself half-heartedly annoyed that Valve is so good at selling games, even if it isn't theirs.  
&lt;/p&gt;
&lt;h3&gt;The Digital Age&lt;/h3&gt;
&lt;p&gt;
Steam also allows you to access digital copies of the game at any time.  For those that insist on hard-copies, this is often a deal-breaker, and while physical copies have their advantages, I enjoy being able to buy a new computer and queue game downloads and installations.  Because few things suck more than sitting at the computer, watching endless progress bars and 'Insert Next CD' popups.
&lt;/p&gt;
&lt;p&gt;
I'm thrilled that diligently revamping digital products still pays off and I hope other companies can emulate this.  Between offering hefty discounts and providing a more viable outlet for indie game developers, Steam has kept me and many others coming back for more. 
&lt;/p&gt;</description></item><item><title>jQuery Modal Window</title><link>http://www.nickbrowndesign.com/articles/jquery-modal-window</link><author>c.nicholas.brown@gmail.com (Nick Brown)</author><pubDate>Sat, 14 Mar 2009 12:00:00 PDT</pubDate><description>&lt;p&gt; 
I've been using the &lt;a href="http://www.prototypejs.org/"&gt;Prototype&lt;/a&gt; &lt;a href="http://en.wikipedia.org/wiki/Javascript"&gt;JavaScript&lt;/a&gt; library for a while now, but in the interest of learning something new I decided to explore &lt;a href="http://jquery.com/" target="_blank"&gt;jQuery&lt;/a&gt; as well. I went through some &lt;a href="http://blog.themeforest.net/screencasts/jquery-for-absolute-beginners-video-series/"&gt;fantastic jQuery tutorials&lt;/a&gt; available at ThemeForest.net as well as some traditional reading, but I didn't have a large project to really put the library to the test.
&lt;/p&gt;
&lt;p&gt;
Until I started working on this website that is.  I will spare you the obligatory &lt;em&gt;pros &amp;amp; cons&lt;/em&gt; of two JavaScript libraries post and will just say that both have their uses, but that's not what this is about.  
&lt;/p&gt; 
&lt;p&gt; 
While working on the new website I decided to use a script I had previously worked with for creating a &lt;a href="http://en.wikipedia.org/wiki/Modal_window"&gt;modal window&lt;/a&gt; used to contain my contact form. The problem was that the script I had used previously was written for the Prototype library and I was too far invested in jQuery in this project to turn around just for this one script. I looked around for a compatible version of the modal window but without any luck. Finally I decided to look into modifying it to run off the jQuery library. 
&lt;/p&gt; 
&lt;p&gt; 
The &lt;a href="http://www.pjhyett.com/posts/190-the-lightbox-effect-without-lightbox"&gt;original script&lt;/a&gt; was a modified version of the very popular &lt;a href="http://www.huddletogether.com/projects/lightbox/"&gt;Lightbox JS&lt;/a&gt; by Lokesh Dhakar. My version simply converts it for use with jQuery.
&lt;/p&gt;

&lt;p&gt;If you're interested in using this script I would recommend following the steps for the original and simply swapping in my JavaScript file.  I'm tempted to write my own tutorial for the entire process of setting up the modal window but at the moment other projects take precedence.
&lt;/p&gt; 
&lt;p&gt; &lt;strong&gt;Resources&lt;/strong&gt;: 
&lt;ul&gt; &lt;li&gt;&lt;a href="http://www.pjhyett.com/posts/190-the-lightbox-effect-without-lightbox"&gt;Original Modal Tutorial&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://www.nickbrowndesign.com/js/jQmodal.js"&gt;My altered script&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://www.huddletogether.com/projects/lightbox/"&gt;Lightbox JS by Lokesh Dhakar&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;/p&gt;</description></item><item><title>CMS Implementation</title><link>http://www.nickbrowndesign.com/articles/new-content-management-system</link><author>c.nicholas.brown@gmail.com (Nick Brown)</author><pubDate>Wed, 11 Mar 2009 12:00:00 PDT</pubDate><description>&lt;p&gt;Mmmmm.  Tastes like content management.  Since the site launched I've been tweaking various sections that I thought needed some extra attention.  One of these areas was the &lt;acronym title="Content Management System"&gt;CMS&lt;/acronym&gt;, which was functional but ugly.
There wasn't a lot of motivation in the beginning to make my own CMS look terribly attractive.  Sure I'll invest the time if the project is for a client, but what do I care if I'm looking at generic form fields on a white background?&lt;/p&gt;

&lt;p&gt;I'm hoping having a fully developed system backing the site will help keep me motivated to update it with new content.  And for some added encouragement I'm integrating the &lt;a href="http://www.google.com/analytics/" target="_blank"&gt;Google Analytics&lt;/a&gt; &lt;acronym title="Application Programming Interface"&gt;API&lt;/acronym&gt;,  because nothing helps motivate like pie charts!
&lt;/p&gt;

&lt;p&gt;
All in all I'm really happy with the way it's coming together and I look forward to being able to implement features to help maintain the site.  It's really nice to be designing a CMS to fit &lt;em&gt;just&lt;/em&gt; my own needs for once instead of clients or co-workers.
&lt;/p&gt;</description></item><item><title>Website Launch!</title><link>http://www.nickbrowndesign.com/articles/new-website-launch</link><author>c.nicholas.brown@gmail.com (Nick Brown)</author><pubDate>Mon, 09 Mar 2009 12:00:00 PDT</pubDate><description>&lt;p&gt;
My website was a miserable pile of yuck.  Alright well that's not entirely true, it was just mostly a pile of yuck.  Essentially when I created the first version of this site I received feedback from a wide spectrum of professionals who encouraged me to create the e-quivalent of a generic printed resume.  The site itself was well done, but it was bland and didn't show off any personality, which made me hate it a little more every time I looked at it.    
&lt;/p&gt;
&lt;p&gt;
I've had a lot of people tell me over the past few months what an online portfolio or any website that shows off your work &lt;em&gt;should&lt;/em&gt; and &lt;em&gt;shouldn't&lt;/em&gt; be.  No - it &lt;em&gt;should&lt;/em&gt; be what I want it to be.  End of story.  All that being said, I'm launching version two which I'm already much happier with.  I'm thrilled to finally get to show some personality here.&lt;/p&gt;

&lt;p&gt;For interested parties: the website was written using the &lt;a href="http://jquery.com/" target="_blank"&gt;jQuery&lt;/a&gt; library with a &lt;acronym title="Pre-Hypertext Processing: a programming language for the web"&gt;PHP&lt;/acronym&gt; backing.  I considered implementing WordPress for a while, but then decided I wanted to replicate (and improve upon) the WP experience using my own code.  As of right now I'm just cleaning up the design of the content management system.  I normally don't spend a lot of time making &lt;acronym title="Content Management System"&gt;CMS&lt;/acronym&gt;'s attractive, but I'm hoping it will help motivate me to update the site.  In addition I've implemented a couple API's that I've been experimenting with over the previous weeks and am enjoying immensely.  
&lt;/p&gt;

&lt;p&gt;
I'm hoping to keep myself on a schedule for writing new posts, but looking at my projects for the next month it looks bleak at the moment.  I'm considering writing about a recent script conversion I did for the site, but we'll see how that turns out.
&lt;/p&gt;</description></item></channel></rss>

