<?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>Cory Reid Designs</title>
	<atom:link href="http://www.coryreid.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.coryreid.com</link>
	<description></description>
	<lastBuildDate>Fri, 26 Mar 2010 20:25:14 +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>Multiple File Upload Application with Flash CS4 and Actionscript 3.0</title>
		<link>http://www.coryreid.com/multiple-file-upload-application-with-flash-cs4-and-actionscript-3-0/</link>
		<comments>http://www.coryreid.com/multiple-file-upload-application-with-flash-cs4-and-actionscript-3-0/#comments</comments>
		<pubDate>Tue, 15 Dec 2009 01:21:24 +0000</pubDate>
		<dc:creator>Cory Reid</dc:creator>
				<category><![CDATA[Actionscript 3.0]]></category>
		<category><![CDATA[Flash Development]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[actionscript 3.0]]></category>
		<category><![CDATA[file]]></category>
		<category><![CDATA[files]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[multiple]]></category>
		<category><![CDATA[multiple file uploader]]></category>
		<category><![CDATA[upload]]></category>
		<category><![CDATA[uploader]]></category>

		<guid isPermaLink="false">http://www.coryreid.com/multiple-file-upload-application-with-flash-cs4-and-actionscript-3-0/</guid>
		<description><![CDATA[I have been trying to create an upload application that can upload more than one image at a time for a very long time now; over a period of several weeks, I casually Googled around for information on creating such an application within Flash.  After compiling a fairly decent sized resource of links to [...]]]></description>
			<content:encoded><![CDATA[<p>I have been trying to create an upload application that can upload more than one image at a time for a very long time now; over a period of several weeks, I casually Googled around for information on creating such an application within Flash.  After compiling a fairly decent sized resource of links to articles and tutorials, sets of video tutorials, and sketches on paper of what I was aiming for – I was finally able to piece all the parts together to create an application to do that very thing – upload multiple files at once.  This post will go over the code that makes it work.<span id="more-87"></span></p>
<p><span style="color:red"><img class="alignright size-medium wp-image-61" title="uploader-2" src="http://www.coryreid.com/wp-content/uploads/2009/12/gal2-300x177.PNG" alt="uploader-2" width="300" height="177" />In this post I will include all the code that I used to make this Flash file upload application work and I want you to keep in mind that I am an <strong>amateur</strong> Flash developer with <em>zero</em> experience in Flash, and that the code is essentially a compilation of solutions to various problems that I found via Google.</span></p>
<p>First, I began by importing some classes for Flash that I used within the code.  This probably isn&#8217;t all that I needed to import, but this is what I imported that worked.</p>
<pre class="brush: as3;">
import flash.net.FileReferenceList;
import flash.net.FileReference;
import fl.containers.ScrollPane;
</pre>
<p>After the import, I created my list of variables, and pre-assigned some with their values.</p>
<pre class="brush: as3;">
var fileList:FileReferenceList = new FileReferenceList();
var filefilters:Array;
var i:Number = 0;
var uploaderStatus:Boolean = false;
var uploadQueue:Number = 0;
var selectedFileArray:Array = new Array();
var uploadURL:URLRequest = new URLRequest();
var variables:URLVariables = new URLVariables();
uploadURL.url = (stage.loaderInfo.parameters.f)? stage.loaderInfo.parameters.f : 'process.php';
uploadURL.method = URLRequestMethod.POST;
var scrollContent:MovieClip = new MovieClip();
this.addChild(scrollContent); //add the scrollContent to the stage
uploader_mc.scrollPane.source = scrollContent;
var theItemList:Object = Object(uploader_mc.scrollPane.content);
var theAlbumList:Object = Object(uploader_mc.albumSelect);
var theMessageBox:Object = Object(uploader_mc.messageText);

var albumString:URLRequest = new URLRequest();
albumString.url = (stage.loaderInfo.parameters.f)? stage.loaderInfo.parameters.o : 'albums.php';
var albumLoader:URLLoader = new URLLoader(albumString);
albumLoader.addEventListener(Event.COMPLETE, populateAlbumsList);
</pre>
<p>Now I want to delve into the meat of the Actionscript.  One-by-one I will list the functions as they appear in my Actionscript 3.0 file and explain what they&#8217;re all about.</p>
<pre class="brush: as3;">
function setup(fileList:FileReferenceList) {
    fileList.addEventListener(Event.SELECT, selectHandler);
    uploader_mc.upload_btn.enabled = false;
}
setup(fileList);
</pre>
<p><strong>setup()</strong> is passed the fileList variable and adds the needed event listeners to begin the application.  Here is where you&#8217;d pass the even listeners for when the user begins browsing for files or for other things such as error handling (IO errors), when the entire upload completes (if you&#8217;re uploading through the FileReferenceList class directly), etc.  I did not include any of that here as this is a BETA application and is not yet complete.  To continue, this function also disables the upload button as we don&#8217;t want the user to be able to fire the upload event if no files have been selected.</p>
<p style="text-align: center;">-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-</p>
<pre class="brush: as3;">
uploader_mc.select_btn.addEventListener(MouseEvent.CLICK, browseFiles);
function browseFiles(e:MouseEvent):void {
    theMessageBox.text = &quot;&quot;;
    filefilters = [ new FileFilter('Images *.jpg; *.jpeg; *.gif; *.png', '*.jpg;*.jpeg;*.gif;*.png') ];
    fileList.browse(filefilters);
}
</pre>
<p>In the above code snippet, we are adding an event listener to the select button and then immediately defining the function for the event listener – <strong>browseFiles()</strong>.  This function is passed a MouseEvent and makes sure the message box (theMessageBox) is empty, adds the file filters to the fileFilters array and then launches the browse dialogue box for fileList.  The user at this point would be browsing for the images they&#8217;d like to upload.</p>
<p style="text-align: center;">-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-</p>
<pre class="brush: as3;">
uploader_mc.upload_btn.addEventListener(MouseEvent.CLICK, uploadFiles);
function uploadFiles(e:MouseEvent):void {
    uploadSingleFile(uploadQueue);
}
</pre>
<p>Above we&#8217;re adding an event listener to the upload button and then immediately defining the function for the event listener – <strong>uploadFiles()</strong>.  This function simply calls the uploadSingleFile function and to that, passes the value of the variable uploadQueue.</p>
<p style="text-align: center;">-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-</p>
<pre class="brush: as3;">
uploader_mc.cancel_btn.addEventListener(MouseEvent.CLICK, cancelUpload);
function cancelUpload(e:MouseEvent):void {
    var file:FileReference = FileReference(selectedFileArray[uploadQueue]);
    file.cancel();
    reset();
}
</pre>
<p>Here we are setting the event listener for the cancel button and defining the corresponding function – <strong>cancelUpload()</strong>.  This function is passed a MouseEvent and gets the current file upload in progress and sets the variable file to that, then cancels that upload.  After the cancel, it calls the reset function which prepares the upload application to re-browse for files and begin a new upload.</p>
<p style="text-align: center;">-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-</p>
<pre class="brush: as3;">
function itemComplete(e:Event):void {
    var file:FileReference = FileReference(e.target);
    file.removeEventListener(Event.COMPLETE, itemComplete);
    file.removeEventListener(IOErrorEvent.IO_ERROR, ioError);
    theItemList.removeChildAt(0);
    uploadQueue++;
    for(x = uploadQueue; x &lt; selectedFileArray.length; x++) {
        theItemList.getChildByName(&quot;listItem&quot;+x).y -= 85;
        uploader_mc.scrollPane.update();
    }
    uploadSingleFile(uploadQueue);
}
</pre>
<p><strong>itemComplete()</strong> is called every time a queued file has completed uploading.  It begins by getting the FileReference information from the object that called the function, and setting it to the variable file.  It then removes the event listeners which were on the object and removes the object from the list of files to download.  It then increases uploadQueue by one and then iterates through all items still in the list to be uploaded and alters their position in the list (moves them up to fill the space of the removed item) and updates the list to make sure the scrollbar is current.  After which, it calls uploadSingleFile, passing the new value of uploadQueue to begin uploading the next file in queue.</p>
<p style="text-align: center;">-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-</p>
<pre class="brush: as3;">
function uploadSingleFile(index:Number):void {
    theMessageBox.text = &quot;&quot;;
    try {
        variables.album = uploader_mc.albumSelect.selectedItem.data;
        if(index &lt; selectedFileArray.length){
            var file:FileReference = FileReference(selectedFileArray[index]);
            file.addEventListener(Event.COMPLETE, itemComplete);
            try {
                uploaderStatus = true;
                uploadURL.data = variables;
                file.upload(uploadURL);
                updateButtons();
            } catch (error:Error) {
                theMessageBox.text = &quot;Problems uploading file: &quot; + file.name;
            }
        } else {
            reset();
        }
    } catch(Error:TypeError) {
        theMessageBox.text = &quot;Please select an album first!&quot;;
    }
}
</pre>
<p><strong>uploadSingleFile()</strong> is the function in which most of the magic happens – where the files are uploaded.  It is passed a number to begin, and makes sure that the message box has no data displayed.  It then tries to set an album value of the selected album in the drop-down list to the variables variable.  If the user has not selected an album from the drop-down list, this fails and the catch sets the message box to display an error message informing the user to select an album first.  Assuming the user has selected an album, and the first line within the try statement succeeds, it proceeds to see if the number passed to the uploadSingleFile function is not larger than the length of selectedFileArray – which if it is there are no more files to be uploaded, and the else section of the if/else block resets the uploader so the user may upload more files.  If the index is smaller than the length of selectedFileArray then that file needs to be uploaded.  It grabs the corresponding FileReference from the selectedFileArray and sets it to the file variable.  Then it adds complete and IO error event listeners.  It then attempts to set the uploaderStatus and uploadURL.data variables, upload the file to uploadURL, and last updates the buttons to reflect the file upload status.  If any of that fails it sets the message box to display an error informing the user of which file had a problem.</p>
<p style="text-align: center;">-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-</p>
<pre class="brush: as3;">
function selectHandler(e:Event):void {
    for each(var file:FileReference in fileList.fileList) {
        selectedFileArray.push(file);
        createListItem(file);
        uploader_mc.upload_btn.enabled = true;
    }
}
</pre>
<p><strong>selectHandler()</strong> is passed an event and the function iterates through all files selected through the dialogue box lanched by clicking the select button and for each one adds it to the selectedFileArray, adds the file to the list of files to be downloaded (the list the user sees), and sets the upload button to be clickable.</p>
<p style="text-align: center;">-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-</p>
<pre class="brush: as3;">
function createListItem(file:FileReference):void {
    var itemMC:listItem = new listItem();
    itemMC.name = &quot;listItem&quot; + i;
    itemMC.y += itemMC.height*i + 1;
    itemMC.x = 8;
    itemMC.fileName.text = file.name;
    itemMC.fileSize.text = sizeAsText(file.size);
    itemMC.progressBar.source = file;
    theItemList.addChild(itemMC);
    i++;

    uploader_mc.scrollPane.update();
}
</pre>
<p><strong>createListItem()</strong> receives a FileReference object, and is used to add the visual representations of the files queued for upload to the upload list that the use sees.</p>
<p style="text-align: center;">-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-</p>
<pre class="brush: as3;">
function sizeAsText(num):String {
    num = num / 1024;
    if(num &lt; 1024) {
        num = String(Math.floor(num)) + &quot; KBs&quot;;
    } else {
        if(num / 1024 &lt; 1024) {
            num = String(Math.floor(num / 1024)) + &quot; MBs&quot;;
        } else if (num / 1024 / 1024 &lt; 1024)  {
            num = String(Math.floor(num / 1024 / 1024)) + &quot; GBs&quot;;
        }
    }
    return num;
}

function reset() {
    //Set the uploading status
    uploaderStatus = false;
    //Reset counters
    i = 0;
    uploadQueue = 0;
    //Reset filelist
    selectedFileArray.length = 0;
    //Remove any remaining items in list
    while(theItemList.numChildren &gt; 0) {
        theItemList.removeChildAt(0);
    }
    //Make sure the scrollPane's scrollbar reflects current state
    uploader_mc.scrollPane.update();
    //Update the buttons
    uploader_mc.albumSelect.selectedIndex = -1;
    updateButtons();
}

function updateButtons() {
    if(uploaderStatus) {
        //Select Button
        uploader_mc.select_btn.enabled = false;
        //Upload Button
        uploader_mc.upload_btn.enabled = false;
        uploader_mc.upload_btn.visible = false;
        //Cancel Button
        uploader_mc.cancel_btn.enabled = true;
        uploader_mc.cancel_btn.visible = true;
        //Album List
        theAlbumList.enabled = false;
    } else {
        //Select Button
        uploader_mc.select_btn.enabled = true;
        //Upload Button
        uploader_mc.upload_btn.enabled = false;
        uploader_mc.upload_btn.visible = true;
        //Cancel Button
        uploader_mc.cancel_btn.enabled = false;
        uploader_mc.cancel_btn.visible = false;
        //Album List
        theAlbumList.enabled = true;
    }
}

function populateAlbumsList(event:Event):void{
    var xDoc:XMLDocument = new XMLDocument();
    xDoc.ignoreWhite = true;
    var albumsXML:XML = XML(albumLoader.data);
    xDoc.parseXML(albumsXML.toXMLString());
    var albums = xDoc.childNodes[0].childNodes;
    for(var a=0; a&lt;albums.length; a++) {
        uploader_mc.albumSelect.addItem( {label:albums[a].attributes.label, data:albums[a].attributes.data} );
    }
    albumLoader.removeEventListener(Event.COMPLETE, populateAlbumsList);
}
</pre>
<p>The above four functions I feel need little explanation, so I&#8217;ve grouped them together.<br />
<strong>sizeAsText()</strong> receives a number, the number should represent the size of a file in <span style="text-decoration: underline;">bytes</span> it then formats that number as a &#8220;human-readable size&#8221; and returns that value.<strong><br />
reset()</strong> resets the player so that it&#8217;s ready to upload more files.<br />
<strong>updateButtons()</strong> updates the buttons based on the status of the upload application.<strong><br />
populateAlbumsList()</strong> pulls in an XML file formatted in a specific way that contains the albums in which a user may upload their photos, and adds them to a drop-down list as options to choose from.</p>
<p>Now this post was not meant to include a whole lot of explanation as to how I came about all this, and how each piece interacts with another.  This post assumes you have enough general scripting knowledge to figure out what is doing what &#8211; the code is listed in the same order it appears within the Actionscript file.  If you have questions feel free to post them in the comments and I&#8217;ll do my best to help answer your questions!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.coryreid.com/multiple-file-upload-application-with-flash-cs4-and-actionscript-3-0/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Styling Table Columns with CSS</title>
		<link>http://www.coryreid.com/styling-table-columns-with-css/</link>
		<comments>http://www.coryreid.com/styling-table-columns-with-css/#comments</comments>
		<pubDate>Thu, 19 Nov 2009 03:40:47 +0000</pubDate>
		<dc:creator>Cory Reid</dc:creator>
				<category><![CDATA[CSS Development]]></category>
		<category><![CDATA[XHTML Development]]></category>
		<category><![CDATA[columns]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[tables]]></category>
		<category><![CDATA[xhtml]]></category>

		<guid isPermaLink="false">http://www.coryreid.com/?p=20</guid>
		<description><![CDATA[I always struggled to find a nice, clean way to style columns in tables with CSS; mainly I wanted to make the left column&#8217;s text align to the right, and the right column&#8217;s text align to the left. I knew I could create classes and just paste that class into every td &#8211; but that [...]]]></description>
			<content:encoded><![CDATA[<p>I <strong>always</strong> struggled to find a nice, clean way to style columns in tables with CSS; mainly I wanted to make the left column&#8217;s text align to the right, and the right column&#8217;s text align to the left. I knew I could create classes and just paste that class into every td &#8211; but that gets bulky&#8230; and I&#8217;d rather not have to put a bunch of <em>class=&#8221;align-left&#8221;</em> into a zillion td tags, etc. I prefer to write my CSS in a semi-conditional way (I presume this is my scripting side coming into play) so that it&#8217;ll style based on the tags and their placement/usage instead of classes (where applicable of course). I can show you how I managed to accomplish this and the benefits, and downsides, to my method.<span id="more-20"></span></p>
<p>Alright &#8211; so what I&#8217;m going to show you is formatting a table so that its left column&#8217;s text is aligned to the right and its right column&#8217;s text is aligned to the left. To start &#8211; we need a table so let&#8217;s build that real quick.</p>
<pre class="brush: xml;">&lt;table border=&quot;1&quot;&gt;
  &lt;tr&gt;
    &lt;td&gt;Row 1, Column 1&lt;/td&gt;
    &lt;td&gt;Row 1, Column 2&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;Row 2, Column 1&lt;/td&gt;
    &lt;td&gt;Row 2, Column 2&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;</pre>
<p>So as you can see we&#8217;ve created a very simple table that has two rows and two columns. Nothing too fancy. If you were to put it in to a blank XHTML document it should display like this:</p>
<p><img class="alignnone size-full wp-image-24" title="styling-table-columns-with-css-step-1" src="http://www.coryreid.com/wp-content/uploads/2009/11/styling-table-columns-with-css-step-1.PNG" alt="styling-table-columns-with-css-step-1" width="240" height="65" /></p>
<p>Now that we have our basic table let&#8217;s take a moment to reflect on how we might accomplish styling our table. We understand that in order to make columns in a row we add more td&#8217;s to our tr group, and that with CSS we can style those td&#8217;s using a simple <em>td { text-align: right; }</em> for example.  This doesn&#8217;t work, however, because it targets <strong>all</strong> td&#8217;s &#8211; no matter the table, their placement, or the structure of the table. So, maybe we can use something a little more specific with <a href="http://www.w3.org/TR/CSS2/selector.html#descendant-selectors" target="_blank">descendant selectors</a> by using <em>tr td { text-align: right; }</em>.  That still doesn&#8217;t work correctly, however, as it selects <strong>all</strong> td&#8217;s that are descendants of a tr &#8211; which if we code our table correctly they <strong>will all be</strong>.</p>
<p>So we need to find a more specific method.  You may never have heard of it, but you can use <a href="http://www.w3.org/TR/CSS2/selector.html#adjacent-selectors" target="_blank">adjacent sibling selectors</a> to accomplish a similar task as the decendant selectors, only <em>more specific</em>, which is what we need.  If you&#8217;ve never seen adjacent sibling selectors, they look like <em>td + td { text-align: right; }</em>.  What it is saying is to select the td that <strong>immediately follows</strong> another td tag, and to apply text-align: right; to it.</p>
<p>A note about adjacent sibling selectors: <strong>both selectors must have the same parent.</strong> So like, if we tried to do <em>tr + td {text-align: right; }</em>, though it would essentially be easier &#8211; it doesn&#8217;t work because tr&#8217;s parent is table and td&#8217;s parent is tr; so we need to tweak our styles a little bit to compensate for that.</p>
<pre class="brush: css;">&lt;style type=&quot;text/css&quot;&gt;
td {
  text-align: right;
}
td + td {
  background: #888;
  text-align: left;
}
&lt;/style&gt;</pre>
<p>Now &#8211; I added a background color to the column so that we can very easily see which column is being targeted. This is what you should have once you add that CSS to the header of your page:</p>
<p><img class="alignnone size-full wp-image-25" title="styling-table-columns-with-css-step-2" src="http://www.coryreid.com/wp-content/uploads/2009/11/styling-table-columns-with-css-step-2.PNG" alt="styling-table-columns-with-css-step-2" width="240" height="66" /></p>
<p>It&#8217;s kind of hard to see the text-align having any effect because of the size of our table, so let&#8217;s modify our CSS real quick and add a style at the top to compensate for that, and allow us to see the text align working.</p>
<pre class="brush: css;">table {
  width: 350px;
}</pre>
<p>Now that we added that style to the top of our CSS let&#8217;s see how it affected our table.</p>
<p><img class="alignnone size-full wp-image-26" title="styling-table-columns-with-css-step-3" src="http://www.coryreid.com/wp-content/uploads/2009/11/styling-table-columns-with-css-step-3.PNG" alt="styling-table-columns-with-css-step-3" width="356" height="64" /></p>
<p>Now we can see the text-align is working properly, making our left column text align to the right and the right column to align to the left; problem solved, right? Well &#8211; not quite. What if our table has three columns, or eight, or even more? Well, let&#8217;s take a look.</p>
<p><img class="alignnone size-full wp-image-28" title="styling-table-columns-with-css-step-4" src="http://www.coryreid.com/wp-content/uploads/2009/11/styling-table-columns-with-css-step-4.PNG" alt="styling-table-columns-with-css-step-4" width="358" height="106" /></p>
<p>Here&#8217;s where there&#8217;s a slight problem with our CSS. Say we needed column 3 to have the same style as column 1, well now we have to add another style to compensate for that &#8211; say making every third td reflect that of the first one, but remember that the style will cascade out as you add more columns. For the most part this is fairly sufficient for our needs, but keep in mind that when you use <em>td + td</em>, the second column in the table, and <strong>all subsequent columns</strong> will be affected. This is because column 1 plus column 2 selects column 2, then column 2 plus column 3 selects column 3, and it continues on down the line.</p>
<p>Hopefully that was helpful to you in some way! If you have a better way or any other comments/opinions please feel free to join in the discussion! You can find my complete example at <a href="http://www.coryreid.com/examples/styling-table-columns-with-css/">http://www.coryreid.com/examples/styling-table-columns-with-css/</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.coryreid.com/styling-table-columns-with-css/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Welcome Internet World!</title>
		<link>http://www.coryreid.com/welcome-internet-world/</link>
		<comments>http://www.coryreid.com/welcome-internet-world/#comments</comments>
		<pubDate>Thu, 19 Nov 2009 01:30:07 +0000</pubDate>
		<dc:creator>Cory Reid</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>

		<guid isPermaLink="false">http://coryreid.com/?p=1</guid>
		<description><![CDATA[Welcome to my website! As you can see this was a fairly drastic transformation from the previous site. I&#8217;m now running it via Wordpress entirely, rather than having a separate blog! I plan to bring back the previous functionality of the other site such as:

Portfolio section with working examples
Allowing registration to access benefits such as: [...]]]></description>
			<content:encoded><![CDATA[<p>Welcome to my website! As you can see this was a fairly drastic transformation from the previous site. I&#8217;m now running it via Wordpress entirely, rather than having a separate blog! I plan to bring back the previous functionality of the other site such as:<span id="more-1"></span></p>
<ul>
<li>Portfolio section with working examples</li>
<li>Allowing registration to access benefits such as: downloading content</li>
<li>A services section so that you may view and employ my services</li>
<li>A contact section so that you may easily get a hold of me</li>
</ul>
<p>I realize that ideally I should have had the site completely ready to be published and just uploaded it and had it been fully functional &#8211; but I am only one person and it does take a tremendous amount of time to do this. Also I figured the less I had to actually upload and modify to get working on my live server the better off I would be.<br />
Enjoy what I&#8217;ve got for now, and expect more to come soon!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.coryreid.com/welcome-internet-world/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
