Alan Taylor’s collection of iconic images from the era of the Space Shuttle era.
NASA’s Space Shuttle program has seen moments of dizzying inspiration and of crushing disappointment.
What I saw as a kid as the future of space is nearly a part of the past.
Today at work was one of those days that feels like it’s all just busy work. I need to make a little change here, then make a build for someone to run. Oops, it didn’t quite work, so I’ve got to do the steps again. A lot of the tedious steps are automated, but there are still a lot of pieces that end up being manual because there’s some sort of human decision or intervention needed.
It’s easy to get frustrated with the tedium, but looking back on it this evening, I am reminded that it’s also an opportunity to automate more, or find a simpler way to make it work. Instead of manually copying the right files into the right place, automate it with a script that chooses something reasonable (like the latest version) and ask for confirmation. It sounds so straightforward, but often when I look back at what I’m used to doing by rote, I find that there’s always a way to make the computer do more of the tedious work. Whether it’s worth the time to write such a script, now that’s another question.
I recently read an article by Phil Sung with some good tips about the keyboard shortcuts available in bash/readline. Trying to get these to work inspired me to investigate various dotfile configurations that weren’t quite working right.
Phil links to a presentation by Simon Meyers which has even more good bash tips.
Since I use an xterm via cygwin most of the time, I needed to make sure the metaSendsEscape resource was set to true.
Also, the Meta syntax in Simon’s presentation didn’t work for me.
bind -p showed that bash wanted to see
\e instead of
And now I have new, nifty shortcuts defined. The hard part now is training myself to remember and use them.
It’s been a while since I’ve written here, but I’m resolving (at least for a couple weeks) to post something here or on the family blog.
So, where am I now? I have a family (wife, 2 kids). I live in Oakland. I work at Dust. I stare at a computer most of the day and still have fun sitting on the couch with my laptop late into the night. In fact, that’s what I’m doing right now.
It seems like not much has changed over the past couple of years. Back in my twenties, I’m sure I’d take this as a sign that I was stuck in rut and needed to change something. Not so much anymore. I don’t worry so much about trying to see change in myself, but it sure is fun to see the changes in the kids.
I still work at Dust, which is reasonably good all in all. I’ve been wondering more frequently whether it’s time to look around, but it’s a lot harder these days to find the right time for that given that I’ve got a family to support. There are a lot of good things about working for Dust, but I feel like I’m learning less since I’ve been there so many years (7, really?). And of course, the way to get a raise in the software world is to change jobs.
I have fewer personal projects now in part because it’s harder to find the time and in part because Netflix and Hulu make it so frelling easy to get sucked into whatever entertainment you want to see at any time. I’m hoping that some of this writing exercise will encourage me to blow the dust off some of the random code that’s sitting on my hard drive. Also, now that TV is slowing down (well, the USA network summer season will be starting soon), I’m going to have to find something to do.
I’m slowly re-reading Neal Stephenson’s System of the World trilogy. I remember struggling through it the first time I read it back when it was brand new. This time around it’s easier, even though I remember almost nothing about the story. Maybe it’s easier because there’s some part of my brain that has a wispy memory of it and I’m not forming new connections, just strengthening old ones.
I received a snail mail Nigerian 419 scam with a stamp and postmark from Tanzania. I find it disappointing that it’s economically viable for someone to send real physical letters with such an obvious scam.
It makes me wonder if my name somehow made it onto the “easy mark” list. And if so, how?
Fascinating high framerate capture of water droplets on a superhydrophobic surface. (Runtime is about 3 minutes.)
Every so often I get complacent about the speed of the computer I’m using. I mean its pretty fast. But we have a long way to go before we have the computing power to simulate one of those droplets moving.
Via Daring Fireball
Where do you think the hotspot for this mouse pointer icon is?
Is it under one of the points, or maybe in the center of the icon? Nope, it’s in the top left corner. Let me repeat that. The hotspot is the transparent top left corner of the imaginary box that surrounds the pointer icon. It’s a usability nightmare because you have to estimate where you’re going to click.
If you don’t recognize this pointer icon, then consider yourself lucky. I see it a couple times a day. Randomly. When my Windows machine decides that the icon needs to be switched. For no reason that I’ve been able to determine. The mouse can be completely still and something will trigger the icon to change. I don’t even know what this icon is supposed to indicate.
I keep the mouse control panel open so I can select a cursor theme, which restores the correct cursor.
Deactivating the nvidia drivers made this problem go away. But not having the nvidia drivers means that I have to restart every time I undock my computer because the screen setup changes and Windows doesn’t detect it. I’m still deciding whether I want to live with a simple annoyance a couple times a day, or a big pain maybe once a week.
Posted in Rant, Software
We’ve been going through a number of IT changes lately, server migration, consolidating authentication mechanisms, virtualization, etc. Some of these changes have been painful because they’ve caused breakage. Authentication has broken so developers can’t log into the build system. Other changes have been painful because they’ve caused performance problems that did not appear right away and have proven difficult to isolate.
At the superficial level, pure breakage is caused by a lack of testing. The IT team sets up something new, but doesn’t test the new setup to the extent that the software team will exercise it. So we end up with an emergency when someone realizes they don’t have access to their important files from their PC. Or because our IT is outsourced, the IT team doesn’t realize their changes are not working a day later because they’re not using the system.
But both breakage and performance are classic software engineering problems. One well accepted solution for both types of issues is to build and run tests. Monitoring systems (cactus, monix, hobbit, etc) that provide automated alerts of problems are really an implementation of common unit tests.
Previously, I had not thought of IT as an environment that’s suitable for unit tests. After all, unit tests are for code. Why write a test for a problem that you’re going to Google for a solution? In my pragmatic view, IT is much more do it once and forget about it until it breaks next year.
But the more time I spend tracking down IT problems, reporting them and waiting for the fix, the more I want to just automate it all. So far, setting up Hobbit is our first step at a monitoring system that will detect first-level problems like, “the web server is down.”
Using the monitoring system to measure performance is a little trickier. I don’t have much experience with that yet, so I’ll have to save that for a later post.
The IT team at the company I work for is outsourced to another company that provides IT services. This post is brief analysis of the pros and cons that I’ve encountered.
Outsourcing IT allows my company to get cost-efficient service and skills without hiring dedicated employees, but it means that we really don’t have 9-5 service. When something goes down, there’s usually a delay until someone can look into it. Sometimes there will be an IT person on site, but generally if a machine goes down, the right person isn’t around.
There’s also a significant cost to “Emergency Service.” I don’t know what that cost is in dollars, but every time I’ve filed an emergency ticket, I’ve been asked by our accounting department whether or not it’s really an emergency. Now, according to the time and attention people (and I’m not saying that they’re bad people), putting this cost on a work order that’s going to interrupt somebody is actually a good thing. But the real-life effect is that I end up asking myself, “Is this something I can repair in 15 minutes?” So, there’s some set of critical repairs that displace my real work.
Another major consequence of outsourced IT is that the people doing the IT are not using the systems that they maintain everyday. This means that they don’t notice intermittent problems (here today, gone tomorrow) and they can’t react quickly to obvious outages.
These factors have driven a couple changes in the way I approach IT, which I’ll detail in future posts:
- I am effectively responsible for project management of IT projects; doing the planning, scoping and figuring out the details of how infrastructure projects should be implemented.
- Individual issues need to be prioritized relative to tasks for longer term projects, or else little progress is made on the long term projects because there are always minor issues to tackle.
- Automated monitoring is extremely important. Update: Monitoring is unit testing for IT.
On the plus side, we’ve got a decent team of people that are (for the most part) on call. On the minus side, I have to devote some of my time to IT work and I have to do much more of the planning and scoping of IT-related tasks. And there’s a lot of project definition that needs to be done to avoid IT disasters.
Ah, yeah. I love physics rap.