<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-765706668069342682</id><updated>2012-01-24T02:01:09.875-05:00</updated><category term='pictures'/><category term='education'/><category term='firefox party'/><category term='javascript'/><category term='pump'/><category term='twisted'/><category term='box'/><category term='buildbot'/><category term='seneca'/><category term='wtf'/><category term='ttc'/><category term='cute'/><category term='freedom'/><category term='rationalrose'/><category term='slackers'/><category term='motivation'/><category term='css'/><category term='first post'/><category term='ibm'/><category term='python'/><category term='rdp'/><category term='systems'/><category term='baking'/><category term='windows'/><category term='anger'/><category term='layout'/><category term='frustration'/><category term='c++'/><category term='rant'/><category term='bonsai'/><category term='kitten'/><category term='election'/><category term='ogg'/><category term='vmware'/><category term='dhclient'/><category term='$$$'/><category term='club moz'/><category term='mauricejosephweisfeld'/><category term='school'/><category term='award'/><category term='fork'/><category term='networking'/><category term='theora'/><category term='wireless'/><category term='food'/><category term='wasteofpaper'/><category term='unit testing'/><category term='vorbis'/><category term='mozilla'/><category term='ubuntu'/><category term='eyesore'/><category term='egoboost'/><category term='cat'/><category term='transit'/><category term='absurd'/><category term='fsoss'/><category term='stupid'/><category term='money'/><title type='text'>Ben Hearsum</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://bhearsum.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/765706668069342682/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://bhearsum.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Ben Hearsum</name><uri>http://www.blogger.com/profile/06089847104161178013</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>21</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-765706668069342682.post-868229034219694809</id><published>2007-06-20T13:41:00.000-04:00</published><updated>2007-06-20T14:03:23.955-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='transit'/><category scheme='http://www.blogger.com/atom/ns#' term='ttc'/><category scheme='http://www.blogger.com/atom/ns#' term='frustration'/><category scheme='http://www.blogger.com/atom/ns#' term='anger'/><title type='text'></title><content type='html'>Rant:&lt;br /&gt;&lt;br /&gt;I think I'm going to boycott the bus for distances less than 15km for awhile. Today I spent nearly an hour and a half getting from Bathurst and Steeles to Dufferin and Lawrence. According to Google Maps, that's 11.2km and takes 14min (by car, obviously).&lt;br /&gt;&lt;br /&gt;Here's what I went through:&lt;br /&gt;* 10 minute walk to the bus stop (that's normal)&lt;br /&gt;* Caught the #7 Bathurst bus&lt;br /&gt;* The #7 stopped for about 5min before turning south on Bathurst&lt;br /&gt;* Took the #7 down to Lawrence, this took about 30min.&lt;br /&gt;* Waited for the #34 Lawrence bus.&lt;br /&gt;* I first saw the #34 after 10 minutes of waiting&lt;br /&gt;* After &lt;b&gt;three&lt;/b&gt; green lights it finally made it across the intersection&lt;br /&gt;* Two stops up we waited a few minutes before moving because people weren't behind the white line&lt;br /&gt;* Arrived at Lawrence West station, waited 5min there.&lt;br /&gt;* 5min later we got to Dufferin.&lt;br /&gt;&lt;br /&gt;I came up with a list of frustrations while during my trip:&lt;br /&gt;1) Why is there bus stops on both sides of an intersection? All this does is cause the bus to be stuck at extra red lights. In most cases the bus stop should be &lt;b&gt;after&lt;/b&gt; the lights, to help avoid getting stuck at them.&lt;br /&gt;2) The bus is a lot slower than I remembered. It really sucks when it takes half an hour to go from Steeles to Lawrence.&lt;br /&gt;3) It's difficult to estimate how long it will take to get somewhere unless you do it on a daily basis. To arrive on time you usually need to give yourself a lot of extra time, which often ends up making you really early!&lt;br /&gt;4) Buses get really crowded.&lt;br /&gt;4) The things mentioned above cause a huge amount of frustration for me.&lt;br /&gt;&lt;br /&gt;I think one of the reasons the bus is more frustrating now is because I'm in the far north of the city. When I was living closer to Bloor I don't remember it being this bad.&lt;br /&gt;&lt;br /&gt;For now, I'm going to use my bike whenever I can. I'd forgotten how nice it is to have control over your mode of transportation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/765706668069342682-868229034219694809?l=bhearsum.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bhearsum.blogspot.com/feeds/868229034219694809/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=765706668069342682&amp;postID=868229034219694809' title='16 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/765706668069342682/posts/default/868229034219694809'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/765706668069342682/posts/default/868229034219694809'/><link rel='alternate' type='text/html' href='http://bhearsum.blogspot.com/2007/06/rant-i-think-im-going-to-boycott-bus.html' title=''/><author><name>Ben Hearsum</name><uri>http://www.blogger.com/profile/06089847104161178013</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>16</thr:total></entry><entry><id>tag:blogger.com,1999:blog-765706668069342682.post-1942550451942250872</id><published>2007-05-08T14:37:00.000-04:00</published><updated>2007-05-08T14:40:06.840-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='baking'/><title type='text'>Canadian Bakin'</title><content type='html'>I thought some people might be interested in my new blog. I've started doing a lot of baking lately, mostly breads and bagels to start with. You can read about it on &lt;a href="http://canadianbakin.blogspot.com"&gt;Canadian Bakin'&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/765706668069342682-1942550451942250872?l=bhearsum.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bhearsum.blogspot.com/feeds/1942550451942250872/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=765706668069342682&amp;postID=1942550451942250872' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/765706668069342682/posts/default/1942550451942250872'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/765706668069342682/posts/default/1942550451942250872'/><link rel='alternate' type='text/html' href='http://bhearsum.blogspot.com/2007/05/canadian-bakin.html' title='Canadian Bakin&apos;'/><author><name>Ben Hearsum</name><uri>http://www.blogger.com/profile/06089847104161178013</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-765706668069342682.post-29368091546552774</id><published>2007-03-14T18:46:00.000-04:00</published><updated>2007-03-14T18:51:13.070-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cute'/><category scheme='http://www.blogger.com/atom/ns#' term='cat'/><category scheme='http://www.blogger.com/atom/ns#' term='box'/><category scheme='http://www.blogger.com/atom/ns#' term='kitten'/><category scheme='http://www.blogger.com/atom/ns#' term='pictures'/><category scheme='http://www.blogger.com/atom/ns#' term='fork'/><title type='text'>Im in yur box, steelin yur fork</title><content type='html'>I couldn't resist posting some &lt;a href="http://www.flickr.com/photos/88107972@N00/sets/72157594588788446/"&gt;cute pictures&lt;/a&gt; of my cats.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://farm1.static.flickr.com/187/421419208_f4678ad0c1.jpg?v=0" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/765706668069342682-29368091546552774?l=bhearsum.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bhearsum.blogspot.com/feeds/29368091546552774/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=765706668069342682&amp;postID=29368091546552774' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/765706668069342682/posts/default/29368091546552774'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/765706668069342682/posts/default/29368091546552774'/><link rel='alternate' type='text/html' href='http://bhearsum.blogspot.com/2007/03/im-in-yur-box-steelin-yur-fork.html' title='Im in yur box, steelin yur fork'/><author><name>Ben Hearsum</name><uri>http://www.blogger.com/profile/06089847104161178013</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-765706668069342682.post-2635147191570820756</id><published>2007-03-09T22:39:00.000-05:00</published><updated>2007-03-14T01:24:19.524-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wasteofpaper'/><category scheme='http://www.blogger.com/atom/ns#' term='election'/><category scheme='http://www.blogger.com/atom/ns#' term='eyesore'/><category scheme='http://www.blogger.com/atom/ns#' term='absurd'/><title type='text'>I'm not voting</title><content type='html'>This is what I've been treated to all week at school:&lt;br /&gt;&lt;img src="http://foxybanana.com/~bhearsum/vault/yorkelection.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;The York University building I travel through every day is completely plastered with these election posters. Now I'm all for voting and making your voice heard but the absurdity of these campaigns is getting to me. The walls are plastered as high up as one can reach with posters that look nearly identical. Not just one wall, half of the walls in the damn building. Not only is it a waste of paper and ink the homogeneous nature of the designs prevent any one candidate from standing out.&lt;br /&gt;&lt;br /&gt;I hope this election is over soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/765706668069342682-2635147191570820756?l=bhearsum.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bhearsum.blogspot.com/feeds/2635147191570820756/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=765706668069342682&amp;postID=2635147191570820756' title='23 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/765706668069342682/posts/default/2635147191570820756'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/765706668069342682/posts/default/2635147191570820756'/><link rel='alternate' type='text/html' href='http://bhearsum.blogspot.com/2007/03/this-is-what-ive-been-treated-to-all.html' title='I&apos;m not voting'/><author><name>Ben Hearsum</name><uri>http://www.blogger.com/profile/06089847104161178013</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>23</thr:total></entry><entry><id>tag:blogger.com,1999:blog-765706668069342682.post-5538696944218342881</id><published>2007-03-09T12:13:00.000-05:00</published><updated>2007-03-09T22:40:39.796-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='$$$'/><category scheme='http://www.blogger.com/atom/ns#' term='award'/><category scheme='http://www.blogger.com/atom/ns#' term='money'/><category scheme='http://www.blogger.com/atom/ns#' term='mauricejosephweisfeld'/><category scheme='http://www.blogger.com/atom/ns#' term='egoboost'/><title type='text'>No one more deserving</title><content type='html'>Apparently I'm the recipient of the Maurice Joseph Weisfeld Memorial Award this year for being a "deserving student in the school of computer studies". I'm not sure what that _really_ means, but I'm not complaining.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/765706668069342682-5538696944218342881?l=bhearsum.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bhearsum.blogspot.com/feeds/5538696944218342881/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=765706668069342682&amp;postID=5538696944218342881' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/765706668069342682/posts/default/5538696944218342881'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/765706668069342682/posts/default/5538696944218342881'/><link rel='alternate' type='text/html' href='http://bhearsum.blogspot.com/2007/03/award-winning.html' title='No one more deserving'/><author><name>Ben Hearsum</name><uri>http://www.blogger.com/profile/06089847104161178013</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-765706668069342682.post-6134459950534997201</id><published>2007-02-28T01:15:00.000-05:00</published><updated>2007-06-22T12:57:32.588-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='seneca'/><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='layout'/><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>CSS Notebook Layout</title><content type='html'>Ever wanted a notebook style layout on a web page?&lt;br /&gt;&lt;br /&gt;&lt;img src="http://foxybanana.com/~bhearsum/vault/css/notebook/notebook-sample.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;Well, I sure did. And I spent the better portion of the day fighting with it making it work right. You can find a small example page &lt;a href="http://foxybanana.com/~bhearsum/vault/css/notebook/notebook.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Here are the important parts of the CSS and Javascript:&lt;br /&gt;&lt;br /&gt;For the 'tabs':&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;.tab {&lt;br /&gt;  border-top: 1px solid black;&lt;br /&gt;  border-left: 1px solid black;&lt;br /&gt;  border-bottom: 1px solid black;&lt;br /&gt;  padding-top: 5px;&lt;br /&gt;  padding-bottom: 5px;&lt;br /&gt;  padding-left: 15px;&lt;br /&gt;  padding-right: 15px;&lt;br /&gt;  vertical-align: middle;&lt;br /&gt;  text-align: left;&lt;br /&gt;  color: blue;&lt;br /&gt;  cursor: pointer;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Each tab also has it's initial 'background-color' set.&lt;br /&gt;&lt;br /&gt;Here is the corresponding HTML:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;div&gt;&lt;br /&gt;  &amp;lt;span id="page1Tab" class="tab" onclick="showPage('page1');"&gt;&lt;br /&gt;    Page 1&lt;br /&gt;  &amp;lt;/span&gt;&lt;br /&gt;  &amp;lt;span id="page2Tab" class="tab" onclick="showPage('page2');"&gt;&lt;br /&gt;    Page 2&lt;br /&gt;  &amp;lt;/span&gt;&lt;br /&gt;  &amp;lt;span id="page3Tab" class="tab" onclick="showPage('page3');" style="border-right: 1px solid black"&gt;&lt;br /&gt;    Page 3&lt;br /&gt;  &amp;lt;/span&gt;&lt;br /&gt;&amp;lt;/div&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;It's important to note that for the frame to properly line up with the bottom of the buttons that it needs to have it's 'margin-top' identical to the tabs 'padding-bottom'. This is what my "content" frame looks like:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;div#content {&lt;br /&gt;  width: 95%;&lt;br /&gt;  border: 1px solid black;&lt;br /&gt;  margin-top: 5px;&lt;br /&gt;  background-color: #B5BBD5;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;I'm using &amp;lt;fieldset&gt; tags with &amp;lt;legend&gt; tags in my example to get the neat looking frame.&lt;br /&gt;&lt;br /&gt;Finally, here are links to the HTML, CSS, and Javascript files:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://foxybanana.com/~bhearsum/vault/css/notebook/notebook.html"&gt;HTML&lt;/a&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://foxybanana.com/~bhearsum/vault/css/notebook/notebook.css"&gt;CSS&lt;/a&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://foxybanana.com/~bhearsum/vault/css/notebook/notebook.js"&gt;Javascript&lt;/a&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/765706668069342682-6134459950534997201?l=bhearsum.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bhearsum.blogspot.com/feeds/6134459950534997201/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=765706668069342682&amp;postID=6134459950534997201' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/765706668069342682/posts/default/6134459950534997201'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/765706668069342682/posts/default/6134459950534997201'/><link rel='alternate' type='text/html' href='http://bhearsum.blogspot.com/2007/02/css-notebook-layout.html' title='CSS Notebook Layout'/><author><name>Ben Hearsum</name><uri>http://www.blogger.com/profile/06089847104161178013</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-765706668069342682.post-9040623679093674470</id><published>2006-12-04T09:19:00.000-05:00</published><updated>2006-12-04T09:22:53.740-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rationalrose'/><category scheme='http://www.blogger.com/atom/ns#' term='stupid'/><category scheme='http://www.blogger.com/atom/ns#' term='ibm'/><category scheme='http://www.blogger.com/atom/ns#' term='frustration'/><category scheme='http://www.blogger.com/atom/ns#' term='anger'/><title type='text'>Not so Rational Rose</title><content type='html'>Apparently Rational Rose changes their file formats between minor versions. Because of this I just had to re-do a large amount of work.&lt;br /&gt;&lt;br /&gt;This whole program is a piece of crap. Their UI is terrible, inconsistent, and feels like it was built for Windows 3.1. For example, how do you delete something from a model? The 'delete' key you say? Of course not! You use ^D! Did you make a change you didn't like? Would you like to undo it? Sorry! You can't! Delete the object and then add it again.&lt;br /&gt;&lt;br /&gt;Yargh!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/765706668069342682-9040623679093674470?l=bhearsum.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bhearsum.blogspot.com/feeds/9040623679093674470/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=765706668069342682&amp;postID=9040623679093674470' title='163 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/765706668069342682/posts/default/9040623679093674470'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/765706668069342682/posts/default/9040623679093674470'/><link rel='alternate' type='text/html' href='http://bhearsum.blogspot.com/2006/12/not-so-rational-rose.html' title='Not so Rational Rose'/><author><name>Ben Hearsum</name><uri>http://www.blogger.com/profile/06089847104161178013</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>163</thr:total></entry><entry><id>tag:blogger.com,1999:blog-765706668069342682.post-5238184416779513191</id><published>2006-11-30T16:46:00.000-05:00</published><updated>2007-06-22T12:57:38.886-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='seneca'/><title type='text'>Edgy Eft</title><content type='html'>Today I set out to install the latest version of &lt;a href="http://www.ubuntu.com"&gt;Ubuntu&lt;/a&gt;, Edgy Eft (6.10). I've been an Ubuntu user since Warty Warthog (4.10) and a long time Debian user before that. I'm continually impressed with how they take the Debian base and polish it so well. I've always told people that Ubuntu "is like Debian with a better package set".&lt;br /&gt;&lt;br /&gt;Since Dapper Drake (6.04) Ubuntu has had a new installer. It is more or less just an application that runs inside of a Live CD. The organization and feel of it is very similar to it's text based counterpart. I'm all in favor of a GUI installer but very disappointed with Ubuntu's. This post will detail the downfalls of it.&lt;br /&gt;&lt;br /&gt;For the record, here is a summary of the hardware I was installing on:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;IBM Thinkpad R51&lt;/li&gt;&lt;br /&gt;&lt;li&gt;512MB PC2700 RAM&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Intel Pentium M 1.5GHz CPU&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Intel Pro Wireless 2200 a/b/g&lt;/li&gt;&lt;br /&gt;&lt;li&gt;CD-RW/DVD-ROM&lt;/li&gt;&lt;br /&gt;&lt;li&gt;40GB Hard Drive&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/765706668069342682-5238184416779513191?l=bhearsum.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bhearsum.blogspot.com/feeds/5238184416779513191/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=765706668069342682&amp;postID=5238184416779513191' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/765706668069342682/posts/default/5238184416779513191'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/765706668069342682/posts/default/5238184416779513191'/><link rel='alternate' type='text/html' href='http://bhearsum.blogspot.com/2006/11/edgy-eft.html' title='Edgy Eft'/><author><name>Ben Hearsum</name><uri>http://www.blogger.com/profile/06089847104161178013</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-765706668069342682.post-5882119768548707893</id><published>2006-11-22T21:19:00.000-05:00</published><updated>2006-11-22T21:21:53.278-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='slackers'/><category scheme='http://www.blogger.com/atom/ns#' term='wtf'/><title type='text'>Thanksgiving</title><content type='html'>I've found out from a few people that Thanksgiving in the US is apparently a week long event. An &lt;a href="http://betweentheropes.com"&gt;online radio show&lt;/a&gt; I listen to is cancelled this week because of it and many others I know are not working this week.&lt;br /&gt;&lt;br /&gt;When did Thanksgiving become a week long event?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/765706668069342682-5882119768548707893?l=bhearsum.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bhearsum.blogspot.com/feeds/5882119768548707893/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=765706668069342682&amp;postID=5882119768548707893' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/765706668069342682/posts/default/5882119768548707893'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/765706668069342682/posts/default/5882119768548707893'/><link rel='alternate' type='text/html' href='http://bhearsum.blogspot.com/2006/11/thanksgiving.html' title='Thanksgiving'/><author><name>Ben Hearsum</name><uri>http://www.blogger.com/profile/06089847104161178013</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-765706668069342682.post-2155635308486497424</id><published>2006-11-20T10:12:00.000-05:00</published><updated>2006-11-20T11:26:14.605-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='education'/><category scheme='http://www.blogger.com/atom/ns#' term='money'/><category scheme='http://www.blogger.com/atom/ns#' term='school'/><category scheme='http://www.blogger.com/atom/ns#' term='motivation'/><title type='text'>Edumacation</title><content type='html'>Off and on for the past year I've been thinking off and on about getting a degree. Dave tells me that I should be in the BSD program and I know a few other people that think I should be at a University working towards a Masters. These thoughts cross my mind almost daily. I flip-flop on the issue for a couple reasons.&lt;br /&gt;&lt;br /&gt;Money is the big one. Obvious, I know, but important. I am already indebted to OSAP -- and not a small amount. Every time I think about going another 30 or 40 thousand into debt I cringe. I have some money in an RESP but that is not going to last much longer. OSAP has recently told me that I'm in overpayment, too. I have a feeling I will be getting less and from them as time goes on, I will likely make more in 2007 than in 2006. So far I've avoided becoming the poor student who lives on ramen noodles and mustard sandwiches and I do _not_ want to become one. I also do not want to be paying of student loans until I'm 40.&lt;br /&gt;&lt;br /&gt;Time is another big concern for me. By the time I've got my Diploma I will have been in school for 24 months straight. I will need at minimum an additional 4 semesters to get a Degree. This would probably be over the course of 2 full years. To get a Masters there would likely be 2 *more* years. I'm not sure I want to be in school until I'm 25.&lt;br /&gt;&lt;br /&gt;I thought there was more reasons than just those two but it looks like that's it. I know I am academically capable of acheiving whatever I set forth to do...but in my head time and money are both really big barriers. I'm trying to gain a more balanced perspective on the situation by talking to people who *have* spent considerable time and money on school. People tell me that graduates with Degrees have a much higher starting salary. Would it be enough to get my loans paid off in a reasonable amount of time? Another advantage of a Degree is that I would probably be able to teach later on in my career if I wanted. Teaching is something I've been thinking about for nearly a year now. I don't think I'd want to do it right away, if at all, but I don't want to block myself from having the opportunity though.&lt;br /&gt;&lt;br /&gt;Input, anyone?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/765706668069342682-2155635308486497424?l=bhearsum.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bhearsum.blogspot.com/feeds/2155635308486497424/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=765706668069342682&amp;postID=2155635308486497424' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/765706668069342682/posts/default/2155635308486497424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/765706668069342682/posts/default/2155635308486497424'/><link rel='alternate' type='text/html' href='http://bhearsum.blogspot.com/2006/11/edumacation.html' title='Edumacation'/><author><name>Ben Hearsum</name><uri>http://www.blogger.com/profile/06089847104161178013</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-765706668069342682.post-9045741658368655724</id><published>2006-11-07T17:08:00.001-05:00</published><updated>2006-11-07T17:10:47.160-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rant'/><category scheme='http://www.blogger.com/atom/ns#' term='frustration'/><category scheme='http://www.blogger.com/atom/ns#' term='food'/><title type='text'>"It's Frozen" -- The Story of My Day</title><content type='html'>I just went for my break to grab dinner.&lt;br /&gt;&lt;br /&gt;First I wanted a veggie burger -- 20 minute delay because they are all frozen.&lt;br /&gt;Then I wanted a pita with hummus -- the hummus was frozen!&lt;br /&gt;&lt;br /&gt;Who the hell shuts down their kitchen at 5pm.&lt;br /&gt;*grumble grumble*&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/765706668069342682-9045741658368655724?l=bhearsum.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bhearsum.blogspot.com/feeds/9045741658368655724/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=765706668069342682&amp;postID=9045741658368655724' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/765706668069342682/posts/default/9045741658368655724'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/765706668069342682/posts/default/9045741658368655724'/><link rel='alternate' type='text/html' href='http://bhearsum.blogspot.com/2006/11/its-frozen-story-of-my-day.html' title='&quot;It&apos;s Frozen&quot; -- The Story of My Day'/><author><name>Ben Hearsum</name><uri>http://www.blogger.com/profile/06089847104161178013</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-765706668069342682.post-1768492667843162465</id><published>2006-11-06T12:09:00.000-05:00</published><updated>2007-06-22T12:57:47.348-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='seneca'/><category scheme='http://www.blogger.com/atom/ns#' term='ogg'/><category scheme='http://www.blogger.com/atom/ns#' term='theora'/><category scheme='http://www.blogger.com/atom/ns#' term='vorbis'/><category scheme='http://www.blogger.com/atom/ns#' term='fsoss'/><category scheme='http://www.blogger.com/atom/ns#' term='freedom'/><title type='text'>FSOSS 2006 -- Now with more freedom!</title><content type='html'>I've just finished converting all of the video and audio from the Seneca &lt;a href="http://fsoss.senecac.on.ca"&gt;Free Software and Open Source Symposium&lt;/a&gt; to Ogg Theora and Ogg Vorbis respectively. They are in the process of being mirrored right now. Check &lt;a href="http://cs.senecac.on.ca/fsoss/2006/recordings/"&gt;this&lt;/a&gt; page in a day or two to download them.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/765706668069342682-1768492667843162465?l=bhearsum.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bhearsum.blogspot.com/feeds/1768492667843162465/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=765706668069342682&amp;postID=1768492667843162465' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/765706668069342682/posts/default/1768492667843162465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/765706668069342682/posts/default/1768492667843162465'/><link rel='alternate' type='text/html' href='http://bhearsum.blogspot.com/2006/11/fsoss-2006-now-with-more-freedom.html' title='FSOSS 2006 -- Now with more freedom!'/><author><name>Ben Hearsum</name><uri>http://www.blogger.com/profile/06089847104161178013</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-765706668069342682.post-3932772831217544456</id><published>2006-11-03T21:14:00.000-05:00</published><updated>2007-06-22T12:57:53.208-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='seneca'/><category scheme='http://www.blogger.com/atom/ns#' term='unit testing'/><category scheme='http://www.blogger.com/atom/ns#' term='bonsai'/><category scheme='http://www.blogger.com/atom/ns#' term='buildbot'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='frustration'/><title type='text'>More Unit Testing</title><content type='html'>&lt;blockquote&gt;&lt;br /&gt;bhearsum@wesley:~/projects/mozilla/buildbot/buildbot-bonsai/buildbot/test$ trial test_bonsaipoller.py&lt;br /&gt;&lt;br /&gt;Ran 9 tests in 0.061s&lt;br /&gt;&lt;br /&gt;PASSED (successes=9)&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;So I've finished my first set of test cases, rejoice!&lt;br /&gt;&lt;br /&gt;When I started writing them I thought it would be really easy, I didn't expect to spend more than a few hours on them. Boy, was I wrong. It's been over a week since I started and I probably spent 8 to 10 hours total on a 181 line file. I received help and advice along the way from &lt;a href="http://roberthelmer.com/blog/"&gt;Rob Helmer&lt;/a&gt; for which I am much appreciative.&lt;br /&gt;&lt;br /&gt;Problems I encountered&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;My original code was more or less untestable&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Python regular expressions were confusing&lt;/li&gt;&lt;br /&gt;&lt;li&gt;My original code used a mixture of exception and return values for error reporting&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Comparing two objects by their data, _not_ their references&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Very quickly I decided to do rewrite of the BonsaiPoller module. It was untestable, confusing, and just plain ugly. I had been planning to do a rewrite becausue of the ugliness alone, so it wasn't hard to reach this decision. This also gave me a chance to attempt some test-driven development. I was looking at _some_ of the old code while writing the test cases but by the end the BonsaiPoller and BonsaiParser worked quite a little differently internally. For reasons of simplicity I decided to keep the interface the same.&lt;br /&gt;&lt;br /&gt;I found much of the test case writing very tedious. Just inputing all the data I needed was a chore. I thought it might be easier to input one "good" piece of data and base all of the broken ones off of it. This worked well enough while using the replace() method to do simple substituition but as soon as I needed regular expressions I was in a world of hurt. For some reason the Python developers seem to have decided that they don't want regular expressions as a built-in part of the language. For the life of me I don't know why. I was stuck carrying around a 're' (regular expression) object for most of the regular expressions I used. Compared to how they work in Perl it's a complete pain in the ass. Observe:&lt;br /&gt;Python:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;import re&lt;br /&gt;&lt;br /&gt;data = "&amp;lt;blah&amp;gt;&amp;lt;ci&amp;gt;&amp;lt;f&amp;gt;&amp;lt;/f&amp;gt;&amp;lt;/ci&amp;gt;&amp;lt;/blah&amp;gt;"&lt;br /&gt;myre = re.compile("&amp;lt;ci.*&amp;gt;&amp;lt;/ci.*&amp;gt;", re.DOTALL, re.MULTILINE)&lt;br /&gt;newdata = re.sub(myre, "", data)&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Perl:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;$data = "&amp;lt;blah&amp;gt;&amp;lt;ci&amp;gt;&amp;lt;f&amp;gt;&amp;lt;/f&amp;gt;&amp;lt;/ci&amp;gt;&amp;lt;/blah&amp;gt;"&lt;br /&gt;($newdata = $data) =~ s/&amp;lt;ci.*&amp;gt;&amp;lt;\/ci&amp;gt;//;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Not such a big deal when doing one or two, like I was, but if you're doing heavy text parsing this would be an ugly nighmare.&lt;br /&gt;&lt;br /&gt;In my original code I used a lot of 'return True' and 'return False' to indicate when there was no more data. Seeing as python is object oriented and throws lots of exceptions I wanted to be consistent. This made much of my code a _lot_ cleaner and it has a nicer "feel" to it. There's one part I'm still not happy with though.&lt;br /&gt;Here's the code when I was using True/False:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;      data = BonsaiResult()&lt;br /&gt;      while self._nextCiNode():&lt;br /&gt;          ci = CiNode()&lt;br /&gt;          ci.log = self._getLog()&lt;br /&gt;          ci.who = self._getWho()&lt;br /&gt;          ci.date = self._getDate()&lt;br /&gt;          while self._nextFileNode():&lt;br /&gt;              fn = FileNode()&lt;br /&gt;              fn.revision = self._getRevision()&lt;br /&gt;              fn.filename = self._getFilename()&lt;br /&gt;              ci.files.append(fn)&lt;br /&gt;&lt;br /&gt;          data.nodes.append(ci)&lt;br /&gt;&lt;br /&gt;      return data&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;And with exceptions:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;      nodes = []&lt;br /&gt;      try:&lt;br /&gt;          while self._nextCiNode():&lt;br /&gt;              files = []&lt;br /&gt;              try:&lt;br /&gt;                  while self._nextFileNode():&lt;br /&gt;                      files.append(FileNode(self._getRevision(),&lt;br /&gt;                                            self._getFilename()))&lt;br /&gt;              except NoMoreFileNodes:&lt;br /&gt;                  pass&lt;br /&gt;              except InvalidResultError:&lt;br /&gt;                  raise&lt;br /&gt;              nodes.append(CiNode(self._getLog(), self._getWho(),&lt;br /&gt;                                  self._getDate(), files))&lt;br /&gt;&lt;br /&gt;      except NoMoreCiNodes:&lt;br /&gt;          pass&lt;br /&gt;      except InvalidResultError, EmptyResult:&lt;br /&gt;          raise&lt;br /&gt;&lt;br /&gt;      return BonsaiResult(nodes)&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;I tried to think of a way to use exceptions cleanly with while loops but drew blanks. If anyone can think of a way to improve the above code please let me know! The function works fine, however, so I shouldn't worry so much.&lt;br /&gt;&lt;br /&gt;The last problem I ran into was comparison of my BonsaiResult objects. I didn't have this problem before writing the test cases because there was no point where I needed to compare them! This part wasn't too difficult once I figured out what I had to do -- but that took awhile. I was considering pulling the __cmp__() method before creating a diff but I don't think it hurts to leave it in.&lt;br /&gt;&lt;br /&gt;Overall I am very pleased with my test cases and new BonsaiPoller module. As soon as I get the energy I will be submitting it to Brian.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/765706668069342682-3932772831217544456?l=bhearsum.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bhearsum.blogspot.com/feeds/3932772831217544456/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=765706668069342682&amp;postID=3932772831217544456' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/765706668069342682/posts/default/3932772831217544456'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/765706668069342682/posts/default/3932772831217544456'/><link rel='alternate' type='text/html' href='http://bhearsum.blogspot.com/2006/11/bhearsumwesleyprojectsmozillabuildbotbu.html' title='More Unit Testing'/><author><name>Ben Hearsum</name><uri>http://www.blogger.com/profile/06089847104161178013</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-765706668069342682.post-5345984948428783313</id><published>2006-10-28T09:21:00.000-04:00</published><updated>2006-10-28T09:39:58.080-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='seneca'/><category scheme='http://www.blogger.com/atom/ns#' term='club moz'/><category scheme='http://www.blogger.com/atom/ns#' term='firefox party'/><category scheme='http://www.blogger.com/atom/ns#' term='mozilla'/><title type='text'>Firefox Party - A Smashing Success</title><content type='html'>As part of &lt;a href="http://zenit.senecac.on.ca/wiki/index.php/Club_Moz"&gt;Club Moz&lt;/a&gt; at Seneca I was involved with running our Firefox 2.0 Launch Party after the &lt;a href="http://fsoss.senecac.on.ca"&gt;FSOSS&lt;/a&gt; last night. After some bribery with stickers and t-shirts (thanks &lt;a href="http://weblogs.mozillazine.org/asa/"&gt;Asa!&lt;/a&gt;) and the promises of pop and chips we managed to drag quite a few people in. There was music, chit-chat, and some pictures taken. &lt;a href="http://www.foobartastic.com/"&gt;El Presidente&lt;/a&gt;, gave a quick speech thanking everyone for showing up. Given the short amount of time we had to plan this event I think it went very well. There's a lot we can do to make the next ones better and I've gotten some ideas from reading other blogs. So, you ain't seen nothing yet!&lt;br /&gt;&lt;br /&gt;So thanks to everyone that helped out: &lt;a href="http://www.foobartastic.com/"&gt;Tom&lt;/a&gt;, Liz, Vanessa, Phil, Moe, Dave, &lt;a href="http://weblogs.mozillazine.org/asa/"&gt;Asa&lt;/a&gt;, Andrei, Seneca Student Federation, and of course John, for giving us the Club Moz idea in the first place.&lt;br /&gt;&lt;br /&gt;Thank you to &lt;a href="http://shaver.off.net/diary/"&gt;Mike Shaver&lt;/a&gt; and &lt;a href="http://vocamus.net/dave/"&gt;David Humphrey&lt;/a&gt; for telling me what a success the party was -- it was good to hear someone else thought so!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/765706668069342682-5345984948428783313?l=bhearsum.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bhearsum.blogspot.com/feeds/5345984948428783313/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=765706668069342682&amp;postID=5345984948428783313' title='36 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/765706668069342682/posts/default/5345984948428783313'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/765706668069342682/posts/default/5345984948428783313'/><link rel='alternate' type='text/html' href='http://bhearsum.blogspot.com/2006/10/firefox-party-smashing-success.html' title='Firefox Party - A Smashing Success'/><author><name>Ben Hearsum</name><uri>http://www.blogger.com/profile/06089847104161178013</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>36</thr:total></entry><entry><id>tag:blogger.com,1999:blog-765706668069342682.post-2243953360676446514</id><published>2006-10-17T15:04:00.000-04:00</published><updated>2006-10-17T15:26:11.328-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dhclient'/><category scheme='http://www.blogger.com/atom/ns#' term='pump'/><category scheme='http://www.blogger.com/atom/ns#' term='wireless'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Update: Wireless Connection</title><content type='html'>So it seems I may have been to hasty in blaming the schols network for my wireless network issues. I started using wireless at home to see if the problem would happen there -- and it did. There's nothing more annoying than watching a movie and all of a sudden having it stop playing. Not being able to slack off at school is one thing, but this is a whole other issue.&lt;br /&gt;&lt;br /&gt;I grep'ed through my logs and found all sorts of this stuff:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;Oct 15 00:00:37 wesley dhclient: DHCPREQUEST on eth1 to 192.168.0.1 port 67&lt;br /&gt;Oct 15 00:00:38 wesley dhclient: DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 11&lt;br /&gt;Oct 15 00:00:38 wesley dhclient: send_packet: Network is down&lt;br /&gt;Oct 15 00:00:49 wesley dhclient: DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 12&lt;br /&gt;Oct 15 00:00:49 wesley dhclient: send_packet: Network is down&lt;br /&gt;Oct 15 00:00:52 wesley dhclient: DHCPREQUEST on eth1 to 192.168.0.1 port 67&lt;br /&gt;Oct 15 00:01:01 wesley dhclient: DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 18&lt;br /&gt;Oct 15 00:01:01 wesley dhclient: send_packet: Network is down&lt;br /&gt;Oct 15 00:01:04 wesley dhclient: DHCPREQUEST on eth1 to 192.168.0.1 port 67&lt;br /&gt;Oct 15 00:01:19 wesley dhclient: DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 11&lt;br /&gt;Oct 15 00:01:19 wesley dhclient: send_packet: Network is down&lt;br /&gt;Oct 15 00:01:22 wesley dhclient: DHCPREQUEST on eth1 to 192.168.0.1 port 67&lt;br /&gt;Oct 15 00:01:30 wesley dhclient: DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 2&lt;br /&gt;Oct 15 00:01:30 wesley dhclient: send_packet: Network is down&lt;br /&gt;Oct 15 00:01:30 wesley dhclient: DHCPREQUEST on eth1 to 192.168.0.1 port 67&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;The times on that correspond *exactly* to when I was booted offline. 'dhclient' is the default dhcp client in Ubuntu Dapper. However I prefer 'pump', it's something I always install after a re-format. It seems that my manually usage of pump doesn't work so well with Ubuntu's automagic dhcp stuff'n'crap. I guess the two daemons fight for who will hold control over the lease -- I'm not sure. In any case, after doing an apt-get remove dhcp3-client the problem was solved! No more wireless issues, yey!&lt;br /&gt;&lt;br /&gt;Now...if I could only get something to automatically login to bluesocket for me I would be even happier&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/765706668069342682-2243953360676446514?l=bhearsum.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bhearsum.blogspot.com/feeds/2243953360676446514/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=765706668069342682&amp;postID=2243953360676446514' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/765706668069342682/posts/default/2243953360676446514'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/765706668069342682/posts/default/2243953360676446514'/><link rel='alternate' type='text/html' href='http://bhearsum.blogspot.com/2006/10/update-wireless-connection.html' title='Update: Wireless Connection'/><author><name>Ben Hearsum</name><uri>http://www.blogger.com/profile/06089847104161178013</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-765706668069342682.post-2462971925485799924</id><published>2006-10-12T12:59:00.000-04:00</published><updated>2006-10-12T13:16:36.949-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='seneca'/><category scheme='http://www.blogger.com/atom/ns#' term='wireless'/><category scheme='http://www.blogger.com/atom/ns#' term='frustration'/><title type='text'>The little connection that couldn't.</title><content type='html'>The wireless internet at &lt;a href="http://www.senecac.on.ca"&gt;my school&lt;/a&gt; sucks. Since the start of the Fall semester is has been barely usable. My connection is dropped every 2 to 10 minutes. I've upgraded the drivers for my wireless card -- didn't help at all. It happens all over the damn school but not *all* the time.&lt;br /&gt;&lt;br /&gt;It's hard to say exactly what it is. Between the summer and fall semesters I upgraded to Ubuntu Dapper, but I don't think that would cause these problems. Especially since I'm running a custom kernel and the latest drivers. &lt;a href="http://www.foobartastic.com"&gt;Tom&lt;/a&gt; has similar issues. I think it's just the access points being overloaded with traffic.&lt;br /&gt;&lt;br /&gt;It's really frustrating though, and defeats the purpose of having wireless access.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/765706668069342682-2462971925485799924?l=bhearsum.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bhearsum.blogspot.com/feeds/2462971925485799924/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=765706668069342682&amp;postID=2462971925485799924' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/765706668069342682/posts/default/2462971925485799924'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/765706668069342682/posts/default/2462971925485799924'/><link rel='alternate' type='text/html' href='http://bhearsum.blogspot.com/2006/10/little-connection-that-couldnt.html' title='The little connection that couldn&apos;t.'/><author><name>Ben Hearsum</name><uri>http://www.blogger.com/profile/06089847104161178013</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-765706668069342682.post-8184540175920268326</id><published>2006-10-12T10:22:00.000-04:00</published><updated>2007-06-22T12:57:59.381-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='seneca'/><category scheme='http://www.blogger.com/atom/ns#' term='c++'/><category scheme='http://www.blogger.com/atom/ns#' term='buildbot'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>New Buildbot Patch</title><content type='html'>I've submitted my latest patch for the &lt;a href="http://buildbot.sf.net"&gt;Buildbot&lt;/a&gt;. This one adds support for per-build comments akin to the &lt;a href="http://tinderbox.mozilla.org"&gt;Tinderbox&lt;/a&gt; feature.&lt;br /&gt;&lt;br /&gt;This patch was a lot tougher than the previous ones. I went through implementation of a couple different ideas before I found a way that worked and wasn't an ugly hack. Right before creating the final diff I ended up not including my "user javascript" support. When I look at the patch now it has absolutely no code from my first attempt in it. I've read that this is often the case but I've never experienced it until now. Working on the Buildbot has really proved to me the need for some design before implementation. During my first two revisions of this patch I *did* do some design but I skimped out after getting the general idea and ended up tossing all of that code out.&lt;br /&gt;&lt;br /&gt;Working with C++ for the past 8 months really turned me off of OOP, or so I thought. Working with the Buildbot has been a good experience for me. It's a mid-sized project, very highly designed, and very well implemented (at least from what I can tell). It has shown me that OOP doesn't have to suck, and that not all OOP languages suck.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/765706668069342682-8184540175920268326?l=bhearsum.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bhearsum.blogspot.com/feeds/8184540175920268326/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=765706668069342682&amp;postID=8184540175920268326' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/765706668069342682/posts/default/8184540175920268326'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/765706668069342682/posts/default/8184540175920268326'/><link rel='alternate' type='text/html' href='http://bhearsum.blogspot.com/2006/10/new-buildbot-patch.html' title='New Buildbot Patch'/><author><name>Ben Hearsum</name><uri>http://www.blogger.com/profile/06089847104161178013</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-765706668069342682.post-8669965479692379086</id><published>2006-10-06T16:48:00.000-04:00</published><updated>2007-06-22T12:58:05.337-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='seneca'/><category scheme='http://www.blogger.com/atom/ns#' term='systems'/><category scheme='http://www.blogger.com/atom/ns#' term='unit testing'/><category scheme='http://www.blogger.com/atom/ns#' term='twisted'/><category scheme='http://www.blogger.com/atom/ns#' term='buildbot'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>On unit testing</title><content type='html'>I've been hacking on the &lt;a href="http://buildbot.sf.net"&gt;Buildbot&lt;/a&gt; for a month or so now. I've released two patches for it, a &lt;a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1552067&amp;group_id=73177&amp;atid=537003"&gt;Bonsai Poller&lt;/a&gt; and a &lt;a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1546659&amp;group_id=73177&amp;atid=537003"&gt;Tinderbox Mail Notifier&lt;/a&gt;. I noticed recently that Buildbot has a lot of test cases in it's tree. I've heard the phrases "unit test" and "test case" before but I didn't know what they were until today. My patches are more or less complete and have been tested but I still think it would be nice to have test cases for them. The buildbot tree will change, bonsai and tinderbox may change, and this &lt;b&gt;should&lt;/b&gt; be a relatively simple way to get me introduced to the concept of unit testing.&lt;br /&gt;&lt;br /&gt;I spent an hour this afternoon reading Buildbot test cases and other unit testing documents. The Buildbot uses Twisted's unit testing framework for it's tests. I found the docs for those &lt;a href="http://twistedmatrix.com/projects/core/documentation/howto/policy/test-standard.html"&gt;here&lt;/a&gt;.  This went into the specifics of writing test cases with Twisted but after reading it I still didn't feel comfortable with the concept. There was a link to &lt;a href="http://diveintopython.org/unit_testing/index.html"&gt;Dive Into Python&lt;/a&gt; on the Twisted page. This is an excellent read for anyone new to unit testing. It goes from no source to test case to working code.&lt;br /&gt;&lt;br /&gt;I've done much of what is involved in making a test case without actually making a test case. One of the key things I like about unit testing is that it defines your API. I was chatting about this in #seneca and shaver said "that also has the nice effect of keeping you honest about what you really _need_". This is a very good thing for someone like me! I went through 3 or 4 revisions of my BonsaiPoller classes before coming to the final version. I don't think this is necessarily a bad thing but I know this happened because I didn't think enough about what it should look like before attempting to implement it. Before writing the final revision I actually wrote a script that defined how I was going to use the class. Looking back on it, that was a rudimentary test case. It wasn't well organized, it wasn't testing small pieces at a time, but from a design standpoint it accomplished the same thing.&lt;br /&gt;&lt;br /&gt;I see lots of similarities to unit testing and things I've encountered in my classes. We often get "test mains" from professors to test our assignments before handing them in. These are often in the form of small tests to every part of our classes. In my systems course we just finished doing Scenarios. To me, a scenario seems like a test case for use case description. There is obvious differences but while a test case tests the validity of code, a scenario tests the validity of a use case description.&lt;br /&gt;&lt;br /&gt;Unit testing is very interesting! I plan to adopt it whenever I can. I expect that I will go from idea to working code quicker if I do it right.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/765706668069342682-8669965479692379086?l=bhearsum.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bhearsum.blogspot.com/feeds/8669965479692379086/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=765706668069342682&amp;postID=8669965479692379086' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/765706668069342682/posts/default/8669965479692379086'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/765706668069342682/posts/default/8669965479692379086'/><link rel='alternate' type='text/html' href='http://bhearsum.blogspot.com/2006/10/on-unit-testing.html' title='On unit testing'/><author><name>Ben Hearsum</name><uri>http://www.blogger.com/profile/06089847104161178013</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-765706668069342682.post-2766863557202056478</id><published>2006-10-05T13:01:00.000-04:00</published><updated>2006-10-05T13:05:01.480-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rdp'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>More fun.</title><content type='html'>I just spent hours and hours trying to figure out why my RDP client couldn't connect to a Windows 2003 server that I setup. It's behind a NAT and port forwarded so maybe that was the problem?&lt;br /&gt;&lt;br /&gt;Nope.&lt;br /&gt;&lt;br /&gt;The encryption level was set too high. When I created the RDP service I must have used the 'FIPS Compliant' encryption level, which isn't supported by my client. Changing it down to "low" fixed it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/765706668069342682-2766863557202056478?l=bhearsum.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bhearsum.blogspot.com/feeds/2766863557202056478/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=765706668069342682&amp;postID=2766863557202056478' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/765706668069342682/posts/default/2766863557202056478'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/765706668069342682/posts/default/2766863557202056478'/><link rel='alternate' type='text/html' href='http://bhearsum.blogspot.com/2006/10/more-fun.html' title='More fun.'/><author><name>Ben Hearsum</name><uri>http://www.blogger.com/profile/06089847104161178013</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-765706668069342682.post-7637147488993147039</id><published>2006-10-04T11:57:00.000-04:00</published><updated>2006-10-04T12:13:01.107-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vmware'/><category scheme='http://www.blogger.com/atom/ns#' term='networking'/><title type='text'>VMware, oh VMware.</title><content type='html'>Due to certain circumstances I've been attempting to forward ports from a NATed machine to a guest VM on that machine. What a hellacious experience.&lt;br /&gt;&lt;br /&gt;The setup is as follows:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;Router    &lt;-&gt;  VM host    &lt;-&gt;   VM guest&lt;br /&gt;142.x.x.x     10.5.1.10       192.168.87.5&lt;br /&gt;             192.168.87.1&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Normally I would use bridged mode with VMware but the DHCP server on our subnet will only hand out one IP per port, as far as I can tell. So NAT it is! This means that the VM guest OS is behind 2 levels of NAT, how ugly.&lt;br /&gt;&lt;br /&gt;The goal here is to give ssh access to the VM guest. The VM host has a few ports forwarded to it, 5900 for example. This is what I'd like to do:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;     Router     &lt;-&gt;    VM host     &lt;-&gt;    VM guest&lt;br /&gt;142.x.x.x:10900  -&gt; 10.5.1.10:5900  -&gt; 192.168.87.5:22&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Very ugly, but that in and of itself should work. Should work, but it didn't. I was at a loss at this point. Luckily, I have a friend who works debugging network issues. We obtained network traces (dumps of all packets going through an interface) from the VM guest and VM host, and took a look at them. The first thing he noticed was a fishy MAC address. I checked the MAC of the VM host's eth0 and vmnet8 AND the MAC of the VM guest's eth0. Neither of them matched.&lt;br /&gt;&lt;br /&gt;We tried again, but this time checked the ARP cache. AHA! There's the mysterious MAC address. It belongs to....192.168.87.2? What the hell is that? The VM host is 192.168.87.1 and the VM guest is 192.168.87.5. It's pingable, so it has to be _somewhere_. My buddy suggested checking the default gateway of the VM guest. Voila! 192.168.87.2.&lt;br /&gt;&lt;br /&gt;The best we can determine VMware has some sort of internal router when using NAT mode. It's definently not accessible or configurable.&lt;br /&gt;&lt;br /&gt;Nonetheless, a workaround was proposed. Simply changing the gateway from 192.168.87.2 (the internal VMware thingy) to 192.168.87.1 (the VM host) will get rid of that weird MAC. I did that.....and I could ssh to the VM guest! Hooray! But....I can't intiate any connections from the guest.&lt;br /&gt;&lt;br /&gt;I originally thought that the NAT was done by the VM host. Now it seems more likely that it is done by the internal, non-configurable VMware NIC. If I actually setup a NAT between 10.5.1.0/24 and 192.168.87.0/24 I *think* it would work...but that's overkill for a temporary solution.&lt;br /&gt;&lt;br /&gt;I decided to switch back to bridged mode and set the VM guest IP statically. This works fine for getting on the network and the Internet. I should be able to get the Powers in Charge to forward ports to them.&lt;br /&gt;&lt;br /&gt;So what did I learn from all of this?&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Network traces are very useful.&lt;/li&gt;&lt;li&gt;VMware NAT mode should only be used as a LAST resort.&lt;/li&gt;&lt;li&gt;Politics suck.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/765706668069342682-7637147488993147039?l=bhearsum.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bhearsum.blogspot.com/feeds/7637147488993147039/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=765706668069342682&amp;postID=7637147488993147039' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/765706668069342682/posts/default/7637147488993147039'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/765706668069342682/posts/default/7637147488993147039'/><link rel='alternate' type='text/html' href='http://bhearsum.blogspot.com/2006/10/vmware-oh-vmware.html' title='VMware, oh VMware.'/><author><name>Ben Hearsum</name><uri>http://www.blogger.com/profile/06089847104161178013</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-765706668069342682.post-6972551373977346105</id><published>2006-10-02T21:15:00.000-04:00</published><updated>2006-10-02T21:22:33.380-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='first post'/><title type='text'>Frist Post!</title><content type='html'>I have a blog now. I may or may not continue to post.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/765706668069342682-6972551373977346105?l=bhearsum.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bhearsum.blogspot.com/feeds/6972551373977346105/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=765706668069342682&amp;postID=6972551373977346105' title='113 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/765706668069342682/posts/default/6972551373977346105'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/765706668069342682/posts/default/6972551373977346105'/><link rel='alternate' type='text/html' href='http://bhearsum.blogspot.com/2006/10/frist-post.html' title='Frist Post!'/><author><name>Ben Hearsum</name><uri>http://www.blogger.com/profile/06089847104161178013</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>113</thr:total></entry></feed>
