My white macbook has been looking a bit grungy recently. I wonder if I should pull out the laptop paints again?
The powerbook in the picture was my computer in college... yes, I have a Studio Art degree to go with my CS degree. Notice that the apple logo on the cover was upside down- they were all the way up through the powerbook g3s.
Thursday, April 03, 2008
Tuesday, April 01, 2008
Amazon Web Services DCI - The Dog Computer Interface
This is Declan in early 2000 at Amazon.com:

It was an early version of the DCI - Dog Computer Interface. Here is a later version, from 2003 or so:

(notice integration with Official Amazon Door Desks in this one, enabling each web dev to have a Declan available under their work surface)
And today, the AWS group announces the official release of the DCI - The Dog Computer Interface!

It was an early version of the DCI - Dog Computer Interface. Here is a later version, from 2003 or so:

(notice integration with Official Amazon Door Desks in this one, enabling each web dev to have a Declan available under their work surface)
And today, the AWS group announces the official release of the DCI - The Dog Computer Interface!
Thursday, March 27, 2008
"adserver on master"
I found this slip of paper in my perl cookbook a few mornings ago. It's probably from spring 2001 or so, and it was written by Brian & left on my desk.

What is it? It's a small piece of the deployment system for the first amazon ad server. Brian and I worked on it together, along with a couple other amazonians, and we all sat on one hallway on the first floor of pacmed. I was probably out walking Declan when he pushed the latest ad server software and needed a sign off before it could go out, so he wrote this note and left it on my desk. Amazon basically has three levels of deployment. First there's a test server, where all the data is from the test domain. Then there's a "master" environment that this note refers to- and finally production. Code has to be signed off on by QA (that would have been me) on the test server and then on the master server again before it can be pushed.
I'm trying to remember how I let him know that I'd given my signoff... it was probably over email. I'm not sure that the ad server got an official sign off tracking form until it was a year or two old. You'll notice that at some point over the last seven years I doodled in red in the eyes of the smiley face. I have no idea when that was- possibly while I was running the preflight, waiting for something to load. I also noticed the "please" and "thanks" in this note - despite all the protests he'll give you, Brian is really a southern gentleman at heart.
This has brought back a lot of great memories from our initial launch of the ad server and the first year that it was up. Making apricot scones the weekend before launch for our Sunday AM bug bash. Our friend Greg, who was a web dev at the time, naming the templating language that we wrote ads in. (It's called "schusteranto" after Brian. Pretty cool that he has a programming language named after him, even if it is just an tiny substitution language.) Sitting directly behind PacMed's espresso stand, which was sooo handy sometimes. Declan learning how to play frisbee, instead of running away terrified from one when you tossed it. Walking home from work at 8 PM that summer, as the dotcom crash kept going, watching the sun setting while I walked up 2nd Ave. Seems like yesterday in some ways.

What is it? It's a small piece of the deployment system for the first amazon ad server. Brian and I worked on it together, along with a couple other amazonians, and we all sat on one hallway on the first floor of pacmed. I was probably out walking Declan when he pushed the latest ad server software and needed a sign off before it could go out, so he wrote this note and left it on my desk. Amazon basically has three levels of deployment. First there's a test server, where all the data is from the test domain. Then there's a "master" environment that this note refers to- and finally production. Code has to be signed off on by QA (that would have been me) on the test server and then on the master server again before it can be pushed.
I'm trying to remember how I let him know that I'd given my signoff... it was probably over email. I'm not sure that the ad server got an official sign off tracking form until it was a year or two old. You'll notice that at some point over the last seven years I doodled in red in the eyes of the smiley face. I have no idea when that was- possibly while I was running the preflight, waiting for something to load. I also noticed the "please" and "thanks" in this note - despite all the protests he'll give you, Brian is really a southern gentleman at heart.
This has brought back a lot of great memories from our initial launch of the ad server and the first year that it was up. Making apricot scones the weekend before launch for our Sunday AM bug bash. Our friend Greg, who was a web dev at the time, naming the templating language that we wrote ads in. (It's called "schusteranto" after Brian. Pretty cool that he has a programming language named after him, even if it is just an tiny substitution language.) Sitting directly behind PacMed's espresso stand, which was sooo handy sometimes. Declan learning how to play frisbee, instead of running away terrified from one when you tossed it. Walking home from work at 8 PM that summer, as the dotcom crash kept going, watching the sun setting while I walked up 2nd Ave. Seems like yesterday in some ways.
Tuesday, March 25, 2008
cultures
I've been thinking for a long time that I should blog a couple of the more amusing culture clash exchanges that my sailor and I have shared. Let's be serious, the dotcom world and the military are... um... different. Vast chasms of different. We've gotten a lot of humor out of how each of us lives in opposite worlds over the last several years.
My favorite of all time was in August 2004, when I was sitting on the floor of the bridge of a boat that he was XO on, wearing jeans and flip flops, and working on my laptop. There were a couple sailors visiting from a nearby station and I chatted with them for a while. They were talking about how sad it was that I was usually stuck in an office on land during the day. I countered with 'yes, but I go to work in flip flops all summer.' Sadly that didn't sell them on the wonders of dotcom civilian life. I think they must have been imaging slipping on the deck wearing flip flops during a big storm and falling into the water- not something I worry so much about in my job.
This morning Brian and I were talking about annual reviews and how our career goals could kind of be summed up as 'write a lot of interesting code.' My sailor is also writing his version of annual reviews, for the LTJGs who work for him, and he didn't think 'write interesting code' was a valid career goal. I think his exact words were 'honestly, if you were in the CG, you would be kicked out for that. it doesn't show leadership.' Yes, because leadership is exactly what you need when you have a crashing webserver. Well, ok, you need some leadership, but you have a more pressing need for super sharp nerds.
My favorite of all time was in August 2004, when I was sitting on the floor of the bridge of a boat that he was XO on, wearing jeans and flip flops, and working on my laptop. There were a couple sailors visiting from a nearby station and I chatted with them for a while. They were talking about how sad it was that I was usually stuck in an office on land during the day. I countered with 'yes, but I go to work in flip flops all summer.' Sadly that didn't sell them on the wonders of dotcom civilian life. I think they must have been imaging slipping on the deck wearing flip flops during a big storm and falling into the water- not something I worry so much about in my job.
This morning Brian and I were talking about annual reviews and how our career goals could kind of be summed up as 'write a lot of interesting code.' My sailor is also writing his version of annual reviews, for the LTJGs who work for him, and he didn't think 'write interesting code' was a valid career goal. I think his exact words were 'honestly, if you were in the CG, you would be kicked out for that. it doesn't show leadership.' Yes, because leadership is exactly what you need when you have a crashing webserver. Well, ok, you need some leadership, but you have a more pressing need for super sharp nerds.
Wednesday, March 19, 2008
python dictionaries
This is yet another 'putting things on my blog so that i can find them again' post. And because I remember stuff better once I've written it out.
I'm really a perl developer at heart, so I think in terms of hashes (you can see the post right tools for how nuts I am). Python, which I'm using for a little project I dreamed up totorture myself make my life easier, doesn't Do Hashes like perl does. Instead, you use "dictionaries".
I just borrowed o'reilly's python pocket reference from another developer, and here are the notes from the dictionaries reference in it.
adict = { 'info': { 42: 1, type("): 2 }, 'spam': [] } ==> adict['info'][42] is "1"
adict = dict(name='bob', age=42, job=('mg', 'dev'))
adict = dict(zip('abc', [1,2,3]))
Operations
adict.has_key(k) or k in adict
print d.get('key', 'not found')
adict.setdefault(key, []).append(number) (use value if it's in there, otherwise add to it)
adict.keys() -list of keys
adict.values() - list of values
adict.items() - list of k,v pairs
adict.clear() - wipe it
adict.copy()
adict.update(anotherdict) or adict.update(k1=v1, k2 = v2)
adict.popitem() - arbitrary item
adict.pop(k, [,x]) = get value stored at k (and remove k) if it was in there. otherwise, return x
adict.fromkeys(seq, [, value]) - new dictionary with keys from "seq" and values all initialized to "value"
adict.iteritems(), adict.iterkeys(), adict.itervalues() - go over the sets
(this is also mixed with things from the python cookbook)
I'm really a perl developer at heart, so I think in terms of hashes (you can see the post right tools for how nuts I am). Python, which I'm using for a little project I dreamed up to
I just borrowed o'reilly's python pocket reference from another developer, and here are the notes from the dictionaries reference in it.
adict = { 'info': { 42: 1, type("): 2 }, 'spam': [] } ==> adict['info'][42] is "1"
adict = dict(name='bob', age=42, job=('mg', 'dev'))
adict = dict(zip('abc', [1,2,3]))
Operations
adict.has_key(k) or k in adict
print d.get('key', 'not found')
adict.setdefault(key, []).append(number) (use value if it's in there, otherwise add to it)
adict.keys() -list of keys
adict.values() - list of values
adict.items() - list of k,v pairs
adict.clear() - wipe it
adict.copy()
adict.update(anotherdict) or adict.update(k1=v1, k2 = v2)
adict.popitem() - arbitrary item
adict.pop(k, [,x]) = get value stored at k (and remove k) if it was in there. otherwise, return x
adict.fromkeys(seq, [, value]) - new dictionary with keys from "seq" and values all initialized to "value"
adict.iteritems(), adict.iterkeys(), adict.itervalues() - go over the sets
(this is also mixed with things from the python cookbook)
Tuesday, March 11, 2008
xsrf nerdery
I haven't posted anything interesting webappsec related in ages, so I'll make it up with this super fun link that I just found.
"Racing to downgrade users to cookie-less authentication"
I was hooked before I even got to that part, because this a great little article on exactly the type of security chaos and fun you create with a web browser. I'll add a note that I know that my current employer's website isn't vulnerable to this, and I know that solely because of some buggy JMeter scripts that I dealt with a few months ago. Something to play with anyway.
Enough browser silliness, here's a picture from my trip. I took this when my feet were pretty much walked off and I stuck over to a window of the Louvre to try to rest my toes by sitting on a nearby bench.

I love all the statues on the outside of the Louvre. On this trip I actually walked almost entirely around the outside of the building just to read the visible names of the ones low enough to street level.
"Racing to downgrade users to cookie-less authentication"
As I wrote previously; I discovered that in Firefox and Opera we can exhaust the cookie limit to delete the user's old cookies.
If we assume that we will have the user browsing both a site which degrades to cookie-less auth and our malicious site at the same time then if you think about this then you can see that there is a race condition between when the server sets the cookie and the user logs in (and in some applications between when a page is served and the next html request is made).
The question is; can we win this race?
I was hooked before I even got to that part, because this a great little article on exactly the type of security chaos and fun you create with a web browser. I'll add a note that I know that my current employer's website isn't vulnerable to this, and I know that solely because of some buggy JMeter scripts that I dealt with a few months ago. Something to play with anyway.
Enough browser silliness, here's a picture from my trip. I took this when my feet were pretty much walked off and I stuck over to a window of the Louvre to try to rest my toes by sitting on a nearby bench.

I love all the statues on the outside of the Louvre. On this trip I actually walked almost entirely around the outside of the building just to read the visible names of the ones low enough to street level.
Monday, February 25, 2008
Place Vendome
It's so spring like here! I'm wiped out from my long walk this afternoon and no sleep last night. If there is an "unable to sleep on airplanes" lifetime achievement award, I should really at least be in the running.
I've done nothing useful since I got here. I took the Air France bus down, and then went and vegged in the Jardin des Tuileries in one of those wonderful chairs with the semi-reclined back. Then I got a HUGE latte from Starbucks, walked for 2 hours, and returned to the tuileries to sit some more and snack on some macaroons. I had a look at the Paris-Visite pass line at the Louvre, but it freaked me out, so I'm pass-less for now.
I've done nothing useful since I got here. I took the Air France bus down, and then went and vegged in the Jardin des Tuileries in one of those wonderful chairs with the semi-reclined back. Then I got a HUGE latte from Starbucks, walked for 2 hours, and returned to the tuileries to sit some more and snack on some macaroons. I had a look at the Paris-Visite pass line at the Louvre, but it freaked me out, so I'm pass-less for now.
Thursday, February 21, 2008
Google Alum Network
From John Battelle's Searchblog
Indeed. I'm a member. It's an interesting idea, and I found it slightly amusing that they kicked it off in February so immediately everyone was asking about missing W2's.
The part I found most amusing is that I run an informal amazon alum group/email list on google groups - and at the moment the google alum group is mostly a google group as well. Google groups is great for email list hosting, but I really wish that they would work on the part that hosts files and pictures- it should be so much easier to create small custom websites, and have a little blogger instance, and maybe a wiki. Facebook and the massive increases of splogs and comment spam and whatnot have had me thinking quite a lot recently about walled gardens how they really aren't a new thing at all. WELL was a big walled garden, and we've been reinventing it in new technologies over and over and over.
A Lot of Folks Are Leaving Google...[link]
So it's about time to create an alumni relations program!
Indeed. I'm a member. It's an interesting idea, and I found it slightly amusing that they kicked it off in February so immediately everyone was asking about missing W2's.
The part I found most amusing is that I run an informal amazon alum group/email list on google groups - and at the moment the google alum group is mostly a google group as well. Google groups is great for email list hosting, but I really wish that they would work on the part that hosts files and pictures- it should be so much easier to create small custom websites, and have a little blogger instance, and maybe a wiki. Facebook and the massive increases of splogs and comment spam and whatnot have had me thinking quite a lot recently about walled gardens how they really aren't a new thing at all. WELL was a big walled garden, and we've been reinventing it in new technologies over and over and over.
Thursday, February 07, 2008
at work
A picture of our group at work by Lenny. I love how completely unawake I look there.
Tuesday, February 05, 2008
A Dress A Day blog, on learning sewing:
(Remember, sewing is like perl: There's More Than One Way To Do It.)
Awesome. It's true, just never thought I'd see another blog talking about two of my favorite things in 1 sentence.
(Remember, sewing is like perl: There's More Than One Way To Do It.)
Awesome. It's true, just never thought I'd see another blog talking about two of my favorite things in 1 sentence.
Monday, January 28, 2008
freezing
It's wicked cold here. I just got back from Virginia and it wasn't any warmer there.
Wednesday, January 23, 2008
Thursday, January 10, 2008
Kate and Declan
more "i miss summer" posting. it's freezing outside. so what did i have for lunch? a hagen dazs ice cream pop. i'm a genius... i even ate it outside, fighting the crowds up broadway through soho, because it's even better if your ears are frozen while you're eating an ice cream pop in January.
Thursday, January 03, 2008
"Help Is on the Way for New Jersey Train Problems"
NYT: "Help Is on the Way for New Jersey Train Problems"
You really have to read all the way through that. It's unbelievable how many things broke in one morning, even for NJT. I made it in ok, but then... I arrive at work at 7:30 AM because the trains usually break down after that time. I'm taking the ferry home today...
You really have to read all the way through that. It's unbelievable how many things broke in one morning, even for NJT. I made it in ok, but then... I arrive at work at 7:30 AM because the trains usually break down after that time. I'm taking the ferry home today...
Subscribe to:
Posts (Atom)