<?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>Bearfruit &#187; Work</title>
	<atom:link href="http://www.bearfruit.org/category/work/feed/?category_name=work" rel="self" type="application/rss+xml" />
	<link>http://www.bearfruit.org</link>
	<description>Matthew Nuzum&#039;s Blog</description>
	<lastBuildDate>Wed, 28 Dec 2011 20:34:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2-bleeding</generator>
		<item>
		<title>UI considerations for 2 factor authentication</title>
		<link>http://www.bearfruit.org/2011/05/18/ui-considerations-for-2-factor-authentication/</link>
		<comments>http://www.bearfruit.org/2011/05/18/ui-considerations-for-2-factor-authentication/#comments</comments>
		<pubDate>Wed, 18 May 2011 20:07:43 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Cool Stuff]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.bearfruit.org/?p=524</guid>
		<description><![CDATA[As an experimental work project, my team is evaluating the yubikey as a 2 factor authentication device for login.ubuntu.com. The user interface suggested by Yubico leaves me wishing for something better. Here is an idea I have, please let me know your thoughts.]]></description>
			<content:encoded><![CDATA[<p>As an experimental work project, my team is evaluating the <a href="http://www.yubico.com/start">yubikey</a> as a 2 factor authentication device for <a href="https://login.ubuntu.com/+login">login.ubuntu.com</a>. The user interface suggested by Yubico leaves me wishing for something better. Here is an idea I have, please let me know your thoughts.</p>
<p><iframe src="http://www.youtube.com/embed/vwk33dkKgoc?rel=0" frameborder="0" width="560" height="349" style="width:560px; height:349px"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bearfruit.org/2011/05/18/ui-considerations-for-2-factor-authentication/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Quick speed test between php and django</title>
		<link>http://www.bearfruit.org/2010/12/03/quick-speed-test-between-php-and-django/</link>
		<comments>http://www.bearfruit.org/2010/12/03/quick-speed-test-between-php-and-django/#comments</comments>
		<pubDate>Fri, 03 Dec 2010 19:57:07 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[backend]]></category>
		<category><![CDATA[Computers]]></category>
		<category><![CDATA[Cool Stuff]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.bearfruit.org/?p=486</guid>
		<description><![CDATA[PHP is a programming language for web applications but Django is a full-fledged framework that provides database abstraction, caching, authentication and a host of other services. Comparing the performance of the two is not a fair, apples to apples comparison. However I want to do it in order to better decide what I should use [...]]]></description>
			<content:encoded><![CDATA[<p>PHP is a programming language for web applications but Django is a full-fledged framework that provides database abstraction, caching, authentication and a host of other services. Comparing the performance of the two is not a fair, apples to apples comparison. However I want to do it in order to better decide what I should use for an application.</p>
<p>I created a light-weight HTML page, a &#8220;hello world&#8221; php app (no db or sessions) and a light weight &#8220;hello world&#8221; django app using mostly default values (sessions are enabled). I then ran the apache benchmark (ab) on the three using a small VPS w/ 512 MB of RAM from localhost (so no latency is involved giving ideal conditions).<span id="more-486"></span></p>
<p>Apache is configured with a max clients of 40 so I tested with a concurrency of 40.</p>
<ul>
<li>Static HTML:<br />
Requests per second:    3249.36 [#/sec] (mean)<br />
(no measurable impact on server load)</li>
<li>PHP:<br />
Requests per second:    2786.73 [#/sec] (mean)<br />
(no measurable impact on server load)</li>
<li>Django:<br />
Requests per second:    157.97 [#/sec] (mean)<br />
(no measurable impact on server load)</li>
<li>Static HTML using SSL:<br />
Requests per second:    10.30 [#/sec] (mean)<br />
(during this, server load rose uncomfortably high)</li>
</ul>
<p>What do we understand from this? First, considering the added functionality of the Django framework, I&#8217;m quite comfortable with the performance here. If I need as lean of an app as possible, I may want to consider not using a framework. Carefully crafted PHP is probably going to be faster.</p>
<p>However, with a concurrency of 40 the Django app was able to support 157 connections per second. The server load and memory utilization indicates that this VPS can probably handle a higher value for max-clients.</p>
<p>I&#8217;m quite shocked at the poor SSL performance. I have no idea why the VPS would perform so poorly. I wonder if the VPS technology forces the server to offload SSL decryption to a virtual network adapter. The CPU of the VPS is an Intel Core 2 Quad @ 2.4GHz.</p>
<p>This is an OpenVZ VPS running Ubuntu 10.04 LTS, Apache 2.2.14, PHP 5.3.2, Django 1.2.3 on Python 2.6.5 using mod_wsgi 2.8.</p>
<p>You can get a <a href="https://service.burst.net/aff.php?aff=1511">good deal on a VPS at burst.net for $5.99/mo</a> (this link uses my &#8220;refer a friend&#8221; feature so I get credit). I&#8217;m extremely happy with the quality of their service and have had <em>0 downtime</em> in the few months I&#8217;ve been a customer.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bearfruit.org/2010/12/03/quick-speed-test-between-php-and-django/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mobile browser redirection with mod_rewrite</title>
		<link>http://www.bearfruit.org/2010/11/05/mobile-browser-redirection-with-mod_rewrite/</link>
		<comments>http://www.bearfruit.org/2010/11/05/mobile-browser-redirection-with-mod_rewrite/#comments</comments>
		<pubDate>Fri, 05 Nov 2010 18:39:30 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Cool Stuff]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.bearfruit.org/?p=469</guid>
		<description><![CDATA[I found a great article on using mod_rewrite to send mobile browsers to a special page or site. I modified it to do the inverse as well. You can use the rules demonstrated in there to send mobile browsers to your mobile site and you can use the rules below as an inverse to send [...]]]></description>
			<content:encoded><![CDATA[<p>I found a great article on <a href="http://www.projectronin.com/blog/?p=10">using mod_rewrite to send mobile browsers to a special page</a> or site. I modified it to do the inverse as well. You can use the rules demonstrated in there to send mobile browsers to your mobile site and you can use the rules below as an inverse to send desktop browsers from your mobile site to your normal site.<span id="more-469"></span></p>
<pre>RewriteEngine On</pre>
<pre>RewriteCond %{REQUEST_URI} ^/$</pre>
<pre>RewriteCond %{HTTP_ACCEPT} !"text/vnd.wap.wml|application/vnd.wap.xhtml+xml" [NC]</pre>
<pre>RewriteCond %{HTTP_USER_AGENT} !"acs|alav|alca|amoi|audi|aste|avan|benq|bird|blac|blaz|brew|cell|cldc|cmd-" [NC]</pre>
<pre>RewriteCond %{HTTP_USER_AGENT} !"dang|doco|erics|hipt|inno|ipaq|java|jigs|kddi|keji|leno|lg-c|lg-d|lg-g|lge-" [NC]</pre>
<pre>RewriteCond %{HTTP_USER_AGENT} !"maui|maxo|midp|mits|mmef|mobi|mot-|moto|mwbp|nec-|newt|noki|opwv" [NC]</pre>
<pre>RewriteCond %{HTTP_USER_AGENT} !"palm|pana|pant|pdxg|phil|play|pluc|port|prox|qtek|qwap|sage|sams|sany" [NC]</pre>
<pre>RewriteCond %{HTTP_USER_AGENT} !"sch-|sec-|send|seri|sgh-|shar|sie-|siem|smal|smar|sony|sph-|symb|t-mo" [NC]</pre>
<pre>RewriteCond %{HTTP_USER_AGENT} !"teli|tim-|tosh|tsm-|upg1|upsi|vk-v|voda|w3cs|wap-|wapa|wapi" [NC]</pre>
<pre>RewriteCond %{HTTP_USER_AGENT} !"wapp|wapr|webc|winw|winw|xda|xda-" [NC]</pre>
<pre>RewriteCond %{HTTP_USER_AGENT} !"up.browser|up.link|windowssce|iemobile|mini|mmp" [NC]</pre>
<pre>RewriteCond %{HTTP_USER_AGENT} !"symbian|midp|wap|phone|pocket|mobile|pda|psp" [NC]</pre>
<pre>RewriteCond %{HTTP_USER_AGENT} macintosh [NC]</pre>
<pre>RewriteRule ^(.*)$ http://www.yoursite.com/ [L,R=302]</pre>
<p>Three things to note about this compared to the original:</p>
<ol>
<li>My use case is two sites, www.yoursite.com for normal and m.yoursite.com for mobile sites</li>
<li>I only check URLs on the homepage, I figure here that if they&#8217;re on an interior page they&#8217;re there on purpose</li>
<li>You understand mod_rewrite and regular expressions enough to know what to change above to make it right for you (only the 2nd and last lines will likely need to change)</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.bearfruit.org/2010/11/05/mobile-browser-redirection-with-mod_rewrite/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Test Drupal 7 beta for 54 min free thanks to Canonical</title>
		<link>http://www.bearfruit.org/2010/10/14/test-drupal-7-beta-for-free/</link>
		<comments>http://www.bearfruit.org/2010/10/14/test-drupal-7-beta-for-free/#comments</comments>
		<pubDate>Thu, 14 Oct 2010 20:17:35 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Cool Stuff]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.bearfruit.org/?p=453</guid>
		<description><![CDATA[This week two exciting things happened in the open source world. Drupal 7 beta was released for testing and Ubuntu 10.10 was delivered. It just so happens that the timing couldn&#8217;t have been better, because Canonical debuted a new feature that lets you test Ubuntu Server Edition in the cloud free for one hour. Now [...]]]></description>
			<content:encoded><![CDATA[<p>This week two exciting things happened in the open source world. <a href="http://drupal.org/drupal-7.0-beta1">Drupal 7 beta was released for testing</a> and <a href="http://www.ubuntu.com/">Ubuntu 10.10 was delivered</a>. It just so happens that the timing couldn&#8217;t have been better, because Canonical debuted a new feature that lets you <a href="https://10.cloud.ubuntu.com/">test Ubuntu Server Edition in the cloud free for one hour</a>.<span id="more-453"></span></p>
<p>Now you have no excuse not to try out the latest Drupal 7 beta. It&#8217;s not hard but you will need to do just a bit of setup. It works like this:</p>
<ol>
<li>Create a free account</li>
<li>Make sure you&#8217;re able to use SSH (try <a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/">installing PuTTY</a> if you use Windows, Linux and Mac OS users are already set)</li>
<li>Launch an instance</li>
<li>Use my instructions to setup Drupal 7 (takes 3 min)</li>
<li>Play with Drupal 7 for the remainder of the hour for free</li>
</ol>
<p>You can repeat steps 3 &#8211; 5 if you&#8217;d like, but the nature of the system means your data is wiped clean when your hour is up. Fortunately my instructions are copy and paste so you can do it very quickly.</p>
<h2>Create an account</h2>
<p>Visit <a href="https://10.cloud.ubuntu.com">https://10.cloud.ubuntu.com</a> to begin the process. Click the big orange button to try Ubuntu 10.10.</p>
<p><img class="alignnone size-medium wp-image-455" title="Step 0" src="http://www.bearfruit.org/wp-content/uploads/2010/10/Step-0-300x192.png" alt="" width="300" height="192" /></p>
<p>You&#8217;ll be asked to either sign in (the form on the left) or create an account (the grey button on the right). I assume you have not visited here before and need to make an account.</p>
<p><img class="alignnone size-medium wp-image-456" title="step1" src="http://www.bearfruit.org/wp-content/uploads/2010/10/step1-300x170.png" alt="" width="300" height="170" /></p>
<p>Next, fill out the form with your e-mail address. Choose a password and enter the captcha <img src='http://www.bearfruit.org/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' /> </p>
<p>You&#8217;ll be sent an e-mail with a short code to enter. Copy that and paste it into the form here to confirm your e-mail address.</p>
<p><a href="http://www.bearfruit.org/wp-content/uploads/2010/10/step3.png"><img class="alignnone size-medium wp-image-457" title="step3" src="http://www.bearfruit.org/wp-content/uploads/2010/10/step3-300x185.png" alt="" width="300" height="185" /></a></p>
<p>Your account was created, now sign in by clicking the big orange button:</p>
<p><img class="alignnone size-medium wp-image-458" title="step6" src="http://www.bearfruit.org/wp-content/uploads/2010/10/step6-300x168.png" alt="" width="300" height="168" /></p>
<p>By the way, if you have a launchpad.net account you probably skipped some of those steps above. As a matter of fact, if you have an SSH public key associated with your launchpad.net account life will be even easier.</p>
<p>Now we launch the Ubuntu 10.10 Server instance. I&#8217;ll assume you don&#8217;t have an SSH key filed in launchpad. You&#8217;ll get a one-time use password when you launch your instance. You&#8217;ll also see an informative paragraph above the gray box which no doubt you won&#8217;t read. It&#8217;s OK.</p>
<h2>Launch your server</h2>
<p><img class="alignnone size-medium wp-image-459" title="step7" src="http://www.bearfruit.org/wp-content/uploads/2010/10/step7-300x285.png" alt="" width="300" height="285" /></p>
<p>Check the 2nd box saying that you will agree to the Amazon Web Service Customer Agreement and the Ubuntu Code of Conduct (basically, if you use this for Drupal 7 testing you&#8217;re in compliance). Then hit the orange Launch button.</p>
<p>It takes a min or two for your server to launch. Keep the page open, it refreshes every few seconds. Once the server launches you&#8217;ll be given a simple information screen like this:</p>
<p><img class="alignnone size-full wp-image-460" title="step 9" src="http://www.bearfruit.org/wp-content/uploads/2010/10/step-9.png" alt="" width="439" height="382" /></p>
<p>If you are using Windows you&#8217;ll probably want to use the excellent SSH program PuTTY, if you are in Mac OS or Linux you can just open a terminal. The command to type at the terminal is:</p>
<blockquote><p>ssh ubuntu@address (basically just copy and paste from the webpage)</p></blockquote>
<p>If you&#8217;re in putty just enter the IP address and click connect. When asked for a username type ubuntu.</p>
<p>The first thing that happens is you&#8217;ll enter your one-time password. It will immediately request you change it. Follow the instructions to type the one-time password again and then enter a new password of your choosing. It may log you out, if so, just connect again and use your new password this time.</p>
<h2>Now test Drupal 7 Beta</h2>
<p>You&#8217;ve probably now invested about 6 min of your life and you&#8217;re ready to see D7. Let&#8217;s go.</p>
<p>Type these commands from the terminal:</p>
<blockquote><p>sudo tasksel install lamp-server</p></blockquote>
<p>This will prompt you to install a web-server and MySQL onto the server. The screen turns blue and you&#8217;ll be asked to choose a MySQL server password. <strong>GO AHEAD AND PICK A PASSWORD</strong>. It can be 123456 if you want, it will only be around for 1 hour. If you don&#8217;t it slows things down a little.</p>
<blockquote>
<ol>
<li>sudo apt-get install -y php5-gd</li>
<li>wget http://ftp.drupal.org/files/projects/drupal-7.0-beta1.tar.gz</li>
<li>cd /srv</li>
<li>sudo tar zxf ~/drupal-7.0-beta1.tar.gz</li>
<li>sudo sed -i &#8216;s/\/var\/www/\/srv\/drupal-7.0-beta1/g&#8217; /etc/apache2/sites-available/default</li>
<li>sudo /etc/init.d/apache2 restart</li>
<li>sudo mysqladmin -u root -p create drupal<br />
(you&#8217;ll have to enter your MySQL password you chose earlier)</li>
<li>cd /srv/drupal-7.0-beta1/sites/default</li>
<li>sudo cp default.settings.php settings.php</li>
<li>sudo mkdir files</li>
<li>sudo chown www-data settings.php files/</li>
</ol>
</blockquote>
<p>You are now down. Drupal 7 beta is installed and ready to configure. You can do the rest of these steps in the web browser.</p>
<p>Remember your server address you have open in your browser? (it&#8217;s a series of 4 numbers separated by dots) Copy that, open a web browser and then paste that address in as the URL and hit enter.</p>
<p>At this point, you are now officially a Drupal 7 Beta tester!</p>
<p>Follow the instructions to configure Drupal. At the database screen the important details are:</p>
<ol>
<li>Database name: drupal</li>
<li>User name: root</li>
<li>Password: (the password you typed into the blue screen during configuration)</li>
</ol>
<p>Explore, play, look for problems, read this page to find out <a href="http://drupal.org/drupal-7.0-beta1">how to test and report issues</a> you find.</p>
<p>Don&#8217;t forget to <a href="https://10.cloud.ubuntu.com/feedback/">say thank you</a> to Canonical. If you like how easy it is to set up Ubuntu Server strongly consider Ubuntu Advantage, a tool created by Canonical to make <a href="http://www.canonical.com/enterprise-services/ubuntu-advantage/server">setting up and managing Ubuntu Server much easier</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bearfruit.org/2010/10/14/test-drupal-7-beta-for-free/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New job</title>
		<link>http://www.bearfruit.org/2010/06/11/new-job/</link>
		<comments>http://www.bearfruit.org/2010/06/11/new-job/#comments</comments>
		<pubDate>Fri, 11 Jun 2010 20:13:11 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Cool Stuff]]></category>
		<category><![CDATA[Diary]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Thoughts]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.bearfruit.org/?p=429</guid>
		<description><![CDATA[I&#8217;m excited to share that I&#8217;m changing jobs at Canonical. I&#8217;ve been working as the Ubuntu.com webmaster for four years. I&#8217;ll be changing to a web developer on a different team. More specifically, I&#8217;ll be kind of a front-end web developer working on theming and the likes. When I started at Canonical there was under [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m excited to share that I&#8217;m changing jobs at Canonical. I&#8217;ve been working as the Ubuntu.com webmaster for four years. I&#8217;ll be changing to a web developer on a different team. More specifically, I&#8217;ll be kind of a front-end web developer working on theming and the likes.</p>
<p>When I started at Canonical there was under 50 employees and the webmaster job description was quite broad. Over time as the company has grown and more people came on to help in various aspects my role became more of a marketing job, making content changes and running web reports. I was spending less of my time doing tasks where I excelled.</p>
<p>It&#8217;s kind of a lateral move. I&#8217;ll be switching to the team of developers responsible for managing our internal apps. I&#8217;ll continue to work on the Ubuntu.com infrastructure including Drupal, WordPress and Moin Moin as before. However this job is explicitly about developing custom application solutions. Someone else will be hired to take on the roles of managing the content and reporting for the website.</p>
<p>For those of you who are my colleagues in the Ubuntu community (i.e. not Canonical staff) our relationship will not change &#8211; I&#8217;m still the contact. As a matter of fact, there is a lot about my job that isn&#8217;t changing. I mostly get to focus on the parts I love.</p>
<p>This suits my tastes perfectly. I&#8217;m much more comfortable thinking about HTTP headers, reducing code duplication, CSS and the likes than I am hunting for typos, ensuring headlines are sentence case and keeping on top of web reports.</p>
<p>There will be a job post to fill the role of webmaster. If you&#8217;re interested in it, let me know and I&#8217;ll send you the details when they&#8217;re finalized by management. If you know me you know how to contact me privately and I think that would be the best method to express interest in the job.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bearfruit.org/2010/06/11/new-job/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lucid Lynx release day excitement</title>
		<link>http://www.bearfruit.org/2010/04/30/lucid-lynx-release-day-excitement/</link>
		<comments>http://www.bearfruit.org/2010/04/30/lucid-lynx-release-day-excitement/#comments</comments>
		<pubDate>Fri, 30 Apr 2010 19:27:27 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[backend]]></category>
		<category><![CDATA[Computers]]></category>
		<category><![CDATA[Cool Stuff]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.bearfruit.org/?p=407</guid>
		<description><![CDATA[Every release day is exciting in one way or another. Lucid&#8217;s was no disappointment. April 29th, 2010 was my 8th Ubuntu release as the ubuntu.com webmaster. Counting testing releases, betas and RCs I&#8217;ve participated in about 50 releases. There are many aspects related to a release. I can only talk about my own perspective, as [...]]]></description>
			<content:encoded><![CDATA[<p>Every release day is exciting in one way or another. Lucid&#8217;s was no disappointment. April 29th, 2010 was my 8th Ubuntu release as the ubuntu.com webmaster. Counting testing releases, betas and RCs I&#8217;ve participated in about 50 releases.</p>
<p>There are many aspects related to a release. I can only talk about my own perspective, as it pertains to managing the website. Usually, a week or so before release we&#8217;ve got a pretty good idea of what the website will look like and people are viewing it on a testing server. Invariably there are last minute changes, and I do mean up to the last minute.<span id="more-407"></span></p>
<p>Wednesday evening the release manager starts the process of dispersing CD images to the corners of the globe so that when its time to go live they show up on the mirrors pretty quickly. I talk to him and plan a time for me to come online to prepare the website for release. This time we agreed I&#8217;d be online at 5:00 am (10:00 UTC), aiming for a 12:00 UTC release time.</p>
<p>There&#8217;s an element of risk in pre-seeding the CD images because the image testing happens in parallel. Normally its not a problem but this release a serious bug was found. I&#8217;m not sure of the details but it was bad enough that there was a &#8220;day-of&#8221; re-spin. When I came online at 5:00 the disks were being remastered.</p>
<p>This went OK apparently but a new problem popped up. We have a mirror prober application that checks our mirrors to see if they have the correct images. We do this by making HTTP HEAD requests to ensure the file name exists and the file size matches what we have. Unfortunately, the remastered disk images were exactly the same size as the defective ones. <em>Exact to the byte</em>.</p>
<p>We couldn&#8217;t tell which mirrors had the new version and which had the bad version. We use a protocol to communicate with our mirrors telling them which files to mirror. Therefore we updated the list to include a dummy file. That allowed us to identify which mirrors were up to date and which were not.</p>
<p>Finally, about 12:21 my time (17:21 UTC) we got the word that it was about time to &#8220;push the button.&#8221; I had prepared by opening up a bunch of tabs with the pages that were changing, updating the pages so that all I had to do was submit each form. The release team gave me some last minute changes and in the process of applying those I accidentally <em>closed my browser window</em>. If you were in central Iowa you may have heard me scream.</p>
<p>I&#8217;m an optimist, so I hoped that firefox would remember the tabs and values of the forms, but unfortunately our authentication system redirects you to an openid auth page when you first visit it. All was lost.</p>
<p>So I copy and pasted again while people constantly instant messaged me asking if it was ready yet. Finally, at about 12:46 (17:46 UTC) the website launched. I kid you not, multitudes of people open their browser to the homepage and refresh again and again waiting to see the site change. I hear someone in the Millbank office with a bottle of champagne waits until the website updates so that they can celebrate. Talk about pressure. <img src='http://www.bearfruit.org/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>We&#8217;re fortunate that our intense loads are so predictable. It gives us plenty of time to beef up our infrastructure and plan appropriately. When we get slashdotted we usually don&#8217;t even notice (unless they link to our wiki). <a href="http://www.bearfruit.org/wp-content/uploads/2010/04/spikes.png"><img class="size-full wp-image-408 alignright" title="spikes" src="http://www.bearfruit.org/wp-content/uploads/2010/04/spikes.png" alt="" width="61" height="66" /></a>A release day is at least 12 times more traffic than when we hit the homepage of digg and slashdot. For a reference, check out this image. The big bump is a release day, the small bump to the left of it is when we hit some big news site.</p>
<p>After the site launches I get a rush of bug reports. There&#8217;s nothing like having a million people proof reading your site all at once. The next couple hours are spent doing low-priority updates and fixing little issues that show up. About 3:00 my time (20:00 UTC) I stepped away from my computer and took a nap.</p>
<p>And that is a release day.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bearfruit.org/2010/04/30/lucid-lynx-release-day-excitement/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why do SSL certificates cost money?</title>
		<link>http://www.bearfruit.org/2010/04/20/why-do-ssl-certificates-cost-money/</link>
		<comments>http://www.bearfruit.org/2010/04/20/why-do-ssl-certificates-cost-money/#comments</comments>
		<pubDate>Tue, 20 Apr 2010 20:29:58 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[Thoughts]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.bearfruit.org/?p=370</guid>
		<description><![CDATA[In short, you&#8217;re paying for the trust, not the actual encryption. Anyone with the appropriate software, which is widely available for free, can create their own certificate that provides encryption. However, using such a certificate will generate a browser warning when a user tries to create a secure connection. The warning will say something to [...]]]></description>
			<content:encoded><![CDATA[<p>In short, you&#8217;re paying for the trust, not the actual encryption. Anyone with the appropriate software, which is widely available for free, can <a href="http://www.akadia.com/services/ssh_test_certificate.html">create their own certificate</a> that provides encryption. However, using such a certificate will generate a browser warning when a user tries to create a secure connection. The warning will say something to the effect that &#8220;the connection is not trusted.&#8221; If you want to avoid the warning it costs something between $50 and $500. But there&#8217;s a justification.<span id="more-370"></span></p>
<p>When you purchase a certificate you must perform some additional steps besides those to create a self-signed certificate. These steps help you demonstrate who you are. For example, it may require that you prove you can receive email at the domain you&#8217;re security, prove that you own the domain, talk to a person or use an automated system that calls you to verify your phone number and identity or even fax business verification documents.</p>
<p>Once you&#8217;ve performed the steps necessary to show that you are who you say you are you receive an SSL certificate. Of course you also have to pay money.</p>
<p>I&#8217;m not really in agreement that the fees associated with an SSL certificate are justified. The cost of verifying an organization that is purchasing a certificate are pretty much static and don&#8217;t vary depending on the number of servers they have. Yet you buy the certificates by the server. If it costs $50 to verify an organization and that&#8217;s how much they charge for one certificate and a businesses purchases 10 then you&#8217;ve got yourself a pretty good margin. If you don&#8217;t believe me, <a href="http://en.wikipedia.org/wiki/Mark_Shuttleworth">ask Mark Shuttleworth</a>. I shouldn&#8217;t complain because his success at selling SSL certificates pays my salary. <img src='http://www.bearfruit.org/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.bearfruit.org/2010/04/20/why-do-ssl-certificates-cost-money/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>We&#8217;re repeating that mistake?</title>
		<link>http://www.bearfruit.org/2010/01/27/we039re-repeating-that-mistake/</link>
		<comments>http://www.bearfruit.org/2010/01/27/we039re-repeating-that-mistake/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 09:01:36 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Cool Stuff]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Thoughts]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Today Apple is supposed to make a big announcement. I don't know yet what that will be but many people think it's related to a Tablet PC. Apple's success in the iPhone and App Store business has reminded me of one of the web's biggest mistakes and we seem on track to repeat it. I'm stunned because it really hasn't been that long. How can we be doing it again so soon?]]></description>
			<content:encoded><![CDATA[<p>Today Apple is supposed to make a big announcement. I don&#8217;t know yet what that will be but many people think it&#8217;s related to a Tablet PC. Apple&#8217;s success in the iPhone and App Store business has reminded me of one of the web&#8217;s biggest mistakes and we seem on track to repeat it. I&#8217;m stunned because it really hasn&#8217;t been that long. How can we be doing it again so soon?<span id="more-309"></span><!--break--></p>
<p>Back in the late 90&#8242;s the web was young and everyone saw potential but everyone was frustrated because it was hard to do the stuff we really wanted to do. Then Microsoft revolutionized things with the release of Internet Explorer 4 (IE4). It shipped a little before Windows 98 and when added to later releases of Windows 95 it changed the desktop in many good ways. You were foolish not to install it just because of what it brought to the desktop.</p>
<p>But what it brought to the web was even greater. We were doing things we&#8217;d only dreamed of before. At first we built our sites with IE4 and Netscape 4 in mind (it was a big improvement over the 3.0 browsers before it) but it quickly became clear that these browsers were in two different leagues and IE was going to be the champ.</p>
<p>Many many organizations and websites dropped support for non IE browsers. It became hard to navigate the web w/out IE. It helped Microsoft resoundingly take over the desktop because you commonly needed IE to view critical websites.</p>
<p>This was the third biggest mistake we&#8217;ve made with the Internet and we&#8217;re still paying for it. Really. There are extensions for all browsers that let them trick websites into thinking they&#8217;re IE so that they can get past the dreaded, &#8220;you must be using IE to view this site&#8221; error. Sometimes it works but sometimes the only option is to just fire up IE.</p>
<p>And we&#8217;re doing it again. The next big thing, the thing that will change the web for ever, is the emergence of Mobile. A few years ago, for the first time, Laptops outsold desktop PCs in retail. It was a big deal because people&#8217;s primary computer was not a desktop but a laptop. And soon it will be an even smaller device like a mobile smart phone. I&#8217;m confident that soon web enabled mobiles (real web, not WAP) will outsell PCs.</p>
<p>Apple was the vendor to get people really excited about the mobile web, and rightly so. The iPhone is inspiring. Apple started out telling people to design mobile websites but then did a full turn. They opened up an API for native software development and encouraged people to use it rather than web apps. And the encouragement was easy money &#8211; build apps, sell them and make a ton of money. We liked the idea. We took the bait, hook, line and sinker. We even swallowed the bobber and asked the fisherman to give more.</p>
<p>How short-sighted though. The Mobile web is too big to be owned by one vendor. We&#8217;re repeating the IE 4 mistake all over and instead of groaning in despair we&#8217;re grinning and gleeful, asking for more vendor lock in.</p>
<p>We have to stop. Run away from native apps, back to the safety of standards compliance. Back to the world where everyone, regardless of the platform, can access and use your app. Don&#8217;t wait!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bearfruit.org/2010/01/27/we039re-repeating-that-mistake/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Absolute minimal styles for your unstyled site</title>
		<link>http://www.bearfruit.org/2009/10/23/absolute-minimal-styles-for-your-unstyled-site/</link>
		<comments>http://www.bearfruit.org/2009/10/23/absolute-minimal-styles-for-your-unstyled-site/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 10:22:15 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Cool Stuff]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Thoughts]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Among the elite hacker community it is sometimes considered cool to have an unstyled website. I'm not certain what makes this cool, but I respect it none-the-less. However a few absolutely minimal styles can make your site easier to read. Here they are:]]></description>
			<content:encoded><![CDATA[<p>Among the elite hacker community it is sometimes considered cool to have an unstyled website. I&#8217;m not certain what makes this cool, but I respect it none-the-less. However a few absolutely minimal styles can make your site easier to read. Here they are:<!--break--></p>
<pre>body {
font-family: sans-serif;
line-height: 130%;
font-size: 91%;
}</pre>
<p><span id="more-305"></span>First, this helps improve readability by switching to a sans-serif font. Even the highest resolution screens (iPhone and similar) max out at 160dpi. More commonly screens are 96 to 120dpi. This is far less than a printer which is more like 600dpi on the low end. Therefore the curly tips to serif fonts do not get well defined and are essentially blurred (interpolated) by the screen to make them look smooth. This completely negates the benefits serifs enjoy in the print world.</p>
<p>Secondly, it increases the line-height, effectively putting a bit more space between the lines of text. This makes it easier for people to read your content because they can more quickly refocus their eye on the next line of text as they move their eyes from the far right side of the column back to the left.</p>
<p>Lastly, it drops the font-size by 1pt from the browser default which allows more condensed type. Since sans-serif fonts are much easier to read on-screen this does not undo any of the improvements on screen. 11pt sans-serif is easier to read than 12pt serif.</p>
<p>Some people don&#8217;t think this matters. If you are one of these types of people let me assure you that you that it does matter to many of your site&#8217;s visitors, even though many would have a hard time quantifying or describing why the styles above improve things.</p>
<p>We&#8217;ll use the site of my friend and colleague Barry Warsaw as an example. I&#8217;ve adjusted his site&#8217;s styles using firebug and the two images below demonstrate the change:</p>
<p><img src="http://www.bearfruit.org/files/styled-before.png" alt="before styles" /><br />
<img src="http://www.bearfruit.org/files/styled-after.png" alt="after styles" /></p>
<p>Note that the newly styled page actually fits more content in before you have to scroll. Also note the links in the navigation at the top of the page, how the under-lined links have more space between the underline and the text below it.</p>
<p>So very little work is done on your part, your site&#8217;s general appearance hasn&#8217;t changed dramatically (though some people will notice it) and your site has gotten easier to read.</p>
<p>Please don&#8217;t omit the line-height, it is essential to the end result.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bearfruit.org/2009/10/23/absolute-minimal-styles-for-your-unstyled-site/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

