My Second (Non-)Interview With Google

A year ago, I interviewed with Google. Google has been my ideal employer for a while, and I greatly appreciated the opportunity and enjoyed the experience.

Unfortunately, my algorithm skills were not quite up to par. I was told to work on them and interview again in a year. Based on my own analysis of how well I did with the questions, I walked away from the experience with the impression that I was very close to getting the job, but not quite up to snuff.

When I had applied to Google in the first place, my attitude was that I probably wasn't good enough for Google and I would send my resume along just to "see what happens." After coming within inches of the job, I realized that I actually was good enough for Google (or at least, almost good enough). Discovering I was almost good enough for my dream job gave me a great deal of motivation to improve and try again.

The year following this experience was All About Google. I left my job to take a new job that I felt would help make me a better candidate at Google. I began doing TopCoder sessions in my spare time. I took on some extra projects. I purchased and read a number of books to help me become a better engineer, and I focused specifically on books about algorithms.

Continue reading ‘My Second (Non-)Interview With Google’ »

Fixing WAYD (What Are You Doing) Plugin for Gnome Deskbar 2.20.0

I wanted to start experimenting with the Gnome Deskbar recently, particularly to make it easier to update my twitter feed. There are a number of deskbar plugins for twitter updating, though most of them are obsolete because of recent changes to Deskbar.

I had a lot of trouble getting WAYD (a twitter/pownce/jaiku updater) to work with Deskbar, so I figured I'd post to explain what I had to do to make it work.

Continue reading ‘Fixing WAYD (What Are You Doing) Plugin for Gnome Deskbar 2.20.0’ »

Blue Sage Realty Sucks: “I’m Rejecting Your Application. Get Out.”

This is a story about dealing with a Colorado realtor, Blue Sage Realty. Blue Sage Realty employees were rude and awful to deal with, and actually kicked us out of the leasing office when we asked for an in-writing solution to the problem of a nonfunctional air conditioner. In short, this story has been posted as a warning to anyone else: do not deal with Blue Sage realty. They will make you miserable.

Blue Sage Realty in Colorado Sucks

My fiancee and I were looking for houses to rent in Colorado and found one that looked like a good size in our price range, so we scheduled a viewing with Blue Sage Realty in Colorado, the management company for the property. When my fiancee and I showed up to the place to look around, the kitchen floor had just been cleaned, and the fridge had been pulled out of the kitchen, blocking the doorway. We were unable to see the kitchen or anything that could only be reached by walking through the kitchen, meaning we were unable to see the kitchen, the dining room, the garage, the porch, or the back yard.

Despite being unable to see half the house, we loved it, and sent an application (and a check) within an hour of leaving. Our credit was checked (we have great credit), our current landlord was called (we've been great tenants), and we were approved for the house within a day.

Johleen Belliston, a Blue Sage Realty employee, told us we were approved and we should come in to sign the lease. We explained that we had not yet seen the entire unit, and she warned us that if we didn't act fast that we might lose the house to another renter. Worried, we scheduled another showing as soon as we could.

Continue reading ‘Blue Sage Realty Sucks: “I’m Rejecting Your Application. Get Out.”’ »

Getting A Java Object’s Reference ID

When you take an object that has not defined a toString method, it prints out strings that look like these:

Object@3e25a5
Car@19821f

Many people believe that this is the memory location of the object, which isn't really accurate, as it's the reference ID. It is, however, a string that uniquely identifies the object in memory, so the misconception is understandable.

A friend recently asked me if there was any way to get that "address" on an object that has overridden toString. Once toString has been overridden, calling it will bypass this default implementation.

Since his internet search didn't pull anything up, I figured I'd blog about the answer to his conundrum in case anyone else is ever curious about it.

Continue reading ‘Getting A Java Object’s Reference ID’ »

Passed The Java Developer Exam!

Since my current job switched everything off of Java to Ruby and Rails a while back, I was concerned that my Java skills may get rusty. I had wanted to pursue another Sun Certification anyway, so I decided to take the Sun Certified Java Developer exam.

This exam was very different from the other two exams I had taken, in that I did not need to study or answer any questions. I did not have to go into a room and answer randomly chosen multiple choice questions. Instead, I was given a document that called for an application to be written with specific functionality, and I had to then write that application and submit it for review.

The test consisted of two parts: the first was writing the application and submitting. The second was taking an essay exam in which I had to explain my design choices. The second half was largely to ensure I did not pay someone else to write my project for me.

The project definition itself was very odd. It was essentially an application to manage hotel reservations. All of the projects required some kind of networking component between client and server (I used RMI), and all of them forced you to deal with some locking and concurrency issues.

What was particularly strange about my project was the input data file the stored hotel information. I'm not allowed to get into specifics, but essentially there were chunks of bytes that had to be converted into a short, followed by chunks that had to be converted into a long, followed by chunks that had to be converted into characters as part of a string, etc. Then the interfaces for the project provided passed all data as String arrays.

Continue reading ‘Passed The Java Developer Exam!’ »

My First Time In Vegas: Not a Fan

Recently I went on a road trip to California to visit some people, see some sights, and go to some theme parks. The trip was good, but that's not what this post was about. On the way back, I decided to spend the night in Las Vegas, which was the first time I was ever in Vegas.

Essentially, Las Vegas is a hellhole. I hated nearly everything about the city. Yeah the lights were nice and the buildings were large, but quite frankly if you're not into gambling (I'm not) there's not a helluva lot there to do. I probably should have gotten tickets to a show, but since I didn't, I basically just walked around on the strip for a while, walked into an occasional casino, and stuffed my face with food at a buffet.

Continue reading ‘My First Time In Vegas: Not a Fan’ »

Assert_tag With Two Siblings In Rails

I was recently dealing with a tricky problem while writing some rails tests.

I was writing assert_tags against xml returned by a rails web service in order to test that the xml contained specific values.

Here is a sample of the XML:

<elements>
  <element>
    <name>rod</name>
    <surname>hilton</surname>
    <value>123</value>
  </element>
  <element>
    <name>rod</name>
    <surname>smith</surname>
    <value>456</value>
  </element>
  <element>
    <name>granny</name>
    <surname>smith</surname>
    <value>789</value>
  </element>
</elements>

I want to write three assertions. If I write this in my test, it will work as expected:

assert_tag :tag=>"value", :content=>"789",
           :sibling=>{:tag=>"name", :content=>"granny"}

Basically what I'm doing is looking for a value element with the content of 789, and it has to have a sibling of a name element with the content "granny", which assures it will select the last "element" for the value.

The problem is, how do I write a test for the first xml element? If I look for a sibling with name "rod", it's possible that I'd select the second element. If look for a sibling with the surname "smith", it's possible that I'd select granny again. I need to be able to select the tag with TWO siblings.

The documentation is not straightforward about how to do this, but I figured out a method that works.

Essentially, the :sibling hash element takes the same kind of hash that assert_tag takes. Meaning, you can pass anything into :sibling that you would pass to assert_tag to begin with - including another sibling!

assert_tag :tag=>"value", :content=>"123",
           :sibling=>{
             :tag=>"name", :content=>"rod",
             :sibling=>{
               :tag=>"surname", :content=>"hilton"
             }
           }

Pretty insane, but I wasn't able to figure out a better way. I was hoping to pass an array of hashes to :sibling, but that didn't work as I had hoped.

If anyone has a better way than this, feel free to leave a comment. Otherwise, this seems to be a relatively readable way of selecting tags with 2 (or more) siblings in assertions.