<?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>Bradezone &#187; Web Stuff</title>
	<atom:link href="http://www.bradezone.com/category/web-stuff/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bradezone.com</link>
	<description>I ate milk for breakfast. I danced my dance.</description>
	<lastBuildDate>Sun, 22 Aug 2010 02:00:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Simple or Flexible&#8230; or Both?</title>
		<link>http://www.bradezone.com/2010/06/10/simple-or-flexible-or-both/</link>
		<comments>http://www.bradezone.com/2010/06/10/simple-or-flexible-or-both/#comments</comments>
		<pubDate>Thu, 10 Jun 2010 20:14:38 +0000</pubDate>
		<dc:creator>Brade</dc:creator>
				<category><![CDATA[Web Stuff]]></category>

		<guid isPermaLink="false">http://www.bradezone.com/?p=718</guid>
		<description><![CDATA[A one-for-all, all-for-one solution to website content management is the holy grail of my profession. For my web development work for clients, I find that several of them have a lot of specific features they want in their content management system (CMS). But soon enough I&#8217;m walking the tight rope between simplicity and flexibility. Selecting [...]]]></description>
			<content:encoded><![CDATA[<div>
<p>A one-for-all, all-for-one solution to website content management is the holy grail of my profession. For my <a href="http://www.mergeweb.com/">web development work</a> for clients, I find that several of them have a  lot of specific features they want in their <a href="http://en.wikipedia.org/wiki/Web_content_management_system">content management system</a> (CMS). But soon enough I&#8217;m walking the tight rope between simplicity and flexibility.</p>
<p><img class="alignright size-medium wp-image-728" title="Drupal screenshot" src="http://www.bradezone.com/wp-content/uploads/2010/06/bzdrupal-300x225.png" alt="" width="300" height="225" />Selecting a tool to build such a website or application is a matter of audience. The first audience, software developers, need  either a lot of freedom or a lot of options. In practical terms,  for my PHP development, this is a choice between <a href="http://cakephp.org/">CakePHP</a> and <a href="http://drupal.org/">Drupal</a>. Working with both of these equally has been eye-opening, because  without fail there are many features that are much faster to implement in  one or the other&#8212;it truly ends up about 50/50. Want to display a  custom calculation in a specific place on the site? With CakePHP it&#8217;s  simple. Want a paged image gallery with Lightbox functionality? Drupal  can get you there much more quickly.</p>
<p>For both these platforms, the other audience comes into play as well,  namely the client. Obviously the client needs to have their available  options presented as concisely as possible&#8212;they don&#8217;t need (or want) a  huge amount of freedom or options. So the creation of such a simple interface falls to the developer. The trick is knowing  which stuff to allow them to change and which stuff to hard-code. In  both cases, priority #1 is defining these as variables (or object properties) as soon as possible in the  code, so we can switch back and forth if need be. Yet clients will  always possess an uncanny knack for requesting the tweaks that are most  troublesome to implement. Granular permissions, anyone?</p>
<p>Creating robust software that is still easy to use is the challenge facing any software developer. <a href="http://www.apple.com/">Apple</a> has rightly gained a reputation for striking this balance with substantial success, yet they are certainly not above reproach. In the web industry, the balance of power is more volatile, as anyone with a great idea can launch a web application with little to no concern for infrastructure&#8212;innovations from <a href="http://code.google.com/appengine/">Google</a>, <a href="http://www.rackspacecloud.com/">Rackspace</a>, <a href="http://aws.amazon.com/">Amazon</a>, and the like are taking care of those issues. And while there are a wealth of options in the realm of content management, several of them quite good, I believe this abundance indicates the ongoing problem of balancing features with simplicity in these applications. After a myriad attempts, the world still awaits a truly excellent CMS.</p>
<p><em>NOTE: Parts of this post were originally a comment at <a href="http://gadgetopia.com/post/7085">Gadgetopia</a>.</em></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.bradezone.com/2010/06/10/simple-or-flexible-or-both/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Bonus Content!</title>
		<link>http://www.bradezone.com/2010/02/26/bonus-content/</link>
		<comments>http://www.bradezone.com/2010/02/26/bonus-content/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 19:22:00 +0000</pubDate>
		<dc:creator>Brade</dc:creator>
				<category><![CDATA[Web Stuff]]></category>

		<guid isPermaLink="false">http://www.bradezone.com/?p=658</guid>
		<description><![CDATA[You know, I actually do have some blog posts that are aching to be released into the wild. Soon, my sweets, soon&#8230; Until then, nourish yourselves with a helping of Brade-approved bonus content, courtesy of Bradezone&#8217;s newest feature: Items of Intrigue. Naught more than a lode of links meticulously selected by yours truly, these nuggets [...]]]></description>
			<content:encoded><![CDATA[<p>You know, I actually do have some blog posts that are aching to be released into the wild. Soon, my sweets, soon&#8230; Until then, nourish yourselves with a helping of Brade-approved bonus content, courtesy of <a href="http://www.bradezone.com/">Bradezone&#8217;s</a> newest feature: <a href="http://delicious.com/bradezone">Items of Intrigue</a>. Naught more than a lode of links meticulously selected by yours truly, these nuggets will no doubt tide you over between my official musings, and are available atop each page of this website, where you may also <a href="http://feeds.delicious.com/rss/bradezone">subscribe to them</a> with your feed reader of choice. Speaking of which, if you haven&#8217;t already subscribed to the <a href="http://feeds.feedburner.com/bradezone">main blog</a> itself, it&#8217;s time to rectify.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bradezone.com/2010/02/26/bonus-content/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Firebug Fail</title>
		<link>http://www.bradezone.com/2009/06/26/firebug-fail/</link>
		<comments>http://www.bradezone.com/2009/06/26/firebug-fail/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 19:19:44 +0000</pubDate>
		<dc:creator>Brade</dc:creator>
				<category><![CDATA[Web Stuff]]></category>

		<guid isPermaLink="false">http://www.bradezone.com/?p=578</guid>
		<description><![CDATA[What&#8217;s up, all you savvy web developers? Question: do you enjoy using Firebug to make coding and debugging a blissful experience? Does it indeed make you feel warm and fuzzy inside? Well, good for you, because things are about to change. Turns out &#8220;awesome&#8221; wasn&#8217;t a good enough standard for the Firebug devs, so they&#8217;ve [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-583" title="LOLbug" src="http://www.bradezone.com/wp-content/uploads/2009/06/funny-pictures-oh-hai-bug.jpg" alt="LOLbug" width="371" height="248" />What&#8217;s up, all you savvy web developers? Question: do you enjoy using <a href="http://getfirebug.com/">Firebug</a> to make coding and debugging a blissful experience? Does it indeed make you feel warm and fuzzy inside? Well, good for you, because <em>things are about to change</em>. Turns out &#8220;awesome&#8221; wasn&#8217;t a good enough standard for the Firebug devs, so they&#8217;ve set out to fix what wasn&#8217;t broken and <a href="http://groups.google.com/group/firebug/browse_thread/thread/571b465e563d4817/a43e2f99c3bb644b">completely change the activation model</a>, completely disposing of domain whitelisting and blacklisting. Ummm, thanks? Anyhow, I decided to <a href="http://groups.google.com/group/firebug/browse_thread/thread/571b465e563d4817/09a9bda4f827af76#09a9bda4f827af76">voice my thoughts</a> on the matter via the official Google Group:</p>
<blockquote><p>This new &#8220;activation model&#8221; is patently insane and just made my life 100 times more difficult. If someone were to create a fork of Firebug 1.3 that preserved domain whitelisting/blacklisting, I would pay $50 for it easily. johnjbarton [the resident firebug developer], since you seem oblivious to how the new version is problematic, let me spell out some common scenarios I have tried:</p>
<p>Previously I enabled firebug for localhost, since that&#8217;s where I do most of my testing and developing. Then I would browse from page to page (without the panel open) until the &#8220;script error&#8221; message came up on the status bar. Then I&#8217;d open the firebug panel and troubleshoot. I&#8217;d fix it then perhaps browse around a few more pages, with the panel still open. When I was happy I&#8217;d solved the problem, I minimized firebug (back in those halcyon days, I could click the &#8220;x&#8221; button or the little firebug icon to remove the panel&#8212;it didn&#8217;t matter). But firebug stayed active, so I would be alerted to script errors if they happened.</p>
<p>Fast forward to today. Seems firebug now remembers panel position PER PAGE, which is ludicrously stupid. So as I browse from one page to the next, the panel is randomly disappearing and reappearing. And of course I can no longer simply tell firebug to be active only for localhost. WOW, WHAT SOME GREAT NEW FEATURES, GUYS!</p>
<p>The new system is completely absurd, and I hope now you can begin to see why. When a tool as ubiquitous as firebug gets changed so drastically, the question is WHY? We all loved it before, so please stop butchering it. And again, I put out the call to some developer out there who would want to continue the awesomeness of firebug 1.3 and perhaps rename it. That person would be regarded as a hero at this point&#8230;</p></blockquote>
<p>I received an immediate response that at least acknowledged the legitimacy of my point of view:</p>
<blockquote><p>Work on Firebug 1.4 is complete. Your scenario description is a good one, I wish we had it back when we were working on this feature. I&#8217;d love for Firebug to be perfect for everyone, but in every change there will be some winners and losers I guess.</p>
<p>The activation model in 1.4 was designed to allow extensions to provide special activation solutions.  If anyone wants to create one for this use case we&#8217;d be happy to give advice. (Just to set expectations, I have no plans to do any more work on activation myself).</p></blockquote>
<p>As you can see, it seems this train is already moving at full speed, and those of us who loved the way Firebug formerly behaved will unfortunately have to endure (for the time being) the headache it has become. We can only hope a proper &#8220;extension&#8221; is released that brings back the wholly intuitive domain-based activation scheme that worked perfectly before. Until then, a single tear shall roll perpetually down my cheek.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bradezone.com/2009/06/26/firebug-fail/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>CakePHP, beforeFilter, and the Error Error</title>
		<link>http://www.bradezone.com/2009/05/21/cakephp-beforefilter-and-the-error-error/</link>
		<comments>http://www.bradezone.com/2009/05/21/cakephp-beforefilter-and-the-error-error/#comments</comments>
		<pubDate>Thu, 21 May 2009 23:59:44 +0000</pubDate>
		<dc:creator>Brade</dc:creator>
				<category><![CDATA[Web Stuff]]></category>

		<guid isPermaLink="false">http://www.bradezone.com/?p=549</guid>
		<description><![CDATA[We all know CakePHP is the bee&#8217;s knees for developing web applications, but what&#8217;s not so hot is Cake&#8217;s handling of error pages. Most developers discover soon enough that they can customize their error pages, most commonly the 404 &#8220;not found&#8221; page, by creating an appropriately named file, e.g. error404.ctp, within the views/errors folder. Easy [...]]]></description>
			<content:encoded><![CDATA[<p>We all know <a href="http://cakephp.org/">CakePHP</a> is the bee&#8217;s knees for developing web applications, but what&#8217;s not so hot is Cake&#8217;s handling of error pages. Most developers discover soon enough that they can customize their error pages, most commonly the 404 &#8220;not found&#8221; page, by creating an appropriately named file, e.g. <em>error404.ctp</em>, within the <em>views/errors</em> folder. Easy peasy, right? Sure, but lurking in the bowels of Cake&#8217;s code is a significantly more <a href="http://groups.google.com/group/cake-php/browse_thread/thread/67d590a6e1e1955b/ea9cf0d0ef439a79?hl=en&amp;lnk=gst&amp;q=error404+beforefilter#ea9cf0d0ef439a79">obscure problem</a> that <a href="http://groups.google.com/group/cake-php/browse_thread/thread/2fe19e4669d71f71/0039c034eaf80260?#0039c034eaf80260">manifests itself</a> in <a href="http://snook.ca/archives/cakephp/easier_static_pages_2/">various ways</a>. Simply put, CakePHP fails to load components and does not run the <em>beforeFilter()</em> function of the <em>AppController</em>, deviating from its normal page-loading process. This can lead to utterly maddening behavior if you do anything important in <em>beforeFilter()</em>, which would be almost always.</p>
<p>An application I&#8217;m developing at work runs critical code in <em>beforeFilter()</em> that checks if a user is logged in and uses the results to set the website title and which links appear in the main menu. So you could say that&#8217;s fairly important. But on my error pages, Cake would conveniently display no title or main menu whatsoever. Because no debugging messages were displayed, I thought the issue might have been a minor case of a different layout file being used for error pages. But after a thorough combing of Cake&#8217;s library code, I discovered the ugly truth within the <em>cake/libs/error.php</em> file: the <em>CakeErrorController</em> class, which is used by the accompanying <em>ErrorHandler</em> class, never calls the <em>beforeFilter()</em> function. This contrasts with the <em>Dispatcher</em> class in <em>cake/dispatcher.php</em> that is responsible for most normal pages&#8212;this code eventually runs <em>beforeFilter()</em> within the controller&#8217;s <em>_invoke()</em> function, but before that it also calls the controller&#8217;s <em>constructClasses()</em> function, which turned out to be a critical part of my solution to this now unwieldy problem.</p>
<p>After attempting several ways of making the error pages run my <em>beforeFilter()</em> code, I found that simply adding <em>$this-&gt;beforeFilter();</em> as the last line of the <em>CakeErrorController</em> constructor seemed to work. The problem with doing this, however, is that I had to change a core file within Cake. As my fellow developers know, this is not an option, so I had to make it work from within my own code. But luckily I was on the right track: the constructor inherits from the <em>AppController</em> constructor, which I was free to modify. So within my application&#8217;s <em>app_controller.php</em> file, I added a constructor and copied the code from <em>CakeErrorController</em>, making sure to add my call to <em>beforeFilter()</em> at the end. Amazingly it seemed to work, so I then proceeded to see which lines I could safely comment out, until I was left with just a few lines of code. The <em>constructClasses()</em> function in particular seems to be Cake&#8217;s succinct way of loading the components used by the application. After testing several normal pages and error pages alike, I feel fairly confident that I have solved my initial problem. Here&#8217;s the code I added to <em>app_controller.php</em>:</p>
<pre>function __construct() {
    parent::__construct();
    if ($this-&gt;name == 'CakeError') {
        $this-&gt;constructClasses();
        $this-&gt;beforeFilter();
    }
}</pre>
<p>Since I was forced to put the code in the main <em>AppController</em> class, some side effects may exist: <em>beforeFilter()</em> is potentially called twice on standard pages and perhaps earlier than normal. From what I can tell, this doesn&#8217;t affect the application&#8217;s performance or behavior. So hopefully this solution will help other CakePHP developers who want their error pages to behave as expected. But surely I am not alone in hoping that future versions of CakePHP will make this workaround unnecessary.</p>
<p>UPDATE: I tweaked the code to include an explicit check for <em>CakeErrorController</em> before running the extra lines of code in the constructor. I found a fail case that had to do with adding new users via the Auth component&#8212;new passwords were being hashed twice. So this new snippet should successfully eliminate the possibility of code running twice needlessly.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bradezone.com/2009/05/21/cakephp-beforefilter-and-the-error-error/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Be Inspired, Be Encouraged, Be Connected</title>
		<link>http://www.bradezone.com/2009/03/01/be-inspired-be-encouraged-be-connected/</link>
		<comments>http://www.bradezone.com/2009/03/01/be-inspired-be-encouraged-be-connected/#comments</comments>
		<pubDate>Mon, 02 Mar 2009 00:01:44 +0000</pubDate>
		<dc:creator>Brade</dc:creator>
				<category><![CDATA[Web Stuff]]></category>

		<guid isPermaLink="false">http://www.bradezone.com/?p=509</guid>
		<description><![CDATA[That was the motto of Ryan Carson this past week at the Future Of Web Apps conference in Miami, Florida. As a first-time and slightly skeptical attendee of this event, I can now happily affirm that I am indeed all three. I had a pretty good feeling about things the moment I landed in the [...]]]></description>
			<content:encoded><![CDATA[<p>That was the motto of <a href="http://www.carsonified.com/">Ryan Carson</a> this past week at the <a href="http://events.carsonified.com/fowa/2009/miami/content">Future Of Web Apps</a> conference in Miami, Florida. As a first-time and slightly skeptical attendee of this event, I can now happily affirm that I am indeed all three.</p>
<p>I had a pretty good feeling about things the moment I landed in the midst of pristine weather on Sunday evening. My hotel, which I chose seemingly at random, was situated a stone&#8217;s throw from South Beach. But the room itself was distinctly lacking in frills&#8212;an unassuming king-sized mattress bore the weight of my imminent slumber, and a clunky television relayed lackluster imagery from a limited supply of channels. I half expected Max Headroom to show up on this war-torn monitor, but before he had the chance, I was out cold. The operative word here is &#8220;cold,&#8221; for I awoke a bit earlier the next morning than I would have liked, thanks to the icy air flowing freely beneath my sheets. Next stop: free breakfast in the lobby.</p>
<div id="attachment_515" class="wp-caption alignright" style="width: 310px"><img class="size-medium wp-image-515" title="FOWA stage" src="http://www.bradezone.com/wp-content/uploads/2009/03/img_0107-300x225.jpg" alt="The impressive stage of the main conference" width="300" height="225" /><p class="wp-caption-text">The impressive stage of the main conference</p></div>
<p>I have to say that the bagel and cream cheese were exemplary, though the same cannot be said of the coffee. Soon enough I called for a cab to take me to the main venue, and whilst waiting met Baltimore&#8217;s own <a href="http://www.javierios.com/">Javie Rios</a>, a web designer who, I discovered, shall attempt to represent the U.S. in the 800 metres at the next Summer Olympiad. We arrived at the <a href="http://www.arshtcenter.org/">Adrienne Arsht Center</a> and began our first of two workshops for the day. I really had no clue which of these workshops I would be attending, but eventually ended up at the one concerning the Social Web, specifically the paradigms of OpenID, OAuth, and <a href="http://activitystrea.ms/">Activity Streams</a>, among others. This proved quite valuable for me, a bemused veteran of the current OpenID system, a noble concept that is racked with irritations. But I greatly enjoyed hearing <a href="http://www.davidrecordon.com/">David</a> and <a href="http://factoryjoe.com/">Chris</a> explain where they&#8217;ve been and where they&#8217;re going&#8212;how such stalwarts as Google, Yahoo, and now Facebook are all on board with this emerging system of ubiquitous user management, and how it will one day be much easier for all of us to log in and share information easily between all of our websites and services. The standard interface for logging onto sites using OpenID has been admirably refined, although pop-ups are still favored over AJAX boxes so that the user knows precisely which URL is asking for his password. An idea that popped into my head at this time was that no source is more trusted than the browser itself, so I would love to see OpenID login integrated with the major web browsers as soon as possible. The ideal scenario for OpenID would certainly make life vastly easier for both users and developers on the web.</p>
<p>At this point the conference attendees were rewarded with a yummy box lunch featuring a sandwich wrap and other trinkets. During the break, I met <a href="http://www.samnikolajthomsen.dk/">Sam Thomsen</a>, a .NET developer from Denmark who, along with his coworkers, had parlayed his visit to Miami into a full-blown vacation. Good call, huh? I then ran into <a href="http://thevansblog.blogspot.com/">Nikki Scoggins</a>, a sprightly gal who works for <a href="http://www.vans.com/vans/">Vans</a> and is responsible for their various social media efforts. In the midst of our discussion, a friendly gent by the name of Ryan plopped down beside us and expressed his keen interest in the Vans brand, himself wearing a distinctive green pair from the venerable shoemaker. Only after a couple of minutes did I realize that this Ryan was the selfsame Carson who is responsible for the entire event, so I credit that to his approachable and friendly nature (and a bit to my own obliviousness). I was able to talk to him a little about my employer Merge, and how I left in the midst of a site launch to be here, a fact he duly appreciated.</p>
<p>Now it was time for workshop number two, a presentation from <a href="http://wufoo.com/">Wufoo</a>&#8216;s Kevin Hale about how to convert free customers to paying customers on our web applications. A few things stood out to me here. One: display all paid functionality on each page, even to free customers. People won&#8217;t buy it if they&#8217;re not aware of it. Two: try to stay away from coupon codes. Studies show that people will abandon their shopping carts when they see a coupon code box, because it clearly shows that they could be getting a better deal&#8212;those shoppers may leave to find a code but won&#8217;t return if they don&#8217;t find one. Additionally this workshop also provided a good synopsis of analytics tools like <a href="http://crazyegg.com/">Crazy Egg</a> and <a href="http://www.clicktale.com/">ClickTale</a> that can effectively show how visitors are using your site. And perhaps most enlightening was the comparison of the relationship between your business and your customers to the marriage relationship, specifically the theories of <a href="http://www.gottman.com/about/">Dr. John Gottman</a> and how you can greatly enhance your company&#8217;s reputation by engaging in open and honest communication with your users, a strategy employed with great success by <a href="http://www.zappos.com/">Zappos</a>.</p>
<p>Day one&#8217;s official events had drawn to a close, but there was more to be done. In the Arsht Center lobby, I met <a href="http://www.studiomelipone.eu/">Romain</a>, a web developer from France who has worked on a pretty nifty app that lets his customers provide precise feedback by clicking on specific areas of a screenshot and leaving relevant comments. I spent a fair amount of time with Romain and really enjoyed discussing the differences between our countries and the challenges of working for a small business that are specific to each. (Special note to Burger King: you are greatly missed in Paris and would be welcomed back with open arms.) Before heading back to my hotel, I joined Javie, Romain, and <a href="http://www.avinkline.com/">Avin</a> for some quality grub at <a href="http://www.mikesvenetia.com/">Mike&#8217;s at Venetia</a>&#8212;I devoured my &#8220;dolphin sandwich&#8221; with a true sense of purpose. We enjoyed an hour or two of excellent conversation, capped by my request for some bands that I should be listening to (American Head Charge, Switchfoot, and The Used, apparently). My suggestion for them? Plaid&#8217;s <em>Double Figure</em>.</p>
<p>I was definitely ready for sleep, and sleep I did. But the next morning, things would take a turn for the weird. My room phone rang a little after 7:00 in the morning, a half hour before my alarm was set to go off. I ignored it, but then it rang again. Bemused and confused, I answered. &#8220;Hello, sir,&#8221; said the lady at the front desk. &#8220;I&#8217;m sorry to bother you, but the gentleman next door to you needs to get into his room, and his door lock malfunctioned. Would you mind if we came through the connecting door in your room?&#8221; Before I had a chance to consider that opening his connecting door from my side might prove just as challenging as opening his main door without a key, I agreed. Within minutes, the woman and the guy in question, both likely in their twenties, entered the room and began discussing the situation in Spanish. As I stood beside my bed with mussed hair, raggedy shirt, sweatpants, and doubtless a face betraying extreme befuddlement, the guy opened my connecting door then proceeded to launch a full shoulder charge into his connecting door. He repeated this about twelve times, with brief interruptions punctuated by additional Spanish dialogue. Eventually the door cracked then burst open, presumably solving the immediate problem but creating a new one for future concern. Now that I was fully awake, I showered, dressed, and went downstairs to enjoy another scrumptious bagel.</p>
<div id="attachment_516" class="wp-caption alignright" style="width: 310px"><img class="size-medium wp-image-516" title="Puerto Sagua" src="http://www.bradezone.com/wp-content/uploads/2009/03/img_0109-300x225.jpg" alt="Puerto Sagua = Best. Cuban Food. Ever." width="300" height="225" /><p class="wp-caption-text">Puerto Sagua = Best. Cuban Food. Ever.</p></div>
<p>Javie and I caught a taxi again and arrived for the start of the main conference itself. The auditorium was impressive, and the audience was eager for the show to start. Ryan came on stage for a brief intro, and before long we had our first speaker, Jason Fried of <a href="http://www.37signals.com/">37signals</a>. Jason has a penchant for making controversial statements on his company&#8217;s blog, and while I disagree with him about half the time, I appreciate his willingness to take a stand on things. His major point during his speech was that web developers should stop giving away our work for free. Open source software is a popular movement, and it&#8217;s not going anywhere, but just because a big company like Google or Mozilla can give away stuff for free doesn&#8217;t mean the rest of us should necessarily follow suit. Even if our direct competition is open source, the market is still big enough for companies that charge&#8212;there are plenty of customers for everyone. Also we should look for opportunities to sell our &#8220;byproducts.&#8221; In the case of 37signals, these take the form of knowledge shared in books and conferences, each with price tags attached.</p>
<p>Next up were Ben and Dion, a couple of guys from Mozilla who talked about the future of the web browser. They discussed a quartet of exciting features, some of which are already in place for many browsers: <a href="https://developer.mozilla.org/en/HTML/Canvas">Canvas</a>, fast Javascript, web workers, and desktop integration. Following them was Dan from Yahoo Developer Network, who discussed such technologies as the <a href="http://developer.yahoo.com/yui/">YUI library</a> and <a href="http://developer.yahoo.com/yslow/">YSlow</a>, the latter tool which I have consistently found very useful. We were then dismissed for a lunch break, so after a quick trip to Burger King, I returned to the facility and crossed paths with the lovely Jeile Marie, host of <a href="http://golivemiami.com/">Go Live Miami</a>, a series of fun webisodes about the plethora of events in the area. Jeile had actually come by our table the previous night at Mike&#8217;s and told us a little bit about her site, so I enjoyed the chance to have a longer discussion about the event and our respective backgrounds. I&#8217;m still cracking up as I think of the &#8220;Hot Lips&#8221; shirt she was wearing. Hopefully I was able to give her a few good pointers as she continues her video projects. (Hint: start networking with <a href="http://tastyblogsnack.com/">iJustine</a> if possible!)</p>
<p>The next wave of speakers began with Joe Stump from Digg, who had some nice ideas about how to construct development teams&#8212;holding them to under 10 people is a start, but of course you can have multiple teams. He also implored us to use version control if we are not already. I myself have used Subversion in the past but would love to start using <a href="http://bazaar-vcs.org/">Bazaar</a> at Merge. Also heavily endorsed was the concept of unit testing, a bridge I have yet to cross but am sure to encounter at some point. Next on stage was Kristina from <a href="http://www.braintraffic.com/">Brain Traffic</a>, who expounded the importance of good web copy then initiated a discussion about the still lackluster presence of women at web conferences. She had a good attitude about the matter, but all agreed that it will take continued effort to get more female voices on stage. Really though, this is a problem that has been a part of all computer science industries since day one. There may be something more physiological at play here that none of us fully understands yet.</p>
<p>Aza from Mozilla was our next presenter, who talked about the &#8220;chaordic&#8221; workflow (ordered chaos) that drives innovation at Mozilla. He identified five directions the web browser space could take in the next five years: people will become more important than technology, common tasks will become more ambient/low-cost, the browsing experience will become more continuous between desktop and mobile, tabs will graduate to a more user-friendly &#8220;2.0&#8243; interface, and functionality will be customizable by the use of technologies like <a href="http://labs.mozilla.com/projects/ubiquity/">Ubiquity</a>. Our next speaker was Dave Morin from Facebook, who touched on <a href="http://developers.facebook.com/connect.php">Facebook Connect</a> and outlined three features of the social web moving forward: identity (give users control and trust), friends (give users the power to connect with each other), and feed integration (promote openness in your web applications).</p>
<p>What happened next could be classified as the obligatory dud of the conference, and appropriately enough the hapless Microsoft found themselves at the center. The company put on some sort of web app design challenge about space travel called <a href="http://www.phizzpop.com/main/Home.aspx">Phizzpop</a>, and we the audience witnessed the presentations of the two finalists. The first was a group apparently comprised of college students, with the peculiar brand of awkwardness that can be expected from this age group. Still, they achieved more success than the second group, which was made up of what might be considered the stereotypical programmer types. There&#8217;s really no need to say too much more about this contest, because none of us really knew what was going on or why it was happening. But a hearty congratulations to group one for emerging victorious.</p>
<p><a href="http://www.joelonsoftware.com/">Joel Spolsky</a> then took the stage and delivered a somewhat dry and wry speech about &#8220;development team nirvana&#8221; and how his company has structured its office space to promote this goal. The key elements of this initiative were separate offices for each programmer, snacks always within a close radius, and ample money spent on proper chairs. Team lunch outings were also heavily endorsed, so it&#8217;s nice to know that Merge is doing its part to help me achieve self-actualization. Next up was <a href="http://500hats.typepad.com/">Dave McClure</a>, who was not afraid to perpetrate garish fonts and colors on the audience in order to make his point about how to grow and maintain your user base: acquisition, activation, retention, referral, and revenue. Concentrate on executing your plan in that order, and you too will find multicolored success&#8230; or something. Rounding out this portion of the lineup was Alex from Virgin, a company with a truly distracting name that yet manages to plaster it on every conceivable type of product. Needless to say, this presentation was about the importance of your brand. Key point: in the age of the web and social media, more people than ever are equipped with B.S. detectors (and I think mine may have started going off).</p>
<div id="attachment_517" class="wp-caption alignright" style="width: 310px"><img class="size-medium wp-image-517" title="Nikki Beach" src="http://www.bradezone.com/wp-content/uploads/2009/03/img_0110-300x225.jpg" alt="The Nikki Beach after-party. Good times." width="300" height="225" /><p class="wp-caption-text">The Nikki Beach after-party. Good times.</p></div>
<p>Okay, only two speakers left, and by all accounts they were the stars of the show. First, the initially unassuming Francisco began talking about his company <a href="http://280north.com/">280 North</a> but in no time flat was bringing the house down in uproarious applause. The reason? <a href="http://cappuccino.org/discuss/2009/02/28/announcing-atlas/">Atlas</a>, a graphical IDE front-end for <a href="http://cappuccino.org/">Cappuccino</a> that allegedly allows developers to construct layouts and incorporate logic for instantly cross-platform web applications, potentially alleviating developer frustration with tweaking apps for IE and iPhone. The demo was admittedly impressive, and I for one wish them nothing but luck in bringing it to fruition. I asked Francisco later about back-end database support, and he indicated they would be aiming to ship Atlas with some built-in database management, but it&#8217;s still unclear right now how much code the developer will be required to write by hand to hook into, for example, existing MySQL tables.</p>
<p>The last man to take the stage was someone whom I had only seen previously on <em>Late Night with Conan O&#8217;Brien</em> as a whacked-out &#8220;wine expert&#8221; who wanted Conan to eat dirt and other miscellany in order to develop his palate. Yes, friends, I speak of <a href="http://garyvaynerchuk.com/">Gary V</a>. Apparently he also has a thing or three to say about making your mark in your chosen industry and taking advantage of trends and opportunities in business. His basic advice is to hustle (or more creatively, &#8220;crush it&#8221;) if you want to succeed. &#8220;Passion is undefeated,&#8221; he says, and with this I agree. He said several other things, and said them as colorfully as possible, so if you&#8217;re ready for an aural assault, feel free to check out his <a href="http://vimeo.com/3366107">pep talk</a> for yourself.</p>
<p>Whew. I certainly was not alone in feeling like I had just absorbed a heapin&#8217; helpin&#8217; of quality information that would last me for another year, so the rest of the evening was dedicated to relaxation and fraternizing. Romain and I walked over to the bus station, where we combined forces with Nikki (with whom I might have the opportunity to collaborate on a project&#8212;stay tuned) and our new friend Victor from Philly. When we got back to South Beach, I discovered that Victor had a significantly superior hotel room despite paying a similar rate. Sure, it was a little farther from the major clubs and such, but it had a widescreen TV and a box full of assorted sweets and treats! Anyway, whilst Victor met up with another friend, the remaining three of us ate at a wondrous Cuban cafe named <a href="http://www.miamibeach411.com/Restaurants/puertosagua.html">Puerto Sagua</a>, where I feasted on a mixture of Spanish ground beef and rice, with black beans and fried plantains on the side. This meal was approximately 100 times better than my sole previous Cuban dining experience, and I would recommend it to anyone visiting Miami Beach.</p>
<p>From here we eventually made our way to the official FOWA after-party at <a href="http://www.nikkibeach.com/">Nikki Beach</a>, a place which I&#8217;m fairly certain would possess a slightly different atmosphere on nights when a swarm of web developers have not descended upon it. I say this because I had been informed earlier by Jeile that their standard dress code falls squarely into the category of posh. Speaking of Jeile, we were able to meet up again here, and she kindly expressed her gratitude for my helping her get the lowdown earlier in the day about the conference happenings to that point. We talked a little more about the stuff she was shooting for the event, and I helped her track down Jason Fried for an interview. I do believe the resulting video is now online at <a href="http://golivemiami.com/">Go Live Miami</a>, so enjoy! Meanwhile Romain and I started a table that progressively grew in size so that it eventually resembled a giant poker game. Thanks to to Nik and Chris from <a href="http://www.ensocms.com/">Enso CMS</a>, Avin and his wife, and everyone else who dropped by the best table at Nikki Beach!</p>
<div id="attachment_519" class="wp-caption alignright" style="width: 310px"><img class="size-medium wp-image-519" title="South Beach" src="http://www.bradezone.com/wp-content/uploads/2009/03/img_0112-300x225.jpg" alt="Couldn't complain about this" width="300" height="225" /><p class="wp-caption-text">Couldn&#39;t complain about this</p></div>
<p>Luckily my flight out of Miami the next day was scheduled for the afternoon, so I was able to spend a lazy Wednesday morning walking up South Beach and savoring the cool 71-degree temperature and sunny skies. As I paced barefoot through the sand and the water&#8217;s edge, I began to notice a particular feature of the beach that I had not anticipated. Indeed I speak of topless sunbathing, an activity enjoyed by no less than four participants during my roughly 45 minutes spent patrolling the area. It must be pointed out that each of these women was equipped with surgically enhanced wares that she was probably eager to showcase for others, and given the price tag of these acquisitions, such motives are understandable. Still, I think the ladies of the world may benefit from the observation that most guys, myself included, would prefer your natural beauty unretouched by scalpels and silicone.</p>
<p>At last it was time for me to leave this vacationer&#8217;s paradise, to bid Miami and its beaches and its hot pink signage adieu. Romain and I caught a cab back to the airport, ate some deliciously greasy American pizza, and lounged at the terminal until my flight was ready to board. I took my seat on the plane, broke open my recently purchased copy of <a href="http://search.barnesandnoble.com/The-Inferno/Dante-Alighieri/e/9780812970067">Dante&#8217;s Inferno</a>, and was impressed by a few recurrent themes from the conference. Fellow developers and entrepreneurs, I leave you with the words of Dante&#8217;s Virgil:</p>
<blockquote><p>What is it, then? Why stand here, why delay?<br />
Why let such cowardice come take your heart?<br />
Why are you not afire and bold and free?</p></blockquote>
<p>And Dante&#8217;s response:</p>
<blockquote><p>Your words have put my heart in order now,<br />
kindling so great a longing to set on<br />
you&#8217;ve turned me to our first intention&#8212;go!</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.bradezone.com/2009/03/01/be-inspired-be-encouraged-be-connected/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Twitternoyances</title>
		<link>http://www.bradezone.com/2009/01/27/twitternoyances/</link>
		<comments>http://www.bradezone.com/2009/01/27/twitternoyances/#comments</comments>
		<pubDate>Tue, 27 Jan 2009 15:03:59 +0000</pubDate>
		<dc:creator>Brade</dc:creator>
				<category><![CDATA[Web Stuff]]></category>

		<guid isPermaLink="false">http://www.bradezone.com/?p=498</guid>
		<description><![CDATA[So like an increasing number of righteous hep cats on the intertubes, I joined Twitter not too long ago for an obscure reason related to my site design. Now that I&#8217;ve used it for several months, I feel obliged to point out two recurring behaviors that bother me whenever I&#8217;m scouring my updates. Retweets &#8212; [...]]]></description>
			<content:encoded><![CDATA[<p>So like an increasing number of righteous hep cats on the intertubes, I joined <a href="http://twitter.com/home">Twitter</a> not too long ago for an obscure reason related to my <a href="http://www.bradezone.com/2008/09/13/version-two/">site design</a>. Now that I&#8217;ve used it for several months, I feel obliged to point out two recurring behaviors that bother me whenever I&#8217;m scouring my updates.</p>
<ol>
<li>Retweets &#8212; The concept of retweeting does not bring me joy but unfortunately seems to be an accepted practice. It occurs when people post another individual&#8217;s Twitter message verbatim, typically adding the letters &#8220;RT&#8221; to the front, which at least alerts me to the distinct probability that I have read this before. You see, the likelihood is all too high that the &#8220;retweeter&#8221; and I both follow the same person, rendering the repetition pointless. Plus I have a long-held belief that the world needs more original thought, and retweeting obviously flies in the face of that. I want to read YOUR thoughts, Twitter friends, not rehashes of someone else. If you would like me to follow someone whose tweets you think I&#8217;d enjoy, feel free to suggest. But please stop liberally borrowing their work for your own entries! And lest I forget, retweeting has an even more gruesome manifestation where people actually repeat <em>themselves</em>, typically within a day of the original tweet. This, ladies and gentleducks, is unacceptable.</li>
<li>Syncing Twitter with Facebook &#8212; Folks, folks, folks&#8230; This one falls directly under the category of &#8220;Cool! This can be done, so I&#8217;ll do it!&#8221; We human beings are prone to engaging in numerous activities solely because they are technically possible, regardless of how pointless they may be. Proofs of this theorem are <a href="http://www.guinnessworldrecords.com/">readily available</a>. In all likelihood the amount of overlap between your Twitter friends and your Facebook friends is <em>inordinately high</em>, meaning most of us are getting a double-barrel blast of your latest thoughts. Now I know this repetition could prove valuable if I&#8217;m ever tested on my memory of transient thought-nuggets generated by all my comrades, but really, people. Unless an online version of <em>Don&#8217;t Forget the Lyrics: Social Network Status Edition</em> happens to sprout from the ether, all of this doubly generated text will probably serve no ultimate purpose. (Note to self: create <em>Don&#8217;t Forget the Lyrics: Social Network Status Edition</em> to profit from this annoyance if it continues&#8230;)</li>
</ol>
<p>Anyway, these are my two cents on the matter, and I do realize that these oddities happen primarily because they are allowed to happen. The situation reminds me of the ferocious <em>Worms 2</em> matches of a bygone era&#8212;one day I realized that it was possible to kill an opponent&#8217;s worm in one move merely by the skillful placement of a common red grenade. This wrought much consternation from my ill-fated adversaries, and they pleaded with me not to resort to such &#8220;cheap&#8221; tactics. &#8220;But the game allows it, and you can do likewise,&#8221; I retorted. Granted, I still feel this way, but I exhort you, Twitter user, not to follow in these ill-begotten footsteps. I encourage you to do what is right and <em>rise above the game</em>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bradezone.com/2009/01/27/twitternoyances/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Klection</title>
		<link>http://www.bradezone.com/2008/10/15/klection/</link>
		<comments>http://www.bradezone.com/2008/10/15/klection/#comments</comments>
		<pubDate>Wed, 15 Oct 2008 22:18:24 +0000</pubDate>
		<dc:creator>Brade</dc:creator>
				<category><![CDATA[Web Stuff]]></category>

		<guid isPermaLink="false">http://www.bradezone.com/?p=460</guid>
		<description><![CDATA[That&#8217;s the name of this new thing I concocted. It&#8217;s a website that allows you to build your collection of movies, TV shows, and video games. Specify which ones you actually own or simply the ones you&#8217;ve watched or played. Post comments and reviews about them and their respective artists and creators. The interface is [...]]]></description>
			<content:encoded><![CDATA[<p>That&#8217;s the name of this <a href="http://www.klection.com/">new thing</a> I concocted. It&#8217;s a website that allows you to build your collection of movies, TV shows, and video games. Specify which ones you actually own or simply the ones you&#8217;ve watched or played. Post comments and reviews about them and their respective artists and creators. The interface is fairly clean and simple, so hopefully the experience is intuitive. I whipped the site up within a couple of weeks because I could not find anything else out there that lets you keep track of stuff this way. Hopefully it&#8217;s useful for others as well.</p>
<p><a href="http://www.klection.com/">Klection</a> gets its data from <a href="http://www.freebase.com/home">Freebase</a>, which is a tool similar to Wikipedia but much easier for other websites to access, and which also allows you to correct erroneous or incomplete data yourself if you happen to notice any. I&#8217;m running the site on <a href="http://code.google.com/appengine/">Google App Engine</a>, a hot-off-the-press framework that enables <a href="http://python.org/">Python</a> developers to build very scalable sites that employ Google&#8217;s infrastructure. So without further ado, go give <a href="http://www.klection.com/">Klection</a> a try, and let me know your thoughts.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bradezone.com/2008/10/15/klection/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Version Two</title>
		<link>http://www.bradezone.com/2008/09/13/version-two/</link>
		<comments>http://www.bradezone.com/2008/09/13/version-two/#comments</comments>
		<pubDate>Sat, 13 Sep 2008 20:19:16 +0000</pubDate>
		<dc:creator>Brade</dc:creator>
				<category><![CDATA[Web Stuff]]></category>

		<guid isPermaLink="false">http://www.bradezone.com/?p=380</guid>
		<description><![CDATA[The moment has arrived. Bradezone has been redesigned. I hope you like it. Much like the previous iteration, this one was coded and styled in a flurry within only a couple of days. But the ideas have been stewing for a while. I knew I wanted bold contrast, larger type, a liquid layout, and a [...]]]></description>
			<content:encoded><![CDATA[<p>The moment has arrived. Bradezone has been redesigned. I hope you like it.</p>
<p>Much like the previous iteration, this one was coded and styled in a flurry within only a couple of days. But the ideas have been stewing for a while. I knew I wanted bold contrast, larger type, a liquid layout, and a design that plays to my strengths. I&#8217;m pleased with how things came together, although WordPress&#8217;s methods of dealing with site domains and image URLs assured the redux wouldn&#8217;t happen without a fight. But I do like WordPress, particularly its seemingly new feature of finding the correct URL if you enter one that is slightly different.</p>
<p>The big thing for me was organization and placement of content and links. Prioritizing based on text size and color is at the heart of the redesign, and I spent much time thinking over it. Hopefully the many things I&#8217;ve learned since working at <a href="http://www.bigbluehat.com/">BigBlueHat</a> are evident in the logic behind the site&#8217;s new layout. Eventually I just needed a primary color, and what better choice than my lifelong favorite: red? I&#8217;ve also added my &#8220;greatest hits&#8221; atop the left sidebar and placed links to my social networks at the top right of the site. Moving forward, I plan once again to incorporate randomized photos in the upper left, and I need to check the links from past entries for current validity. I&#8217;m also considering some widgetized content above the footer, such as my Amazon wish list or Picasa web albums. I have even debated whether to join Twitter at long last so I can have some up-to-date content in the currently empty upper right, but we&#8217;ll see.</p>
<p>So that&#8217;s the whole mundane tale. The timing of this redesign was quite unexpected, but after a truly bizarre last couple of weeks, I felt a sudden urge to pool my creative energies into something fun and, at least to me, worthwhile. I&#8217;d be glad to hear your thoughts, especially if you find something weird.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bradezone.com/2008/09/13/version-two/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>For All Your Brade Needs</title>
		<link>http://www.bradezone.com/2008/01/29/for-all-your-brade-needs/</link>
		<comments>http://www.bradezone.com/2008/01/29/for-all-your-brade-needs/#comments</comments>
		<pubDate>Tue, 29 Jan 2008 15:59:57 +0000</pubDate>
		<dc:creator>Brade</dc:creator>
				<category><![CDATA[Web Stuff]]></category>

		<guid isPermaLink="false">http://www.bradezone.com/blog/2008/01/29/for-all-your-brade-needs/</guid>
		<description><![CDATA[I know what you have all been thinking: &#8220;Brade, we just can&#8217;t get enough of your blog. Give us more of your writings, or prepare for some consequences.&#8221; Well, I&#8217;ve heard your pleas/threats, and I&#8217;m here to reveal not one, not two, not four, but three other blogs featuring the outpourings of my brain. BigBlueHat [...]]]></description>
			<content:encoded><![CDATA[<p>I know what you have all been thinking: &#8220;Brade, we just can&#8217;t get enough of your blog. Give us more of your writings, or prepare for some consequences.&#8221; Well, I&#8217;ve heard your pleas/threats, and I&#8217;m here to reveal not one, not two, not four, but <em>three</em> other blogs featuring the outpourings of my brain.</p>
<ol>
<li><a href="http://www.bigbluehat.com/blog/">BigBlueHat</a> &#8212; This is the two-man shop where I work. Ben and I blog pretty regularly about everything from <a href="http://cakephp.org/">CakePHP</a> to donuts, so you will surely not want to miss out on the latest developments in these and other critical areas.</li>
<li><a href="http://www.chucknorrishiking.com/">Chuck Norris Hiking</a> &#8212; Some friends and I set up this blog for our California hiking and sightseeing excursion during the summer of &#8217;07, but since we have the domain, I am sure we will blog during future exotic vacations as well. Tentative plans call for a sweep through Seattle and Vancouver this summer, so stay tuned.</li>
<li><a href="http://www.lousymovienight.com/">Lousy Movie Night</a> &#8212; This is the latest and greatest of my collaborative blogs, established in honor of what has become a Friday night ritual: the viewing and denigration of the dumbest films in cinema history. A large group of us has been assembled to provide this public service to you free of charge. Remember, friends don&#8217;t let friends watch lousy movies alone.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.bradezone.com/2008/01/29/for-all-your-brade-needs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Changes FTW</title>
		<link>http://www.bradezone.com/2007/11/01/changes-ftw/</link>
		<comments>http://www.bradezone.com/2007/11/01/changes-ftw/#comments</comments>
		<pubDate>Thu, 01 Nov 2007 19:16:58 +0000</pubDate>
		<dc:creator>Brade</dc:creator>
				<category><![CDATA[Web Stuff]]></category>

		<guid isPermaLink="false">http://www.bradezone.com/blog/2007/11/01/changes-ftw/</guid>
		<description><![CDATA[First things first: I should like to apologize to Mozilla and my literally dozen(s) of readers for lambasting Firefox, the browser we have come to know and love for its speed and reliability. It turns out Firefox is actually just as capable as alleged, but my previous system configuration was apparently not up to the [...]]]></description>
			<content:encoded><![CDATA[<p>First things first: I should like to apologize to <a href="http://www.mozilla.com/en-US/">Mozilla</a> and my literally dozen(s) of readers for <a href="http://www.bradezone.com/2007/10/11/firefox-2007/">lambasting Firefox</a>, the browser we have come to know and love for its speed and reliability. It turns out Firefox is actually just as capable as alleged, but my previous system configuration was apparently not up to the task. I use the term &#8220;previous&#8221; because with the recent release of the superlative <a href="http://www.ubuntu.com/">Ubuntu 7.10</a>, I have decided to expunge Microsoft Windows entirely from my system. And not only that, I chose to create a new installation of Ubuntu rather than just upgrading the prior version. During this process, which required the creation of four DVDs with my backed-up files, I must have thought it would be hilarious not to copy onto one of these discs the folder entitled LINUX_STUFF, which contained the entirety of my Ubuntu-specific personal files, such as Firefox bookmarks and add-ons, as well as every line of code I have written since becoming an employee at <a href="http://www.bigbluehat.com/">BigBlueHat</a>. (Cue dramatic music indicating irrevocable tragedy.)</p>
<p>Oh, did I mention we back up all of our code via <a href="http://subversion.tigris.org/">Subversion</a>, and therefore I didn&#8217;t really &#8220;lose&#8221; anything? I suppose that&#8217;s an important detail, although it severely hampers the dramatic impact of my anecdote. And I really <em>did</em> lose my Firefox particulars. But this ended up being a blessing in disguise, as once I had my current system up and running I was forced to commence the bookmarking/adding-on process anew, and uncovered some possible reasons for my aforementioned browser troubles&#8212;namely, another session manager extension competing with Firefox&#8217;s built-in one, and having Firebug and HTML Validator enabled for all websites and not just localhost. My current Firefox experience is alarmingly fast and stable&#8212;after a <a href="https://www.opendns.com/homenetwork/start/device/ubuntu">couple</a> of <a href="http://weblogs.asp.net/dwahlin/archive/2007/06/17/fixing-firefox-slowness-with-localhost-on-vista.aspx">tweaks</a>, natch&#8212;and once again all is right with the world of open source software.</p>
<p>Another significant change&#8212;and one that affects you, the steadfast visitor&#8212;is my decision to host this site with <a href="http://www.bigbluehat.com/">my employer</a> and dump the deplorable Dreamhost, who should seriously consider changing their name to <a href="http://www.upstartblogger.com/why-dreamhost-sucks">Nightmarehost</a> after perpetrating an extended era of ineptitude on their customers, myself included. I certainly notice a dramatic increase in the speed of Bradezone, and hopefully you can too.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bradezone.com/2007/11/01/changes-ftw/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Firefox 2.0.0.7</title>
		<link>http://www.bradezone.com/2007/10/11/firefox-2007/</link>
		<comments>http://www.bradezone.com/2007/10/11/firefox-2007/#comments</comments>
		<pubDate>Thu, 11 Oct 2007 20:10:07 +0000</pubDate>
		<dc:creator>Brade</dc:creator>
				<category><![CDATA[Web Stuff]]></category>

		<guid isPermaLink="false">http://bradezone.bigbluehat.com/blog/?p=46</guid>
		<description><![CDATA[It has major problems resulting in frequent crashes and hangs. And it is making me cranky. UPDATE: My anger was misguided.]]></description>
			<content:encoded><![CDATA[<p>It has major problems resulting in frequent crashes and hangs. And it is making me cranky.</p>
<p>UPDATE: My anger was <a href="http://www.bradezone.com/2007/11/01/changes-ftw/">misguided</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bradezone.com/2007/10/11/firefox-2007/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Perfect Software</title>
		<link>http://www.bradezone.com/2007/05/24/perfect-software/</link>
		<comments>http://www.bradezone.com/2007/05/24/perfect-software/#comments</comments>
		<pubDate>Thu, 24 May 2007 21:43:07 +0000</pubDate>
		<dc:creator>Brade</dc:creator>
				<category><![CDATA[Web Stuff]]></category>

		<guid isPermaLink="false">http://bradezone.bigbluehat.com/blog/?p=40</guid>
		<description><![CDATA[The difference between my line of work&#8212;software development&#8212;and others is the fact that the consequences of imperfections are far more drastic though they are just as inevitable. Just about any other occupation affords one the opportunity to recover from mild screw-ups: a dentist can mistakenly scrape your gums, an actor can stumble over a line, [...]]]></description>
			<content:encoded><![CDATA[<p>The difference between my line of work&#8212;software development&#8212;and others is the fact that the consequences of <a href="http://www.nist.gov/public_affairs/releases/n02-10.htm">imperfections</a> are far more drastic though they are just as inevitable. Just about any other occupation affords one the opportunity to recover from mild screw-ups: a dentist can mistakenly scrape your gums, an actor can stumble over a line, or a dump truck driver can blow a tire. But with a little improvisation and ingenuity, these folks can amply recover and still accomplish the task at hand.</p>
<p>The experience of the software developer is a bit more <a href="http://www.sciencemag.org/cgi/content/full/314/5807/1856">vexatious</a>. The hope is that we (or our IDE) will notice a mistyped letter or slightly flawed logic before we unleash imperfect software on the masses, but unfortunately &#8220;bugs&#8221; are a fact of life. Witness the number of major companies such as Google, Apple, and Microsoft that release software tagged with the word &#8220;beta&#8221;&#8212;a term that in the world of software programming I would describe as politically correct. It absolves the software provider of responsibility and is roughly an open admission that things might not work as intended.</p>
<p>With computers, everything is black and white, ones and zeroes, pure logic. This fact actually appeals to most programmers and provides us with a constant challenge as we write software. But without shades of grey, we are bound to continue producing otherwise exceptional products that are ever so slightly tainted by the stain of human error. The average citizen has used enough software at this point that they almost expect problems to occur, and as a result software developers are often viewed with some degree of suspicion. What can we do about this problem of error-prone software, and how do we improve? Certainly testing mechanisms are already in place on development platforms, but even then we are limited by our inability to foresee all the possible scenarios that might result in errors. Testing techniques have improved, but so too has the complexity of software skyrocketed, leaving us in roughly the same position.</p>
<p>The harsh reality is that this problem will never disappear completely. I anticipate that significant strides will be made via new automated testing methods, new programming languages, and simply better documentation and training. But as a software developer I know all too well that my mistakes, however scarce, will always be prone to unveiling themselves in a most garish fashion and to my enduring chagrin.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bradezone.com/2007/05/24/perfect-software/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What the Crap?</title>
		<link>http://www.bradezone.com/2007/04/18/what-the-crap/</link>
		<comments>http://www.bradezone.com/2007/04/18/what-the-crap/#comments</comments>
		<pubDate>Wed, 18 Apr 2007 15:00:24 +0000</pubDate>
		<dc:creator>Brade</dc:creator>
				<category><![CDATA[Web Stuff]]></category>

		<guid isPermaLink="false">http://bradezone.bigbluehat.com/blog/?p=38</guid>
		<description><![CDATA[So you may have heard that Amazon created this weird new website called Askville, wherein users ask questions that will hopefully be answered by fellow users knowledgeable of that topic. Feeling wacky, I posted a question of my own and promptly forgot about it. A week or so later I receive an email informing me [...]]]></description>
			<content:encoded><![CDATA[<p>So you may have heard that Amazon created this weird new website called Askville, wherein users ask questions that will hopefully be answered by fellow users knowledgeable of that topic. Feeling wacky, I posted a <a href="http://askville.amazon.com/crap/AnswerViewer.do?requestId=1734662">question of my own</a> and promptly forgot about it. A week or so later I receive an email informing me that I got some replies, and indeed I did&#8212;along with a <a href="http://askville.amazon.com/crap/DiscussionBoard.do?requestId=1734662&amp;page=1">forum discussion</a> that has apparently become one of the more popular ones on the site.</p>
<p>It&#8217;s nice to see there are other people who are willing to have a bit of cheeky fun with these random web startups.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bradezone.com/2007/04/18/what-the-crap/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Metawebpedia 3.0 (powered by Google)</title>
		<link>http://www.bradezone.com/2007/01/03/metawebpedia-30-powered-by-google/</link>
		<comments>http://www.bradezone.com/2007/01/03/metawebpedia-30-powered-by-google/#comments</comments>
		<pubDate>Wed, 03 Jan 2007 22:17:42 +0000</pubDate>
		<dc:creator>Brade</dc:creator>
				<category><![CDATA[Web Stuff]]></category>

		<guid isPermaLink="false">http://bradezone.bigbluehat.com/blog/?p=31</guid>
		<description><![CDATA[Upon getting myself up to date on the semantic web, which will supposedly revolutionize web browsing as we know it, I harbored a few misgivings that the concept is too idealized to work quite as planned. Web manufacturers like myself are the ones who will shoulder most of the burden of creating metadata about our [...]]]></description>
			<content:encoded><![CDATA[<p>Upon getting myself up to date on the <a href="http://en.wikipedia.org/wiki/Semantic_web">semantic web</a>, which will supposedly revolutionize web browsing as we know it, I harbored a few misgivings that the concept is too idealized to work quite as planned. Web manufacturers like myself are the ones who will shoulder most of the burden of creating metadata about our websites&#8217; individual URLs, and frankly it&#8217;s not a task I look forward to, given the current lack of tools to simplify the process. I found a <a href="http://www.well.com/~doctorow/metacrap.htm">hilarious article</a> by Cory Doctorow (who since this article&#8217;s publication has become an accomplished novelist) that expresses my doubts almost perfectly and even manages to employ the term &#8220;poo-gas&#8221; to optimum effect.</p>
<p>I used to be an organization freak who would willingly subscribe to the rigid structure of this semantic web, but over the years my concerns have become far more practical: what can a website do for me today? I don&#8217;t care if other (possibly non-existent) applications can &#8220;understand&#8221; the content on my web page. The amount of work required to make that happen doesn&#8217;t match up to the supposed advantages of making it happen. In the end and as usual, the mob and the intelligentsia will have to settle on a compromise&#8212;neither a perfectly categorized semantic web nor a hideously broken myspace-esque web are feasible. The solution? I nominate <a href="http://microformats.org/about/">microformats</a>. They are a cinch to incorporate into existing code and once standardized they can be recognized by a bevy of applications. Their website says it best: rather than trying to reinvent the web, they merely &#8220;pave the cow paths.&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bradezone.com/2007/01/03/metawebpedia-30-powered-by-google/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Speed Up</title>
		<link>http://www.bradezone.com/2006/08/09/speed-up/</link>
		<comments>http://www.bradezone.com/2006/08/09/speed-up/#comments</comments>
		<pubDate>Wed, 09 Aug 2006 14:26:56 +0000</pubDate>
		<dc:creator>Brade</dc:creator>
				<category><![CDATA[Web Stuff]]></category>

		<guid isPermaLink="false">http://bradezone.bigbluehat.com/blog/?p=24</guid>
		<description><![CDATA[Spurred to action by my web host&#8217;s recent spate of problems, I have attempted several measures recently to speed up my website. Upgrading from PHP 4.4 to PHP 5.1 and adding FastCGI support seems to have helped. (I am running PHP as CGI instead of an Apache module to facilitate one-click web-based installs of WordPress [...]]]></description>
			<content:encoded><![CDATA[<p>Spurred to action by my web host&#8217;s <a href="http://blog.dreamhost.com/2006/08/01/anatomy-of-an-ongoing-disaster/">recent spate of problems</a>, I have attempted several measures recently to speed up my website. Upgrading from PHP 4.4 to PHP 5.1 and adding FastCGI support seems to have helped. (I am running PHP as CGI instead of an Apache module to facilitate one-click web-based installs of WordPress and the like.) I also made sure my third party software is up to date. I do appreciate Dreamhost&#8217;s honesty about and detailed explanation of the hellish debacle they faced during July, but I expect it not to happen again. Methinks a discount on next year&#8217;s hosting might be an appropriate conciliatory measure towards their customers as well.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bradezone.com/2006/08/09/speed-up/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Blogs are Dumb</title>
		<link>http://www.bradezone.com/2006/04/23/blogs-are-dumb/</link>
		<comments>http://www.bradezone.com/2006/04/23/blogs-are-dumb/#comments</comments>
		<pubDate>Sun, 23 Apr 2006 17:23:56 +0000</pubDate>
		<dc:creator>Brade</dc:creator>
				<category><![CDATA[Web Stuff]]></category>

		<guid isPermaLink="false">http://bradezone.bigbluehat.com/blog/?p=15</guid>
		<description><![CDATA[But I still want you to check mine periodically.]]></description>
			<content:encoded><![CDATA[<p>But I still want you to check mine periodically.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bradezone.com/2006/04/23/blogs-are-dumb/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
