Work

Find your place on the Red Planet

Today is one day before my one-year anniversary at the Mars Space Flight Facility, and also one day after I finally got something else launched that the public might have a remote interest in.

Suggest an Image

Yesterday we sent out the official press release about our Suggest an Image project.

In a nutshell, for now you can go to the site and download a KML file to load into Google Earth 5. This file shows you where the Mars Odyssey spacecraft is going to be orbiting over the next week, and lets you suggest areas on the planet for the mission planners at my office to image with the THEMIS camera. If you've got the Google Earth browser plugin installed, you can also try this out without ever leaving your browser.

If/when the spacecraft takes the picture, we email it to you, and it looks something like this.

Eventually (i.e. when the Google guys get around to it) this will be a feature in the Mars Gallery in Google Earth itself.

For those of you interested in how this is done with Drupal, I did a writeup here.

Demonstrating the application at JPL's Open House earlier this month:
IMG_1648 IMG_1650


Thoughts on telecommuting

Søren* is two weeks, three days old today. Through Betsy's doctor-mandated bed rest, and Søren's first weeks, I've relocated from my office at ASU to my new corner office:

View from the office

As in, in the corner of the guest room, next to the piano, under some Ikea wall shelving.

Here's what I've found:

  • At home, I work a lot more hours, not fewer. Despite needing to get up pretty frequently to do things like change diapers, replace pacifiers, reposition blankets, and keep Betsy from doing anything when she was supposed to be on bed rest, I managed to work between 10 and 15 hours per day, diffused over the whole day. The effect of this is that despite taking a bunch of whole days, I've made up for the majority of the time, and have only taken one week of vacation time over one week with Betsy in the hospital for pre-term labor, four weeks of playing Bed Rest Enforcer, and two and 1/2 weeks of being home with my son. At the end of a 13-15 hour day, I don't feel burnt out like I would sitting in the office, away from my family.
  • Work time is more productive. When I'm working, I can focus better on what I'm doing. I don't have frequent interruptions or redirections that I have to change mental gears to deal with. I've cranked out a lot of code from my comfy corner nook.
  • I don't feel disconnected. My coworkers reach me the same way they would if they were down the hall - by instant messenger and email. I've gone in for a few meetings as needed. I'm every bit as accessible here as at the office.
  • I do miss a few things. Like eating at Phonecia with coworkers, and my new Mac Pro with 30" display at the office. I never thought the 24" monitor I bought for my home office would feel small, but it does.

It's been awesome that my employer is flexible enough to allow me to spend the time I need with my family, while still keeping up with work commitments.

* I'm adding the ø just to irritate his mother.


NASA: Making it as difficult as possible to get the data you need

It's becoming clear to me that many (perhaps not all) NASA web sites and web services are set up in such a way that it's damn near impossible to get the information you need out of them without chanting the correct incantation and sacrificing a chicken. It's a bit frustrating, and a bit like the web c. 1999.

Case in point: I need to retrieve data from a JPL data service and a Goddard application to feed data into a little widget I'm working on for the Explore Mars site (old site still up).

In an ideal world, I'd query those services and they'd return something in spiffy XML or JSON format, which I could parse with a script or Flex, and I'd be done.

In a less ideal world, the web pages would be formatted in such a way that I could pull the data I was looking for out of the HTML source code using some clear delimiters.

Unfortunately, the reality is somewhat less convenient:

The JPL Horizons service has three ways to access data -

  1. A web service that returns data in a big <PRE> tag box, which for you non-geeks is basically a big wad of text. Computers don't like to find bits within big wads of text, at least not without substantial extra effort. Plus, the input parameters to the script that generates the results is entirely obfuscated.
  2. An interactive Telnet service that doesn't seem to have a way to pass all the parameters for the data you're seeking at once, and STILL returns a big wad of text at the end.
  3. A batch email service that does return some of the data we're looking for, but again, wrapped in a crapload of extra text.

The Goddard page is just as inconvenient - no friendly text tools there at all, just a goofy Java applet. Sigh. Guess I can run all the equations to calculate the data myself.

My hope is that I can make my own little corner of the NASA web-o-sphere somewhat more friendly to those that wish to get at the data without spending their days figuring out ways to scrape screens and parsing emails.

Disclaimer: I understand why some of these tools may have been built this way, but c'mon, I know it really is rocket science, but is it that hard to push this data out into an XML file, or at least CSV, if you've gone through all the trouble of making the calculations already? Or, just format your web pages so that the data is wrapped in a reasonably parseable tag structure?


Moving to Arizona, workin' for the gub-mint

Ground control to Major PorkGround control to Major Pork

That's right. The two whitest people on the planet are moving to one of the hottest, sunniest regions of the country. What could possibly go wrong? I've got my SPF-80 ready, along with my UV protection suit.

After my nine year stint with McClatchy, I'm moving from the newspaper industry to work for NASA's Mars Space Flight Facility at Arizona State in Tempe. I'll be their web geek.

While I'll miss coworkers, I'm looking forward to the new challenge and a change of scenery. Oh yeah, and I get to work with data beamed from spacecraft orbiting and crawling across another planet. How cool is that? Makes Lowcountry Star seem kinda lame.


Don't repeat yourself

I'm in Boston at Drupalcon 2008, in a discussion of working together and not reinventing the wheel, where the participants are from competing development shops.

They're looking for ways they can work together, to avoid duplication of effort, and reduce their overall costs.

I find it amusing (and sad) that the company I work for (on the corporate level) has the same problem, but doesn't seem to be working toward solving it.

At last count, we had at least four, possibly five versions of the same proprietary authentication module. Within one (admittedly large and geographically scattered) company. All interfacing to the same systems.


How to: Save a crapload of money converting from print to web

