Archive for the ‘Work’ Category


Why I’m Blogging and Not Working

April 26, 2007

This morning, a little after 9:00, I got a call from a fellow named Matt Rutherford. Matt is the systems administrator for the SERL (Software Engineering Research Lab) servers, the same servers that we use for our SVN repository. He needed me to go into the machine room and reboot one of them—Gatekeeper—because there was something wrong with it. Now the reason Matt couldn’t do this himself is because he lives in Niwot, or some other such non-Boulder place, and rarely finds himself on campus. You see, gentle reader, Matt is a graduate student on whom the task of administrating these computers has been dumped.

So I ankled on over to the machine room and pressed the button the KVM to switch the input devices over to Gatekeeper. “No Signal,” said the monitor. “OK,” I think to myself and proceed to try a few of the other inputs near the one labeled “Gatekeeper.” Nothing. I decided to try the inputs labeled “serl1” and “serl2.” Still nothing, not even a, “No Signal.” But I have not been defeated yet because Matt had said that, failing everything else, I could hard-reboot the computer using the power button on its front; so down I bend in search of the ubiquitous power button. And it was then that I discovered someone had removed all of the face plates from the machines—the face plates with the labels identifying which machine was which—and had left them lying on the floor.

Not to be so easily defeated, I thought, “Fine. I’ll just reboot every machine.” But at this point I failed to find anything resembling a power button on any of the machines. And so I returned to e-mail Matt—having forgotten my phone at home—and apprise him of the situation. Without access to these servers I cannot check out or commit any code, so I am in no big hurry to make enormous changes to my working copy.

“Why,” you may ask, “are you angry with the CS Dept. and not this Matt Rutherford character?” The reason is this: some time ago the CS Dept. decided that in order to save some money they wouldn’t hire systems administrators for their machines and would, instead, handle that task themselves. Which really meant that they would force graduate students to do it. Graduate students who were also matriculating at CU, doing research, and probably even working. This results in a number of problems. One, the servers are often not administered well. If you want, for instance, an SVN repository, the response is often, “Set it up yourself in your home directory and access it via SSH.” Which is fine for personal stuff, but when it’s for a research project that many people are working on, I think it deserves a better set up than that. Two, these poor graduate students have to spend a significant portion of their time dealing with problems when the shit hits the fan; time that should be spent studying, or working on their research.

There is a reason that major companies—oft times even smaller start-ups—hire full-time systems administrators: It is a full-time job! Computers are inherently riddled with problems because of their complexity. When you’re talking about a computer that is being accessed by many many people it gets worse. There are few things more helpful than a good sysadmin, and there are few things more frustrating than a poor one. So this is not Matt’s fault; SERL should not be his responsibility. This is the fault of every single professor here in the department that decided they’d save a little money by making the lives of their grad students a little more difficult.

I hope that each and every one of you loses years of vital research data because one of your servers crashes due to lack of maintenance.

UPDATE: I got Matt’s phone number from Ken and we managed to get things worked out. It turned out all three machines were off for some reason. Imagine how quick and easy that would have been to fix for someone who knew the machines. Lights were blinking, I heard the sound of fans, I had no idea that they were off. But who needs professional sysadmins when you can blindly stumble around with equipment you don’t know and try to debug problems over the phone…

FURTHER UPDATE: I think I just heard someone go into the machine room and check to make sure the machines were on. It’s a good thing we’re not duplicating effort by not having real sysadmins.



February 24, 2007

Sometime between 4:00 and 5:00 pm yesterday I got a call from VMware. Long story short: I didn’t get the job. Actually, that’s the whole story; I guess it wasn’t all that long.

The good news is: I get to go ahead with my original plan to move to Boston. This is something I’m pretty excited about, and so I think a part of me is glad I didn’t get the job. VMware would be a really cool place to work, no doubt, so if they’d offered me a job I would have taken it. But as much fun as I had out there with Micah, David, and Christian, I still had my heart set on Boston.

