Saturday, August 28, 2004

My Great Wife

Beth and I were watching an A&E presentation of the Agatha Christie story, "Evil Under The Sun." Early in the movie, Hercule Poirot tells Captain Hastings to stop "behaving like a Mother Chicken." I turned to Beth and said, "Maybe I should call you Mother Chicken" and she replied, "You do that and I'll kick you in the nuts."

Couldn't have found a better lady. Nope.

A REALLY REALLY BIG POND!

This was the end of my first week at Google.

Holy cow. What a first week. I'm totally excited. My head knows I'm in the right place, but my heart says I'm out of my league. Or it's my heart that's in the right place... something. Self consciousness aside, I'm also sure that working with so many brilliant people is going to make my work that much better. The guy who started the same day as I did has a PhD in CS from MIT, and the woman whom I am sharing a project with has a PhD in Physics. Where? I don't know. But the fact is that these are some brilliant folks.

In the meantime, I'm reading what I can, soaking up people, technology, people, environment*, and my current assignment, and at least I feel like I am starting to get something done.

I was tired of being a big fish in a small pond, and wanted to be a small fish in a big pond. You know that phrase, "Be careful what you wish for?" Heh.

* - By environment, I guess I meant Skittles.

Java Decompiler Progress

[FYI, I'm working on a Java decompiler]

OK it's not great, but it's definitely good.

I started with this:

import java.io.Serializable;

public abstract class TestClass implements Runnable, Serializable
{
    public static int _field1 = 123;
    public String _field2 = "Hello";
    protected double _field3 = 123.456;
    char _field4 = 'M';
    long _val = 12345L;

    public static void main(String[] args)
    {
        int firstParameter = 2;
        int secondParameter = 3;
        int k = 4;
        int l = 5;
        int m = 6;
        m = firstParameter + secondParameter + k + l + m;
    }
    public void ifTest()
    {
        if (_field1 == 12345)
        {
            _field3 = 1.01;
        }
        else
        {
            _field3 = 1.02;
        }
    }
}

and got this:

public abstract class TestClass extends java.lang.Object implements java.lang.Runnable, java.io.Serializable
{
    public static int _field1;
    public java.lang.String _field2;
    protected double _field3;
    char _field4;
    long _val;
    static void ()
    {
_field1 = 123;
return;
    }
    public TestClass()
    {
        TestClass this; // (0-31 0)]
"Hello"_field2 = this;
123.456_field3 = this;
77_field4 = this;
12345_val = this;
return;
    }
    public static void main(java.lang.String[] args)
    {
        int firstParameter; // (2-27 1)]
        int secondParameter; // (4-27 2)]
        int k; // (6-27 3)]
        int l; // (9-27 4)]
        int m; // (13-27 5)]
firstParameter = 2;
secondParameter = 3;
k = 4;
l = 5;
m = 6;
m = ((((firstParameter + secondParameter) + k) + l) + m);
return;
    }
    public void ifTest()
    {
        TestClass this; // (0-27 0)]
if (_field1 != 12345)
{
1.02_field3 = this;
return;

}
else
{
1.01_field3 = this;

}

    }
}


Except for the formatting and the glaringly obvious errors assigning to class attributes (101_field3 = this?), that's pretty damn good! Heck, the formatting is a non-issue, what with auto-formatters. I may just flush everything left and chain with a source-code formatter. With some smart stuff (optimizations), this will come together nicely.

(I haven't even tried to handle about while, for, switch, new, null, synchronized blocks or even nesting the ifs above, but hey.)

Tuesday, August 24, 2004

Can't sleep

I can't sleep. Partly because I just finished my first day at Google, and partly because I'm sick, probably from anxiety about starting at Google. Who knows which. I spent all day walking around saying that it was "their company" and so forth, and of course, it's now "my company" but I really walk around believing that I'm a victim of an elaborate prank. Part of it is probably shock of having a job at all, but part of it is that now I have to get up for a job. Granted I don't have to get up so early (the other person in my project arrives at the office around 11AM) but still...