We spend lots of dough each year converting material from our dead-tree editions into web-friendlier versions for our web sites. We crank out a bunch of PDFs, and send them through the ether to somewhere where the labor is cheap and the workday long, like Vietnam, Indonesia or Canada or something. Then some poor soul slices 'n dices them into jpegs and links and such, and sends 'em on back, and posts them on our site.

So I thought to myself, "Self, you can do that without having to do something silly like use people and worse, pay for it.

It's a work in progress, but it goes something like...

  • Export PDFs of ads from our DTI advertising system, and page PDFs from our Newsway prepress system.
  • Multiplex the PDFs through xpdf, imagemagick and swftools to extract text, convert to bitmaps and convert to Flash files respectively, with some proprietary workflow software. Maybe we'll OCR them with Tesseract if we can get a box with enough CPU horsepower, rather than the virtual machine it's running on, for extra text-extraction points.
  • Combine the files into an XML feed.
  • Send the files to the front-end system. Probably Drupal, but possibly a Rails app, or McClatchy's own Workbench CMS.
  • Display to the user with a combination of flash, jquery and CSS like so:

Shazaam! $35k saved.

Not to mention, jquery almost makes coding javascript fun. Almost.

Pointless office fun

Pointless office fun

I found this and of course, having the sense of humor of your average (or maybe below-average) teenager, I could not resist. I even considered rigging up a script to use nmap to find all of the jetdirect servers on our network and change them all at once.

I started with "OUT OF CHEESE" three days ago, but nobody noticed until today. Of course, you had to be over 6 feet tall to see the display, so that probably had something to do with it.


Helpful tips for email productivity

I'm amazed at how poorly people communicate in the workplace. I blame much of this on email, where a lack of direct contact is coupled with a lack of accountability, and the fact that most people can't read or write for shit anyway, to form a seething clusterfuck of lost productivity and angry coworkers. So, gentle reader, I bring you:

Chris's helpful email tips

  1. Email is not instant messaging
    I don't want my inbox clogged with a dozen one-syllable responses from you that appear as soon as I reply to your last grunt. If you want to have a stream-of-consciousness free-flowing conversation, IM me, or failing that, pick up the damn phone (PUDP)! If you get your feelings hurt because I didn't respond within seconds of your last message, you obviously have too much time on your hands. I'm busy. I've sometimes got more important things to do than wait for my email reader to chime with another nugget of wisdom from you.
  2. Use Reply-All wisely
    That button is sometimes useful for confirming with a whole group that you read and are dealing with a message. Don't use it to A) Let the whole group of people know that you really are busy. or B) Have an IM conversation with another reply-all misuser that you feel the need to subject the whole group to. Again, PUDP. Got something especially sagacious from that side conversation? Feel free to send THAT to the group. Spare me your brainstorming session.
  3. Don't send long-ass messages with the subject "FW:FW:FW:FW:FW:FW:RE:FW:FW:RE:[insert stupid shit here]"
    It's especially bad form to do this when your only comment is "See below" or "Read from bottom to top". For Fuck's sake people, if you don't have time to synopsize what it is that's important about this message, what makes you think I do? Moreover, am I supposed to read your mind to determine what it is I'm supposed to glean from this conversation that's changed hands two dozen times and is indented so far that I'm only seeing two words per line with a million angle brackets to their left?
  4. Don't use email lists as a management tool, for people or projects
    I'm sure it seems very progressive to you to have an 'open conversation' on issues or projects, but what you're really doing is ensuring that your 'team' will be confused about what they're supposed to be doing, while assuming that someone else is taking care of whatever needs to be done. I'll leave it as an exercise for the reader to guess what happens when everyone assumes that someone else is taking care of things. Furthermore, if you're a manager, you should be managing. You control the conversation. Delegate what needs to be done, communicate to the necessary parties and then report back to the group with a summary.
  5. Don't use 'we' when you really mean 'you'
    "We" aren't going to write a Perl script, and "We" aren't going to redesign the site and "We" aren't going to troubleshoot the server when you fuck something up. I am. "You" are going to thank me profusely afterward. Unless you're combing through the log files with me, "We" aren't doing shit. Use the inclusive pronoun when you are actually involved in whatever is going on, otherwise it should be "Can you help with this?" or "I seem to lack reading comprehension abilities, can you fix this?" And unless you're signing my paycheck, you really ought to be asking nicely and in a professional manner.
  6. Don't expect me to be impressed that you're emailing at all hours of the day and night
    It doesn't mean you're Employee of the Year. It means:
    1. You're an addict.
    2. You're an insomniac.
    3. You're that douchebag clicking away on his blackberry in the grocery checkout line.
    4. You're a sycophant trying to show everyone how hard you're working.
    5. All of the above

So if you skipped to the end, here's my email rant summed up in a short paragraph:

When in doubt, PUDP. Also, don't be an asshole.

The silence is deafening

The air handler above my office just shut off (hopefully intentionally, and not because it's broken), and it's shocking to hear the difference between the constant din of rushing air and the quiet.

Of course, I can still hear the women over in advertising clucking away about their offspring. At least I can shut my office door to fix that.

Edit: Dammit, that didn't last long. The infernal whirring is back. I'm sure it's resulted in some long-term hearing loss, brain damage, or both.


Sweet Jesus, that hurt

On our last building project, I messed up my knees pretty bad. I crawled around on the floor for at least a week laying and grouting slate tile, and my knees still snap, crackle and pop when I walk up stairs. That was more than three years ago.

Today I think I dealt my patellar cartilage its death blow with one of these here gizmos:

One uses such a device to stretch and anchor carpet into place. One does this by smashing on the padded end with one's knees, repeatedly, whilst the teeth on the business end dig into the carpet.