The flip side is that it was quite a blow to my ego. It is somewhat disheartening to know that my friends were good enough to get jobs there and I wasn’t. But, “this, too, shall pass,” as they say. I’ve always known that David and Micah were better programmers than I was, it’s only hard because now I’m presented with some pretty solid evidence. But that’s OK. I keep reminding myself that just because there’s someone better doesn’t mean I’m no good at all. And I’ll get over it eventually; a couple of days from now I’ll probably be fine with it and completely excited about Boston again.

In the mean time I’ve got to buckle down and keep job searching out that way. That’s the real pain in the butt. In the next couple of days I’ll probably try to do a couple of posts that finish up my trip out there, because it was a lot of fun.


An Offer I Probably Can’t Refuse

February 5, 2007

Last Friday I was contacted by a recruiter from Google. They’ve apparently got an opening for a Web Applications Engineer that I might be a pretty good fit for. Wow. When they were visiting CU last year they wouldn’t even sit down to meet with me, now they’re calling me to see if I want to work for them.

I know it’s not quite that simplistic or extreme. First, when I wanted to meet with them last year I didn’t have the experience in web apps that I do now. Second, they may not actually have had a position that fit me last year. Third, I’m not so fantastic that they just had to come find me; this guy’s job probably includes—if it’s not completely limited to—perusing and its ilk looking for people to fill positions.

All the same, it’s quite exciting for me that I even meet the requirements to work at Google. I don’t know what I’ll do if they offer me the job since I don’t really want to move to California. But how do you say ‘no’ to Google? Plus, it would be cool to get to hang out with David and Micah again, and to meet Christian, Alex, Mike, and maybe even Paul for reals.


A Question

August 9, 2006

Today has been a very frustrating day, and it’s only about half over. I have been frustrated by just about everything I do, everything I read, everything I think. I have my opinions, I hear other people’s, and I’ve no way of really making decisions about the merits of any of them. My opinions are based on my personal biases and experiences, and (hopefully) on some semblance of fact—something independently observable or verifiable. But so is the other guy’s opinion. If they’re in opposition, how does one choose? I’ve no real reason to believe that my opinion is any better than anyone else’s, except, perhaps, that it is my opinion—but that hardly seems like a very legitimate reason. This frustrates me.

Anyway, on to my question: When beginning a new project, how does one decide what language to use? As I’m sure you all know, I despise Java, and I now find myself on a project that—at least for the time being—is written in Java. I have, however, been given permission to port the prototype over to Python for comparison. Now I’m sure that Python will put the Java prototype to shame, but the conundrum is this: why not Ruby, or C#, or C++?

I look at a problem and pretty much always think that Python would provide a great solution; on the few occasions where Python’s garbage collection proves a problem, you can always write a C extension for that bit of code that needs the optimization. There is no silver bullet, but Python always looks pretty damn shiny to me. So why doesn’t everybody use it? Don’t get me wrong, I’m not fan-boying Python here; I love the language, but I do not believe it is perfect or the answer to all our problems. But it does always seem to be the answer to every problem I encounter. So I must be missing a piece of the puzzle. Unless of course, the fact is that Python, Ruby, C#, or what have you, are all pretty much equal, and it’s only a matter of personal taste…

Sometimes it seems that there are obvious deficiencies in a language, but when there aren’t, what tips the scales in favor of one language or another? Someone please straighten me out here. My head hurts.


Postponing the Inevitable

July 5, 2006

A little over a week ago, Liz Bradley offered me another job as a research assitant on a different project with her and Ken Anderson. I decided to take it. Research seems to agree with me, it’s more money than I’m making now, and it’s the only offer I’ve gotten. But it’s only for up to a year, so I’m still going to have to figure out what I want to do afterwards. I just have a little more time to figure it out. In the mean time, I get to stay in Boulder with Dan and keep playing capoeira with Larry.