Watching the sun sinking towards the horizon over the water, and paint the cloud layer a sort of misty golden haze; today, there's been a layer of clouds over the Sound but high enough to leave water and the shorelines visible, but to wrap themselves around the lower mountains like some kind of gauzy atmospheric sari that leaves only the outlines visible, with the higher mountains still poking up through it. Now, with the sun setting, the water is turning orangy-purple, and the cloud layer is lit from behind and below and makes it look like some second world floats above our own, of islands in a strange golden sea.
One thing I'll say for this job, I never get tired of the view out of my office window. There /are/ benefits to being near the top of the second-tallest building in the city, and on the waterfront!
On the other hand, the rest of my job is enough to make me want to cry right now.
All our hardware is internally codenamed after Rocky and Bullwinkle characters; our first board was Squirrel (after Rocket J. Squirrel), the second board (the one I still have on my own machine) was Fearless Leader (after Boris and Natasha's boss) and the new board (which is enormous, larger than a computer motherboard) is Mr. Peabody (after Sherman's hyperintelligent time-travelling talking dog). We have a Peabody in the lab here on another machine. It's a hassle to move it around since it uses a slightly different harness than Fearless Leader, so I've been compiling code for the Peabody driver on my machine and copying it to the test machine. I eventually had to set up my machine (Hafnium) and the test machine (Frick) in tandem so I could debug the code more easily. I finish the driver, I finish the library to use it, and I finish adding Peabody support to PrestoGUI, the testing environment we created and used. The big deal of this driver is support for Peabody's version of XPROG, our internal system for programming the FPGAs on the board. (For more info on what FPGAs are and how they're used in my work, see earlier posts.) FPGAs can normally be programmed with JTAG, a system Xilinx (the FPGA manufacturer) came up with. But it's a very, very slow method and each FPGA needs to be programmed by hand, so you have to plug something onto the board by one FPGA chain, wait about 5-10 minutes for it to program, then unplug it, move the plug to another chain, etc. XPROG uses the PCI interface to our board and programs all the FPGAs in a single group, taking about a minute total. Very useful system...assuming it works.
So, XPROG fails to program Peabody. I spend a lot of time setting up test harnesses, coming up with ways to debug, and find that the protocol is being sent over the PCI bridge correctly. About the time I'm ready to pull my hair out, we discover there's a bug in the host bridge logic circuitry...i.e., a problem in the HARDWARE, not the software. The write bit is being blocked, which means all the data I'm writing in is never going into the FPGAs. AUUUGH! Three days of work...useless...mwargh!
Later update: Tom and Charlie made a new logic image and we created a new host bridge portion for the board, and now XPROG works on Peabody. *nervous laughter, backing away from test machine before she breaks anything* The sun's set completely, got to watch the sky go orangey-red and turn everything into outlines, to see the clouds like some kind of purple silk draped over the water, and then it all went black...now it's just the lights of the other buildings, the cars below, and flickering lights of houses across the water or boats who haven't put in to shore yet.
Time to go home.