Monday, November 12, 2007

Launch Day

Launch at Oracle Open World

So a 24 hour period to be forgotten. I had this troubling bug, that I could not reproduce. Sometimes it would come up and sometimes it would not. It was Saturday night and I knew that I would be traveling all day Sunday. So I staged what I had and all I needed to do was to trip the DNS switch and we would be live.

I started the journey relaxing, reading this months Wired magazine. Then it came to me a possible cause of events that could reproduce the bug. I fired up my laptop and low and behold I could reproduce it. I knew that I had to be super careful, you know a last minute change. I spent the rest of the flight looking as ways of fixing it without actually changing any code.

I got to San Francisco with a plan but I had many, many things to do that night. Roughly they were

•Interview the street marketing team
•Pick up all the stuff (T-Shirts, flyers, business cards) for the give aways
•Fix the bug

I’ll talk about the marketing events in the next blog entry. So, I fixed the bug easily but then I was faced with a dilemma. So I stage it from my Laptop or do I push from the build server? Neither seem any easy choice. Was my laptop 100% setup with all the config information to push the live image, could I make the changes remotely and push on the build server?

After a couple of attempts (aka failures) I pushed the image from my laptop. It took 15 minutes or so and at last I thought I could take it easy. But I was wrong...

So what was the issue? By 1am (which by body was really saying 4am) I could not find a good reason why the code was failing to run when I ran it from my laptop on the hosted site at Amazon. I figured sleep would help.

4am I wake up, can’t sleep any longer. I try running it from a remote machine and it appears to work. Ok, then its an issue with my laptop. I add a few extra debug statement and finally narrow it down to an extra Firefox plug-in on my Laptop. It was failing when I upload a new archive. The archive got there Ok and was processed Ok, but an error was returned to the web client. Why was this different? Well is the only form in the Application that was doing an HTTP PUT, since the rest of the Application is Ajax then there were no other PUTs and GETs. The culprit? The Snap shots plug-in was mucking with the return of the HTTP GET.... grrrrrrrr.

So I thought that was the end. Then came my nightmare from DNS street. I switch the DNS entries as I had practiced. Not the best way to do this, but the easiest way... so I thought. As you know if takes time for DNS to propagate, but its pretty quick 5-10 minutes. So I switched at 8.45am. By 9am my browser on my Laptop was still pointing to the old static web page. By 9.15am it still was.... panic!

I tried my build server, and thank god it was pointing to the correct new hosted page. Figured it was a DNS propagation delay. I continue to check all day to find that my Laptop was still pointing at the old page. Holly shit I thought. Then I connected to a VPN end-point that configured DNS and vola! I could now see the hosted web page. The problem? Using the Hotel’s ISP, there was no auto-config of DNS so my laptop was using the cached entry pointing to the old IP. Once the laptop connected to a DNS server, then it got the new IP and resolved correctly.

I think I aged 10 years in those 24 hours...

Saturday, November 10, 2007

Finishing Line?

Are we there yet?

So the finish line, or is it the start? I’m too tired to answer but happy to get to Oracle Open World and let Joe Public answer the question. So where’s the scores on the doors? Well the good news is this is what did get done! Some amazing work was done by Dave T to put this through its paces!

It feels impressive, but really does not fell like all the late nights, lattes and other nocturnal behavior. It came down to the following

•7116 lines of Java code the the UI
•9354 lines of Java code for the Server
•2382 lines of documentation

UI running on EC2
The UI look peachy, hear seen with the EC2 instances up and running... and I did get a lot done.


But alas, there is also the wall of shame, just those things that I just was never going to get to... I especially liked the “Zoro all todo’s” a callback to older coding days gone by!

Wall of shame

Like Apollo 13, here’s my final, final check list to remember to do before launch on Monday morning... don’t forget, rocket goes bang etc.


Wednesday, November 7, 2007

Private Beta Begins

So what are friends for after all...

So I roped up a bunch of esteemed friends and former colleagues to bash the site and give feedback... after 24 hours of battling a timing bug in the systems, that was just very painful to reproduce, I opened the gates. God help me.

Only 4 days, 1 hour and 39 minutes left to go...

Monday, November 5, 2007

The Marketing begins

Oracle Open World is just a week away...

shapeimage_1-4.jpgSo marketing is in full force. Thanks to the totally awesome folks at jakprints, we have T-Shirts, Flyers and Business cards on their way to San Francisco... as fine sample is above!

The craigslist ad have been posted for auditions for the gorilla marketing team. And boy what a Heinz-57 they turned out to be. All the way from a “well preserved hippie from the 60’s with beads” (his words) to Hooters girls and extra from the Exotic Erotic Ball. Auditioning will be hell! The attack plan still need to be finalized with what exactly they are going to do. But they have 1000 flyers to last 3 days!

Hosted drinks will be at the W Hotel on Wednesday 14th November at 5.30pm.

And finally, the marketing machine burst out their first email marketing campaign... curtsey of MaxBulk Mailer.

Sunday, September 23, 2007


Code complete


Ok, at 11.45pm on Sunday, September 23 2007 I can finally declare Alpha. I’m using the old Oracle notion of basically the code is written there are just one or two bugs to get out of the system. But as you can see, we have a real FlexClone savings report based on real data captures from a real Oracle database and uploaded and processed through the GUI. Shocking I know. What do I know about code?

Unfortunately there are some tasks still left to do, but in balance we are looking good! Time to get a good nights sleep!

Oustanding Tasks
Outstanding Tasks
Completed Tasks
Complete Tasks

