<?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>BlueFur.com &#187; Development</title>
	<atom:link href="http://blog.bluefur.com/category/development/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.bluefur.com</link>
	<description>Just another Hosting weblog</description>
	<lastBuildDate>Thu, 08 Dec 2011 18:34:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Web Development: Cross Browser Testing</title>
		<link>http://blog.bluefur.com/2010/01/13/web-development-cross-browser-testing/</link>
		<comments>http://blog.bluefur.com/2010/01/13/web-development-cross-browser-testing/#comments</comments>
		<pubDate>Wed, 13 Jan 2010 07:04:37 +0000</pubDate>
		<dc:creator>Matt Freedman</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://blog.bluefur.com/?p=5775</guid>
		<description><![CDATA[As you&#8217;ll quickly discover, not all browsers render equally. Due to differing implementations (opinions) on the (X)HTML/CSS specifications, one browser may display your content as expected, while another may not. As such, web developers are forced to test their websites in multiple browsers (and even multiple operating systems). However, don&#8217;t rush out and start installing [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.bluefur.com/wp-content/uploads/2008/12/webdevtutorials.jpg" title="Web Development" alt="Web Development" /></p>
<p>As you&#8217;ll quickly discover, not all browsers render equally. Due to differing implementations (opinions) on the (X)HTML/CSS specifications, one browser may display your content as expected, while another may not. As such, web developers are forced to test their websites in multiple browsers (and even multiple operating systems).</p>
<p>However, don&#8217;t rush out and start installing multiple browsers and operating system virtual machines just yet. There is a way to get a general idea of how your website looks in other browsers/operating systems. There are two web tools that allow us to get screenshots of our website rendered by a specified browser.</p>
<p>The first is <a href="http://browserlab.adobe.com/">Adobe BrowserLab</a>. This service, by Adobe, can provide us with screenshots from Internet Explorer 6/7/8 (Windows XP), Firefox 2.0/3.0/3.5 (Windows XP), Chrome 3.0 (Windows XP), Safari 3.0/4.0 (OS X) and Firefox 2.0/3.0/3.5 (OS X). These browsers support Javascript and Flash, and even allow you to specify a delay to wait before taking the screenshot (to compensate for any animations or Javascript executing). BrowserLabs provides quick delivery of screenshots and easy comparision of screenshots with multi-views and rulers. An Adobe account required to use BrowserLabs.</p>
<p><a href="http://browsershots.org/">Browsershots</a> is another such service. Browsershots gives you a greater selection of browsers and more control over them. Providing almost every browser made in the last 25 years and their various versions. Browsershots allows you to specify your preferred screen size, colour depth and Javascript/Java/Flash version or disable. Browsershots&#8217; screenshot delivery is slower than BrowserLab&#8217;s and those screenshots may not always be full-length.</p>
<p>Now that you can view your website in multiple browsers, across multiple operating systems, you can start the gruelling task of tweaking your code to conform to all browsers.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bluefur.com/2010/01/13/web-development-cross-browser-testing/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Moving Beyond SSH: Secure Delete</title>
		<link>http://blog.bluefur.com/2010/01/12/moving-ssh-secure-delete/</link>
		<comments>http://blog.bluefur.com/2010/01/12/moving-ssh-secure-delete/#comments</comments>
		<pubDate>Tue, 12 Jan 2010 08:55:06 +0000</pubDate>
		<dc:creator>Matt Freedman</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Moving Beyond SSH]]></category>

		<guid isPermaLink="false">http://blog.bluefur.com/?p=5768</guid>
		<description><![CDATA[If you&#8217;re storing any confidential information on your server (or you&#8217;re just paranoid) you may need to securely delete it at some point. Let&#8217;s face it, you don&#8217;t want those plans for converting lead into gold to get into the wrong hands. Don&#8217;t fret though, your alchemy plans will be non-recoverable after running the shred [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.bluefur.com/wp-content/uploads/2008/12/goingbeyondssh.jpg" title="Moving Beyond SSH" alt="Moving Beyond SSH" /></p>
<p>If you&#8217;re storing any confidential information on your server (or you&#8217;re just paranoid) you may need to securely delete it at some point. Let&#8217;s face it, you don&#8217;t want those plans for converting lead into gold to get into the wrong hands. Don&#8217;t fret though, your alchemy plans will be non-recoverable after running the <em>shred</em> tool.</p>
<p>This tool allows you to overwrite a file with random data (ones and zeros) a configurable number of times. This command line tool has the following syntax:</p>
<p><code>shred [OPTIONS] filename</code></p>
<p>The most common options you&#8217;ll use are as follows:</p>
<p><em>-n</em> &#8211; The number of times you want to overwrite the file with random data. The United States Government defines 7 as the standard.<br />
<em>-u</em> &#8211; Remove the file after overwriting (otherwise the file will still exists, just full of random data instead).<br />
<em>-z</em> &#8211; Overwrite the data once more, this time just with zeros. This tries to make it less obvious that a file was overwritten.<br />
<em>-v</em> &#8211; Verbose output (show progress).<br />
<em>-f</em> &#8211; Forces permissions to allow writing. Likely not necessary in most scenarios.</p>
<p>For example, if you wanted to remove <em>alchemy.pdf</em>, you would use the following command (7 passes):</p>
<p><code>shred -n 7 -u -z -v alchemy.pdf</code></p>
<p>Which would output the following:</p>
<p><code>shred: alchemy.pdf: pass 1/8 (random)...<br />
shred: alchemy.pdf: pass 2/8 (555555)...<br />
shred: alchemy.pdf: pass 3/8 (aaaaaa)...<br />
shred: alchemy.pdf: pass 4/8 (random)...<br />
shred: alchemy.pdf: pass 5/8 (ffffff)...<br />
shred: alchemy.pdf: pass 6/8 (000000)...<br />
shred: alchemy.pdf: pass 7/8 (random)...<br />
shred: alchemy.pdf: pass 8/8 (000000)...<br />
shred: alchemy.pdf: removing<br />
shred: alchemy.pdf: renamed to 00000000000<br />
shred: 00000000000: renamed to 0000000000<br />
shred: 0000000000: renamed to 000000000<br />
shred: 000000000: renamed to 00000000<br />
shred: 00000000: renamed to 0000000<br />
shred: 0000000: renamed to 000000<br />
shred: 000000: renamed to 00000<br />
shred: 00000: renamed to 0000<br />
shred: 0000: renamed to 000<br />
shred: 000: renamed to 00<br />
shred: 00: renamed to 0<br />
shred: alchemy.pdf: removed</code></p>
<p>Now you can be rest assured that nobody will know why you buy so much lead.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bluefur.com/2010/01/12/moving-ssh-secure-delete/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress Development: Managing Plugins through Subversion</title>
		<link>http://blog.bluefur.com/2010/01/05/wordpress-development-managing-plugins-subversion/</link>
		<comments>http://blog.bluefur.com/2010/01/05/wordpress-development-managing-plugins-subversion/#comments</comments>
		<pubDate>Tue, 05 Jan 2010 08:32:52 +0000</pubDate>
		<dc:creator>Matt Freedman</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[WordPress Development]]></category>

		<guid isPermaLink="false">http://blog.bluefur.com/?p=5572</guid>
		<description><![CDATA[WordPress has included the functionality to allow you to update plugins automatically since version 2.7. This works well for most setups, but what if you want a little more control over the upgrade process. Maybe you want to see the code changes between your version and the new version and merge any code changes you [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.bluefur.com/wp-content/uploads/2008/12/wordpressdev.jpg" title="WordPress Development" alt="WordPress Development" /></p>
<p>WordPress has included the functionality to allow you to update plugins automatically since version 2.7. This works well for most setups, but what if you want a little more control over the upgrade process. Maybe you want to see the code changes between your version and the new version and merge any code changes you have made?</p>
<p>The answer is to install and upgrade your plugins with SVN, through the command line. Every plugin hosted in the official WordPress Plugin Repository has a Subversion repository which stores the plugin&#8217;s files. We can use these repositories to &#8220;check out&#8221; the files into our <em>wp-content/plugins</em> folder. Once the files have been downloaded to your plugin directory, you can then activate it in your WordPress administration panel.</p>
<p>Once you have found a plugin that you would like to install in the plugin repository, take note of its URL slug. We&#8217;ll need this for determining the URL of the Subversion repository. For example, the WP Super Cache plugin (<em>http://wordpress.org/extend/plugins/wp-super-cache/</em>) has a URL slug of <em>wp-super-cache</em> (the last part of the URL). The root of the plugin&#8217;s SVN repositories is located at: <strong>http://plugins.svn.wordpress.org/</strong>. You simply append a plugin&#8217;s URL slug to the end of this URL, and you will have the location of its repository.</p>
<p>Now that we have the Subversion repository, we need to figure out where the latest version of the plugin is stored. A Subversion repository typically has three directories in its root: <em>branches</em>, <em>tags</em> and <em>trunk</em>. Normally, active plugin development is done under trunk, while tags contain directories of stable releases. Branches may contain directories that encase older-than-trunk development releases. Typically, under this system, you could check out the highest number under <em>tags</em> to download the most recent version. However, not all developers follow this &#8220;standard&#8221;. Some may only have their plugin under <em>trunk</em>, and only &#8220;check in&#8221; release ready code. To find out which system the developer is using, open the <em>readme.txt</em> file under <em>trunk</em>. Under the first section in that file, look for a line that starts with &#8220;Stable tag&#8221;. If you find this line, you can get the latest stable release by &#8220;checking out&#8221; that number from the <em>tags</em> directory. If this line doesn&#8217;t exist, you can assume that the <em>trunk</em> directory contains the stable version of the plugin, and that you should &#8220;check out&#8221; <em>trunk</em>.</p>
<p>As for actually &#8220;checking out&#8221; these plugins, you&#8217;ll first need to SSH into your server and `cd` into your <em>wp-content/plugins</em> file. You can then run a command such as the following:</p>
<p><code>svn co http://plugins.svn.wordpress.org/wp-super-cache/tags/0.9.8/ wp-super-cache</code></p>
<p>Which would load the WP Super Cache plugin files into a directory named &#8220;wp-super-cache&#8221;. You can then head to your WordPress administration panel and activate the plugins.</p>
<p>When it comes time to upgrade a plugin, it&#8217;s a similar process. If you previously checked out a tag (run `svn info` if you don&#8217;t remember), just find the latest version number to determine the new Subversion URL. For example, if WP Super Cache 0.9.9 were to be released, I could upgrade to it by `cd`ing into its directory and running:</p>
<p><code>svn sw http://plugins.svn.wordpress.org/wp-super-cache/tags/0.9.9/</code></p>
<p>Which will switch the working repository to the new version of the plugin, merging the changes into your current files.</p>
<p>If you checked out from <em>trunk</em> before, you can just run the following to update:</p>
<p><code>svn up</code></p>
<p>If you plan on making custom modifications to plugins you install, managing them via Subversion is the best route to take. You&#8217;ll be able to view the differences (run `svn help diff` for details on this) and have Subversion merge them together automatically. Not to mention, you&#8217;ll also enjoy faster installs and upgrades.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bluefur.com/2010/01/05/wordpress-development-managing-plugins-subversion/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Everything PHP: Multiple Table Joins</title>
		<link>http://blog.bluefur.com/2009/12/30/php-multiple-table-joins/</link>
		<comments>http://blog.bluefur.com/2009/12/30/php-multiple-table-joins/#comments</comments>
		<pubDate>Thu, 31 Dec 2009 00:08:43 +0000</pubDate>
		<dc:creator>Matt Freedman</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Everything PHP]]></category>

		<guid isPermaLink="false">http://blog.bluefur.com/?p=5710</guid>
		<description><![CDATA[Continuing our series on MySQL table joins, today we&#8217;ll be taking a look at how to join multiple tables together. You may need to join multiple tables when you have data spread across multiple tables with reference points relating them. The syntax for joining multiple tables versus two tables is similar. You may even recognize [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.bluefur.com/wp-content/uploads/2008/12/everythingphp.jpg" title="Everything PHP" alt="Everything PHP" /></p>
<p>Continuing our series on MySQL table joins, today we&#8217;ll be taking a look at how to join multiple tables together. You may need to join multiple tables when you have data spread across multiple tables with reference points relating them.</p>
<p>The syntax for joining multiple tables versus two tables is similar. You may even recognize some of the operators from previous articles. First, let&#8217;s have a look at a two table join:</p>
<p>[sql]SELECT * FROM table1 JOIN table2 ON table1.id = table2.id[/sql]</p>
<p>With a multi-table join, we will need a field in the &#8220;joining tables&#8221; that will relate to a field in the initial table. These matching fields do not need to be the same for each &#8220;joining table&#8221;. Now, let&#8217;s take a look at our feature presentation:</p>
<p>[sql]SELECT * FROM table1 JOIN (table2, table3, table4) ON table1.id = table2.id AND table1.name = table3.name AND table1.email = table4.email[/sql]</p>
<p>There is no hard limit on the number of tables you can join; however, there is a practical limit. If you&#8217;re joining more than ten tables together, you may want to look at alternate methods, such as multiple queries. If you&#8217;re joining more than ten tables constantly in one application, your data may be spread across too many tables, and you may want to look at combining some of them.</p>
<p>Next week we&#8217;ll be going over the different types of joins (left, right, outer, inner, natural).</p>
<p>Tip: If you have phpMyAdmin installed on your server, you can easily run SQL queries by selecting a database and going to the &#8220;SQL&#8221; tab at the top of the page.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bluefur.com/2009/12/30/php-multiple-table-joins/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Web Development: Programming Software</title>
		<link>http://blog.bluefur.com/2009/12/15/web-development-programming-software/</link>
		<comments>http://blog.bluefur.com/2009/12/15/web-development-programming-software/#comments</comments>
		<pubDate>Wed, 16 Dec 2009 06:53:37 +0000</pubDate>
		<dc:creator>Matt Freedman</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://blog.bluefur.com/?p=5610</guid>
		<description><![CDATA[Basic text editors were likely your initial choice for writing your programming in. Default operating system programs such as Notepad (on Windows) and TextEdit (on Mac OS X) work great for programming. Their minimalistic feature set and interface won&#8217;t get in your way and let&#8217;s you get straight to the point of the programs: writing. [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.bluefur.com/wp-content/uploads/2008/12/webdevtutorials.jpg" title="Web Development" alt="Web Development" /></p>
<p>Basic text editors were likely your initial choice for writing your programming in. Default operating system programs such as Notepad (on Windows) and TextEdit (on Mac OS X) work great for programming. Their minimalistic feature set and interface won&#8217;t get in your way and let&#8217;s you get straight to the point of the programs: writing. Unfortunately, their main strength, minimalism, it also their main weakness.</p>
<p>Notepad and TextEdit just don&#8217;t provide the features that can make programming faster and more pleasant. Features such as syntax highlighting, line numbering and code completion can all make programming just a little bit easier (and easier on the eyes). Below is a list of code editors and any outstanding features.</p>
<p><a href="http://notepad-plus.sourceforge.net/"><strong>Notepad++</strong></a> (Windows)<br />
Tabbed documents, macros, auto-completion API. Open source (GPL). Free.</p>
<p><a href="http://www.jedit.org/"><strong>jEdit</strong></a> (Java based &#8211; Windows, Linux, Mac)<br />
Macros, tabbed documents, code folding, location markers, session persistance, plugin manager. Open source (GPL). Free.</p>
<p><a href="http://www.pnotepad.org/"><strong>Programmers Notepad</strong></a> (Windows)<br />
Code folding, project support, text clips. Free.</p>
<p><a href="http://www.barebones.com/products/textwrangler/"><strong>TextWrangler</strong></a> (Mac)<br />
&#8220;Grep-format&#8221; searching, file differencing, FTP support, document sidebar. Free.</p>
<p><a href="http://www.panic.com/coda/"><strong>Coda</strong></a> (Mac)<br />
Projects, text clips, auto-completion, file differencing, FTP support, Subversion integration, HTML/CSS preview, &#8220;drag and drop&#8221; grep searching, live collaboration. $99</p>
<p><a href="http://www.adobe.com/products/dreamweaver/"><strong>Dreamweaver</strong></a> (Windows, Mac)<br />
Mostly point and click web design software, however it does include a code editor. Notable features: built-in FTP, Subversion integration, live-view (for HTML/CSS), code completion. $399.</p>
<p>Obviously we&#8217;re just scratching the surface with this list (and the listed features). What&#8217;s your favourite code editor, and why?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bluefur.com/2009/12/15/web-development-programming-software/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Moving Beyond SSH: Changing Content-Types</title>
		<link>http://blog.bluefur.com/2009/12/02/moving-ssh-changing-contenttypes/</link>
		<comments>http://blog.bluefur.com/2009/12/02/moving-ssh-changing-contenttypes/#comments</comments>
		<pubDate>Wed, 02 Dec 2009 08:48:35 +0000</pubDate>
		<dc:creator>Matt Freedman</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Moving Beyond SSH]]></category>

		<guid isPermaLink="false">http://blog.bluefur.com/?p=5599</guid>
		<description><![CDATA[When a server transmits a file to the user, additional &#8220;header&#8221; data is sent along with it. This header data contains various information about the session. One crucial part is the content-type, which contains an internet media type (commonly: &#8220;MIME type&#8221;) specification. This media type tells the browser what kind of file is being retrieved, [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.bluefur.com/wp-content/uploads/2008/12/goingbeyondssh.jpg" title="Moving Beyond SSH" alt="Moving Beyond SSH" /></p>
<p>When a server transmits a file to the user, additional &#8220;header&#8221; data is sent along with it. This header data contains various information about the session. One crucial part is the <em>content-type</em>, which contains an <a href="http://en.wikipedia.org/wiki/Internet_media_type">internet media type</a> (commonly: &#8220;MIME type&#8221;) specification. This media type tells the browser what kind of file is being retrieved, and provides a guideline for handling the file (eg. display the file, offer to download, etc).</p>
<p>By default, Apache associates file name extensions to the appropriate media type. You can view these associations in the file <em>/usr/local/apache2/conf/mime.types</em>. However, what if you need to change how a file should be handled, or specify how an unspecified extension should be handled? It is recommended that you do not edit the mime.types file, as the file is likely to be updated during Apache upgrades, which will undo all your changes. Instead, we&#8217;ll use an <em>.htaccess</em> file to make our changes.</p>
<p>In our .htaccess file, we can add our own specifications, which will override the defaults. The syntax is as follows:</p>
<p><code>AddType media_type .extension</code></p>
<p>Where <em>media_type</em> is one of the <a href="http://www.iana.org/assignments/media-types/index.html">defined media types</a> and <em>.extension</em> is the file name extension of the files you want to modify the content-type on. For example, if we wanted MP3 files to be downloaded instead of played in the browser:</p>
<p><code>AddType application/octet-stream .mp3</code></p>
<p>This would change the content-type of MP3 files (within the directory scope* of the .htaccess file) to <em>application/octet-stream</em> (arbitrary binary data &#8211; browser will offer to download) instead of the default of <em>audio/mpeg</em>.</p>
<p>If you want to specify multiple extensions to be served with the same content-type, you can use a space separated list in the regular line. If we want to apply this to a single file, we can use a <em>files</em> section and use <em>ForceType</em> instead of <em>AddType</em>:</p>
<p><code><Files test.txt><br />
ForceType application/octet-stream<br />
</Files></code></p>
<p>In future articles, we&#8217;ll be further talking about the uses of <em>.htaccess</em> files.</p>
<p>* &#8211; The directory scope of a <em>.htaccess</em> file refers to where its contents will be applied. The file will have an effect on the files in the same directory as well as files in (infinitely) nested directories. In these nested directories, the &#8220;root&#8221; .htaccess file can be overridden with a new .htaccess in that nested directory.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bluefur.com/2009/12/02/moving-ssh-changing-contenttypes/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WordPress Development: WordPress 2.9 Beta 1</title>
		<link>http://blog.bluefur.com/2009/11/29/wordpress-development-wordpress-29-beta-1/</link>
		<comments>http://blog.bluefur.com/2009/11/29/wordpress-development-wordpress-29-beta-1/#comments</comments>
		<pubDate>Sun, 29 Nov 2009 12:01:25 +0000</pubDate>
		<dc:creator>Matt Freedman</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[WordPress Development]]></category>

		<guid isPermaLink="false">http://blog.bluefur.com/?p=5565</guid>
		<description><![CDATA[Over the last few months, development of WordPress version 2.9 has been in full swing. The major features that have been added are: basic image editing; easier video embedding; post, page and comment trash can; plugin update notification and compatibility notification in WordPress&#8217; core upgrader and various developer and bug fixes. Along with the major [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.bluefur.com/wp-content/uploads/2008/12/wordpressdev.jpg" title="WordPress Development" alt="WordPress Development" /></p>
<p>Over the last few months, development of WordPress version 2.9 has been in full swing. The major features that have been added are: basic image editing; easier video embedding; post, page and comment trash can; plugin update notification and compatibility notification in WordPress&#8217; core upgrader and various developer and bug fixes. Along with the major changes, the smaller features and changes in 2.9 are listed <a href="http://codex.wordpress.org/Version_2.9">here</a>. Development is starting to come to a close, and help is needed to begin testing WordPress 2.9 beta 1.</p>
<p>If you&#8217;re interested in testing out beta 1 of WordPress 2.9, you can download it <a href="http://wordpress.org/wordpress-2.9-beta-1.zip">here</a> (zip). You can also run the latest development version via <a href="http://blog.bluefur.com/2009/08/30/wordpress-developing-development/">subversion</a>. Remember that this is pre-production software, and bugs are likely present. It is not recommended that you run this in a production environment, use a <a href="http://blog.bluefur.com/2009/10/26/wordpress-development-development-copy/">development environment</a> instead. However, if you do decide to run the beta on your production blog, be sure to backup your blog&#8217;s files and database beforehand (as a precaution).</p>
<p>After testing the beta out, you can report any problems on the <a href="http://lists.automattic.com/mailman/listinfo/wp-testers">wp-testers</a> mailing list. If you spot a reproducable bug, you can report it to WordPress&#8217; ticket-management system: <a href="http://core.trac.wordpress.org/">Trac</a> (you can sign in using your WordPress.org account). Happy testing, the WordPress community appreciates it.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bluefur.com/2009/11/29/wordpress-development-wordpress-29-beta-1/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Everything PHP: Selecting Table Specific Fields on Joins</title>
		<link>http://blog.bluefur.com/2009/11/23/php-selecting-table-specific-fields-joins/</link>
		<comments>http://blog.bluefur.com/2009/11/23/php-selecting-table-specific-fields-joins/#comments</comments>
		<pubDate>Mon, 23 Nov 2009 08:42:20 +0000</pubDate>
		<dc:creator>Matt Freedman</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Everything PHP]]></category>

		<guid isPermaLink="false">http://blog.bluefur.com/?p=5498</guid>
		<description><![CDATA[An organized and planned database will have relatable data separated into multiple tables. This data may need to be used together at some point. This is where MySQL JOINs come in. Carrying on with our previous instalment, we&#8217;ll continue talking about table joining. Last time, we took a look at a basic table join, which [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.bluefur.com/wp-content/uploads/2008/12/everythingphp.jpg" title="Everything PHP" alt="Everything PHP" /></p>
<p>An organized and planned database will have relatable data separated into multiple tables. This data may need to be used together at some point. This is where MySQL JOINs come in. Carrying on with our <a href="http://blog.bluefur.com/2009/09/21/php-table-join/">previous instalment</a>, we&#8217;ll continue talking about table joining.</p>
<p>Last time, we took a look at a basic table join, which selected all fields from two tables. Today, we&#8217;ll be covering how select specific fields from specific tables involved in our join. In your code, you may only need to use some of the available fields. By specifying just the fields you need, you can shave some time off your query. Let&#8217;s take a look at our previous join query, which we&#8217;ll modify:</p>
<p>[sql]SELECT * FROM table1 JOIN table2 ON table1.id = table2.id[/sql]</p>
<p>With this query, we use the wildcard character (an asterisk) to specify that we want all the fields. In a regular select query, we would use a comma-separated list of fields, in place of the wildcard, to retrieve specific fields. In a join query, it is the same, except with must specify the table that a field resides in. We do this in the format of: <strong>table_name.field_name</strong>. Adapting our previous example, we end up with this:</p>
<p>[sql]SELECT table1.id, table1.name, table2.mark FROM table1 JOIN table2 ON table1.id = table2.id[/sql]</p>
<p>Next time we&#8217;ll be covering joining multiple tables.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bluefur.com/2009/11/23/php-selecting-table-specific-fields-joins/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Web Development: Table Headers and Footers</title>
		<link>http://blog.bluefur.com/2009/11/07/web-development-table-headers-footers/</link>
		<comments>http://blog.bluefur.com/2009/11/07/web-development-table-headers-footers/#comments</comments>
		<pubDate>Sat, 07 Nov 2009 09:11:01 +0000</pubDate>
		<dc:creator>Matt Freedman</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://blog.bluefur.com/?p=5423</guid>
		<description><![CDATA[During our last instalment of this series, we began talking about organizational tables. This time around, we&#8217;ll be discussing some of the more advanced portions on tables in HTML. If you&#8217;re using a table to organize data, you&#8217;ll likely have column headers that identify the type of data contained within that column. Using what we&#8217;ve [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.bluefur.com/wp-content/uploads/2008/12/webdevtutorials.jpg" title="Web Development" alt="Web Development" /></p>
<p>During our last instalment of this series, we began talking about organizational <a href="http://blog.bluefur.com/2009/09/17/web-development-tables/">tables</a>. This time around, we&#8217;ll be discussing some of the more advanced portions on tables in HTML.</p>
<p>If you&#8217;re using a table to organize data, you&#8217;ll likely have column headers that identify the type of data contained within that column. Using what we&#8217;ve previously covered, you could simply use a <em>tr</em> at the beginning of the table and use CSS to stylize them. However, there is a better way.</p>
<p>HTML contains a method to specify a table header, footer and body. We can use this method by wrapping the appropriate rows in <em>thead</em>, <em>tfoot</em> and <em>tbody</em> tags, respectively. In the <em>thead</em> section, cells must use <em>th</em> instead of <em>td</em>. The order of these &#8220;groups&#8221; is also vital. The <em>thead</em> and <em>tfoot</em> groups must be before the <em>tbody</em> group (the footer will be still appear below the body).</p>
<p>This method has a number of advantages over simply ordering your rows to create a header and footer. For starters, these three tags provide <a href="http://en.wikipedia.org/wiki/Semantic_Web">semantic meaning</a> to your table. Having the footer above the body, in the code, allows the browser to render the footer before the (potentially long) body has loaded. Additionally, when you&#8217;re generating your body via a programming language (such as PHP), having the (likely) static header and footer before your dynamic body code will be neater.</p>
<p>Example:</p>
<p>[html]&lt;table&gt;<br />
	&lt;thead&gt;<br />
		&lt;tr&gt;<br />
			&lt;th&gt;ID&lt;/th&gt;<br />
			&lt;th&gt;Surname&lt;/th&gt;<br />
			&lt;th&gt;First Name&lt;/th&gt;<br />
			&lt;th&gt;Email&lt;/th&gt;<br />
		&lt;/tr&gt;<br />
	&lt;/thead&gt;<br />
	&lt;tfoot&gt;<br />
		&lt;tr&gt;<br />
			&lt;td&gt;ID&lt;/td&gt;<br />
			&lt;td&gt;Surname&lt;/td&gt;<br />
			&lt;td&gt;First Name&lt;/td&gt;<br />
			&lt;td&gt;Email&lt;/td&gt;<br />
		&lt;/tr&gt;<br />
	&lt;/tfoot&gt;<br />
	&lt;tbody&gt;<br />
		&lt;tr&gt;<br />
			&lt;td&gt;192&lt;td&gt;<br />
			&lt;td&gt;Smith&lt;/td&gt;<br />
			&lt;td&gt;John&lt;/td&gt;<br />
			&lt;td&gt;john.smith@example.com&lt;/td&gt;<br />
		&lt;/tr&gt;<br />
		&lt;tr&gt;<br />
			&lt;td&gt;193&lt;/td&gt;<br />
			&lt;td&gt;Doe&lt;/td&gt;<br />
			&lt;td&gt;Jane&lt;/td&gt;<br />
			&lt;td&gt;jdoe282@example.com&lt;/td&gt;<br />
		&lt;/tr&gt;<br />
	&lt;/tbody&gt;<br />
&lt;/table&gt;[/html]</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bluefur.com/2009/11/07/web-development-table-headers-footers/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Moving Beyond SSH: CentOS 5.4</title>
		<link>http://blog.bluefur.com/2009/10/26/moving-ssh-centos-54/</link>
		<comments>http://blog.bluefur.com/2009/10/26/moving-ssh-centos-54/#comments</comments>
		<pubDate>Mon, 26 Oct 2009 08:20:40 +0000</pubDate>
		<dc:creator>Matt Freedman</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Moving Beyond SSH]]></category>

		<guid isPermaLink="false">http://blog.bluefur.com/?p=5394</guid>
		<description><![CDATA[Last week, a new version of CentOS was released. Version 5.4 includes various improvements, bug fixes and security fixes. If you&#8217;re running CentOS on your server, you may be interested in updating. CentOS contains numerous updated packages and new packages. If you&#8217;re interested in learning more about the changes in CentOS 5.4, you can view [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.bluefur.com/wp-content/uploads/2008/12/goingbeyondssh.jpg" title="Moving Beyond SSH" alt="Moving Beyond SSH" /></p>
<p>Last week, a new version of CentOS was released. Version 5.4 includes various improvements, bug fixes and security fixes. If you&#8217;re running CentOS on your server, you may be interested in updating.</p>
<p>CentOS contains numerous updated packages and new packages. If you&#8217;re interested in learning more about the changes in CentOS 5.4, you can view the <a href="http://wiki.centos.org/Manuals/ReleaseNotes/CentOS5.4">release notes</a>. To update from an earlier version of CentOS, login to your server as a root user via SSH and run the following command:</p>
<p><code>yum update</code></p>
<p>You will then need to confirm that you want to update by typing <em>y</em> and hitting the enter key. If you want to see the package changes before updating, you can do so by running the following command:</p>
<p><code>yum list updates</code></p>
<p>As previously mentioned, you can stay up-to-date on CentOS updates by subscribing to their <a href="http://lists.centos.org/mailman/listinfo/centos-announce">announcement mailing list</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bluefur.com/2009/10/26/moving-ssh-centos-54/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

