<?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>Gordaen&#039;s Blog &#187; Software</title>
	<atom:link href="http://blog.gordaen.com/category/software/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.gordaen.com</link>
	<description>Ramblings about art, education, culture and a lot more</description>
	<lastBuildDate>Tue, 22 Jun 2010 04:32:35 +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>MySQL Unique Key Pairs</title>
		<link>http://blog.gordaen.com/2009/07/08/mysql-unique-key-pairs/</link>
		<comments>http://blog.gordaen.com/2009/07/08/mysql-unique-key-pairs/#comments</comments>
		<pubDate>Thu, 09 Jul 2009 05:39:28 +0000</pubDate>
		<dc:creator>Ian Clifton</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://blog.gordaen.com/?p=859</guid>
		<description><![CDATA[This is one of those things that is easy to do, but I frequently forget because of how little I deal with SQL syntax.  Essentially, there are times when you want two fields to be unique together.  For example, you might have a table with a city field and a state field.  [...]]]></description>
			<content:encoded><![CDATA[<p>This is one of those things that is easy to do, but I frequently forget because of how little I deal with SQL syntax.  Essentially, there are times when you want two fields to be unique together.  For example, you might have a table with a city field and a state field.  It's okay to have an entry for Portland, Oregon and an entry for Portland, Maine, but it is not okay to have Portland, Oregon more than once in the table.  This is when you need a unique key pair (or it could be any number of keys that are unique together).<span id="more-859"></span></p>
<p>First, we create an overly simple example table:</p>
<div class="igBar"><span id="lmysql-4"><a href="#" onclick="javascript:showPlainTxt('mysql-4'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite">
<div id="mysql-4">
<div class="mysql"><span style="color: #993333; font-weight: bold;">CREATE TABLE</span> `test`.`exampletable` <span style="color: #66cc66;">&#40;</span><br />
&nbsp; &nbsp; `value1` <span style="color: #aa9933; font-weight: bold;">INT</span> <span style="color: #aa3399; font-weight: bold;">UNSIGNED</span> <span style="color: #aa3399; font-weight: bold;">NOT NULL</span> ,<br />
&nbsp; &nbsp; `value2` <span style="color: #aa9933; font-weight: bold;">INT</span> <span style="color: #aa3399; font-weight: bold;">UNSIGNED</span> <span style="color: #aa3399; font-weight: bold;">NOT NULL</span> ,<br />
&nbsp; &nbsp; <span style="color: #aa3399; font-weight: bold;">UNIQUE</span> KEY `value1` <span style="color: #66cc66;">&#40;</span>`value1`, `value2`<span style="color: #66cc66;">&#41;</span><br />
<span style="color: #66cc66;">&#41;</span> ENGINE = MYISAM ;</div>
</div>
</div>
<p></p>
<p>Then we plug in some basic values:</p>
<div class="igBar"><span id="lmysql-5"><a href="#" onclick="javascript:showPlainTxt('mysql-5'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite">
<div id="mysql-5">
<div class="mysql"><span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> `test`.`exampletable` <span style="color: #66cc66;">&#40;</span><br />
`value1` ,<br />
`value2`<br />
<span style="color: #66cc66;">&#41;</span><br />
<span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">&#40;</span><br />
<span style="color: #ff0000;">'1'</span>, <span style="color: #ff0000;">'1'</span><br />
<span style="color: #66cc66;">&#41;</span>, <span style="color: #66cc66;">&#40;</span><br />
<span style="color: #ff0000;">'1'</span>, <span style="color: #ff0000;">'2'</span><br />
<span style="color: #66cc66;">&#41;</span>, <span style="color: #66cc66;">&#40;</span><br />
<span style="color: #ff0000;">'2'</span>, <span style="color: #ff0000;">'1'</span><br />
<span style="color: #66cc66;">&#41;</span>, <span style="color: #66cc66;">&#40;</span><br />
<span style="color: #ff0000;">'2'</span>, <span style="color: #ff0000;">'2'</span><br />
<span style="color: #66cc66;">&#41;</span>;</div>
</div>
</div>
<p></p>
<p>That should show you something like <strong>4 row(s) inserted. ( Query took 0.0005 sec )</strong>.  Now you have 1,1; 1,2; 2,1; and 2,2 stored in the table.  What happens when you insert 1,1 again?</p>
<div class="igBar"><span id="lmysql-6"><a href="#" onclick="javascript:showPlainTxt('mysql-6'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite">
<div id="mysql-6">
<div class="mysql"><span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> `test`.`exampletable` <span style="color: #66cc66;">&#40;</span><br />
`value1` ,<br />
`value2`<br />
<span style="color: #66cc66;">&#41;</span><br />
<span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">&#40;</span><br />
<span style="color: #ff0000;">'1'</span>, <span style="color: #ff0000;">'1'</span><br />
<span style="color: #66cc66;">&#41;</span>;</div>
</div>
</div>
<p></p>
<p>You should see this error message: <strong>Duplicate entry '1-1' for key 1</strong>.  Yup, that's all there is to creating unique key pairs in MySQL.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gordaen.com/2009/07/08/mysql-unique-key-pairs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pidgin With GoogleApps For Your Domain (GoogleTalk)</title>
		<link>http://blog.gordaen.com/2009/07/08/pidgin-with-googleapps-for-your-domain-googletalk/</link>
		<comments>http://blog.gordaen.com/2009/07/08/pidgin-with-googleapps-for-your-domain-googletalk/#comments</comments>
		<pubDate>Wed, 08 Jul 2009 19:11:30 +0000</pubDate>
		<dc:creator>Ian Clifton</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://blog.gordaen.com/?p=849</guid>
		<description><![CDATA[I have used Pidgin with my main Gmail account for quite a while, but I ran into some trouble today configuring it for a GoogleTalk account from "Google Apps for your Domain."  So, here are my quick notes with screenshots to show how to set up this type of GoogleTalk account in Pidgin (screenshots [...]]]></description>
			<content:encoded><![CDATA[<p>I have used Pidgin with my main Gmail account for quite a while, but I ran into some trouble today configuring it for a GoogleTalk account from "Google Apps for your Domain."  So, here are my quick notes with screenshots to show how to set up this type of GoogleTalk account in Pidgin (screenshots are from Ubuntu / Linux, but the settings should be the same in any OS).<span id="more-849"></span></p>
<p><a href="http://blog.gordaen.com/wp-content/uploads/2009/07/pidgin-google-talk1.png" rel="lightbox"><img src="http://blog.gordaen.com/wp-content/uploads/2009/07/pidgin-google-talk1-220x300.png" alt="Pidgin account settings screen" title="I still think Pidgin is a dumb name" width="220" height="300" class="size-medium" /></a></p>
<p><strong>Protocol</strong>: XMPP<br />
<strong>Username</strong>: the username portion of your email address (e.g., john@doe.com would use "john")<br />
<strong>Domain</strong>: the domain portion of your email address (e.g., john@doe.com would use "doe.com")<br />
<strong>Resource</strong>: I left this at the default of "Home"</p>
<p><a href="http://blog.gordaen.com/wp-content/uploads/2009/07/pidgin-google-talk2.png" rel="lightbox"><img src="http://blog.gordaen.com/wp-content/uploads/2009/07/pidgin-google-talk2-220x300.png" alt="Pidgin account settings, advanced tab" title="Here's where the magic happens" width="220" height="300" class="size-medium" /></a></p>
<p>The tricky part is that you then have to go to the advanced tab and change some settings.</p>
<p><strong>Force old (port 5223) SSL</strong>: check<br />
<strong>Connect port</strong>: 443<br />
<strong>Connect server</strong>: talk.google.com</p>
<p>You can adjust the other settings as you see fit, but I just needed the basic chat functionality to work and these settings are what did it.  Hopefully this helps someone else too.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gordaen.com/2009/07/08/pidgin-with-googleapps-for-your-domain-googletalk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows Vista Update</title>
		<link>http://blog.gordaen.com/2009/05/07/windows-vista-update/</link>
		<comments>http://blog.gordaen.com/2009/05/07/windows-vista-update/#comments</comments>
		<pubDate>Thu, 07 May 2009 21:04:42 +0000</pubDate>
		<dc:creator>Ian Clifton</dc:creator>
				<category><![CDATA[Ridiculing Stupidity]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://blog.gordaen.com/?p=821</guid>
		<description><![CDATA[My Asus N50-V notebook that I bought a few weeks ago came with Windows Vista on it.  I knew that I'd dual boot Vista and Ubuntu, but I figured I would just wait the few days before the newest version of Ubuntu came out toward the end of April before installing it.  That [...]]]></description>
			<content:encoded><![CDATA[<p>My Asus N50-V notebook that I bought a few weeks ago came with Windows Vista on it.  I knew that I'd dual boot Vista and Ubuntu, but I figured I would just wait the few days before the newest version of Ubuntu came out toward the end of April before installing it.  That gave me a chance to explore Vista, since I had thus far managed to avoid it.</p>
<p><a href="/wp-content/uploads/2009/05/windows_customer_experience.jpg" rel="lightbox"><img src="/wp-content/uploads/2009/05/.thumbs/.windows_customer_experience.jpg" alt="Windows Customer Experience dialog" title="Are you suuuuuuure?" /></a></p>
<p>This was a dialog that came up fairly early on.  It asks, "Do you want to join the Windows Customer Experience Improvement Program?" and, as shown in the screenshot, I selected the no option (more positively spun as "I don't want to join the program at this time").  Selecting this option disables the OK button.<span id="more-821"></span>  I would think the expected flow would be to have a simple yes/no dialog come up.  You pick your option and select okay.  If you don't want to pick an option, you select Cancel.  It appears that you either select Yes and pick OK or select No and click Cancel.  That doesn't make sense to me because it's requiring two clicks that say the same thing, but I guess that's fairly standard Microsoft practice (e.g., the delete confirmation dialog that's really just a confirmation of sending it to the recycle bin, which has its own confirmation).</p>
<p>I've also experienced regular "unknown" errors with the Windows Update feature.</p>
<p><a href="/wp-content/uploads/2009/05/windows_update_errors.jpg" rel="lightbox"><img src="/wp-content/uploads/2009/05/.thumbs/.windows_update_errors.jpg" alt="Windows Update dialog with errors" title="15 failures in one, awesome!" /></a></p>
<p>The first few I encountered were solved by retrying, but now I seem to have attracted error diarrhea, and my logs are filling with errors.</p>
<p><a href="/wp-content/uploads/2009/05/windows_update_error_log.jpg" rel="lightbox"><img src="/wp-content/uploads/2009/05/.thumbs/.windows_update_error_log.jpg" alt="Windows Update log with errors" title="The success rate is like playing slot machines" /></a></p>
<p>Here's what I think happened:  I saw that there were 14 new updates to install.  I picked to look at which ones they were and it looked like all MS Office stuff (I have Office 2003 on the notebook), so I clicked to start the update process.  Little did I know, IE8 was snuck in there below the scroll point.  After a few of the Office updates, a dialog box to install IE8 comes up.  I pick to cancel, and now all 14 of the updates show as failed.  Now any time I do updates, those same 14 updates are automatically selected, and I have to manually uncheck them one-by-one.  That's right, there's no "Select None" option.</p>
<p>At least Vista leaves a bit more than two gigs of my four gigs of RAM unused at startup.... *sigh*</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gordaen.com/2009/05/07/windows-vista-update/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Various WordPress Issues</title>
		<link>http://blog.gordaen.com/2008/04/10/various-wordpress-issues/</link>
		<comments>http://blog.gordaen.com/2008/04/10/various-wordpress-issues/#comments</comments>
		<pubDate>Fri, 11 Apr 2008 04:40:34 +0000</pubDate>
		<dc:creator>Ian Clifton</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://blog.gordaen.com/?p=408</guid>
		<description><![CDATA[I've mentioned a few times here and there that I am working on my own blogging software.  I had actually hoped to be switched over to it by the middle of this month, but I've been working two jobs (and doing that crazy school thing), so I haven't had as much free time as [...]]]></description>
			<content:encoded><![CDATA[<p>I've mentioned a few times here and there that I am working on my own blogging software.  I had actually hoped to be switched over to it by the middle of this month, but I've been working two jobs (and doing that crazy school thing), so I haven't had as much free time as I'd like.  Plus, I've been spending quite a bit of the free time that I do have on artistic ventures.  Anyway, the reason I am writing my own software is because I haven't been fully satisfied with any of the solutions I've tried.  Right now, I am using WordPress, which is just not "doing it" for me anymore.  These are various issues with WordPress that I have had.  I either started using plugins or gave up on the issue.<span id="more-408"></span></p>
<p><strong>Plastering of version number everywhere</strong><br />
This is especially great for people with malicious intent.  "What's that you say, WordPress version blah has X vulnerability?  Let me just do a quick Google search for victims..."  It's annoying enough to have software that is self-advertising, but I can tolerate that when the software is free.  When software starts advertising its exact version to people who don't need to know (i.e., everyone but me), I have a problem.</p>
<p><strong>Query-happy</strong><br />
A fairly simple install of WordPress will run about forty queries to generate the main page.  If you start adding in customizations, you can easily be looking at 50-60.  Why?  Is there some way for me to see these queries so I can understand why the hell it takes that many?</p>
<p><strong>Image thumbnails</strong><br />
This issue has been somewhat fixed in WP2.5, but the image management is still painful.  Uploading a bunch of images is no problem at all... unless the directory permissions are set incorrectly.  It's nice enough to tell you that the permissions are bad... for every single file you picked to upload!  It doesn't just detect the error and abort the attempt to manipulate and save each of the images.  It is painful to add a large number of images to a post, because you have to open the dialog box every time (and what's worse is that your settings, such as picking to use a thumbnail, are not kept; you have to reselect the options every single time).  Need to change an image's size for a particular post?  Good luck...</p>
<p><strong>Spam control</strong><br />
Does anything really have to be said here?  WP's handling of spam is terrible.  There are some good plugins, but the software alone is pretty much a spam magnet.  Their solution?  Add "nofollow" to every single link that a guest creates... I love ideas that punish people who use the system correctly rather than truly solving the problem in the first place.  Now all the real visitors don't even get "search credit" for their comments, spammers continue to spam because they're bound to get victims regardless of the search engines, and nothing has been done to stop the hundreds/thousands of spams from occurring in the first place.</p>
<p><strong>Caching (queries and pages)</strong><br />
This ties into the query-happy nature of WordPress.  Again, there are plugins for caching, but this should be built in if the software is going to be bombarding the database.  Query results can be cached; partial templates can be cached.</p>
<p><strong>Miscellaneous</strong><br />
I feel like drafts are fairly hidden now.  The delete links for comments, posts, etc. are very small and not easily seen.  It's easier than ever to forget about categorizing new posts.  There's a "manage" link in the admin section, presumably for managing things, but "comments" has its own link that goes to a page called "Manage Comments."  There's a random blob of bright orange in the dashboard that is harsh on the eyes and rather out of place.  Why does the new magical plugin updating feature require FTP and not just use CURL?  I'm sure there are other things I am forgetting, but this is a decent start.</p>
<p>WordPress is definitely solid software, improving with each release, but I need more control.  Hopefully I'll have enough time in the near future to really get going on my own blogging software... maybe I shouldn't be spending my time with posts like this, haha.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gordaen.com/2008/04/10/various-wordpress-issues/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Various Error Screenshots</title>
		<link>http://blog.gordaen.com/2008/04/10/various-error-screenshots/</link>
		<comments>http://blog.gordaen.com/2008/04/10/various-error-screenshots/#comments</comments>
		<pubDate>Fri, 11 Apr 2008 03:58:01 +0000</pubDate>
		<dc:creator>Ian Clifton</dc:creator>
				<category><![CDATA[Ridiculing Stupidity]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://blog.gordaen.com/?p=414</guid>
		<description><![CDATA[






These are just various errors that I've come across recently.  I think all of these are excellent examples as to how NOT to show errors (with the exception of the Facebook problem, which isn't a browser error).  The 401 error in IE actually links support personnel to the Microsoft site and tells them [...]]]></description>
			<content:encoded><![CDATA[<p style="margin-bottom: 1em;"><a href="/wp-content/uploads/2008/04/blackboard_invalid.png" rel="lightbox"  ><img style="float: left;" src="/wp-content/uploads/2008/04/.thumbs/.blackboard_invalid.png" alt="Blackboard error screenshot showing 'Invalid access to memory location'" title="A Blackboard error, no surprise there" width="200" height="165" border="0" /></a><br />
<a href="/wp-content/uploads/2008/04/facebook_php_script.png" rel="lightbox"  ><img style="float: right;" src="/wp-content/uploads/2008/04/.thumbs/.facebook_php_script.png" alt="Facebook screenshot showing a download of a PHP file" title="The profile is mine, all mine!" width="200" height="147" border="0" /></a></p>
<p style="margin-bottom: 1em;"><a href="/wp-content/uploads/2008/04/ie_401.png" rel="lightbox"  ><img style="clear: both; float: left;" src="/wp-content/uploads/2008/04/.thumbs/.ie_401.png" alt="An Internet Explorer 401 error" title="Note the help offered for support people..." width="175" height="200" border="0" /></a><br />
<a href="/wp-content/uploads/2008/04/ie_405.png" rel="lightbox"  ><img style="float: right;" src="/wp-content/uploads/2008/04/.thumbs/.ie_405.png" alt="An Internet Explorer 405 error" title="Apparently, I do not know Google's address" width="174" height="200" border="0" /></a></p>
<p style="margin-bottom: 1em;"><a href="/wp-content/uploads/2008/04/cannot_copy_error.png" rel="lightbox"  ><img style="clear: botht; float: left;" src="/wp-content/uploads/2008/04/.thumbs/.cannot_copy_error.png" alt="Error while copying a file" title="I don't even have a guess on this one" width="200" height="49" border="0" /></a><br />
<a href="/wp-content/uploads/2008/04/incorrect_response.png" rel="lightbox"  ><img style="float: right;" src="/wp-content/uploads/2008/04/.thumbs/.incorrect_response.png" alt="An 'incorrect response' error" title="Dang, error -12250 is way worse than positive 12250" width="200" height="46" border="0" /></a>
</p>
<p style="clear: both;">These are just various errors that I've come across recently.  I think all of these are excellent examples as to how NOT to show errors <span id="more-414"></span>(with the exception of the Facebook problem, which isn't a browser error).  The 401 error in IE actually links support personnel to the Microsoft site and tells them to run a search from there!  Apparently, linking to the article (or at least the search results) is impossible.  What would the average user do with these errors?  What would you do?</p>
<p>P.S. I realize this post is pretty ugly.  After fighting with WordPress for half an hour, I decided this is good enough and all the more reason for me to get back to work on my own blogging software.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gordaen.com/2008/04/10/various-error-screenshots/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Features A Blog Should Have</title>
		<link>http://blog.gordaen.com/2008/03/31/features-a-blog-should-have/</link>
		<comments>http://blog.gordaen.com/2008/03/31/features-a-blog-should-have/#comments</comments>
		<pubDate>Tue, 01 Apr 2008 06:03:53 +0000</pubDate>
		<dc:creator>Ian Clifton</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Tech-Rambling]]></category>
		<category><![CDATA[Web Pages]]></category>

		<guid isPermaLink="false">http://blog.gordaen.com/?p=412</guid>
		<description><![CDATA[I've been developing my own blog software based on CodeIgniter in order to fill my few free minutes (though I'm also painting and taking on a lot of other projects; not unusual for me).  I spent more than a week up front just brainstorming, thinking about what I want it to do.  After [...]]]></description>
			<content:encoded><![CDATA[<p>I've been developing my own blog software based on <a href="http://www.codeigniter.com">CodeIgniter</a> in order to fill my few free minutes (though I'm also painting and taking on a lot of other projects; not unusual for me).  I spent more than a week up front just <em>brainstorming</em>, thinking about what I want it to do.  After that, I thought about how the database should be organized.  It wasn't until a while later that I started to look at the way other blogs did things and I realized how different my expectations were than what many blogging platforms offered.  Some of the smaller names were closer, but I was not entirely willing to trust a new name to be going strong in two years.<span id="more-412"></span></p>
<p>First, blogging software needs to effectively combat spam.  There are two issues here: 1) users don't want that crap on their blogs, 2) when blogs are easy to spam, it encourages more spamming.  The whole <a href="http://codex.wordpress.org/Nofollow">nofollow</a> issue saddens me.  Spammers aren't going to avoid spamming just because it doesn't directly help them with Google PageRank and similar systems.  If spamming is easy, they'll do it regardless and net a few suckers.  Maybe a few of those suckers will even buy whatever it is or even link to it.</p>
<p>A blog's approach to stopping spam doesn't have to be as complex as what I've <a href="http://blog.gordaen.com/2007/05/30/how-to-analyze-and-stop-comment-spam/">previous talked about</a>, but it should do <em>something</em>.  At the very least, generate IDs that require spammers to at least LOAD the page they are going to spam.  I am amazed that so many blogging systems have little or no spam protection built in.</p>
<p>It should be extremely easy to upload media, especially images.  There's no excuse for making the user pre-size his/her image when the <a href="http://www.libgd.org/Main_Page">GD library</a>, <a href="http://www.imagemagick.org/script/index.php">ImageMagick</a>, and so many other tools out there.  At the very least, a user should be able to set a default thumbnail size, whether full-size images should be resized (and to what size), easily upload a large number of images, and override any of the defaults ("This thumbnail would be so much better at 200x200 instead of 100x100...").  A blogging system that goes beyond the minimum would allow custom cropping and maybe even basic touch ups.</p>
<p>All blogging systems should be "self advertising" in the sense that they generate RSS feeds, create sitemaps, ping appropriate services and other blog posts, show post relationships (i.e., X post is related to Y post or the "If you like X, you might also like..."), and give the ability to subscribe to the comments on a post.  It's frustrating to find an interesting new blog, make a comment, and then forget to ever go back.  One of the cool things about blogs is that they are more community-focused than a magazine article, so let's work on that <strong>communi</strong>cation!</p>
<p>One has to be able to preview posts and comments, show code snippets, create excerpts, tag posts (I hate categories), customize links, search, cache, etc.  Some of these absolutely basic features are still missing from major blogging software.  Sure, they can be plugins, but in that case there need to be "official" plugins for these features pre-installed (with the ability to easy replace them with community-contributed alternatives).</p>
<p>What features do you find missing from blogging software?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gordaen.com/2008/03/31/features-a-blog-should-have/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Sneaky Safari Install</title>
		<link>http://blog.gordaen.com/2008/03/23/sneaky-safari-install/</link>
		<comments>http://blog.gordaen.com/2008/03/23/sneaky-safari-install/#comments</comments>
		<pubDate>Sun, 23 Mar 2008 20:22:01 +0000</pubDate>
		<dc:creator>Ian Clifton</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Tech-Rambling]]></category>

		<guid isPermaLink="false">http://blog.gordaen.com/2008/03/23/sneaky-safari-install/</guid>
		<description><![CDATA[I noticed a few headlines lately about Apple receiving flak, particularly from Mozilla, for slipping an install of Safari onto people's Windows machines.  Personally, I find that Apple products work well with Apple products, but they rarely work as well on Windows.  I wanted to give Safari a quick try on my laptop, [...]]]></description>
			<content:encoded><![CDATA[<p>I noticed a few headlines lately about Apple receiving flak, particularly from Mozilla, for slipping an install of Safari onto people's Windows machines.  Personally, I find that Apple products work well with Apple products, but they rarely work as well on Windows.  I wanted to give Safari a quick try on my laptop, which can boot into Windows XP for that once a month that it is needed, so I thought this would be a good chance to test out what this "sneaky Safari install" is all about and give Safari for Windows an initial spin.<span id="more-406"></span></p>
<p>I downloaded, installed, and ran Quicktime.  Wait, I almost forgot.  Thing, from Fantastic Four, was in a screenshot and looked depressed as hell to be viewed in Quicktime.  Anyway...</p>
<p><img src="/wp-content/uploads/2008/03/sad_quicktime.jpg" alt="Thing looking really sad to be in the Quicktime player" title="Suicide alert!" width="205" height="135" border="0" /></p>
<p>From Quicktime, I went to the help menu and picked <strong>Update Existing Software...</strong>  The dialog box that came up looked like this:</p>
<p><a href="/wp-content/uploads/2008/03/quicktime_update1.jpg" rel="lightbox"><img src="/wp-content/uploads/2008/03/.thumbs/.quicktime_update1.jpg" alt="Apple Software updates are available for you computer." title="Updates you say?  Sounds good!" width="200" height="119" border="0" /></a></p>
<p>I clicked "OK" and then saw this:</p>
<p><a href="/wp-content/uploads/2008/03/quicktime_update2.jpg" rel="lightbox"><img src="/wp-content/uploads/2008/03/.thumbs/.quicktime_update2.jpg" alt="Software Update dialog with iTunes and Safari checked by default" title="Safari?  Is that some kind of Quicktime add-on?" width="153" height="200" border="0" /></a></p>
<p>Both of the options that came up were really to install software that I did not have (not exactly an "update [of] existing software..."); it's worth noting that I specifically downloaded Quicktime <em>without iTunes</em>.  I unchecked both and quit the dialog box.  When I brought it back up, both were checked again, leading me to believe the same behavior would be expected when the dialog came up automatically.  In other words, <strong>it doesn't remember that you do not want to install new software so you have to manually tell it every time not to install the software</strong>.</p>
<p>I saw comments online where people essentially said, "So what, it's just a checkbox."  So what?  First, this is not an update.  If it was, then having it checked by default would make sense.  Second, there were two checkboxes for me; at what point is it too many? If there were fifty checkboxes every time, would that be ridiculous?  Another comment I saw more than once was along the lines of "big deal, it's just 20MB."  Well, it was 60MB for me and "it's small" doesn't really seem justified if every single program you download starts installing additional stuff unnecessarily.  I think Apple could have easily split the update tool into two sections, one of which would be "Install free new software" and include iTunes, Safari, and whatever else Apple wants people to download.</p>
<p>That being said, I did actually install Safari (but not iTunes) to give it a try for a few minutes.</p>
<p><strong>Initial good impressions</strong>: Safari is snappy.  Pages loaded very quickly.  It remembers form data fairly intelligently (so you can browse back to a form and maintain what you had typed).  It has a grammar checker... which appears to be absolutely terrible, but it's a start and it's disabled by default.</p>
<p><strong>Initial bad impressions</strong>:  I have to turn on the status bar?  I hovered over a link to see which post ID it had and... I realized I didn't have anywhere to look to see where the link actually takes me!  I guess this supports that same blind jumping that is encouraged in the software update/install windows.  I picked to upload an image to my blog and the starting point was the Safari folder (rather than a reasonable default like the desktop); that's not a big deal, but when I clicked back on the main window and tried to type something in (before selecting a file), I found the page mostly disabled.  Basically, clicking was disabled, but the cursor still changed to a hand when over a link and :hover effects were activated.  If a sub-window removes the functionality of the main window, shouldn't the sub window stay on top?  To be fair, a similar problem happened to me in GIMP on Linux when a dialog box opened on the wrong monitor, making GIMP appear to be unresponsive.  The strange thing was that after I picked the file and the dialog closed, focus didn't return to the Safari window.  I had to click the window <strong>twice</strong> to return focus.  I'm not sure if this is a Windows or Safari issue, but it sure isn't expected behavior.</p>
<p>In Firefox I have various keywords set so that I can use the main location bar to do all kinds of searching.  Doing "wiki planck units" will jump to Wikipedia's article on <a href="http://en.wikipedia.org/wiki/Planck_units">Planck units</a>.  Similarly, "gi crazy people" does a <a href="http://images.google.com/images?q=crazy+people">Google Images search for crazy people</a>.  That feature is awesome, but sometimes I use a computer that doesn't have that setup and Firefox <em>intelligently</em> does a search, returning either the obvious domain or Google search results.  You can type "Mozilla Firefox" into the location bar and get where you want to go.  What's it do in Safari?  It tries a few domains and then fails to open the page <a href="http://mozilla%20firefox/">http://mozilla%20firefox/</a> because it <strong>canâ€™t find the server "mozilla firefox".</strong></p>
<p>Overall, it looks better than IE (obviously) and is quite possibly a good choice for people who just need a good browser, but I think it would supplement&mdash;not replace&mdash;Firefox for developers due to all the invaluable extensions.  Of course, if they make a Linux version, I'll give it a more thorough rundown <em>*hint hint*</em> ...</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gordaen.com/2008/03/23/sneaky-safari-install/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IE8 &#8220;Super&#8221; Standards Meta Tag</title>
		<link>http://blog.gordaen.com/2008/02/27/ie8-super-standards-meta-tag/</link>
		<comments>http://blog.gordaen.com/2008/02/27/ie8-super-standards-meta-tag/#comments</comments>
		<pubDate>Thu, 28 Feb 2008 05:12:23 +0000</pubDate>
		<dc:creator>Ian Clifton</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Tech-Rambling]]></category>

		<guid isPermaLink="false">http://blog.gordaen.com/2008/02/27/ie8-super-standards-meta-tag/</guid>
		<description><![CDATA[Update: According to the IE blog, the IE team has changed its stance from what it was (as described in this post) to a more logical one.  I intended to do another blog post about it, but other things in life have been more interesting (like getting sleep since I've been a bit ill). [...]]]></description>
			<content:encoded><![CDATA[<p>Update: <a href="http://blogs.msdn.com/ie/archive/2008/03/03/microsoft-s-interoperability-principles-and-ie8.aspx">According to the IE blog</a>, the IE team has changed its stance from what it was (as described in this post) to a more logical one.  I intended to do another blog post about it, but other things in life have been more interesting (like getting sleep since I've been a bit ill).  They also have a beta version available, but I am not going to bother with it this time around.</p>
<p>Internet Explorer has been hated by web developers for quite some time.  It is terrible in a lot of ways, but one of the biggest problems is that it has always been quite far from following standards, causing developers to spend a significant amount of extra time making webpages work in Internet Explorer.  Microsoft claimed that IE7 would fix these problems and I even thought they might do a decent job for a while.  I gave time to test the beta and even submit a bug (that was <a href="http://blog.gordaen.com/2006/10/23/ie7-still-has-problems-with-option-tag-values/">ignored</a>).  When I saw how poor of a product IE7 was, I lost all faith that Microsoft would ever develop a good browser.<span id="more-399"></span></p>
<p>At that point, I decided that I would quit testing my personal pages in Internet Explorer and I have since paid as little attention to the browser as possible.  My exposure has been limited to hours of CSS "fixes" to get both versions of IE to look right (no easy feat since they screw up in different ways) at work only.  Then, today, I came across an IE blog post from a month ago about "<a href="http://blogs.msdn.com/ie/archive/2008/01/21/compatibility-and-ie8.aspx">Compatibility and IE</a>."  How can they continue to make such terrible choices?  Their idea is to add a meta tag that ties the rendering of a webpage to a specific browser (not even to a specific rendering engine).  In other words, you have to set a meta tag that specifies exactly which browser version the page looks best in for every single browser (of course they don't acknowledge the number of browsers out there).  You can also have the server send the info in the header, which is an even worse idea (just imagine downloading a webpage to read at a later time and having it render terribly because the header information was not included not to mention the pain this creates for mirroring).</p>
<p>To give people an idea of how stupid this idea is, I thought I'd start off the meta tag, showing what it might look like if other browsers adopt this idea:</p>
<p><code style="text-align: left;">&lt;meta http-equiv='X-UA-Compatible' content='3B=2; Abaco=1; ABrowse=edge; Alefox=edge; Altimit OS Web Browser=edge; Amaya=edge; Android Web Browser=edge; AOL Explorer=edge; Arachne=edge; Avant Browser=edge; AWeb=edge; Bento Browser=edge; Beonex Communicator=edge; Camino=edge; Charon=edge; CompuServe=edge; Deepnet=edge; Dillo=edge; DocZilla=edge; Emacs/W3=edge; Enigma=edge; Epiphany=edge; Flock=edge; Galeon=edge; Ghostzilla=edge; Gollum browser=edge; IBrowse=edge; iCab=edge; IceWeasel=edge; Internet Channel=edge; Internet Explorer=8; iRider=edge; Kazehakase=edge; K-Meleon=edge; K-MeleonCCF=edge; K-Ninja=edge; Konqueror=edge; Krozilo=edge; LimeChat=edge; Lobo=edge; Madfox=edge; ManyOne=edge; Maxthon=edge; Midori=edge; Mothra=edge; Mozilla Firefox=3; NeoPlanet=edge; NetCaptor=edge; NetPositive=edge; Netscape=edge; NetSurf=edge; Nintendo DS Browser=edge; OmniWeb=edge; Opera=edge; Oregano=edge; Planetweb browser=edge; Safari=edge; SeaMonkey=edge; Shiira=edge; Skipstone=edge; Sleipnir=edge; Slim Browser=edge; Smart Bro=edge; Songbird=edge; SpaceTime=edge; Swift=edge; Tkhtml=edge; UltraBrowser=edge; VMS Mosaic=edge; Voyager=edge; Web Browser for S60=edge; Wyzo =edge; XeroBank Browser=edge; X-Smiles=edge; Yahoo! Browser=edge;' /&gt;</code></p>
<p>Of course, a web developer would have to change "edge" to the current version of each of these browsers (and this list of 70+ is by no means a complete list) to ensure it renders correctly.  WTF?</p>
<p>Why can't we just keep "quirks" mode so that users aren't alienated from old content (as much as I'd like to get rid of it); any page that does not have a DOCTYPE declaration should render in quirks mode.  Any page that does have one should render in the best, most standards-compliant way available for the specified type.  That means the page might look a little different as browsers are updated to comply more correctly to the standards, but developers should be developing to the standards not to the browser (obviously, you have to make adjustments for browsers, but those should be minimal and should not ever make the page look bad when viewed with full compliance of standards).</p>
<p>The way it works now in good browsers is that they follow the standards as closely as possible (though non-Trident browsers aren't perfect either).  If they encounter something like drop shadows that they do not yet support, no big deal; the shadows simply don't show.  When an updated version comes along, the shadows show up and the page is improved with no additional work from the developer.  The Internet Explorer method prevents a page from ever being rendered more correctly.  A web developer would have to manually tell IE to start following the standards as each feature starts to be supported (or use "edge" and hope IE does not get worse...).</p>
<p>The other <em>awesome</em> thing about this idea is that every future version of IE has to support every previous version's mistakes!  If an ignorant developer relies on an IE8 bug to make the page render a particular way, s/he'll use that meta tag to specify IE8.  IE9 comes along and has to be able to render it.  IE10 comes along....  Eventually terabyte hard drives will be useful as storage devices for the billion rendering modes IE will support.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gordaen.com/2008/02/27/ie8-super-standards-meta-tag/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>About Mozilla Firefox &#8211; Secret Button</title>
		<link>http://blog.gordaen.com/2008/01/12/about-mozilla-firefox-secret-button/</link>
		<comments>http://blog.gordaen.com/2008/01/12/about-mozilla-firefox-secret-button/#comments</comments>
		<pubDate>Sat, 12 Jan 2008 08:41:50 +0000</pubDate>
		<dc:creator>Ian Clifton</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://blog.gordaen.com/2008/01/12/about-mozilla-firefox-secret-button/</guid>
		<description><![CDATA[
What does the secret button do?
]]></description>
			<content:encoded><![CDATA[<p><a href="/wp-content/uploads/2008/firefox_mystery_button.png" rel="lightbox"><img src="/wp-content/uploads/2008/.thumbs/.firefox_mystery_button.png" alt="firefox_mystery_button.png" title="firefox_mystery_button.png" /></a></p>
<p>What does the secret button do?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gordaen.com/2008/01/12/about-mozilla-firefox-secret-button/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>A Good QuickSilver For Linux (Gnome)</title>
		<link>http://blog.gordaen.com/2007/12/21/a-good-quicksilver-for-linux-gnome/</link>
		<comments>http://blog.gordaen.com/2007/12/21/a-good-quicksilver-for-linux-gnome/#comments</comments>
		<pubDate>Fri, 21 Dec 2007 20:38:00 +0000</pubDate>
		<dc:creator>Ian Clifton</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://blog.gordaen.com/2007/12/21/a-good-quicksilver-for-linux-gnome/</guid>
		<description><![CDATA[When I first started using OSX at work, it was a slightly rough transition.  Some things work really well and other things are just not intuitive at all (like the key combination for taking screenshots).  The one thing that I instantly loved was QuickSilver.  It's an application launcher and a lot more. [...]]]></description>
			<content:encoded><![CDATA[<p>When I first started using OSX at work, it was a slightly rough transition.  Some things work really well and other things are just not intuitive at all (like the key combination for taking screenshots).  The one thing that I instantly loved was <a href="http://www.blacktree.com/">QuickSilver</a>.  It's an application launcher and a <em>lot</em> more.  The most basic use is to hit the key combo you have set up to bring up a dialog box and then type in a few letters from the application you want to open.  You could do "FF" for Firefox or "Fire" or just "F."  QS is pretty intelligent about learning what key combo you like to use for which application, so I generally just type a single letter and press enter and there I go.  QS can do a lot more than this and it integrates extremely well with applications, but I wanted at least this basic functionality in Linux.  Even in Windows, there is a program called <a href="http://www.launchy.net/">Launchy</a> that is similar and worth checking out if you're a Windows user.<span id="more-378"></span></p>
<p>After making the complete jump to Linux a year and some-odd months ago, I looked for a QuickSilver application for Gnome (the <acronym title="Graphical User Interface">GUI</acronym> I use in Linux).  <a href="http://katapult.kde.org/">Katapult</a> is a pretty good version for KDE (another GUI choice in Linux), but I kept looking.  Eventually, I tried several and gave up.  ALT+F2 could bring up the Run Application box that was like the ugly step-brother of an application launcher, so I stuck with that.  Recently, I was looking for something else and came across a fairly new (I believe it was first released in September of this year) development called <a href="http://do.davebsd.com/">Gnome Do</a>.</p>
<p>I tried to find more information out about this (why didn't I hear about it sooner?) and I came across <a href="http://abhay-techzone.blogspot.com/2007/12/quicksilver-for-ubuntu.html">this</a> blog post that is a nice intro to the program.  That post is probably better than what I would create, so check it out.  Also keep in mind that Gnome Do is new, so it doesn't have the ridiculous (in an awesome way) feature-set that QuickSilver does, but, if we start spreading the word about Gnome Do, I'm sure the features will start rolling in.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gordaen.com/2007/12/21/a-good-quicksilver-for-linux-gnome/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