Wednesday, September 12, 2007

Red Rock cafe is the place its at

Product demo's in Mountain View

shapeimage_1-2.jpgSo I met an old friend in Mountain View for dinner and a coffee. I have know Roger B for many years back from my Oracle days. He’s been V.P of Engineering or higher roles at various organizations (WebVan, Apple etc.). He’s doing something related to managing AdSense words at the moment for a startup in Mountain View at present (forgot who).

So after a very nice Thai dinner (thanks Roger) I gave him a demo in Red Rock coffee on Castro Street. So, he had little idea of what the product was about or what I had been doing, but after the initial “very nice ajax GUI” and I nights sleep I got the following back :

Value: Yes, but right now it's still a feature (with good ip). A question to ask would be that now that you can do this, what are you going to do with the information? If it is calling the snap api, I think that needs to become more front and center of the pitch.

Model: I think it makes sense. I think it's important to have some way of keeping track of where the db files go, so that you don't reindex files unnesserily and also that you can surprise a dba by having returns show up immediately if you've seen the file before. This could be another feature onto itself... Finally, not sure if you can scan files incrementally (i.e. only the delta). This could be done by caching the inodes of the blocks, and only scanning the new blocks. This assumes that blocks don't move on the filesystem of course.

Show: I think Michael would be a prime candidate...

Launch: Get a marketig guy to develop a pitch :-) Really, I think there are several ways to position this, and I think you should spar with someone and explore at least let's say 3 of them..


So this made me feel great. If what I had was complete BS then Roger would have called me on it. Funny enough, the guy at the next table listened in and gave some useful suggestions on “nio” and scanning large files. So kudos to Jon Frisby a.k.a MrJoy from for big ears! In case you want to “hang out” too, here’s the map for Red Rock Cafe.

View Larger Map

Amazon Web Service Startup Shindig

Amazon EC2 and S3

So I have been tracking Amazon Web Services for some time. So, being signed up I got an invite to a event at Stamford University (those who know me, I know, don’t get me started). It got me thinking about the whole decision about virtualization. It makes a great deal of sense for my application since it allows me to add compute resources as I needed them. However, I now have to manage (and learn) about a whole bunch of things I really don’t want to know about, from DNS to Cicso IOS... you get the picture.

So I thought wow, EC2 plus S3 makes a great deal of sense. Allows me to focus on my application and Amazon to manage the infra-structure for me. The cost is not that bad either, I reckon on about $20 / day to start with which is a lot less than building it myself. It also means that I get some location transparency and can manage on the road, which seem a big thing at the moment.

It just all means that the applications needs a little re-architecture!

Saturday, September 1, 2007

Launch day decided

D-Day is Oracle OPen World

So, there we have it a launch day is decided. Initially when the first lines of code were written on Memorial day weekend in 2007 the first date I came up with was 1st August 2007. Well writing today I guess I have missed that mark by some way. In reality this first date was not motivated by anything else than picking a date.

Given the work at hand is targeted initially at Oracle, it started to make a great deal of sense to launch in time for OOW. There will be 10,000 people attending and its a prime time for some gorilla marketing. Hey, I’m a bootstrap so I don’t have a penny to spend on this sort of stuff so lets make it as cheap as possible.

So, just 10 weeks left to get everything done. The task completed list has not grown :-(

Monday, August 27, 2007

Progress to date

One month later...

A depressing small number of tasks complete.jpg
So I could look at the picture above and get depressed, since this is the tasks completed list. Its 27 days since the last update and boy what a lot of code has been written and a hell of a lot of things learnt including, but not limited to,

  • JavaScript
  • CSS
  • Java 1.5 (gosh this generics stuff is great!)
  • GWT
  • Ruby and Ruby-on-rails
  • Fusion FreeCharts and Flash
Its been a big learning curve, especially the week elapsed thrown away after I abandoned Runy-on-rails. I’ll write up one day the pros and cons for both Ruby-on-rails and GWT, they are both have some pitfalls as some things I really like.

So I have been also at the same time setting up my virtualized environment. I now have a DNS server curtsey of a very, very old Dell laptop and VMWare is up and running on the new MacPro. FredBSD and Linux distributions seemed to be no problem. Solaris 10 was very painful.

FreeBSD running under OS-X

Firstly the DVD iso images would not install with VMWare, so I eventually went to the CD images. Made some progress but Solaris does not seem to be that happy or stable. I probably need to kill it and start again.

Wednesday, August 1, 2007

Let the games begin

Day #1 (Well not quite)

So here we are, commemorating the first breaths of You can read all about what the company is trying to do at these pages are here to document my trials and tribulations of trying to make this bootstrap work. Perhaps we can reflect on these days when we get past the 1000th employee...

So you can see my desk above. I used the wall behind as my work pad, making the most out of what 3M had to offer. This even extended to designing the whole UI on Post-It notes can you can see to the below!

Final UI design for the

The work pad wall is a great reminder of what is left to do, but sadly the wall to my right as I work is a sad reminder of what I have got done. Its kind-of-sad to look at right now as you can see.

Tasks completed.jpg

Finally, as you can see above, the first Production box arrived. I guess that was the trigger for the blog since it made it feel like the project was well, getting real. Anyway, I figured that I wanted to run this all virtualized since I had no clear idea what I was going to run out of first, web servers, MySQL slaves who knows. Figured if I had it all virtualized then I can just spin up some new containers as and when needed. So its a nice 8 core 3.0GHz MacPro... refurbished so it was a *steal*.

Configuring the first production server.jpg