<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <link href="http://blog.hamptoncatlin.com/feed/atom.xml" rel="self" type="application/atom+xml"/>
  <link href="http://www.hamptoncatlin.com" rel="alternate" type="text/html"/>
  <updated>2010-11-03 10:13:09 -0700</updated>
  <id>http://www.hamptoncatlin.com/</id>
  <entry xml:base="/">
    <author>
      <name>Hampton Catlin</name>
    </author>
    <title>Macruby and Delegate Interfaces</title>
    <id>http://www.hamptoncatlin.com/posts/macruby-and-delegate-interfaces</id>
    <published>2010-11-03 10:03:00 -0700</published>
    <updated>2010-11-03 10:13:09 -0700</updated>
    <link href="http://www.hamptoncatlin.com/posts/macruby-and-delegate-interfaces" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;No one can stop me from writing so many damn blogposts about macruby. I&amp;#8217;m doing it because no one else out there seems to have any references on these things. So, if these articles have helped you out, just let me know in the comments.&lt;/p&gt;


	&lt;p&gt;In obj-c we define interfaces called &amp;#8220;Delegates&amp;#8221; that receive the actions of some other object. For instance, if you have an NSTableView (or UITableView), you can wire it up to a NSViewController that can optionally say &amp;#8220;Hey, I can be a delegate for a table view&amp;#8221;. It might look like this in obj-c.&lt;/p&gt;


	&lt;pre&gt;&lt;code&gt;@interface SearchViewController : UIViewController &lt;UISearchBarDelegate, UITableViewDelegate, UITableViewDataSource&gt;&lt;/code&gt;&lt;/pre&gt;


	&lt;p&gt;In this obj-c example, we have a class &amp;#8220;SearchViewController&amp;#8221; that extends &amp;#8220;UIViewController&amp;#8221;. Oh, by the way, &amp;#8220;UI&amp;#8221; prefixed things tend to be iOS interfaces and &amp;#8220;NS&amp;#8221; prefix means cocoa (os x). But, they are extremely similar and it doesn&amp;#8217;t change the point here. Within the &amp;#8221;&amp;lt;&amp;#8221; and &amp;#8221;&amp;gt;&amp;#8221; we list the interfaces that we are declaring. Its basically saying &amp;#8220;I&amp;#8217;d be happy to receive actions as these types of delegates.&amp;#8221; Using these delegates means you can pack a lot of interactivity into your application and when we are doing macruby development, we really need to have these guys on our team.&lt;/p&gt;


	&lt;p&gt;So! How do we make this work in macruby? Well, the &lt;strong&gt;weird&lt;/strong&gt; answer (to me at least) is &lt;strong&gt;magically&lt;/strong&gt;. Just define a macruby class!&lt;/p&gt;


	&lt;pre&gt;&lt;code&gt;class SearchViewController &amp;lt; NSViewController
  def tableView(table_view, setObjectValue:value, forTableColumn:column, row:row_index)
    doc = @documents[row_index]
    doc.name = value
  end
end&lt;/code&gt;&lt;/pre&gt;


	&lt;p&gt;And, wire up any delegations you want in the Interface Builder&amp;#8230;. it just works.&lt;/p&gt;


	&lt;p&gt;I&amp;#8217;m not sure what black magic, but to someone with obj-c experience it seems a bit creepy. So, read this blogpost and take heart&amp;#8230; &lt;span class="caps"&gt;JUST WIRE IT UP&lt;/span&gt;.&lt;/p&gt;</content>
  </entry>
  <entry xml:base="/">
    <author>
      <name>Hampton Catlin</name>
    </author>
    <title>Macruby IB Received Actions and IBAction</title>
    <id>http://www.hamptoncatlin.com/posts/macruby-ib-received-actions-and-ibaction</id>
    <published>2010-11-03 09:57:00 -0700</published>
    <updated>2010-11-03 10:02:52 -0700</updated>
    <link href="http://www.hamptoncatlin.com/posts/macruby-ib-received-actions-and-ibaction" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;Here is another bit of undocumented macruby. If you are building a custom object in macruby (either extending objc object or a ruby object) and you want to list &amp;#8220;Receive Action&amp;#8221; in Interface Builder, then there is a little trick to make this happen. First, I had this:&lt;/p&gt;


	&lt;pre&gt;&lt;code&gt;def set_font_size(value)
  # blah
end&lt;/code&gt;&lt;/pre&gt;


	&lt;p&gt;But&amp;#8230; I couldn&amp;#8217;t hook it up in IB! It just wouldn&amp;#8217;t list. This isn&amp;#8217;t at all what I wanted! In obj-c, IB knows that its an action if it is defined like this:&lt;/p&gt;


	&lt;pre&gt;&lt;code&gt;-(IBAction)setFontSize:(int)i;&lt;/code&gt;&lt;/pre&gt;


	&lt;p&gt;IBAction is really an alias of void, but its just a little trick that obj-c uses to figure out that we want to make it publicly available to IB. However, in macruby, we can&amp;#8217;t specify the return type. After reading enough examples, I gave something crazy a try. What if the name of the arg matters?&lt;/p&gt;


	&lt;pre&gt;&lt;code&gt;def set_font_size(sender)
  # blah
end&lt;/code&gt;&lt;/pre&gt;


	&lt;p&gt;And there it appears. Damnit! Always call the arg &amp;#8220;sender&amp;#8221; and you will have your macruby methods show up as actions in interface builder. Macruby is too smart for its own good and the documentation is just&amp;#8230;. lame. We need merbist to finish his book fast!&lt;/p&gt;</content>
  </entry>
  <entry xml:base="/">
    <author>
      <name>Hampton Catlin</name>
    </author>
    <title>Macruby Pointers For NSError</title>
    <id>http://www.hamptoncatlin.com/posts/macruby-pointers-for-nserror</id>
    <published>2010-11-02 18:15:00 -0700</published>
    <updated>2010-11-02 18:16:46 -0700</updated>
    <link href="http://www.hamptoncatlin.com/posts/macruby-pointers-for-nserror" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;I had to take some time today to figure this out, so I thought I&amp;#8217;d share it here. It seems there is 
absolutely no documentation on this issue, so why not fix it myself?&lt;/p&gt;


	&lt;p&gt;All over Cocoa&amp;#8217;s libraries, it uses the Objective-C pattern of passing in a reference to a variable
and having it act as a sort of &amp;#8220;second return variable&amp;#8221;. In Obj-C it looks like this.&lt;/p&gt;


	&lt;pre&gt;&lt;code&gt;NSString *secondaryReturn;
NSObject *primaryReturn = [object methodCall:&amp;#38;secondaryReturn];&lt;/code&gt;&lt;/pre&gt;


	&lt;p&gt;At the end of this, both &amp;#8220;primaryReturn&amp;#8221; and &amp;#8220;secondaryReturn&amp;#8221; might have things stored in them.
We see this pattern used mostly this way.&lt;/p&gt;


	&lt;pre&gt;&lt;code&gt;NSError *error;
NSResult *result = [object riskyMethod:&amp;#38;error]
if(error) {
  NSLog(@"That totally broke!")
}&lt;/code&gt;&lt;/pre&gt;


	&lt;p&gt;So, here&amp;#8230; if the result fails, then error will store an NSError object. We&amp;#8217;d hope that this would work.&lt;/p&gt;


	&lt;pre&gt;&lt;code&gt;result = object.riskyMethod(&amp;#38;error) #=&amp;gt; FAILLLLS&lt;/code&gt;&lt;/pre&gt;


	&lt;p&gt;Nope! But, Macruby has given us an answer. Do this!&lt;/p&gt;


	&lt;pre&gt;&lt;code&gt;error = Pointer.new(:object)
result = object.riskyMethod(error)
if error[0]
  puts "That totally broke!" 
  puts error[0].class #=&amp;gt; NSError
end&lt;/code&gt;&lt;/pre&gt;


	&lt;p&gt;Ok, so first off, we introduce a class that macruby magically gives us. Pointer. When we initialize it, we tell it what kind of pointer it should be. There is a lot of documentation on what you can do with pointers in the specs for Macruby&amp;#8230; but half of it I don&amp;#8217;t understand and, moreover, I don&amp;#8217;t need to. I always make an object pointer&amp;#8230; and so should you! You can use the alternate form: Pointer.new(&amp;#8221;@&amp;#8221;) which is fancy Obj-C talk for an object. That, or we have a nice ruby symbol in the above example.&lt;/p&gt;


	&lt;p&gt;We setup the pointer and then pass it into the method call we are about to do. Once it completes, the way you access whatever is in the pointer is by using [0]. Don&amp;#8217;t ask me why. I guess there are situations where error&lt;sup&gt;&lt;a href="#fn1"&gt;1&lt;/a&gt;&lt;/sup&gt; might point to something (the next thing in memory?) but, I haven&amp;#8217;t hit one yet and its been many years since I was doing C seriously. But, when you call [0], you&amp;#8217;ll get back either nil or an NSError. Viola! Problem solved. Here is a little pattern of how I&amp;#8217;m using this along with an alert box.&lt;/p&gt;


	&lt;pre&gt;&lt;code&gt;def save!
  error = Pointer.new("@")
  was_successful = save(error)
  if !was_successful
    NSAlert.alertWithError(error[0]).runModal
  end
  was_successful
end&lt;/code&gt;&lt;/pre&gt;


	&lt;p&gt;This pops up an error message.&lt;/p&gt;


&lt;div class="thumbnail"&gt;&lt;a href="http://skitch.com/hcatlin/d6c48/dna"&gt;&lt;img src="http://img.skitch.com/20101102-q5uwf6n9ph4b1iwygme3w27wyc.preview.jpg" alt="dna" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family: Lucida Grande, Trebuchet, sans-serif, Helvetica, Arial; font-size: 10px; color: #808080"&gt;Uploaded with &lt;a href="http://skitch.com"&gt;Skitch&lt;/a&gt;!&lt;/span&gt;&lt;/div&gt;
&lt;div style="clear:both"&gt;&lt;/div&gt;

	&lt;p&gt;Its not the sexiest thing in the world, but it sure does make a good start to things. Hope this helps you too!&lt;/p&gt;</content>
  </entry>
  <entry xml:base="/">
    <author>
      <name>Hampton Catlin</name>
    </author>
    <title>Macruby Clipboard / Pasteboard</title>
    <id>http://www.hamptoncatlin.com/posts/macruby-clipboard</id>
    <published>2010-11-02 12:31:00 -0700</published>
    <updated>2010-11-02 12:32:06 -0700</updated>
    <link href="http://www.hamptoncatlin.com/posts/macruby-clipboard" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;I am currently working on a macruby app for &lt;span class="caps"&gt;OS X&lt;/span&gt; and I needed to read off the Clipboard (aka &amp;#8220;Pasteboard&amp;#8221; in &lt;span class="caps"&gt;OS X&lt;/span&gt; parlance). At first, I started reading the nutty Cocoa native implementation&amp;#8230; but it did way more than I needed and was far more complex than I wanted. I found this little gem though and thought I&amp;#8217;d share it with you. We can do it easily in the Ruby half of macruby!&lt;/p&gt;


	&lt;pre&gt;&lt;code&gt;IO.popen('pbpaste') do |clipboard|
  puts clipboard.read
end&lt;/code&gt;&lt;/pre&gt;


	&lt;p&gt;If you want to write:&lt;/p&gt;


	&lt;pre&gt;&lt;code&gt;IO.popen('pbcopy', 'w').print "Text to go on clipboard"&lt;/code&gt;&lt;/pre&gt;


	&lt;p&gt;Simplez!&lt;/p&gt;</content>
  </entry>
  <entry xml:base="/">
    <author>
      <name>Hampton Catlin</name>
    </author>
    <title>Credit Card Security Through Insanity</title>
    <id>http://www.hamptoncatlin.com/posts/credit-card-security-through-insanity</id>
    <published>2010-02-22 13:22:00 -0800</published>
    <updated>2010-02-22 13:54:00 -0800</updated>
    <link href="http://www.hamptoncatlin.com/posts/credit-card-security-through-insanity" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;How do we make credit card purchases secure? That is a question we have been asking ourselves since the instrument was first created. Traditionally, its been a signature panel on the back, plus a clerk maybe asking for photo identification if the purchase is large enough. Recently, things have gotten more advanced in most countries. In the UK in particular, they have gone all out with the &amp;#8220;Chip and Pin&amp;#8221; system. 
&lt;br/&gt;
&lt;br/&gt;
&lt;img src="http://www.chipandpin.co.uk/img/nobrand.jpg" style="float:none" /&gt;
&lt;br/&gt;
&lt;img src="http://boakes.org/pics/2005/chipandpin/chipandpin.png" style="float: right"/&gt;Basically its a chip on your card that contains an encrypted version of your pin number&amp;#8230; and you slot the card into the reader device and enter your pin. Some magical encryption things happen and &lt;span class="caps"&gt;BAM&lt;/span&gt;! Your purchase is done. 100% fool proof!&lt;/p&gt;


	&lt;p&gt;Anyone who knows anything about security knows that that isn&amp;#8217;t true. Anytime you believe a system to be completely safe, it instantly makes it vulnerable. Any thinking person knows that actually comparing signatures is the dumbest thing in the world. My signature barely ever looks the same and with a little practice, someone could ape it pretty well. However, the clerks are responsible for figuring out if its your card. Things like looking at the name and comparing it to the person (male/female, etc), reading body language, seeing their demeanor, and of course&amp;#8230; asking for ID if anything seems strange.&lt;/p&gt;


	&lt;p&gt;However, with chip and pin, the clerks aren&amp;#8217;t responsible anymore. If you know the pin, then you aren&amp;#8217;t questioned no matter how large the purchase! And get this&amp;#8230; there are &lt;strong&gt;multiple&lt;/strong&gt; ways to break into the chip and pin system. Just recently someone completely broke the system. That is, there is no security in chip and pin anymore which makes the following story even odder.&lt;/p&gt;


	&lt;p&gt;Today I had a singularly frustrating experience at the Game store (yes, that&amp;#8217;s its name) in Cambridge&amp;#8217;s Grand Arcade mall. Being an American, I don&amp;#8217;t have a UK bank account yet. My business is run in the US and my income is in the US. So, I just stick with my US cards. My US cards are not &amp;#8220;chip and pin&amp;#8221;... and I feel pretty damn good about it (seeing as its completely insecure anyway). So, I go up to the counter to checkout and bring out my Amex. Here is the transcript:&lt;/p&gt;


&lt;blockquote&gt;
Clerk: &amp;#8220;Oh, sorry, we don&amp;#8217;t take American Express&amp;#8221; 

	&lt;p&gt;Me: &amp;#8220;No problem! I have a visa card too&amp;#8221; [Hand him my US visa card]&lt;/p&gt;


	&lt;p&gt;Clerk: &amp;#8220;This card isn&amp;#8217;t signed&amp;#8221;&lt;/p&gt;


	&lt;p&gt;Me: &amp;#8220;Yeah, I know. Signing is such a bad way to do it, so I just always show ID. Here!&amp;#8221;&lt;/p&gt;


	&lt;p&gt;[I hand him a top-security level EU identification card]&lt;/p&gt;


	&lt;p&gt;Clerk: &amp;#8220;Doesn&amp;#8217;t matter. If its not signed, then I can&amp;#8217;t take it&amp;#8221;&lt;/p&gt;


	&lt;p&gt;Me: &amp;#8220;Ok, well then, I&amp;#8217;ll sign it!&amp;#8221;&lt;/p&gt;


	&lt;p&gt;Clerk: &amp;#8220;You can&amp;#8217;t do that&amp;#8221;&lt;/p&gt;


	&lt;p&gt;Me: &amp;#8220;Why not?&amp;#8221;&lt;/p&gt;


	&lt;p&gt;Clerk: &amp;#8220;You just can&amp;#8217;t.&amp;#8221;&lt;/p&gt;


	&lt;p&gt;Me: &amp;#8220;Ok, well I have this EU id&amp;#8230; and I have a US drivers license&amp;#8230; so, you know&amp;#8230; that has to be me!&amp;#8221;&lt;/p&gt;


	&lt;p&gt;Clerk: &amp;#8220;You could have stolen the card though&amp;#8221;&lt;/p&gt;


	&lt;p&gt;Me: &amp;#8220;Uhhh&amp;#8230; right, but I have two forms of photo ID that match the card name. Are you saying I stole the card from someone with the exact same name?&amp;#8221;&lt;/p&gt;


	&lt;p&gt;Clerk: &amp;#8220;Yeah, but its not signed&amp;#8221;&lt;/p&gt;


	&lt;p&gt;Me: &amp;#8220;Right, but what does signing prove?&amp;#8221;&lt;/p&gt;


	&lt;p&gt;Clerk: &amp;#8220;It proves its your card&amp;#8221;&lt;/p&gt;


	&lt;p&gt;Me: &amp;#8220;No, the ID does that&amp;#8221;&lt;/p&gt;


	&lt;p&gt;Clerk: &amp;#8220;No, I need it to be signed. That&amp;#8217;s our policy.&amp;#8221;&lt;/p&gt;


	&lt;p&gt;Me: &amp;#8220;Like I said, I&amp;#8217;ll sign it&amp;#8221;&lt;/p&gt;


	&lt;p&gt;Clerk: &amp;#8220;No&amp;#8221;&lt;/p&gt;


	&lt;p&gt;Me: &amp;#8220;What if I sign it tonight and come back tomorrow?&amp;#8221;&lt;/p&gt;


	&lt;p&gt;Clerk: &amp;#8220;If you sign it and come back in 2 weeks, then you can use it&amp;#8221;&lt;/p&gt;


	&lt;p&gt;Me: &amp;#8220;Huh? So, I can steal a card, but if I&amp;#8217;m just patient then I can use a stolen card&amp;#8221;&lt;/p&gt;


	&lt;p&gt;Clerk: &amp;#8220;That&amp;#8217;s the policy. You are supposed to use Chip and Pin&amp;#8221;&lt;/p&gt;


	&lt;p&gt;Me: &amp;#8220;I&amp;#8217;m a recent immigrant (obvious from my accent), and chip and pin is compromised. Its no longer secure at all, so I&amp;#8217;m trying to give you my ID which is the best proof you could possibly have that its me.&amp;#8221;&lt;/p&gt;


	&lt;p&gt;Clerk: &amp;#8220;That doesn&amp;#8217;t matter&amp;#8221;&lt;/p&gt;


	&lt;p&gt;Me: &amp;#8220;You know you can easily fake signatures, but not this shiny, new, official &lt;span class="caps"&gt;EU ID&lt;/span&gt;, right?&amp;#8221;&lt;/p&gt;


Clerk: &amp;#8220;But the card has to be signed&amp;#8221; 
&lt;/blockquote&gt;

	&lt;p&gt;He was polite, but it was like talking to an insane person.&lt;/p&gt;


	&lt;p&gt;The only system that works well is asking for ID and making sure that its good ID. That system &lt;strong&gt;works&lt;/strong&gt;. Why are we trying to make machines do a job that humans are better at?&lt;/p&gt;</content>
  </entry>
  <entry xml:base="/">
    <author>
      <name>Hampton Catlin</name>
    </author>
    <title>PleaseRobMe.com</title>
    <id>http://www.hamptoncatlin.com/posts/pleaserobme-com</id>
    <published>2010-02-18 14:21:00 -0800</published>
    <updated>2010-02-18 14:51:43 -0800</updated>
    <link href="http://www.hamptoncatlin.com/posts/pleaserobme-com" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;Something that&amp;#8217;s been making the rounds today on the internet is &lt;a href="http://pleaserobme.com"&gt;PleaseRobMe.com&lt;/a&gt;. The basic gist is that when you tweet/foursquare/whatever your current location to the internet, you are putting yourself and your property at risk. Its an attempt to get people to remember that they are giving up a bit of privacy whenever they say where they are. And, they take it even further to say that location data says you aren&amp;#8217;t at home and that someone could therefore know to rob you.&lt;/p&gt;


	&lt;p&gt;I see lots of people following this party line like sheep.&lt;/p&gt;


	&lt;p&gt;Stop and think about it. First lets get rid of the idea of robbing. Obviously criminals already know that people go to work during the day&amp;#8230; so why not rob then? Also, it doesn&amp;#8217;t mean you don&amp;#8217;t have roommates, children, spouses, babysitters, etc. If someone actually attempted to rob someone based off the information simply that they weren&amp;#8217;t home when they checked in last, I believe they would make a poor criminal.&lt;/p&gt;


	&lt;p&gt;Secondly, I hear this kind of paranoia all the time. This is a gem of a quote from their mission statement: &amp;#8220;It gets even worse if you have &amp;#8220;friends&amp;#8221; who want to colonize your house. That means they have to enter your address, to tell everyone where they are. Your address.. on the internet.. Now you know what to do when people reach for their phone as soon as they enter your home. That&amp;#8217;s right, slap them across the face.&amp;#8221;&lt;/p&gt;


	&lt;p&gt;Uhhh&amp;#8230; &amp;#8220;Your address&amp;#8230; on the internet&amp;#8221; Have these freaks never heard of a phone book? Here is a &lt;a href="http://www.whitepages.com/search/FindPerson?firstname_begins_with=1&amp;#38;firstname=&amp;#38;name=Catlin&amp;#38;where=New+York,+NY"&gt;list&lt;/a&gt; of the addresses of everyone with the last name Catlin in &lt;span class="caps"&gt;NYC&lt;/span&gt;. Its on the Internet already you damn fools!&lt;/p&gt;


	&lt;p&gt;And who cares anyway? Sure if you are a security guard at a museum, then broadcasting your position every second might be bad. But this is just pure bullshit.&lt;/p&gt;


	&lt;p&gt;Bullshit. That&amp;#8217;s what I said. Its all stupid people who don&amp;#8217;t think about a problem enough to realize that there really isn&amp;#8217;t a problem there at all.&lt;/p&gt;


	&lt;p&gt;Finally, if that site is a joke. Then why do all the &lt;a href="http://techcrunch.com/2010/02/17/please-rob-me-makes-foursquare-super-useful-for-burglars/#comments"&gt;comments on Techcrunch&lt;/a&gt; agree with the site&amp;#8217;s manifesto?&lt;/p&gt;


	&lt;p&gt;Get over it people.&lt;/p&gt;


	&lt;p&gt;I live at 150 Hills Road, Cambridge, UK. &lt;span class="caps"&gt;CB2 8PB&lt;/span&gt;. And here is a picture of my flat.&lt;/p&gt;


&lt;iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.com/maps?f=q&amp;amp;source=embed&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=Cb2+8pb&amp;amp;sll=52.188879,0.135862&amp;amp;sspn=0.008695,0.017703&amp;amp;g=Cb28pb&amp;amp;ie=UTF8&amp;amp;hq=&amp;amp;hnear=Cambridge+CB2+8PB,+United+Kingdom&amp;amp;ll=52.188879,0.135862&amp;amp;spn=0.000263,0.000553&amp;amp;t=h&amp;amp;z=21&amp;amp;layer=c&amp;amp;cbll=52.18934,0.135901&amp;amp;panoid=biHkq4Cm3LxIk4t1XF0dHg&amp;amp;cbp=12,208.2,,1,-20.58&amp;amp;output=svembed"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;small&gt;&lt;a href="http://maps.google.com/maps?f=q&amp;amp;source=embed&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=Cb2+8pb&amp;amp;sll=52.188879,0.135862&amp;amp;sspn=0.008695,0.017703&amp;amp;g=Cb28pb&amp;amp;ie=UTF8&amp;amp;hq=&amp;amp;hnear=Cambridge+CB2+8PB,+United+Kingdom&amp;amp;ll=52.188879,0.135862&amp;amp;spn=0.000263,0.000553&amp;amp;t=h&amp;amp;z=21&amp;amp;layer=c&amp;amp;cbll=52.18934,0.135901&amp;amp;panoid=biHkq4Cm3LxIk4t1XF0dHg&amp;amp;cbp=12,208.2,,1,-20.58" style="color:#0000FF;text-align:left"&gt;View Larger Map&lt;/a&gt;&lt;/small&gt;

	&lt;p&gt;Life filled with possible threats. Someone could stalk me. But all I did here is make it slightly easier for them. Now they don&amp;#8217;t have to look it up in the phone book. If someone is going to harass you, they are going to do it anyway. If someone robs me or makes a threat, its still the same thing (I call the cops).&lt;/p&gt;


	&lt;p&gt;I&amp;#8217;m not afraid of you knowing where I am. I&amp;#8217;m not willing to live my life in fear that someone can go psycho. Sure, they might. But I&amp;#8217;m not going to cower because of it. This is my home and now you know where it is.&lt;/p&gt;


	&lt;p&gt;Our information is already out there. Its been out there since at least the 1920&amp;#8217;s in one way or another. And its really not that valuable.&lt;/p&gt;


	&lt;p&gt;Driving down a street and looking at homes is a much, much better way to rob someone.&lt;/p&gt;</content>
  </entry>
  <entry xml:base="/">
    <author>
      <name>Hampton Catlin</name>
    </author>
    <title>A Letter to Apple</title>
    <id>http://www.hamptoncatlin.com/posts/a-letter-to-apple</id>
    <published>2010-01-29 13:54:00 -0800</published>
    <updated>2010-01-29 14:02:53 -0800</updated>
    <link href="http://www.hamptoncatlin.com/posts/a-letter-to-apple" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;Dear Apple,&lt;/p&gt;


	&lt;p&gt;First of all, sorry for all the angry people out there. I don&amp;#8217;t know what&amp;#8217;s up with them. I think the iPad is pretty cool and it simplifies the computing experience for those who find traditional computers a bit too complex. I know you can&amp;#8217;t say it, but this thing rocks for the PC user parents of the world.&lt;/p&gt;


	&lt;p&gt;Anyhow, that&amp;#8217;s not what this letter is about. Its about the developer stuff. I mean, first off, kudos on putting out the &lt;span class="caps"&gt;SDK&lt;/span&gt;. The masses can now start working on projects and that&amp;#8217;s great. You did a really good job getting that out and mentioning us in you keynote.&lt;/p&gt;


	&lt;p&gt;However, you haven&amp;#8217;t succeeded at everything. I have sold about 3 million copies of my various iPhone software. I am not selling as much as EA, but I am definitely one of the top selling app developers out there. Easily in the top 1,000 or so. Everyone in my camp has successful iPhone apps that are live on the iPhone and we are excited to follow you guys into the new device. However, we end up getting screwed on launch day. We have the &lt;span class="caps"&gt;SDK&lt;/span&gt;, but we can&amp;#8217;t test our apps on a real device (multitouch, etc) with real speeds and real user experience work.&lt;/p&gt;


	&lt;p&gt;So, why not allow your top, most loyal developers the ability to buy one a bit early. We&amp;#8217;ll even sign another &lt;span class="caps"&gt;NDA&lt;/span&gt; until the official launch. Me and my guys will work our butts off to get something awesome in the store for iPad launch day.&lt;/p&gt;


	&lt;p&gt;Our development efforts are what have made the iPhone awesome. You built the toy chest and we built the toys.&lt;/p&gt;


	&lt;p&gt;Don&amp;#8217;t just help out EA&amp;#8230; look to the medium sized developers too.&lt;/p&gt;


	&lt;p&gt;-Hampton Catlin.&lt;/p&gt;</content>
  </entry>
  <entry xml:base="/">
    <author>
      <name>Hampton Catlin</name>
    </author>
    <title>H8ter</title>
    <id>http://www.hamptoncatlin.com/posts/h8ter</id>
    <published>2010-01-08 18:51:00 -0800</published>
    <updated>2010-01-08 19:00:58 -0800</updated>
    <link href="http://www.hamptoncatlin.com/posts/h8ter" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;Wow, so apparently I (drunkenly) posted this to Ruby Inside as a comment:&lt;/p&gt;


&lt;blockquote&gt;Bulllllllllllllllshit.
The best developers don&amp;#8217;t need to test.
You test when you hire B level drone-workers under you.
&lt;span class="caps"&gt;KNOW THE SOFTWARE&lt;/span&gt;. KNOW &lt;span class="caps"&gt;WHAT YOU ARE DOING&lt;/span&gt;!
Testing is not an excuse for under-paid, under-trained workers.&lt;/blockquote&gt;

	&lt;p&gt;Yish. I think I had just exploded from &lt;span class="caps"&gt;YAPATS&lt;/span&gt; (yet another post about testing software). Like, I see more software written for writing software, than I see other open source libraries that are tested. It seems libraries that &lt;strong&gt;do&lt;/strong&gt; things are out of fashion, but ones that test that things do things are in.&lt;/p&gt;


	&lt;p&gt;Anyhow, that was obviously a stupid comment on my part. Sorry Peter Cooper! I still love you!&lt;/p&gt;


	&lt;p&gt;But, yowza! I love the feedback I got from this. Hopefully some of you will enjoy this.&lt;/p&gt;


&lt;blockquote&gt;@Hampton:You are bullshit.

	&lt;p&gt;Do you ever work for a customer? I doubt that.
Can you imagine that requesites change while development? If that happens you can not simply change or add a feature without automated tests..sure if you&amp;#8217;re doing simple apps for you family and friends to show how smart you are then you don&amp;#8217;t need any technics to avoid mistakes.&lt;/p&gt;


	&lt;p&gt;But if you have a business then it&amp;#8217;s interesting how you can handle systems with uncountable &lt;span class="caps"&gt;LOC&lt;/span&gt; without changing behaviour at the other end.
But forgive me &lt;em&gt;I&lt;/em&gt; forgot that you know your software..right. You are the only one who will ever read your code..sure.
It&amp;#8217;s written in stone,that have to be the ultimate truth and will never ever change..sure,sure.&lt;/p&gt;


	&lt;p&gt;You are that bitch who&amp;#8217;s putting the shit together and I&amp;#8217;am that guy who have to fix it because it never runs like it should.
You use global flags and call it a switch-framework. You are the bitch who I have to convience to use classes,use attributes and not create temporary variables,or to use inheritance to avoid unnecassary control structures.&lt;/p&gt;


	&lt;p&gt;Sit down and study your odds instead of generalizing everything what you don&amp;#8217;t understand, kido !&lt;/blockquote&gt;&lt;/p&gt;


	&lt;p&gt;So, first of all. Obviously a dickish comment is going to get dickish comments back. But, I use my full name in comments for a reason. You could Google me for a half second and find out that I co-ran a development shop with 12 people for 3 years. It was (and is still) highly profitable and while I was there we never employed a sales person or got a gig because we did Ruby. I&amp;#8217;ll just repeat those two. We never did sales and we never got a gig because of Ruby. How did we get jobs? Recommendations from past clients to other business people.&lt;/p&gt;


	&lt;p&gt;I think some of my hate of testing comes from what you can gleam from the bulk of this comment. He details many, many terrible coding practices. These have nothing to do with testing! You can test bad software all you want. The two are unrelated. &lt;strong&gt;Testing help you write good software, but it can also help you write bad software.&lt;/strong&gt; I have definitely seen lots of bad software that was well tested&amp;#8230; bad paradigms, bad naming, horrible architecture, everything.&lt;/p&gt;


	&lt;p&gt;And here comes the best comment I have gotten so far!&lt;/p&gt;


&lt;blockquote&gt;&amp;#8220;You are just such an arrogant son of a bitch. Also, looking at your picture just fills me with a need to smash your face. You certainly have one of those faces&amp;#8212;and your emo mohawk and hipster glasses certainly don&amp;#8217;t help matters (oh, but they make you so unique! You and the hundred million other teenagers that lay around masturbating at night while listening to Dashboard Confessional.) Anyhow, enough of the rage fest. Just stumbled upon your comment at http://www.rubyinside.com/turbocharge-your-ruby-testing-with-parallel-specs-2121.html and immediately felt a need to beat your face. Evidently, you&amp;#8217;ve never worked in any sort of production coding environment having more than a few developers working on a given project. No. You were too busy masturbating to Chris Carrabba&amp;#8217;s lovely voice.&amp;#8221;&lt;/blockquote&gt;

	&lt;p&gt;Oh man. Such great flame-attempt! And once again, he came to my site but apparently didn&amp;#8217;t even read the sidebar. &amp;#8220;Evidently, you&amp;#8217;ve never worked in any sort of production coding environment having more than a few developers working on a given project&amp;#8221; Yeah. Uh huh. Wikipedia. Uh huh. Right. Yeah. Ok. You win. 3 billion pages served by my app. Yeah. So right. 20 contributors. Yup. No. I have no idea. You win. I give up.&lt;/p&gt;


	&lt;p&gt;Anyhow, I know my initial comment was dickish. I don&amp;#8217;t even remember writing it. I guess I should stay off blogs when I am drinking. So, apologies for that comment. But, I think these other ones take the cake and I thought you might enjoy them!&lt;/p&gt;</content>
  </entry>
  <entry xml:base="/">
    <author>
      <name>Hampton Catlin</name>
    </author>
    <title>City Bus Simulator 2010</title>
    <id>http://www.hamptoncatlin.com/posts/city-bus-simulator-2010</id>
    <published>2009-12-09 13:51:00 -0800</published>
    <updated>2009-12-09 13:51:15 -0800</updated>
    <link href="http://www.hamptoncatlin.com/posts/city-bus-simulator-2010" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;&lt;img src="http://www.aerosoft.com/shop-re/bilder/packshots/simulatoren/bussim2010_200.jpg" style="float: right"/&gt;When everyone was a kid, we all had dreams. Some of us wanted to be firemen, some of us wanted to be princesses, some of us wanted to be pilots. Personally, I&amp;#8217;ve kept the pilot dream alive and have owned myriad different airplane simulation games. You know, being thousands of feet up, going at hundreds of miles an hour&amp;#8230; at least I can see something interesting about it.&lt;/p&gt;


	&lt;p&gt;However, apparently some other people have different dreams. Dreams of one day becoming a bus driver. Hence, we have &amp;#8220;&lt;a href="http://www.citybussimulator.com"&gt;City Bus Simulator 2010.&lt;/a&gt;&amp;#8221; I believe the developers of this originally wanted to be bus drivers, but couldn&amp;#8217;t cut it. Therefore, they ended up in game development and yet continued on with their dream to become &lt;strong&gt;real life bus drivers&lt;/strong&gt;.&lt;/p&gt;


	&lt;p&gt;Don&amp;#8217;t get me wrong, being a bus driver is a fine job. It pays ok and it keeps our transport system running. So, good work on that. But, chances are most bus drivers aren&amp;#8217;t intensely passionate about their job. I doubt they go home and talk about it for hours on end about their love of different bus routes. Well, maybe the good stories are of the type that any public-facing job would have (aka, crazy people). But, the job itself is pretty&amp;#8230; well boring. You drive in a circle. You process tickets. You go home.&lt;/p&gt;


	&lt;p&gt;Let me quote to you some of the exciting bits of information on the site&lt;/p&gt;


&lt;blockquote&gt;
The working day of a bus driver can be very entertaining and full of variety. This is where we have set the main focus.

	&lt;p&gt;A lively realization of the normal workday full of curious events. And you are in the middle of all this!&lt;/p&gt;


	&lt;p&gt;With our very first release from the &amp;#8220;City Bus Simulator&amp;#8221; series we will offer something &lt;span class="caps"&gt;COMPLETELY&lt;/span&gt; new for this genre.&lt;/p&gt;


	&lt;p&gt;May we introduce:&lt;/p&gt;


&#8222;Carlos&#8220;. A new member of the bus driver team, who just can&#180;t wait to begin his service for the New York Bus Company. You will control your character &#8222;Carlos&#8220; via keyboard and mouse. Ego or Third Person view can be selected. &#8222;Carlos&#8220; is animated and comes with speech.
&lt;/blockquote&gt;

	&lt;p&gt;I can be Carlos! He is soooooo excited to be a bus driver!&lt;/p&gt;


	&lt;p&gt;Now, lets look at the feature list!&lt;/p&gt;


	&lt;ol&gt;
	&lt;li&gt;The 3d cockpit is being simulated realistically with all controls and rotatable view&lt;/li&gt;
		&lt;li&gt;Animated wipers&lt;/li&gt;
		&lt;li&gt;Animated wheelchair lift&lt;/li&gt;
		&lt;li&gt;Kneeling&lt;/li&gt;
		&lt;li&gt;Lights switchable in complete interior&lt;/li&gt;
		&lt;li&gt;The player slips into the role of &#8222;Carlos&#8220;, bus driver in Manhattan&lt;/li&gt;
		&lt;li&gt;Character is animated and controllable using keyboard and mouse.&lt;/li&gt;
		&lt;li&gt;Ego- or 3rd person view can be selected; voice output with subtitles (can be switched on/off)&lt;/li&gt;
		&lt;li&gt;We have the typical Nova &lt;span class="caps"&gt;RTS&lt;/span&gt; Bus in operation as well as a drivable service vehicle.&lt;/li&gt;
	&lt;/ol&gt;


	&lt;p&gt;Ohhhhh!!! Animated wheelchair lifts get me soooooo pumped! I hope it has sound effects for that.&lt;/p&gt;


	&lt;p&gt;Now, on to the real winner here. Here is an amazing video of what playing the game is like:&lt;/p&gt;


&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/-F-Tr-egcsI&amp;#38;color1=0xb1b1b1&amp;#38;color2=0xcfcfcf&amp;#38;hl=de_DE&amp;#38;feature=player_embedded&amp;#38;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/-F-Tr-egcsI&amp;#38;color1=0xb1b1b1&amp;#38;color2=0xcfcfcf&amp;#38;hl=de_DE&amp;#38;feature=player_embedded&amp;#38;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;

	&lt;p&gt;&lt;span class="caps"&gt;RUN&lt;/span&gt;! BUY IT! &lt;span class="caps"&gt;NOW&lt;/span&gt;!&lt;/p&gt;</content>
  </entry>
  <entry xml:base="/">
    <author>
      <name>Hampton Catlin</name>
    </author>
    <title>ginstall with gems</title>
    <id>http://www.hamptoncatlin.com/posts/ginstall-with-gems</id>
    <published>2009-12-02 17:05:00 -0800</published>
    <updated>2009-12-02 17:06:51 -0800</updated>
    <link href="http://www.hamptoncatlin.com/posts/ginstall-with-gems" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;So, I don&amp;#8217;t know what changed. Apparently some ruby gems have a fancy new way of building themselves and it gives this lovely complaint on Snow Leopard:&lt;/p&gt;


&lt;pre&gt;make install
/opt/local/bin/ginstall -c -m 0755 nokogiri.bundle /usr/local/lib/ruby/gems/1.8/gems/nokogiri-1.4.0/lib/nokogiri
make: /opt/local/bin/ginstall: No such file or directory
make: *** [/usr/local/lib/ruby/gems/1.8/gems/nokogiri-1.4.0/lib/nokogiri/nokogiri.bundle] Error 1&lt;/pre&gt;

	&lt;p&gt;Oh man.&lt;/p&gt;


	&lt;p&gt;&lt;span class="caps"&gt;BUT&lt;/span&gt;, I &lt;span class="caps"&gt;FIGURED IT OUT&lt;/span&gt;. So, after a crap load of Googling&amp;#8230; ginstall is the same thing as install. Thusly this should solve your problem.&lt;/p&gt;


&lt;pre&gt;sudo ln -s /usr/bin/install /opt/local/bin/ginstall&lt;/pre&gt;

	&lt;p&gt;Enjoy!&lt;/p&gt;</content>
  </entry>
  <entry xml:base="/">
    <author>
      <name>Hampton Catlin</name>
    </author>
    <title>"Sorry, no drinks allowed!"</title>
    <id>http://www.hamptoncatlin.com/posts/sorry-no-drinks-allowed</id>
    <published>2009-11-24 05:55:00 -0800</published>
    <updated>2009-11-24 13:47:39 -0800</updated>
    <link href="http://www.hamptoncatlin.com/posts/sorry-no-drinks-allowed" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;I&amp;#8217;m sure you&amp;#8217;ve heard this before. Its a chilly day out, you just got yourself a hot latte and you are about to go into a store and do some shopping. A burly security guard comes up to you and says, &amp;#8220;Sorry, no drinks allowed. You&amp;#8217;ll have to keep that outside.&amp;#8221; You look around in abject horror. Is there a trash can nearby? Can I set it on a table? Do I want to sacrifice this drink? Am I in trouble? Are people looking at me? My response has usually been to walk out the moment I realize that I am there to determine if I&amp;#8217;d like to voluntarily give them money.&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://blog.hamptoncatlin.com/assets/2009/11/24/clement.jpg" style="float: left"&gt;This just happened to me today at a store that just opened next to where I work called &lt;a href="http://www.clementjoscelyne.co.uk/"&gt;Clement Joscelyne.&lt;/a&gt; It is a furniture store and me and my husband were on the hunt for some high-end furniture. That is to say, we were their best customers at that moment; people with money to spend. I was a heat seeking missile of &amp;#8220;I need a coffee table.&amp;#8221;&lt;/p&gt;


	&lt;p&gt;However, I was turned back at the door by the burly security guard you can see in the picture above. I was a customer ready to spend and I&amp;#8217;m basically kicked out by a security guard. Of course, he didn&amp;#8217;t think of it as kicking me out, but no alternatives were given. If there isn&amp;#8217;t a table to put drinks on, then you are effectively kicked out. Its embarrassing, weird, humiliating, and stressful. And, Clement Joscelyne made sure that those feelings were my first impression of their brand and store. When I think of their store, I think of humiliation and rejection.&lt;/p&gt;


	&lt;p&gt;A good retail (and consumer) experience is one of acceptance and improvement. &amp;#8220;You can be like us.&amp;#8221; Think of your favourite store. How does it make you feel to buy something there? Do you feel like you are joining a club? Do you feel like you&amp;#8217;re improving yourself? Do you feel welcome and happy? Of course you do! That&amp;#8217;s the whole point of modern retailing. Its no longer about snobby eliteness, its about being welcoming and cool. Starbucks and Apple are the kings of this kind of brand experience. There is a secret language at Starbucks that you have to use and the staff help you speak it. Its like a fun, warm, upper-end club to be part of. The message is: &amp;#8220;Don&amp;#8217;t worry. Give us your money and you can be cool too!&amp;#8221;&lt;/p&gt;


	&lt;p&gt;The Apple Store, Hugo Boss, Bose, Harrods, Bloomingdales, and many more have never bothered me about having a drink. But, Clement Joscelyne totally alienated me. When I&amp;#8217;m going to spend my pound, I&amp;#8217;m going to go someplace that makes me feel cool instead of feeling like they consider me an untrustworthy child.&lt;/p&gt;


	&lt;p&gt;If they are so alienating, why do these policies exist? Its a simple fear of monetary loss from people who spill drinks on items and then don&amp;#8217;t pay for them.&lt;/p&gt;


	&lt;p&gt;Let&amp;#8217;s do some theoretical math for fun. I&amp;#8217;d say that in an up market area, only 20% of people who did damage to an article would not be willing to pay to replace it. And, lets say that 1% of the time, someone spills their drink. And after that, I&amp;#8217;d say its only 30% of those cases where it actually hits something that stains/damages. So, we&amp;#8217;ve calculated for every customer that comes in with a drink, there is a 0.06% chance that they&amp;#8217;ll cost the company any money.&lt;/p&gt;


	&lt;p&gt;If the % of customers who purchase an item isn&amp;#8217;t higher than that, then you have a problem drinks or no drinks. How many items would the (assuming 15 drinks a day) 5,400 people you have bought? How many items get spilled on in a year? I assume only a couple.&lt;/p&gt;


	&lt;p&gt;Plus, its not just the 15 a day. There are indirect effects from those 15. A bad brand impression spreads much faster than a positive one.&lt;/p&gt;


	&lt;p&gt;I am very certain that Clement Joscelyne had a rash of spills in their flagship store that caused them to institute the policy. However, my arguement is that they are doing wayyyy more damage to the brand than those damaged items could have cost. You can&amp;#8217;t treat customers like children and you can&amp;#8217;t have their first impression of your store being such a strongly negative feeling. They lost my sale and have made an unhappy customer.&lt;/p&gt;


	&lt;p&gt;Let&amp;#8217;s hope Clement Joscelyne changes their policy or at least provides a table for drinks. Or they very well may end up yet-another-closed-furniture-chain.&lt;/p&gt;</content>
  </entry>
  <entry xml:base="/">
    <author>
      <name>Hampton Catlin</name>
    </author>
    <title>Culture Shock or: How I Stopped Worrying and Enjoyed the Culturgeddon</title>
    <id>http://www.hamptoncatlin.com/posts/culture-shock-or-how-i-stopped-worrying-and-enjoyed-the-culturgeddon</id>
    <published>2009-10-21 09:59:00 -0700</published>
    <updated>2009-10-21 10:59:15 -0700</updated>
    <link href="http://www.hamptoncatlin.com/posts/culture-shock-or-how-i-stopped-worrying-and-enjoyed-the-culturgeddon" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;(Note, everytime in this post I say America I mean Canamerica)&lt;/p&gt;


	&lt;p&gt;Ah, beautiful lovely England. And I don&amp;#8217;t mean that sarcastically. England is an absolutely stunningly beautiful place. The more I look at it, the more I realize just how pretty it is. For those of you out of the loop, I&amp;#8217;ve recently relocated to England. Cambridge to be exact. And &lt;span class="caps"&gt;CB2 8PB&lt;/span&gt;, Cambridge, Cambridgeshire, East of England, England, Britain, United Kingdom. They sure do have lots of categories for naming, but that&amp;#8217;s a subject for another posting all together.&lt;/p&gt;


	&lt;p&gt;Yes, its true. On the auspicious day of September the 11th, 2009, I followed my heart across the sea to live in a magical place known as England-town. I had no illusions before the move. I am no stranger to being a stranger in a new place. After being born and bred in Florida, I was shipped off to slightly chillier South Carolina where I got to enjoy the beautiful mountains. Then, I dropped out of school and shipped myself to the much chillier New York City. Then, I followed my heart to the much, much chillier Toronto. Each of those places makes you feel a little bit like a foreigner and in an increasing manner.&lt;/p&gt;


	&lt;p&gt;Now I&amp;#8217;ve gone and done it. This time, I truly am a foreigner. Being an American in Canada is like being a Canadian. No one can detect a difference. I felt at home and blended in accordingly. However, here&amp;#8230; it is a different story all together. Every word I speak I am instantly singled out as being &amp;#8220;different&amp;#8221;. Being a white male from America, I am not used to this. Sure, I&amp;#8217;m gay, but you can&amp;#8217;t really tell. I get to pick and choose when I&amp;#8217;m different. Such is the luxury of being the dominant force in a culture. Being different is like a game. &amp;#8220;When I go to this meeting, should I be different or not?&amp;#8221;&lt;/p&gt;


	&lt;p&gt;But now I can&amp;#8217;t even go to the store (shop) across the street without feeling like I&amp;#8217;m wearing jean shorts to a cocktail party. I do my best to mask it. I say &amp;#8220;cheers&amp;#8221; under my breath. I attempt to say as little as I possibly can and see if they notice. For a short time, while in public, I attempted to speak quietly and in a slightly English accent as to attempt to fool passerby&amp;#8217;s. Its not that I want to affect a British accent (I &lt;strong&gt;was&lt;/strong&gt; warned many times before I left that I would be disowned for such treason). However, now I see why Madonna did it. You do spend enough time sounding different and you just want to sound the same. And you know Madonna did live in Britain married to a British guy. Luckily, my accent remains intact. I shall take my role as foreigner with some dignity.&lt;/p&gt;


	&lt;p&gt;Being an American is a unique position here. I&amp;#8217;ve been shocked at exactly how much of America has been imported here. The local pizza place? Pizza hut. Want a sandwich? Subway. There is even an American-style Bowling Alley (they call it &lt;a href="http://en.wikipedia.org/wiki/Ten-pin_bowling#1960_to_the_present"&gt;Ten-Pin&lt;/a&gt;... and yes modern bowling started in America). All of these places are within 1 block of my apartment. Did I mention that the cinema only runs American movies?&lt;/p&gt;


	&lt;p&gt;The reason this makes things so much harder is that most people here have strong ideas about Americans, but haven&amp;#8217;t ever met one. They live with America as sort of a cultural ghost floating around everywhere they turn. Add to it that there are very, very few Americans living in England, and you end up being kind of an oddity. I think English people don&amp;#8217;t really know what to make of America.&lt;/p&gt;


	&lt;p&gt;My feelings about being a Canamerican are hard to express properly. Because of the extremeness on both sides of my heart and head. On the one hand, I am critical of my country. On the other hand, I can&amp;#8217;t think of anything more amazing than America. I think what people miss about America is the variety. There is no &amp;#8220;American&amp;#8221;. The idea of being American is a myth. Its just a collection of people who mostly speak English who believe in democracy, freedom, and business. That&amp;#8217;s it. We&amp;#8217;ve made those words lose meaning, but almost every American believes in those 3 words endlessly. They just interpret them differently. Is the business a co-op or a mega conglomerate? Is freedom social liberties or libertarian small goverment? America is just one big debate on what those three words mean.&lt;/p&gt;


	&lt;p&gt;Staring at Canamerica is like staring at the Sun. It is so vast, powerful, diverse, changing, swirling, horrible, and stunning. Those are equal compliments and statements of fear.&lt;/p&gt;


	&lt;p&gt;Canamerica is frightening. What do you make of that externally? How should you feel being on the outside staring at that wild beast across the Atlantic. A bit jealous and also a bit worried. I think that&amp;#8217;s how people see Americans.&lt;/p&gt;


	&lt;p&gt;I keep trying to explain to people that being British in America means that you are an American. Ricky Gervaise can star in movies in America, about Americans, with his British accent, without &lt;strong&gt;any&lt;/strong&gt; explanation, because it just seems fine. We assume Ricky&amp;#8217;s character has moved to America and lives there. This assumption even works on British audiences watching his movies. It is never odd that a British person would be living in America. I think that&amp;#8217;s really interesting. Anytime an American shows up on the &amp;#8220;tele&amp;#8221; here, it is explained why they are in England. And that simply makes me uncomfortable.&lt;/p&gt;


	&lt;p&gt;I don&amp;#8217;t want to be a foreigner. I want to feel at home.&lt;/p&gt;


	&lt;p&gt;To be clear though, British people have been ridiculously nice and charming and interesting. This has more to do with my own brain and the way I function than anything else.&lt;/p&gt;


	&lt;p&gt;I know that this post is going on too long. I won&amp;#8217;t promise to make it a series, but I will say I have a lot more to say. So many comments to make about the cultural differences.&lt;/p&gt;


	&lt;p&gt;I hope I can make a home here. Britain is wonderful, amazing, beautiful, charming, and calm. As Winston Churchill famously said, &amp;#8220;Being born British is like winning the lottery of life.&amp;#8221;&lt;/p&gt;


	&lt;p&gt;To conclude the personal news section. I have moved into a swanky flat in a cool area of town with lots of things to do. I have a killer view, no furniture (its on the ocean!), and have been doing my best to get work done, make friends, and stay sane. Oh, you can totally peak at my flat if you want. &lt;a href="http://maps.google.com/?ie=UTF8&amp;#38;hq=&amp;#38;t=h&amp;#38;ll=52.189253,0.135948&amp;#38;spn=0,359.98999&amp;#38;z=17&amp;#38;layer=c&amp;#38;cbll=52.189216,0.135793&amp;#38;panoid=ypw2FIPiZ2h6q_LorcL0-Q&amp;#38;cbp=12,226.55,,0,-47.96"&gt;Second from the top.&lt;/a&gt; Mobile Wikipedia continues to grow. My iPhone businesses are booming. And I&amp;#8217;m getting married on November 11th, to the most awesome guy in the universe (except me, obviously).&lt;/p&gt;


	&lt;p&gt;You should get an award for reading all this!&lt;/p&gt;</content>
  </entry>
  <entry xml:base="/">
    <author>
      <name>Hampton Catlin</name>
    </author>
    <title>Hampton's 26th Year In Review</title>
    <id>http://www.hamptoncatlin.com/posts/27-years</id>
    <published>2009-09-02 20:41:00 -0700</published>
    <updated>2009-09-03 04:08:00 -0700</updated>
    <link href="http://www.hamptoncatlin.com/posts/27-years" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;My friends have a tradition where on our birthday, we write down everything we accomplished in the last year. And, you have to fill up one entry for every year of your life. Here is my list this year.&lt;/p&gt;


	&lt;p&gt;In no particular order:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;Sold an app to Wikimedia and got a job there&lt;/li&gt;
		&lt;li&gt;Had two #1 apps in the iTunes store&lt;/li&gt;
		&lt;li&gt;Got engaged to @mlintorn&lt;/li&gt;
		&lt;li&gt;Moved from Canada to the US&lt;/li&gt;
		&lt;li&gt;Made a living off Dictionary!&lt;/li&gt;
		&lt;li&gt;Interviewed on about.com and Mobile Orchard&lt;/li&gt;
		&lt;li&gt;Visited: &lt;span class="caps"&gt;YYZ&lt;/span&gt;, JAX, &lt;span class="caps"&gt;LGW&lt;/span&gt;, SFO, &lt;span class="caps"&gt;LAX&lt;/span&gt;, MCO, &lt;span class="caps"&gt;LAS&lt;/span&gt;, DEN&lt;/li&gt;
		&lt;li&gt;Saw a huge tornado&lt;/li&gt;
		&lt;li&gt;Got mentioned in Time magazine&lt;/li&gt;
		&lt;li&gt;Launched Wikipedia Mobile with 182 million page views&lt;/li&gt;
		&lt;li&gt;Haml more popular than ever and Sass comes into its own with Compass&lt;/li&gt;
		&lt;li&gt;Had a relationship with 100% honesty&lt;/li&gt;
		&lt;li&gt;Visited theme parks in Orlando four times&lt;/li&gt;
		&lt;li&gt;Worked with @wycats&lt;/li&gt;
		&lt;li&gt;Became friends with Sara D and Kelly&lt;/li&gt;
		&lt;li&gt;Tried my hand at club promotion&lt;/li&gt;
		&lt;li&gt;Earned my parents&amp;#8217; respect&lt;/li&gt;
		&lt;li&gt;Fell in love with Wall St Bar in Jacksonville&lt;/li&gt;
		&lt;li&gt;Redesigned hamptoncatlin.com&lt;/li&gt;
		&lt;li&gt;Met @mlintorn&lt;/li&gt;
		&lt;li&gt;Went to MaxFunCon&lt;/li&gt;
		&lt;li&gt;Supported The Sound of Young America&lt;/li&gt;
		&lt;li&gt;Had a live video show with Steven Bristol&lt;/li&gt;
		&lt;li&gt;Hired my first Intern&lt;/li&gt;
		&lt;li&gt;Met Jesse Thorn&lt;/li&gt;
		&lt;li&gt;Made more money than parents&lt;/li&gt;
		&lt;li&gt;Reconnected with @adambeaugh&lt;/li&gt;
	&lt;/ul&gt;</content>
  </entry>
  <entry xml:base="/">
    <author>
      <name>Hampton Catlin</name>
    </author>
    <title>Where is _Why?</title>
    <id>http://www.hamptoncatlin.com/posts/where-is-_why</id>
    <published>2009-08-20 15:28:00 -0700</published>
    <updated>2009-08-20 15:45:28 -0700</updated>
    <link href="http://www.hamptoncatlin.com/posts/where-is-_why" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;_why has obviously decided to see if he can escape the world he created for himself online. I think its an interesting experiment and it happens to coincide with a similar experiment going on over at Wired with a contest to &lt;a href="http://www.wired.com/vanish/2009/08/author-evan-ratliff-is-on-the-lam-locate-him-and-win-5000/"&gt;find Evan Ratliff&lt;/a&gt;. The whole contest is based on a really interesting article he wrote titled &lt;a href="http://www.wired.com/vanish/2009/08/gone-forever-what-does-it-take-to-really-disappear/"&gt;&amp;#8220;Gone Forever: What Does It Take to Really Disappear?&amp;#8221;&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;Is why trying this experiment himself? Why take down all the repos and actually hurt other people who were trying to use the software he wrote? Are all of us Open Source contributors and creators liable to keep our repos up?&lt;/p&gt;


	&lt;p&gt;_why has certainly put a lot of those questions to the forefront.&lt;/p&gt;


	&lt;p&gt;I think we are doing the right thing by not searching for him, but letting him be. If he wants to go away, let him. However, I also saw this posted in a Reddit comment chain.&lt;/p&gt;


&lt;pre&gt;
$ host whytheluckystiff.net
  whytheluckystiff.net has address 72.232.19.34
$ curl 72.232.19.34
  curl: (7) couldn't connect to host
$ host 72.232.19.34
34.19.232.72.in-addr.arpa domain name pointer Cewki.com.
$ curl Cewki.com
&amp;lt;html&amp;gt;
    &amp;lt;head&amp;gt;
        &amp;lt;title&amp;gt;where's _why?&amp;lt;/title&amp;gt;
    &amp;lt;/head&amp;gt;
    &amp;lt;body&amp;gt;
        &amp;lt;h1&amp;gt;where's _why?&amp;lt;/h1&amp;gt;
        &amp;lt;p&amp;gt;see: &amp;lt;a href="http://news.ycombinator.com/item?id=773106"&amp;gt;http://news.ycombinator.com/item?id=773106&amp;lt;/p&amp;gt;
    &amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
$ whois Cewki.com
Registrant [350005]:
        Ken Jensen ken@softwaremasters.com
        P.O. Box 1592
        Ellicott City
        MD
        21784
        US
&lt;/pre&gt;

	&lt;p&gt;And then you can checkout &lt;a href="http://www.softwaremasters.com"&gt;SoftwareMasters.com&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;Obviously, this is was a breadcrumb left for us. Does this reveal who _why is? Or does this reveal that someone found some fancy IP tricks?&lt;/p&gt;


	&lt;p&gt;Its hard to disappear.&lt;/p&gt;


	&lt;p&gt;Also, before I go. I wanted to say thanks to _why for shoes (which got me back into &lt;span class="caps"&gt;GUI&lt;/span&gt; development) and for markaby. Markaby came out before Haml and it inspired me to think outside the box. So, thanks _why. Enjoy the rest of your life and thanks for everything.&lt;/p&gt;</content>
  </entry>
  <entry xml:base="/">
    <author>
      <name>Hampton Catlin</name>
    </author>
    <title>Amusing Wikimedia Feedback</title>
    <id>http://www.hamptoncatlin.com/posts/amusing-wikimedia-feedback</id>
    <published>2009-08-03 17:16:00 -0700</published>
    <updated>2009-08-03 17:17:58 -0700</updated>
    <link href="http://www.hamptoncatlin.com/posts/amusing-wikimedia-feedback" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;I posted an article over at Wikimedia Techblog about amusing feedback we&amp;#8217;ve received.&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://techblog.wikimedia.org/2009/08/amusing-mobile-feedback/"&gt;&lt;span class="caps"&gt;GO READ IT NOW&lt;/span&gt;!&lt;/a&gt;&lt;/p&gt;</content>
  </entry>
  <entry xml:base="/">
    <author>
      <name>Hampton Catlin</name>
    </author>
    <title>Lessions from Wikipedia, aka "Hampton Hates Psychic Scaling"</title>
    <id>http://www.hamptoncatlin.com/posts/lessions-from-wikipedia-aka-hampton-hates-psychic-scaling</id>
    <published>2009-07-25 01:12:00 -0700</published>
    <updated>2009-07-25 01:13:42 -0700</updated>
    <link href="http://www.hamptoncatlin.com/posts/lessions-from-wikipedia-aka-hampton-hates-psychic-scaling" rel="alternate" type="text/html"/>
    <content type="html">&lt;object width="600" height="450"&gt;&lt;param name="allowfullscreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=5749262&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=00ADEF&amp;amp;fullscreen=1" /&gt;&lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=5749262&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=00ADEF&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="600" height="450"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;p&gt;&lt;a href="http://vimeo.com/5749262"&gt;Hampton Hates Psychic Scaling&lt;/a&gt; from &lt;a href="http://vimeo.com/user852875"&gt;Hampton Catlin&lt;/a&gt; on &lt;a href="http://vimeo.com"&gt;Vimeo&lt;/a&gt;.&lt;/p&gt;</content>
  </entry>
  <entry xml:base="/">
    <author>
      <name>Hampton Catlin</name>
    </author>
    <title>Rhodes To Ruby</title>
    <id>http://www.hamptoncatlin.com/posts/rhodes-wikipedia</id>
    <published>2009-02-14 21:04:00 -0800</published>
    <updated>2009-02-14 21:07:36 -0800</updated>
    <link href="http://www.hamptoncatlin.com/posts/rhodes-wikipedia" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;Just kind of wanted to give a quick update about the work I&amp;#8217;ve been doing at Wikimedia (aka, Wikipedia). First of all, we have beta launched the open web interface for browsing Wikipedia on your WebKit (or similar) based mobile device. You can check out &lt;a href="http://en.m.wikipedia.org"&gt;en.m.wikipedia.org&lt;/a&gt; to see what I&amp;#8217;m talking about. Its currently beta and represents the bit of code called &lt;a href="http://github.com/hcatlin/wikimedia-mobile/tree/master"&gt;wikimedia-mobile&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://hamptoncatlin.com/assets/2009/2/14/109805050_ea1a12e6ce.jpg" /&gt;&lt;/p&gt;


&lt;div style="clear: both"&gt;&amp;nbsp;&lt;/div&gt;

	&lt;p&gt;I was working on the iPhone native app and about to deploy it in late January, when I got contacted by &lt;a href="http://rhomobile.com/"&gt;Rhodes Mobile&lt;/a&gt; who have a framework they have developed that allows you to program a local &amp;#8220;web server&amp;#8221; like thing on a mobile device. The deal is, once you build it, it can basically run on iPhone, Android (soon), Blackberry, Symbian, and Windows Mobile. Yes, you heard me right. Write once (in Ruby!) and run on all major smartphones.&lt;/p&gt;


	&lt;p&gt;I knew I didn&amp;#8217;t have the free time to go learn a new framework and write something that would be up-to-par, so they graciously offered to build a basic app for Wikimedia and then release the copyright to us. Things are going very well with the development, and in the next few weeks we should be rolling out an official Wikipedia iPhone app and soon after that start hitting other platforms.&lt;/p&gt;


	&lt;p&gt;Not only do I get to only manage two projects and hit all the phones I wanted, but I get to do it in the same language.&lt;/p&gt;


	&lt;p&gt;We aren&amp;#8217;t 100% committed to it yet (have to see the final result), but things are looking extremely promising. The framework definitely is robust and interesting, but it does lack some of the sleekness and simplicity that I look for in Ruby projects. However, I can&amp;#8217;t really complain. The framework does more than I could have ever asked for.&lt;/p&gt;


	&lt;p&gt;I highly recommend checking them out if you are looking to deploy a remote-synchronized-data app and would like to deploy on more than one mobile OS.&lt;/p&gt;</content>
  </entry>
  <entry xml:base="/">
    <author>
      <name>Hampton Catlin</name>
    </author>
    <title>Rubyists To The Rescue</title>
    <id>http://www.hamptoncatlin.com/posts/rubyists-to-the-rescue</id>
    <published>2008-12-24 21:33:00 -0800</published>
    <updated>2008-12-24 21:38:43 -0800</updated>
    <link href="http://www.hamptoncatlin.com/posts/rubyists-to-the-rescue" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;Alright people, I know you are all busy with your Holidays right now, but I want to ask for something really important here. Pretty much everyone who is getting to this blog is a blessed person. I don&amp;#8217;t mean blessed in a religious way or just luck. But, all of us make more money than someone. I know a lot of you are like me and live very comfortable, nice lives even in the downturn.&lt;/p&gt;


	&lt;p&gt;People are always thanking me for Haml and for my other &lt;span class="caps"&gt;OSS&lt;/span&gt; work, and I finally found a good way for people to say thanks. Donate some money to the I.M. Sulzbacher Center. The Center is a really great place that helps less fortunate families get back on their feet. Giving them housing, job training, support, and a helping hand.&lt;/p&gt;


	&lt;p&gt;We as software developers need to bond together, thank the universe for what we have, and make sure we support people who have lost everything. Even those of us who grew up at country clubs had family in the past who worked blue collar jobs and those people are really exposed to becoming homeless. You get laid off at you job and you have no where to go.&lt;/p&gt;


	&lt;p&gt;This holiday season, please consider donating.&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.sulzbachercenter.org/"&gt;&lt;span class="caps"&gt;CLICK THE DONATE BUTTON&lt;/span&gt;!&lt;/a&gt;&lt;/p&gt;</content>
  </entry>
  <entry xml:base="/">
    <author>
      <name>Hampton Catlin</name>
    </author>
    <title>ByteClub.tv</title>
    <id>http://www.hamptoncatlin.com/posts/byteclub-tv</id>
    <published>2008-10-23 20:27:00 -0700</published>
    <updated>2008-10-23 20:31:55 -0700</updated>
    <link href="http://www.hamptoncatlin.com/posts/byteclub-tv" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;So, as some of you guys might no. I&amp;#8217;m not longer a partner at Unspace Interactive. But, I&amp;#8217;m still involved there! Its the company that I helped grow and I&amp;#8217;m still on the &amp;#8216;team&amp;#8217;. I&amp;#8217;m just in Florida working on other shit right now and a bit of Unspace work. Still the best damn company in the country for this kind of stuff. Anyhow, a few months ago ByteClub.tv came by and did a video about Unspace (no, we didn&amp;#8217;t pay for it). Its really good! I look kind of fat sitting, but beyond that, I love it!&lt;/p&gt;


&lt;object id="ep_player" name="ep_player" height="390" width="640" data="http://cdn.episodic.com/player/EpisodicPlayer.swf?config=http%3A%2F%2Fcdn.episodic.com%2Fshows%2F25%2F341%2F2%2Fconfig.xml" type="application/x-shockwave-flash"&gt;&lt;param name="movie" value="http://cdn.episodic.com/player/EpisodicPlayer.swf?config=http%3A%2F%2Fcdn.episodic.com%2Fshows%2F25%2F341%2F2%2Fconfig.xml"/&gt;&lt;param name="AllowScriptAccess" value="always"/&gt;&lt;param name="allowfullscreen" value="true"/&gt;&lt;embed src="http://cdn.episodic.com/player/EpisodicPlayer.swf?config=http%3A%2F%2Fcdn.episodic.com%2Fshows%2F25%2F341%2F2%2Fconfig.xml" type="application/x-shockwave-flash" allowfullscreen="true" AllowScriptAccess="always" width="640" height="390" id="ep_player" name="ep_player"/&gt;&lt;/object&gt;

	&lt;p&gt;Also, they covered the Ruby conference that I helped put together!&lt;/p&gt;


&lt;object id="ep_player" name="ep_player" height="390" width="640" data="http://cdn.episodic.com/player/EpisodicPlayer.swf?config=http%3A%2F%2Fcdn.episodic.com%2Fshows%2F25%2F342%2F2%2Fconfig.xml" type="application/x-shockwave-flash"&gt;&lt;param name="movie" value="http://cdn.episodic.com/player/EpisodicPlayer.swf?config=http%3A%2F%2Fcdn.episodic.com%2Fshows%2F25%2F342%2F2%2Fconfig.xml"/&gt;&lt;param name="AllowScriptAccess" value="always"/&gt;&lt;param name="allowfullscreen" value="true"/&gt;&lt;embed src="http://cdn.episodic.com/player/EpisodicPlayer.swf?config=http%3A%2F%2Fcdn.episodic.com%2Fshows%2F25%2F342%2F2%2Fconfig.xml" type="application/x-shockwave-flash" allowfullscreen="true" AllowScriptAccess="always" width="640" height="390" id="ep_player" name="ep_player"/&gt;&lt;/object&gt;</content>
  </entry>
  <entry xml:base="/">
    <author>
      <name>Hampton Catlin</name>
    </author>
    <title>MobileOrchard Interview</title>
    <id>http://www.hamptoncatlin.com/posts/mobileorchard-interview</id>
    <published>2008-10-23 20:24:00 -0700</published>
    <updated>2008-10-23 20:27:01 -0700</updated>
    <link href="http://www.hamptoncatlin.com/posts/mobileorchard-interview" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;Wow, this is a week of me-on-the web! Dan Grigsby gave me a call and we did an interview focusing on the iPhone development that I&amp;#8217;ve been doing recently.&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.mobileorchard.com/podcast-interview-with-hampton-catlin/"&gt;Listen here!&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.mobileorchard.com"&gt;MobileOrchard&lt;/a&gt; is a pretty awesome blog, I have to say. Dan gives us a developer view of the new G1 phone! 
And a ton of other related articles.&lt;/p&gt;</content>
  </entry>
  <entry xml:base="/">
    <author>
      <name>Hampton Catlin</name>
    </author>
    <title>Hampton Hates Automated Testing</title>
    <id>http://www.hamptoncatlin.com/posts/hampton-hates-automated-testing</id>
    <published>2008-10-22 21:56:00 -0700</published>
    <updated>2008-10-22 21:57:00 -0700</updated>
    <link href="http://www.hamptoncatlin.com/posts/hampton-hates-automated-testing" rel="alternate" type="text/html"/>
    <content type="html">&lt;blockquote&gt;Hampton&amp;#8217;s Testing Theorem: &lt;strong&gt;&lt;em&gt;&amp;#8220;Unit tested code often contains more bugs than its non unit tested counterpart.&amp;#8221;&lt;/em&gt;&lt;/strong&gt;&lt;/blockquote&gt;

&lt;object width="400" height="300"&gt;    &lt;param name="allowfullscreen" value="true" /&gt;    &lt;param name="allowscriptaccess" value="always" /&gt;    &lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=2031437&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" /&gt;    &lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=2031437&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;a href="http://vimeo.com/2031437?pg=embed&amp;amp;sec=2031437"&gt;Hampton Hates Automated Testing&lt;/a&gt; from &lt;a href="http://vimeo.com/user852875?pg=embed&amp;amp;sec=2031437"&gt;Hampton Catlin&lt;/a&gt; on &lt;a href="http://vimeo.com?pg=embed&amp;amp;sec=2031437"&gt;Vimeo&lt;/a&gt;.</content>
  </entry>
  <entry xml:base="/">
    <author>
      <name>Hampton Catlin</name>
    </author>
    <title>iTunes Sales Drop?</title>
    <id>http://www.hamptoncatlin.com/posts/itunes-sales-drop</id>
    <published>2008-10-03 22:10:00 -0700</published>
    <updated>2008-10-03 22:13:35 -0700</updated>
    <link href="http://www.hamptoncatlin.com/posts/itunes-sales-drop" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;My iPhone app iWik has been floating around 48-50 on the &amp;#8220;Top Paid iPhone App&amp;#8221; list for the last month. To keep that spot in popularity I used to have to sell around 1,600 copies a day. It seems that it has dropped in the last week to about 1,000 sales per 24-hours. However, I&amp;#8217;m still in the same spot.&lt;/p&gt;


	&lt;p&gt;Has the economic crisis in the US caused &lt;strong&gt;total&lt;/strong&gt; sales to drop for iTunes? I wouldn&amp;#8217;t be surprised. People thinking twice about dropping $1-$5 on something they don&amp;#8217;t really &lt;strong&gt;need&lt;/strong&gt;.&lt;/p&gt;


	&lt;p&gt;I wonder if this is hitting the entire for-pay software market? Its not a total business killer, but its definitely a drop in numbers. 1,000 would not have kept me on that list just a few weeks ago.&lt;/p&gt;


	&lt;p&gt;PS: This lack of an &lt;span class="caps"&gt;NDA&lt;/span&gt; is cool&amp;#8230;.&lt;/p&gt;</content>
  </entry>
  <entry xml:base="/">
    <author>
      <name>Hampton Catlin</name>
    </author>
    <title>iWik Cracked!</title>
    <id>http://www.hamptoncatlin.com/posts/iwik-cracked</id>
    <published>2008-09-24 17:15:00 -0700</published>
    <updated>2008-09-24 17:28:17 -0700</updated>
    <link href="http://www.hamptoncatlin.com/posts/iwik-cracked" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;I don&amp;#8217;t know if most of you know, but I&amp;#8217;m spending most of my time doing iPhone products right now. The major one I have out there is &amp;#8220;iWik: Wikipedia for your iPhone.&amp;#8221; Its been selling well, but today reached a new milestone. You can download it with a torrent!&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://iphonemon.com/2008/09/24/390-appstore-cracked-via-torrent/"&gt;http://iphonemon.com/2008/09/24/390-appstore-cracked-via-torrent/&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;Amazing!&lt;/p&gt;


	&lt;p&gt;Best part is&amp;#8230; its version 1.0&amp;#8230; which doesn&amp;#8217;t work anymore.&lt;/p&gt;


	&lt;p&gt;PS: Did anyone see iWik featured on iTunes last week. &lt;span class="caps"&gt;AND&lt;/span&gt; it was in Time Magazine (in the US only) for September!&lt;/p&gt;</content>
  </entry>
  <entry xml:base="/">
    <author>
      <name>Hampton Catlin</name>
    </author>
    <title>Hampton's Ruby Survey 2008 Results!</title>
    <id>http://www.hamptoncatlin.com/posts/hampton-s-ruby-survey-2008-results</id>
    <published>2008-09-23 05:32:00 -0700</published>
    <updated>2008-09-24 01:39:15 -0700</updated>
    <link href="http://www.hamptoncatlin.com/posts/hampton-s-ruby-survey-2008-results" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;Well, i was going to write a whole lot of analysis of the data, but then again, I&amp;#8217;m lazy about that kind of stuff. Working on releasing Jabl and Sass is more important.&lt;/p&gt;


	&lt;p&gt;You can get a nice human-friendly version of the results at &lt;a href="http://survey.hamptoncatlin.com"&gt;http://survey.hamptoncatlin.com&lt;/a&gt;!&lt;/p&gt;


	&lt;p&gt;Also, you can get the data dump here: &lt;a href="http://hamptoncatlin.com/assets/2008/9/24/survey08.yml.gz"&gt;survey08.yml.gz&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;A few surprising things. First, more people use jQuery than Prototype. Most Rubyists are agnostic or athiest&amp;#8230; only 20% believe in a single god. Most people don&amp;#8217;t use Haml. &lt;span class="caps"&gt;MRI&lt;/span&gt; is still the dominant interpreter. And Textmate dominates for editors, but vim beats emacs.&lt;/p&gt;</content>
  </entry>
  <entry xml:base="/">
    <author>
      <name>Hampton Catlin</name>
    </author>
    <title>DART Raids in Jacksonville</title>
    <id>http://www.hamptoncatlin.com/posts/dart-raids</id>
    <published>2008-09-18 18:07:00 -0700</published>
    <updated>2008-09-18 18:22:19 -0700</updated>
    <link href="http://www.hamptoncatlin.com/posts/dart-raids" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;&lt;img src="http://farm4.static.flickr.com/3072/2343516637_7f3c0898db.jpg" style="float: left; width: 50%; height: 50%" /&gt; I recently moved my business to Jacksonville. I came back primarily because for a medium-sized city, Jacksonville has a vibrant and interesting indie scene along with a relatively cheap cost of living. However, my move coincided with police &amp;#8220;raids&amp;#8221; on several of the more interesting clubs in town. A police group called &lt;a href="http://www.coj.net/Departments/Sheriffs+Office/Community+Affairs/DART+Program.htm"&gt;&lt;span class="caps"&gt;DART&lt;/span&gt;&lt;/a&gt; has been running these raids. &lt;a href="http://www.myspace.com/thepearlofspringfield"&gt;The Pearl&lt;/a&gt; was &lt;a href="http://jaxscene.blogspot.com/2008/09/pearl-closed-till.html"&gt;shut down&lt;/a&gt; last Thursday. Read more about the drama at &lt;a href="http://www.urbanjacksonville.info/?s=DART&amp;#38;x=0&amp;#38;y=0"&gt;Urban Jacksonville&lt;/a&gt;. I wrote to the &lt;a href="http://en.wikipedia.org/wiki/John_Peyton_(US_politician)"&gt;mayor&lt;/a&gt; and actually received a response back. I have posted that response here.&lt;/p&gt;


&lt;blockquote&gt;
Dear Mr. Catlin:

	&lt;p&gt;Thank you for taking the time to write.   Mayor John Peyton has asked me to respond on his behalf.  We appreciate your concern and know that The Pearl is a &#8216;destination&#8217; for many people around the city.  It has done a lot to put Springfield on the map with our under-30 crowd in Jacksonville.&lt;/p&gt;


	&lt;p&gt;To provide background, Jacksonville&#8217;s Drug Abatement Response Team (DART) was established in January 1996 to combat illegal drugs in Jacksonville. The team is composed of representatives from the Jacksonville Sheriff&amp;#8217;s Office, Fire Marshal&amp;#8217;s office, Municipal Code Compliance and the Building Inspection Division.  It also can call on the resources of Community Services, Animal Care and Control, Community Development, &lt;span class="caps"&gt;JEA&lt;/span&gt;, Public Utilities, the Division of Alcohol, Beverages and Tobacco, the Division of Hotels and Restaurants, the Property Appraiser&#8217;s Office, the Office of General Counsel, the Department of Children and Families, and the State Attorney.&lt;/p&gt;


	&lt;p&gt;The city would not &lt;span class="caps"&gt;DART&lt;/span&gt; a commercial establishment or private residence for potential code violations alone. These types of violations are handled by the Municipal Code Compliance and Building Inspection Divisions of the city on a day to day basis. For the &lt;span class="caps"&gt;DART&lt;/span&gt; team to investigate a property there must be credible evidence of illegal activity.  In addition, the team must ask for permission for entry before entering the establishment.&lt;/p&gt;


	&lt;p&gt;Please understand it was for these reasons that The Pearl was the subject of &lt;span class="caps"&gt;DART&lt;/span&gt; action on Thursday night.  Following concerns about underage drinking and narcotics being sold/used at The Pearl, the &lt;span class="caps"&gt;DART&lt;/span&gt; team arrived at the club and was allowed in by the manager. The Jacksonville Sheriff&#8217;s Office and the Division of Alcohol, Beverage and Tobacco entered the building with the city&#8217;s Building Inspection Division and Fire Marshal. While I do not have the exact number or nature of the arrests, I do know that law enforcement officials did make at least one arrest in the establishment that evening.&lt;/p&gt;


	&lt;p&gt;Once inside, the team observed that the club had more than 400 people in it. I am told that the Fire Marshal&#8217;s capacity rating for the building was less than half that number, creating a serious safety risk had an emergency occurred in the structure.&lt;/p&gt;


	&lt;p&gt;There was also a concern about the building&#8217;s emergency egress.  The only open and accessible egress/exit from the building was through the front door (the gate in the back was chained shut).&lt;/p&gt;


	&lt;p&gt;There were multiple other Building and Fire code violations that made the building unsafe. This included extension cords with the ends stripped off and hard-wired to an electrical panel, extension cords in unsafe places, unsafe/incomplete remodeling work, and a variety of other electrical and plumbing issues. To ensure the safety of the club&#8217;s patrons as well as the structures located around the establishment, the facility was closed until the hazards were eliminated.&lt;/p&gt;


	&lt;p&gt;I truly understand and appreciate your concerns.  I also hope, however, that you can appreciate the city&#8217;s responsibility to ensure the safety and security of our residents.  I hope that the owner can bring the Building and Fire violations into compliance so that she may re-open as soon as possible.&lt;/p&gt;


	&lt;p&gt;Again, thank you for writing.&lt;/p&gt;


	&lt;p&gt;Sincerely,&lt;/p&gt;


	&lt;p&gt;Derek D. Igou&lt;/p&gt;


	&lt;p&gt;Deputy Director&lt;/p&gt;


Environmental and Compliance Department
&lt;/blockquote&gt;

	&lt;p&gt;And my response:&lt;/p&gt;


&lt;blockquote&gt;
Derek-

	&lt;p&gt;Thank you so much for a response. I will make sure that this answer gets to the right people.&lt;/p&gt;


	&lt;p&gt;I think it would be excellent if the City would make a public announcement of support for business owners in this city.&lt;/p&gt;


	&lt;p&gt;Whatever the intention was of the &amp;#8220;late-night inspection,&amp;#8221; the feeling of being there was a bit spooky and Police-state feeling. The fact is that the building inspections could have been done during less conspicuous hours. And no club owner can guarantee a totally drug-free environment. I have never seen any drug use at the Pearl, but certainly young people have come in with something in their pockets. Second to doing a pat-down at every entry and re-entry of the club, something I have never witnessed anywhere, its impossible to keep an entirely clean business. Much like a restaurant being held liable for a patron having drugs in their pocket, I believe this to be an unreasonable expectation of businesses. Now, the expectation that &lt;strong&gt;visible&lt;/strong&gt; usage is discouraged (clientele kicked out and banned).&lt;/p&gt;


	&lt;p&gt;The building code violations I&amp;#8217;m sure were real and serious and needed to be addressed. But, perhaps make it feel less like a raid?&lt;/p&gt;


	&lt;p&gt;Anyhow, none of that really matters. However, I do suggest making a public statement of support for business owners that cater to the young artistic crowd. It would do a lot to help things.&lt;/p&gt;


	&lt;p&gt;Thanks again for the response. Its good to know someone is listening.&lt;/p&gt;


-Hampton Catlin.
&lt;/blockquote&gt;

	&lt;p&gt;Its good to see that someone is listening at least!&lt;/p&gt;</content>
  </entry>
  <entry xml:base="/">
    <author>
      <name>Hampton Catlin</name>
    </author>
    <title>Find me...</title>
    <id>http://www.hamptoncatlin.com/posts/find-me</id>
    <published>2008-06-11 14:13:00 -0700</published>
    <updated>2008-06-11 14:15:20 -0700</updated>
    <link href="http://www.hamptoncatlin.com/posts/find-me" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;I&amp;#8217;m mostly blogging at &lt;a href="http://rethink.unspace.ca"&gt;Rethink&lt;/a&gt; these days&amp;#8230; but I might do some more general posts still here.&lt;/p&gt;


	&lt;p&gt;I don&amp;#8217;t know, more technical or less technical. I can&amp;#8217;t really decide.&lt;/p&gt;</content>
  </entry>
  <entry xml:base="/">
    <author>
      <name>Hampton Catlin</name>
    </author>
    <title>Podcast?</title>
    <id>http://www.hamptoncatlin.com/posts/podcast</id>
    <published>2008-03-13 17:40:00 -0700</published>
    <updated>2008-03-13 17:42:12 -0700</updated>
    <link href="http://www.hamptoncatlin.com/posts/podcast" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;I&amp;#8217;m thinking of getting back to doing a podcast. I used to have a popular one.&lt;/p&gt;


	&lt;p&gt;I want questions submitted.&lt;/p&gt;


	&lt;p&gt;Tech questions are OK, but not preferred. I prefer questions that require opinion.&lt;/p&gt;


	&lt;p&gt;So, ask away if you can think of anything. Or if not, let me know if you&amp;#8217;d &lt;strong&gt;like&lt;/strong&gt; to listen to a podcast of me just doing my thing. Perhaps if you have enjoyed my interviews before or something like that.&lt;/p&gt;


	&lt;p&gt;Thanks,
Hcat.&lt;/p&gt;</content>
  </entry>
  <entry xml:base="/">
    <author>
      <name>Hampton Catlin</name>
    </author>
    <title>Announcing RubyFringe</title>
    <id>http://www.hamptoncatlin.com/posts/announcing-rubyfringe</id>
    <published>2008-02-11 18:39:00 -0800</published>
    <updated>2008-02-11 18:42:31 -0800</updated>
    <link href="http://www.hamptoncatlin.com/posts/announcing-rubyfringe" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;We at Unspace had started to become a bit dissolusioned by the conferences we have been attending. Leaving us with the feeling that we really don&amp;#8217;t &lt;strong&gt;like&lt;/strong&gt; going to conferences. We sat down and asked ourselves &lt;strong&gt;why&lt;/strong&gt;.&lt;/p&gt;


	&lt;p&gt;The result is that we are doing the insane task of throwing our own conference called RubyFringe. We are super excited that other people like the things we are doing and we&amp;#8217;ve been able to get every single speaker that we wanted to have at the conference. We had a list of 10 &amp;#8220;dream speakers&amp;#8221; and we have all 10 now.&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://rethink.unspace.ca/2008/2/11/announcing-rubyfringe"&gt;Check out the Rethink post here about it.&lt;/a&gt;&lt;/p&gt;</content>
  </entry>
  <entry xml:base="/">
    <author>
      <name>Hampton Catlin</name>
    </author>
    <title>scoped_struct</title>
    <id>http://www.hamptoncatlin.com/posts/scoped_struct</id>
    <published>2008-01-29 17:45:00 -0800</published>
    <updated>2008-01-29 17:48:25 -0800</updated>
    <link href="http://www.hamptoncatlin.com/posts/scoped_struct" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;So, Mike Ferrier tossed me this idea a long time ago&amp;#8230; and I was very excited about it. Its something I often wished I could do.&lt;/p&gt;


	&lt;p&gt;For the Rubyists out there, check out this awesome new software release!&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://mikeferrier.ca/2008/1/28/scoped-struct"&gt;http://mikeferrier.ca/2008/1/28/scoped-struct&lt;/a&gt;&lt;/p&gt;</content>
  </entry>
  <entry xml:base="/">
    <author>
      <name>Hampton Catlin</name>
    </author>
    <title>Seriously?</title>
    <id>http://www.hamptoncatlin.com/posts/seriously</id>
    <published>2008-01-18 16:43:00 -0800</published>
    <updated>2008-01-18 16:44:23 -0800</updated>
    <link href="http://www.hamptoncatlin.com/posts/seriously" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;I don&amp;#8217;t know how long this will remain up.. but check out this page on Zopa.com&lt;/p&gt;


	&lt;p&gt;&lt;a href="https://us.zopa.com/co/AboutMe.aspx?Id=26"&gt;https://us.zopa.com/co/AboutMe.aspx?Id=26&lt;/a&gt;&lt;/p&gt;</content>
  </entry>
  <entry xml:base="/">
    <author>
      <name>Hampton Catlin</name>
    </author>
    <title>Everybody Votes?</title>
    <id>http://www.hamptoncatlin.com/posts/everybody-votes</id>
    <published>2008-01-08 18:47:00 -0800</published>
    <updated>2008-01-08 18:48:04 -0800</updated>
    <link href="http://www.hamptoncatlin.com/posts/everybody-votes" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;This is an essay written by one of my good friends from college about the Nintendo&amp;#8217;s Everybody Votes channel on the Wii. Its a pretty interesting looking at a pretty strange little application that NIntendo has cooked up.&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;What possible purpose could there be in a Wii polling application? Once I played a little with it though, I began to see the genius behind it. By spacing out the polls to one every other day or so, Nintendo ensures that the user plays with the Wii every couple days to check out what the new poll question and to see what one&#8217;s results were for predicting the outcome. Each Mii is ranked by its predicting accuracy and told about its &#8220;distance from public opinion&#8221; and so forth via a snazzy interface. The point is that once Nintendo has users checking the Wii every couple days in order to try the new poll question, see tomorrow&#8217;s weather, and read a couple headlines from the AP, users are more likely to think, &#8220;Hmm, I guess I should go ahead and get a new game for this thing, since I&#8217;m always just fiddling with the channels anyway.&#8221;&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;p&gt;He goes on to talk about the roles of gender in gaming and the representative numbers shown through statistics made available by Nintendo.&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://deadhobosociety.com/index.php/HelloWorldProject/ENTRY33"&gt;Check it out here, yo.&lt;/a&gt;&lt;/p&gt;</content>
  </entry>
  <entry xml:base="/">
    <author>
      <name>Hampton Catlin</name>
    </author>
    <title>Haml 1.8.0</title>
    <id>http://www.hamptoncatlin.com/posts/haml-1-8-0</id>
    <published>2008-01-08 13:29:00 -0800</published>
    <updated>2008-01-08 13:31:35 -0800</updated>
    <link href="http://www.hamptoncatlin.com/posts/haml-1-8-0" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;A new, faster Haml has been released. Significant internal changes have been made for this release. In fact, 39 different people submitted patches to Haml since the last release (about 2 months ago). I just want to say thanks to Nathan and the whole community for helping us get this release out of the door.&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://nex-3.com/posts/66-haml-1-8-0"&gt;Nathan has the deets.&lt;/a&gt;&lt;/p&gt;</content>
  </entry>
  <entry xml:base="/">
    <author>
      <name>Hampton Catlin</name>
    </author>
    <title>Hell has Frozen</title>
    <id>http://www.hamptoncatlin.com/posts/hell-has-frozen</id>
    <published>2007-12-12 16:33:00 -0800</published>
    <updated>2007-12-12 16:57:23 -0800</updated>
    <link href="http://www.hamptoncatlin.com/posts/hell-has-frozen" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;So, as many of you know, I&amp;#8217;m all about OS choice in the Rails community. I very much dislike the conformity to the all-encompassing Throne of Apple. Anyhow, yesterday my PC broke and in a momentary decision I decided to give &lt;strong&gt;another&lt;/strong&gt; try at Macs. I&amp;#8217;ve already had 3 Macs (2 with &lt;span class="caps"&gt;OS X&lt;/span&gt;) and was generally disappointed with them. After that, I then moved on to Linux once I got bitten by the Unix bug. I have used Linux for the past 2 years as my primary development and home usage environment.&lt;/p&gt;


	&lt;p&gt;However, yesterday in my fit of rage at my loss of a harddrive, I decided to run down to the Apple store and buy myself another Mac to see if everything really had changed. Jeff and Lukas are always on about how Macs are perfect now and that I should try a newer version of the OS and how it changed their lives.&lt;/p&gt;


	&lt;p&gt;I figure, at best&amp;#8230; they are right and this time it will click better with Rails development. Or, at worst, I have much more authority to bash Mac-worship. Besides, I&amp;#8217;ve had a lot of my portfolio in Apple and it has done well for me (I bought it at $14 a share!). So, why not bump up their sales numbers to make me a little money back.&lt;/p&gt;


	&lt;p&gt;So, things have &lt;span class="caps"&gt;NOT&lt;/span&gt; gone smoothly. I was really hopeful about the whole &amp;#8220;Rails installed&amp;#8221; thing. I figured I could just drop my $4k+ and then I would be able to immediately develop. Nope!!!!&lt;/p&gt;


	&lt;p&gt;First, the computer did not come with Leopard installed. I had to use the upgrade &lt;span class="caps"&gt;DVD&lt;/span&gt;. So, I had to wait 2 hours at my desk while it installed the upgrade. And guess what&amp;#8230; it failed! My machine was thus instantly busted. It said something about the hard drive failing.&lt;/p&gt;


	&lt;p&gt;You heard it here, I had &lt;span class="caps"&gt;TWO&lt;/span&gt; hard drives fail in one day. So, I went back to the Mac store where they wanted me to schedule an appointment for the next day to meet with a Genius&amp;#8230; yes, I had purchased the computer 2 hours before and they wanted me to schedule help for the next day when I knew full well that the HD was bust (I had the error screen open for them). I had to put a bit of pressure on them, and finally the manager came and was willing to switch it out.&lt;/p&gt;


	&lt;p&gt;6 hours have gone since purchase. I get it up and running and it takes 2 more hours to do the upgrade again with my new machine (they had none with Leopard pre-installed). At least it worked this time. 8 hours.&lt;/p&gt;


	&lt;p&gt;I open up the console&amp;#8230; Subversion is installed! Nice! I didn&amp;#8217;t know that. Things are looking up. I check out one of my rails apps&amp;#8230; awesome! Oh, but wait&amp;#8230; no mysql support. Let me go through all of the posts and pages that I have had to go through to get this task done&amp;#8230;&lt;/p&gt;


	&lt;p&gt;http://documentation.rubyonrails.com/2007/10/26/today-is-leopard-day
http://www.garyharan.com/index.php/2007/12/11/installing-rmagick-gem-on-os-x-105-leopard/
http://hivelogic.com/narrative/articles/installing-mysql-on-mac-os-x
http://darwinports.com/download/&lt;/p&gt;


	&lt;p&gt;Wait.. where is gcc&amp;#8230;. wtf? I didn&amp;#8217;t see any developer disk. More googling. Oh, &lt;span class="caps"&gt;GCC&lt;/span&gt; is on my &lt;span class="caps"&gt;DVD&lt;/span&gt;&amp;#8230; well, that&amp;#8217;s at home. Ok, so I assume I can just download the 100MB install of &lt;span class="caps"&gt;GCC&lt;/span&gt; and build etc, right? &lt;span class="caps"&gt;WHAT&lt;/span&gt;? No? I have to download 1.1GB of random apple tools if I want to &lt;strong&gt;compile&lt;/strong&gt; anything. So, that&amp;#8217;s 2 hours to download that before I can do anything.&lt;/p&gt;


	&lt;p&gt;Screw off. You&amp;#8217;re kidding, right?&lt;/p&gt;


	&lt;p&gt;I just want to build a gem. Or like, install a database. Why is this hard?&lt;/p&gt;


	&lt;p&gt;On the plus side&amp;#8230;. I&amp;#8217;m very happy with &lt;span class="caps"&gt;OS X&lt;/span&gt;&amp;#8217;s support for multiple monitors. I&amp;#8217;m happy with having easy Wifi support. Those two are &lt;span class="caps"&gt;MUCH&lt;/span&gt; better than on Linux. However, let me show you the entire process of installing a fully working rails stack with mysql support and rmagick on Ubuntu.&lt;/p&gt;


	&lt;ol&gt;
	&lt;li&gt;Roughly its this
sudo apt-get install ruby-1.8 rubygems build-essential ruby-rmagick ruby-mysql
sugo gem install rails mongrel merb -y&lt;/li&gt;
	&lt;/ol&gt;


	&lt;p&gt;Done! That&amp;#8217;s &lt;strong&gt;it&lt;/strong&gt;. Nothing funky. No need to go read tons of blogs. And there is no excuse for Apple. This should be easy. I&amp;#8217;m currently at 12 hours of trying to get a basic Rails app running&amp;#8230; and I&amp;#8217;m not really that close. I&amp;#8217;ve had a fully day wasted now and I&amp;#8217;m not really close.&lt;/p&gt;


	&lt;p&gt;This is not ok. There is no excuse for not having easy package management installed by default. Its fucking 2007. I&amp;#8217;m not very happy right now. This OS is great for designers and noobs, but apparently Apple could give a shit about advanced users. I&amp;#8217;m not saying there aren&amp;#8217;t good things. There are&amp;#8230;. but this is far from even being a decent Unix-style development environment.&lt;/p&gt;


	&lt;p&gt;Steve, take 2 minutes from your day of adding Wizzes, WIshes, Zooms, Fades, Plinks, Boinks, Slides and etc&amp;#8230;. and put the 1 week of developer-time it would take to make this a solid environment. As a shareholder&amp;#8230; please!&lt;/p&gt;</content>
  </entry>
  <entry xml:base="/">
    <author>
      <name>Hampton Catlin</name>
    </author>
    <title>Merb Article</title>
    <id>http://www.hamptoncatlin.com/posts/merb-article</id>
    <published>2007-12-03 20:02:00 -0800</published>
    <updated>2007-12-03 20:06:20 -0800</updated>
    <link href="http://www.hamptoncatlin.com/posts/merb-article" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;I wrote a pretty in-depth overview of Merb over at Rethink for anyone whose interested.&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://rethink.unspace.ca/2007/12/3/merb-tastic"&gt;Read it!&lt;/a&gt;&lt;/p&gt;</content>
  </entry>
  <entry xml:base="/">
    <author>
      <name>Hampton Catlin</name>
    </author>
    <title>Attachment_fu Gotchas</title>
    <id>http://www.hamptoncatlin.com/posts/attachment_fu-gotchas</id>
    <published>2007-11-26 14:52:00 -0800</published>
    <updated>2007-11-26 15:22:56 -0800</updated>
    <link href="http://www.hamptoncatlin.com/posts/attachment_fu-gotchas" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;I&amp;#8217;ve been struggling a bit with some problems uploading files with attachment_fu recently. I&amp;#8217;m going to go through the common problems I&amp;#8217;ve had. Attachment_fu is the best thing I&amp;#8217;ve seen out there for upload handling. And, hopefully mentioning these gotchas will save some people some time.&lt;/p&gt;


	&lt;p&gt;1) Mongrel&amp;#8217;s Dying with S3&lt;/p&gt;


	&lt;p&gt;This is really a problem with the &lt;span class="caps"&gt;AWS&lt;/span&gt;-S3 library. The problem is that the library uses persistent connections by default, and the last thing that Mongrel wants to deal with is keeping a persistent connection open to an outside service while its trying to serve unrelated web requests. My current theory is that the multi-threading + Mutex means that the persistent connection is ignored and times out, then when the app comes back to try and say hi to the connection, it just waits forever. This is totally unproven, but its the theory I&amp;#8217;ve got in my brain.&lt;/p&gt;


	&lt;p&gt;Luckily, this is easy to fix! Just add this to your config/amazon_s3.yml&lt;/p&gt;


	&lt;pre&gt;&lt;code&gt;development:
  bucket_name: mybucket_develompent
  access_key_id: 1RX1190JQBAV
  secret_access_key: RN2nBEFhYu8k5S3kVXtM
  persistent: false&lt;/code&gt;&lt;/pre&gt;


	&lt;p&gt;Obviously, do that with all three types of connections. Dead mongrels, no more! But, we aren&amp;#8217;t done with S3&amp;#8230;.&lt;/p&gt;


	&lt;p&gt;2)  EofError with S3&lt;/p&gt;


	&lt;p&gt;This generally happens when you have thumbnails. Why does it happen? Because it takes too long for Rails to have multiple &lt;span class="caps"&gt;POST&lt;/span&gt; conversations with S3 and something weird happens with the connections. Yes, even if you turn off persistent connections. This is usually ok for single-file uploads to S3&amp;#8230; aka, no thumbnails. It is really unfortunate that we can&amp;#8217;t use Thread.new in Rails with any consistency because doing the uploads to S3 &lt;strong&gt;after&lt;/strong&gt; the request is finished would be really fantastic and would nip this problem in the butt.&lt;/p&gt;


	&lt;p&gt;The only known solution is to switch to file_system. That, or use Merb which is thread safe.&lt;/p&gt;


	&lt;p&gt;3) Good Attachments Validate as not having a Size&lt;/p&gt;


	&lt;p&gt;I&amp;#8217;m still a bit unclear about what is going on with this one. It seems to be inconsistent and mostly has to do with if the upload object given by the OS is a StringIO or a TempFile. The way to tell this one apart from #4 is that when you use debugger&amp;#8230; the #size attribute isn&amp;#8217;t set at all. You&amp;#8217;ll get a &amp;#8220;Size is not included in the list&amp;#8221; with a #save! .&lt;/p&gt;


	&lt;p&gt;Add this line to your attachment_fu.rb file in the plugin&amp;#8230;&lt;/p&gt;


	&lt;pre&gt;&lt;code&gt;def uploaded_data=(file_data)
  return nil if file_data.nil? || file_data.size == 0
  self.size = file_data.size # &amp;lt;&lt;del&gt;--&lt;/del&gt;-&lt;del&gt;--&lt;/del&gt; THIS LINE 
  self.content_type = file_data.content_type
  self.filename     = file_data.original_filename if respond_to?(:filename)
  if file_data.is_a?(StringIO)
    file_data.rewind
    self.temp_data = file_data.read
  else
    self.temp_path = file_data.path
  end
end&lt;/code&gt;&lt;/pre&gt;


	&lt;p&gt;That should solve that!&lt;/p&gt;


	&lt;p&gt;4) Larger files &lt;span class="caps"&gt;FAIL&lt;/span&gt;!&lt;/p&gt;


	&lt;p&gt;Ok, this one is a gotcha and not at all a bug. In fact, I&amp;#8217;m kind of embarrassed that I ever had this problem. Let&amp;#8217;s say you have a general file upload area. Not just images&amp;#8230; you want attachments put onto something on your site. And let&amp;#8217;s also assume that this is a protected section. So, you build your attachment_fu things to look like this.&lt;/p&gt;


	&lt;pre&gt;&lt;code&gt;has_attachment :storage =&amp;gt; :file_system&lt;/code&gt;&lt;/pre&gt;


	&lt;p&gt;And that&amp;#8217;s all you do because you don&amp;#8217;t care about type, size, etc. &lt;span class="caps"&gt;GOTCHA&lt;/span&gt;! You may not have specified a max_size, but attachment_fu did! It sets the default max_size to 1.megabyte. &lt;span class="caps"&gt;DOH&lt;/span&gt;! So, the error you get is the same one as above&amp;#8230; &amp;#8220;Size is not included in the list&amp;#8221; That error message could be a touch more useful, &lt;span class="caps"&gt;IMHO&lt;/span&gt;. However, this is also an easy fix&amp;#8230;&lt;/p&gt;


	&lt;pre&gt;&lt;code&gt;has_attachment :storage =&amp;gt; :file_system,
                   :max_size =&amp;gt; 100.megabytes  # Since this is admin, and we don't care&lt;/code&gt;&lt;/pre&gt;


	&lt;p&gt;So, there you go. Hopefully these helped some of you out there who have been using this non-released software. I guess that&amp;#8217;s what we get for living on the dangerous side!&lt;/p&gt;</content>
  </entry>
  <entry xml:base="/">
    <author>
      <name>Hampton Catlin</name>
    </author>
    <title>Bad Ruby</title>
    <id>http://www.hamptoncatlin.com/posts/bad-ruby</id>
    <published>2007-11-13 19:37:00 -0800</published>
    <updated>2007-11-13 19:37:41 -0800</updated>
    <link href="http://www.hamptoncatlin.com/posts/bad-ruby" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;This is never acceptable in Ruby. Ever.&lt;/p&gt;


	&lt;pre&gt;&lt;code&gt;$_variable2 = String.new("development")&lt;/code&gt;&lt;/pre&gt;</content>
  </entry>
  <entry xml:base="/">
    <author>
      <name>Hampton Catlin</name>
    </author>
    <title>make_resourceful 0.2 released</title>
    <id>http://www.hamptoncatlin.com/posts/make_resourceful-0-2-released</id>
    <published>2007-11-10 18:49:00 -0800</published>
    <updated>2007-11-10 19:51:19 -0800</updated>
    <link href="http://www.hamptoncatlin.com/posts/make_resourceful-0-2-released" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;So, we just released proper &lt;span class="caps"&gt;API&lt;/span&gt; documentation and a brand new version of make_resourceful.&lt;/p&gt;


	&lt;p&gt;I&amp;#8217;ve done a terrible job of marketing make_resourceful mostly because I&amp;#8217;ve been so busy recently (using m_r on stuff!).&lt;/p&gt;


	&lt;p&gt;Luckily, Nathan is saving my ass as usual: &lt;a href="http://nex-3.com/posts/54-make_resourceful-0-2-0"&gt;Official Release Notice&lt;/a&gt;.&lt;/p&gt;</content>
  </entry>
  <entry xml:base="/">
    <author>
      <name>Hampton Catlin</name>
    </author>
    <title>ZipLocal Launched!</title>
    <id>http://www.hamptoncatlin.com/posts/ziplocal-launched</id>
    <published>2007-11-01 16:28:00 -0700</published>
    <updated>2007-11-01 16:31:27 -0700</updated>
    <link href="http://www.hamptoncatlin.com/posts/ziplocal-launched" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;I&amp;#8217;ve covered this a few times on this blog, but I&amp;#8217;m extremely proud to announce that all of these months of hard-work have finally paid off. &lt;a href="http://www.ziplocal.com/"&gt;Ziplocal.com has launched!&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;Today there are people out on the streets in Toronto handing out stuff about Ziplocal. If you see them, think of me!&lt;/p&gt;


	&lt;p&gt;We have a lot more stuff we are starting on immediately for the site and I can&amp;#8217;t wait to get to blog about all the new features and some of the subtle design decisions that are unique to the site.&lt;/p&gt;


	&lt;p&gt;Also, this is &lt;span class="caps"&gt;AFAIK&lt;/span&gt; the largest deployment of Haml and Sass and make_resourceful ever!&lt;/p&gt;</content>
  </entry>
  <entry xml:base="/">
    <author>
      <name>Hampton Catlin</name>
    </author>
    <title>Google Maps and Family History</title>
    <id>http://www.hamptoncatlin.com/posts/google-maps-and-family-history</id>
    <published>2007-10-28 14:36:00 -0700</published>
    <updated>2007-10-28 14:37:08 -0700</updated>
    <link href="http://www.hamptoncatlin.com/posts/google-maps-and-family-history" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;I like that as I am in my mid-20s, I can already tell what obsessions and hobbies I&amp;#8217;ll have even later in life. I think this happens to everyone. For instance, fellow Unspacer and Rubyist Mike Ferrier, has recently been entertain by an ornithology book (bird watching). I told him that his fate is set in the stars, he&amp;#8217;s going to be a bird watcher when he retires.&lt;/p&gt;


	&lt;p&gt;For me, I think its definitely family history that enthralls me. When I was younger, it meant very little to me, but as I&amp;#8217;ve gotten to my adult life, I am absolutely interested in family photos and facts and information. I feel much more connected to the people before me. It was the realization that I &lt;strong&gt;was&lt;/strong&gt; those people. It wasn&amp;#8217;t me, but parts of the same energy-chain-reaction that created me has lived all over the world. It is like having past lives&amp;#8230; but without all the mumbo jumbo!&lt;/p&gt;


	&lt;p&gt;Anyhow, the point of this post is that someone on one of the far wings of the family tree (connected by the Saylor family) used Google Maps satellite photos to send out an image of a family graveyard he found! The graveyard is circled in blue and the nearby family chapel they had is in blue.&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://hamptoncatlin.com/assets/2007/10/28/4_beaver_dam_close_scale.jpg" /&gt;
&lt;div style="clear: both;"&gt;&lt;/div&gt;&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://maps.google.com/?ie=UTF8&amp;#38;t=k&amp;#38;om=1&amp;#38;ll=39.549556,-77.208824&amp;#38;spn=0.006535,0.014505&amp;#38;z=16"&gt;Full link&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;How weird is it that in modern times my &lt;strong&gt;grandmother&lt;/strong&gt; is utilizing Google Maps to do family history research and email forwarding lets people all over the world know a bit about their past. That&amp;#8217;s really cool stuff.&lt;/p&gt;</content>
  </entry>
  <entry xml:base="/">
    <author>
      <name>Hampton Catlin</name>
    </author>
    <title>Project Mention on Access Blog</title>
    <id>http://www.hamptoncatlin.com/posts/project-mention-on-access-blog</id>
    <published>2007-10-25 17:08:00 -0700</published>
    <updated>2007-10-25 17:10:29 -0700</updated>
    <link href="http://www.hamptoncatlin.com/posts/project-mention-on-access-blog" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;My old business partner Ryan McMinn is now at Microsoft and wrote an &amp;#8220;Access Blog&amp;#8221; post about a project we did together that integrated with Access. Never thought I&amp;#8217;d see a project I built references on an &lt;span class="caps"&gt;MSDN&lt;/span&gt; blog!&lt;/p&gt;


	&lt;p&gt;Is this the first time Rails is mentioned on an &lt;span class="caps"&gt;MSDN&lt;/span&gt; blog?&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://blogs.msdn.com/access/archive/2007/10/25/access-ruby-on-rails-software-plus-services.aspx#comments"&gt;Read&lt;/a&gt; it!&lt;/p&gt;</content>
  </entry>
  <entry xml:base="/">
    <author>
      <name>Hampton Catlin</name>
    </author>
    <title>Stocks: VM + ZIP</title>
    <id>http://www.hamptoncatlin.com/posts/stocks-vm-zip</id>
    <published>2007-10-24 20:48:00 -0700</published>
    <updated>2007-10-24 21:19:10 -0700</updated>
    <link href="http://www.hamptoncatlin.com/posts/stocks-vm-zip" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;I don&amp;#8217;t know if people know this about me, but one of my hobbies is trading stocks. I&amp;#8217;m a computer nerd whose a closet business nerd. Anyhow, I&amp;#8217;ve recently been pretty active in my portfolio. I bought Apple (AAPL) in 2004 and put most of my (tiny) assets into it. At the time, I was interested in buying a Mac and so I thought that the price was a little low. This is the chart from when I &lt;a href="http://finance.google.com/finance?chdnp=1&amp;#38;chdd=1&amp;#38;chds=1&amp;#38;chdv=1&amp;#38;chvs=maximized&amp;#38;chdeh=0&amp;#38;chfdeh=0&amp;#38;chdet=1193259114000&amp;#38;chddm=340079&amp;#38;q=NASDAQ:AAPL"&gt;bought to when I sold.&lt;/a&gt; Its not that I think Apple&amp;#8217;s in trouble, I just think the price has &amp;#8220;adjusted&amp;#8221;. I mean, how much more positive wall street buzz do they need? I&amp;#8217;m looking for my next undervalued stock.&lt;/p&gt;


	&lt;p&gt;So, my tiny assets turned into bigger assets. And now I&amp;#8217;ve put a lot into two companies. First, is one that I&amp;#8217;ve been working for&amp;#8230; Ziplocal. The stock has had a &lt;a href="http://finance.google.com/finance?q=CVE%3AZIP"&gt;rough go,&lt;/a&gt; but I&amp;#8217;m seeing the makings of a huge turn around for them and I&amp;#8217;m just honored to be involved in it. So, I&amp;#8217;ve decided to put my money where my mouth is and get into that one pretty strong. I mean, at this point, its hard to go lower. And, I really have a lot of faith in their management and the team they have together.&lt;/p&gt;


	&lt;p&gt;The second stock I&amp;#8217;ve put in on strong is &lt;a href="http://finance.google.com/finance?q=VM"&gt;Virgin Mobile &lt;span class="caps"&gt;USA&lt;/span&gt;&lt;/a&gt; which &lt;span class="caps"&gt;IPO&lt;/span&gt;&amp;#8217;d a few weeks ago. The main reason I bought into it is that several people I know use the service and would recommend it strongly. Their branding is young and they are being very aggressive in a market space that is already (admittedly) pretty crowded. There are a couple things I like. First off, Virgin Group companies tend to have very strong financial pasts. That is to say companies occasionally explode because of bad financial management (regardless of the functioning of sales). I put Virgin companies very low on this list. Branson has a lot of smart people around him that keep their eyes on every number for his vast empire of &lt;strong&gt;separate&lt;/strong&gt; companies. And each of those companies have private and public investors. That means lots of eyes on the books. Secondly, they are willing to take risks with new idea, which I like.&lt;/p&gt;


	&lt;p&gt;Virgin Mobile just announced that they are going to let users upload wallpapers and ringtones to the online store and &lt;strong&gt;make money from them&lt;/strong&gt;. That is, if your a 20 year old in art school with a Virgin phone, you can make $0.10US per download of anything you put online for sale with your handset. That&amp;#8217;s an amazingly powerful idea! Also, they announced that they are going to allow people to list themselves in phone books and listing services. They are speaking to my generation with that. I don&amp;#8217;t &lt;strong&gt;own&lt;/strong&gt; a home phone. And, I have lots of minutes. So, I&amp;#8217;d much rather have my number listed for someone to find. Cell phones are no longer secret exotic numbers. Its the number that every service, person, and group I know has on record for me. I&amp;#8217;m not saying everyone is going to do it (or that they should), but I get excited that Virgin Mobile is thinking outside the tradition box for a cellphone company.&lt;/p&gt;


	&lt;p&gt;The last thing I really like about them is their overall pricing model. Their entire system is automated and easy to use. Their entire network is set-price for them because its really owned by another operator (or Bell in Canada) and they pay per minute and you pay per-minute. They also don&amp;#8217;t keep stores. That means, their sunk-costs per customer are just the price of the phone-discount. Otherwise, every customer that goes past their profit-line (about 6 months of use) is nearly pure-profit on a per-unit basis. That&amp;#8217;s a fantastic business proposition in my book.&lt;/p&gt;


	&lt;p&gt;In the computer world, we&amp;#8217;d say that they are amazingly &amp;#8220;scalable.&amp;#8221;&lt;/p&gt;


	&lt;p&gt;Anyhow, I haven&amp;#8217;t really posted about this before. And its a bit weird to post about my stock purchases. But, its a topic I get really excited about and I wanted to share with my readers.&lt;/p&gt;</content>
  </entry>
  <entry xml:base="/">
    <author>
      <name>Hampton Catlin</name>
    </author>
    <title>OMG FLICKR!</title>
    <id>http://www.hamptoncatlin.com/posts/omg-flickr</id>
    <published>2007-10-22 03:29:00 -0700</published>
    <updated>2007-10-22 03:32:01 -0700</updated>
    <link href="http://www.hamptoncatlin.com/posts/omg-flickr" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;Is there NO decent Flickr implementation in Ruby?&lt;/p&gt;


	&lt;p&gt;I mean, thanks &amp;#8216;flickr&amp;#8217; gem, but &lt;span class="caps"&gt;YOU DON&lt;/span&gt;&amp;#8217;T &lt;span class="caps"&gt;WORK ANYMORE&lt;/span&gt;.&lt;/p&gt;


	&lt;p&gt;Thanks, &amp;#8216;rflickr&amp;#8217; for being just as confusing as the bare-metal (and shitty) Flickr &lt;span class="caps"&gt;API&lt;/span&gt;. You are entirely undocumented and you require googling a tutorial &lt;span class="caps"&gt;JUST TO GET WORKING&lt;/span&gt;.&lt;/p&gt;


	&lt;p&gt;Screw off.&lt;/p&gt;


	&lt;p&gt;/me walks away to think about how to make this better.&lt;/p&gt;</content>
  </entry>
  <entry xml:base="/">
    <author>
      <name>Hampton Catlin</name>
    </author>
    <title>Wilco - Radio Cure</title>
    <id>http://www.hamptoncatlin.com/posts/wilco-radio-cure</id>
    <published>2007-10-20 18:29:00 -0700</published>
    <updated>2007-10-20 18:40:38 -0700</updated>
    <link href="http://www.hamptoncatlin.com/posts/wilco-radio-cure" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;This is a music video that I created about 4 years ago on a bored Saturday night with my friend, the infamous Earthbound Kid (aka, Leader of the Dead Hobos, aka, Karl-kun, aka, Box Carl). I thought the complete version of this video was long-gone due to hard drive crashes, but apparently EbK uploaded it to YouTube.&lt;/p&gt;


&lt;object width="425" height="350"&gt;&lt;param name="movie" value="http://www.youtube.com/v/MBRdROpA3Ig"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/MBRdROpA3Ig" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"&gt;&lt;/embed&gt;&lt;/object&gt;

	&lt;p&gt;Please spread around if you like it! If it sucks, forget you ever saw it.&lt;/p&gt;</content>
  </entry>
  <entry xml:base="/">
    <author>
      <name>Hampton Catlin</name>
    </author>
    <title>pHAML - Smarty Haml</title>
    <id>http://www.hamptoncatlin.com/posts/phaml-smarty-haml</id>
    <published>2007-10-20 15:56:00 -0700</published>
    <updated>2007-10-20 16:07:46 -0700</updated>
    <link href="http://www.hamptoncatlin.com/posts/phaml-smarty-haml" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;Even though its capitalized correctly as &amp;#8220;Haml&amp;#8221;, here is another attempt at a &lt;span class="caps"&gt;PHP&lt;/span&gt; templating language inspired-by-Haml.&lt;/p&gt;


	&lt;p&gt;Looks pretty interesting, actually. Though, I haven&amp;#8217;t done &lt;span class="caps"&gt;PHP&lt;/span&gt; in a long time and haven&amp;#8217;t gotten a chance to look at it closely. Apparently it uses the Smarty system to do most of the rendering dirty work, which is pretty smart. We were considering early on compiling into &lt;span class="caps"&gt;ERB&lt;/span&gt;, but in the end shied away from it. Anyhow, pHAML has some interesting stuff like a debug-mode that is started by the ? character on a line. I&amp;#8217;d love to read a tutorial on how it works, but right now, I don&amp;#8217;t have the time to dive back into &lt;span class="caps"&gt;PHP&lt;/span&gt;. ;)&lt;/p&gt;


	&lt;p&gt;You can learn about pHAML here: &lt;a href="http://i.cloudi.us/phaml/documentation"&gt;http://i.cloudi.us/phaml/documentation&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;And, don&amp;#8217;t forget the original phpHaml (for cakePHP and Symphony): &lt;a href="http://phphaml.sourceforge.net/"&gt;http://phphaml.sourceforge.net/&lt;/a&gt;&lt;/p&gt;</content>
  </entry>
  <entry xml:base="/">
    <author>
      <name>Hampton Catlin</name>
    </author>
    <title>SimulSnack (TM)</title>
    <id>http://www.hamptoncatlin.com/posts/simulsnack-tm</id>
    <published>2007-10-18 04:54:00 -0700</published>
    <updated>2007-10-18 05:20:53 -0700</updated>
    <link href="http://www.hamptoncatlin.com/posts/simulsnack-tm" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;&lt;img src="http://hamptoncatlin.com/assets/2007/10/18/kraftdinner-small.jpg" style="float: left; padding: 5px;"/&gt;So, tonight both Mike Ferrier and myself couldn&amp;#8217;t sleep. Lots of crazy stuff going on today, so I couldn&amp;#8217;t get my mind calmed down.&lt;/p&gt;


	&lt;p&gt;So, we decided to do the worlds first Internet-enabled SimulSnack. We both prepared Kraft Dinner &lt;strong&gt;literally&lt;/strong&gt; 3,400 meters away&amp;#8230;. &lt;strong&gt;while&lt;/strong&gt; chatting. Now, that&amp;#8217;s the future!&lt;/p&gt;


	&lt;p&gt;I think some people might not understand the full impact of what has occurred this evening. But, you see&amp;#8230;. using the Internet, we both enabled our creation of Kraft Dinner &lt;strong&gt;at the same time&lt;/strong&gt; while sharing our experience! Mankind shall remember the SimulSnack for many, many eons.&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;sigh&lt;/strong&gt;&lt;/p&gt;</content>
  </entry>
  <entry xml:base="/">
    <author>
      <name>Hampton Catlin</name>
    </author>
    <title>Optical Illusions</title>
    <id>http://www.hamptoncatlin.com/posts/optical-illusions</id>
    <published>2007-10-14 14:32:00 -0700</published>
    <updated>2007-10-14 14:52:11 -0700</updated>
    <link href="http://www.hamptoncatlin.com/posts/optical-illusions" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;I&amp;#8217;m not going to dress this up with some sort of statement on design or anything (I&amp;#8217;m looking at you &lt;span class="caps"&gt;SVN&lt;/span&gt; blog). I just thought this was really cool.&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://hamptoncatlin.com/assets/2007/10/14/image001.jpg" /&gt;&lt;/p&gt;


&lt;div style="clear: both"&gt;&lt;/div&gt;

	&lt;p&gt;Angry on the right, calm on the left. Now, move back from your computer. Yeah! Seriously!&lt;/p&gt;</content>
  </entry>
  <entry xml:base="/">
    <author>
      <name>Hampton Catlin</name>
    </author>
    <title>Netbeans Support</title>
    <id>http://www.hamptoncatlin.com/posts/netbeans-support</id>
    <published>2007-10-13 17:26:00 -0700</published>
    <updated>2007-10-13 17:29:23 -0700</updated>
    <link href="http://www.hamptoncatlin.com/posts/netbeans-support" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;Dan Grigsby let me know that there is now Haml and Sass support written for Netbeans. &lt;a href="http://mediacast.sun.com/details.jsp?id=3759"&gt;Check it out.&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;That brings the editors supported to&amp;#8230;.&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;Textmate (official)&lt;/li&gt;
		&lt;li&gt;Netbeans (semi-official)&lt;/li&gt;
		&lt;li&gt;gEdit&lt;/li&gt;
		&lt;li&gt;jEdit&lt;/li&gt;
		&lt;li&gt;Aptana/RadRails/Eclipse&lt;/li&gt;
		&lt;li&gt;Emacs&lt;/li&gt;
		&lt;li&gt;vim&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;Who are we missing?&lt;/p&gt;</content>
  </entry>
  <entry xml:base="/">
    <author>
      <name>Hampton Catlin</name>
    </author>
    <title>Readership and my Rails Book</title>
    <id>http://www.hamptoncatlin.com/posts/readership-and-publishing</id>
    <published>2007-10-13 17:02:00 -0700</published>
    <updated>2007-10-13 17:18:23 -0700</updated>
    <link href="http://www.hamptoncatlin.com/posts/readership-and-publishing" rel="alternate" type="text/html"/>
    <content type="html">&lt;div style="float: left; padding: 10px;"&gt;&lt;iframe src="http://rcm.amazon.com/e/cm?t=justasloud-20&amp;#38;o=1&amp;#38;p=8&amp;#38;l=as1&amp;#38;asins=1590596862&amp;#38;fc1=000000&amp;#38;IS2=1&amp;#38;lt1=_blank&amp;#38;lc1=0000FF&amp;#38;bc1=000000&amp;#38;bg1=FFFFFF&amp;#38;f=ifr&amp;#38;nou=1" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"&gt;&lt;/iframe&gt;&lt;/div&gt;My readership is relatively low. About 1,140 a month (no rss on that). I think its mostly because I rarely post and I cover semi-random topics (books, food, technology, etc). However, the really interesting part about that number, is that in my quest to find my next boyfriend, I&amp;#8217;ve met &lt;span class="caps"&gt;TWO&lt;/span&gt; people online in Toronto who knew of me before we met through personals. And, they both have read my blog before.

	&lt;p&gt;That 1,140 isn&amp;#8217;t a ton, but apparently they really want dates with me.&lt;/p&gt;


	&lt;p&gt;Speaking of reading, Beginning Rails: From Novice to Professional just started its second printing! Looks like we&amp;#8217;ve got a hit. The best part is that in the new printing, I&amp;#8217;m properly credited this time as &amp;#8220;Contributing Author&amp;#8221; instead of &amp;#8220;Technical Reviewer&amp;#8221; which the first printing has. So, if you own the first printing, then hold on to it. It might one day be worth tens of dollars. I can dream, right?&lt;/p&gt;


	&lt;p&gt;But, you should buy another copy too. Jeff worked hard collecting &lt;a href="http://beginningrails.com/errata.html"&gt;errata&lt;/a&gt; from our readers and I believe almost all of it is fixed in the second printing. Its nearly a &amp;#8220;second edition&amp;#8221;. So, &lt;span class="caps"&gt;BUY BUY BUY&lt;/span&gt;!&lt;/p&gt;</content>
  </entry>
  <entry xml:base="/">
    <author>
      <name>Hampton Catlin</name>
    </author>
    <title>Sass Imitator?</title>
    <id>http://www.hamptoncatlin.com/posts/sass-imitator</id>
    <published>2007-10-09 02:52:00 -0700</published>
    <updated>2007-10-09 02:59:06 -0700</updated>
    <link href="http://www.hamptoncatlin.com/posts/sass-imitator" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;So, as my astute readers know. Nathan and I created a language called Sass that is a hightower language for &lt;span class="caps"&gt;CSS&lt;/span&gt;. (A &amp;#8220;hightower language&amp;#8221; is a high-level language that can be compiled into a more basic language.)&lt;/p&gt;


	&lt;p&gt;Someone (who seemingly doesn&amp;#8217;t know of Sass) created a Python-based &lt;span class="caps"&gt;CSS&lt;/span&gt; language called CleverCSS. Its very, very similar to Sass, but has some cool features in it like functions. I&amp;#8217;m not really sure I want Sass to have functions, but I&amp;#8217;m really glad to see other people are having similar thoughts to mine.&lt;/p&gt;


	&lt;p&gt;In fact, CleverCSS &lt;strong&gt;is&lt;/strong&gt; 99% compatible with Sass. Just a few small difference. And, luckily I can claim to be ahead of them by about 6 months of release-time.&lt;/p&gt;


	&lt;p&gt;Anyhow, if you&amp;#8217;re a Pythonist, then go check it out! Imitation is the highest form of flattery.&lt;/p&gt;</content>
  </entry>
  <entry xml:base="/">
    <author>
      <name>Hampton Catlin</name>
    </author>
    <title>Eggplant Reborn: Veritas</title>
    <id>http://www.hamptoncatlin.com/posts/eggplant-reborn-veritas</id>
    <published>2007-10-04 16:10:00 -0700</published>
    <updated>2007-10-04 16:12:33 -0700</updated>
    <link href="http://www.hamptoncatlin.com/posts/eggplant-reborn-veritas" rel="alternate" type="text/html"/>
    <content type="html">&lt;p&gt;I keep meaning to write an uber-review about this place. But, the restaurant next to my building used to be called Eggplant. I thought the food was &lt;strong&gt;ok&lt;/strong&gt;. Now, they re-did their menu, and its amazing! The plates are about $20 each, with $40-50 bottles of wine. Try the Onion Soup, its the most amazing thing ever.&lt;/p&gt;


	&lt;p&gt;Anyhow, give this small place a chance! It unfortunately empty most nights. Let&amp;#8217;s help keep a good place open. Go spend your money there!&lt;/p&gt;


	&lt;p&gt;Veritas
236 King St E
Toronto, &lt;span class="caps"&gt;ON M5A1K1&lt;/span&gt;&lt;/p&gt;</content>
  </entry>
</feed>
