How not to manage code

I’m a systems guy. The reason I’m a systems guy is because I’m not a fan of long periods of coding. If I was, I’d be a developer.

So anyway, I *do* write code, and I maintain a Moodle course management deployment. We needed some local customizations made to the code, and I even wrote a whole new module for the app, and it’s been a much nicer system to work with than the home-grown monstrosity it replaced. However, after maintaining it for about a year now (on and off, as needed, as bugs arise, etc) I’ve learned something really important to the stability of home grown code. As is the case with all things in life, it comes down to “know thyself”, and after some recent code updates, I’ve learned more about myself, and as a result can make the production app more stable. What did I learn?

My brain will keep going even though it’s tired and weary and doing things that any wide-awake person would look at and say “dude, what the hell are you doing?”

Perfect example: I implemented a feature in Moodle that allows professors to sort by “username” instead of just first name or last name. I did this just the other night, at some time dangerously close to midnight. I opened a local copy of the site, went to the page, and thought “yay! there are my usernames!”. Then I clicked one of the sorting arrows and said “yay! They’re in alphabetical order!” Then I said “ok, time for bed before I fall over onto the keyboard.”

I know what you’re thinking. “Surely you revisited this; surely you, like any reasonable developer, did some more testing than just *that* before pushing it out to the test site and letting users play with it.” I didn’t. I never thought about that code again. The next day I implemented one or two other changes unrelated to this code, and went on my merry way. I pushed the code out to the test site yesterday, told my primary testing user about it, and got an email back that was just embarrassing. “Um. Yeah. It only sorts properly if you sort ascending.”

Oh man.

Yeah, so don’t do that. If you write code late at night, write yourself an email just before you go to bed reminding yourself to test that code s’more before it goes anywhere. It’ll save you some email, and a good bit of embarrassment.

Happy Friday.

Technorati Tags: , , , , , , , ,

Smoke Free, Day 24

Right. So. I don’t smoke. It’s a little depressing at times, but that never lasts long. Right now I’m going through my insomnia stage, which I believe will be followed by flu-like symptoms. I’m already coughing up…. stuff.

My guess is I have about another month or so where my body decides to do things that are both unpredictable and generally unpleasant, and then I’m more or less in the clear. :-)

Will Wikileaks Keep Anyone Honest?

I, for one, am hopeful that it can. Wikileaks is a website that allows anyone to anonymously post confidential information as a means of providing a more permanent, public record of corporate or governmental wrongdoing.

Why do people trust Wikileaks? Because it would defeat their own purpose to break the trust of the community to keep their identity private. Clearly, people understand this, since Wikileaks is already apparently doing a bangup job at recruiting whistle blowers to provide documents:

Already, the site claims to have received 1.2 million documents, which will be available when Wikileaks goes live some time in the next two months. As an example of what to expect, the site’s organizers posted a memo on civil war policy issued in November 2005 by the Somalian Islamic court system’s Office of the Chief of the Imams. Wikileaks also posted a 17-page analysis of the memo.

Source: time.com

1.2 million documents, and the site isn’t even live yet. In one sense, there is hope on the horizon that this could be a potential source of leverage, a new tool to level the playing field between huge corporations, and the people that are employed by them, or are otherwise affected by their business practices.

On the other hand, the possibility also exists for abuse, and it will be interesting to see how Wikileaks battles against the interests of embittered ex-employees, jilted consumers, and fed-up “not-in-my-back-yard” activists to keep the content of their site honest and, therefore, credible.

Add Photos & Videos

Tags: THEORY | Site | online | memo | Government | Documents | Corporate | claims | Wikileaks | wiki | Whistle-blowers | Technology | Middle East | Asia | Africa

Sys Admins Make the Worst Customers

It’s a vicious cycle: sysadmins can find a wealth of shortcomings in just about any technology that crosses their desk. Vendors completely ignore sysadmins as a market for their technology, in part because they’re impossible to please, and in part because it would cost too much money to even come close, which would mean that the masses wouldn’t be able to afford said technology. So they strip their products down for the masses, and piss off the sys admins. Such is the world in which we live.

I guess the reason for this is that, as administrators, we’ve been well trained by both hardware and software vendors to look for the ulterior motive, the compromise, the lock-in, the angle, the catch, the rub.

When Microsoft wants to sell you something for $4 per client, it’s only because it will eventually give you no choice but to buy the $150 per client system upgrade to run it.

When Lexmark sells you an all-in-one printer for $60, it’s because they know you’ll be back to buy the $30 ink cartridges.

When ABC broadcasting let’s you watch TV shows for free online, it’s because they control the broadcast and can force you to watch the ads that they get paid for.

When Apple comes to sell you a server that’s alleged to be the best thing since sliced bread, further discussion with the sales people will reveal that you have to administer it from… an Apple Mac.

When a software company says they’ll provide experts on-site to perform all the integration and customization you could possibly want, it’s because they know that if you take it, you can’t do it yourself, and therefore won’t be able to easily leave the platform. Cha-CHING!

When a bank gives you free online bill pay, its because they know you’ll create 25 payees and set up 50 automated transactions, which makes it extremely difficult to leave, even if you hate them.

When Verizon says they’ll give you phone, tv and internet for $40 a month, its because part of the installation process includes the complete removal of copper from your house, which means you can’t go back to DSL (which only goes over copper phone lines)… and by the way, Verizon doesn’t allow you to do anything with your bandwidth but be a drooling, mouth-breathing, content consumer. Open up port 25, 53, 80, and probably any of a number of others, and they reserve the right to cut you off.

When a company says they have a product that does anything that sounds like “Deep packet inspection” or “content verification” or any kind of filtering, what you’ll quickly find is that in a lot of cases they want to charge you for a locked down proprietary black box version of Squid running on Linux, which is free, open source software.

The point is that these are the sorts of things that are in the forefront of the minds of many, if not most, if not all sys admins.  We’re masters at picking out shortcomings and compromises, because so many people are trying to sell us so much stuff in our day-to-day lives.

Sys admins mostly hate the iPhone because it does a metric assload of things poorly. Sys admins mostly aren’t fans of Microsoft because it’s a system that turns more or less open, commodity hardware into a black box that they have very little control over. They mostly don’t like the idea behind the Zune or even the iPod because of the vendor lock in and DRM involved.

We still buy things. I hardly know an admin who doesn’t own an iPod (I don’t own one, but my wife does). I attended OSCON and LISA in ’06, and the number of iPods and Macs I saw was astounding. Black box hardware like packet shapers and proprietary intrusion detection hardware, and Google appliances enjoy brisk sales.

The difference is that sysadmins in general are a breed that are bound to be acutely aware of the compromises they’re making, measuring the cost against the amount of time it would take for them to build a solution themselves, or against the amount of time it will take for this solution to become obsolete, or how long it’s under warranty for, or any number of other factors… simultaneously.

Seriously. If you’re a sales person, the last thing I’d want to do is get a job with a company that sells to admins.

Admins even hate deploying services for other admins. That’s one reason admins all hate the state of documentation in their environment. It’s not that they can’t write or spell or whatever. The problem is that there are 5-10 guys in their group, and two guys refuse to use anything but vi, another guy creates his own man pages, there are two guys who only use Front Page, and want to know where the FTP server is, and they will defend their preference to the grave. Good luck getting a whole team of admins to agree on a single tool to do any specific task.

So that’s my rant about admins for the day. Thanks to my buddy and coworker Steve for uttering the words that make up today’s entry title, and prompted me to think more about the topic, and blog about it. :-) Happy Friday!

Embarrassingly Simplified Home Networking

Tonight I did some rather emasculating things to my home network. I had a pretty nice one. I had my cable modem coming in, then ran a cat5 straight from that to my Smoothwall firewall machine, which had three interfaces – one for the cable modem, one for the internal network, and one for a DMZ, on which lived my web/NTP/some other stuff server.

On the internal network there was a wireless and a wired component, with my Mac G4 streaming music to my AirTunes module which is connected via optical cable to my Denon (I love my Denon), but now that I have a MacBook, it does a good bit of the streaming over the wireless network. The wired component was mostly for a stationary Linux desktop machine that my wife and I share. Speaking of my wife, she also has a Linux laptop that hangs out on the wireless network.

So tonight, I turned off… well… I guess the easiest way to say it is “I turned off anything with a PCI slot”. The only things running in my office right now are my wireless router, and my cable modem. It’s eerily quiet in that room now.

The goal in all of this isn’t so much to get rid of machines. The idea is actually to move them to remote areas of the house where the fan noise doesn’t build up to a level where it sounds like you’re sleeping on a tarmac at Newark Airport. Some of those old machines are pretty loud!

So, months ago, I purchased two Belkin wireless PCI cards to slip into a couple of the machines that I’m hoping I can move without having to worry about running network cable. I ran cable all through my old house. I even had a rudimentary patch panel, nicely labeled, and built with those modular plastic setups you can buy at Home Depot. No more.

Anyway, getting these machines moved and started up again is one goal. An intermediate goal is trying to think of something really cool to do with them. Suggestions are welcome. In all, the number of machines in my house that are currently unused is about 5. The slowest one is a 400MHz Celeron, I have one 700MHz box, a 500MHz box, and I believe the fastest one is a 2.2GHz machine. There might be a second 500MHz box. Haven’t seen that one in a while.

Share your thoughts if you have any ideas on cool stuff I can do with these machines. Don’t say “beowulf cluster”. We administer clusters at work. Truth be told, they’re interesting to programmers far more than administrators.

The iPhone Compromise

iPhone was announced officially yesterday at MacWorld. I was really looking forward to it. I was ‘cautiously optimistic’. If you know me, you know that cautiously optimistic, for me, is pretty damned optimistic. I’m an incurable cynic. I can’t help it.

So what about this phone stood out to me?

What stood out with this announcement is the same thing that stood out when the Sony Clie came out, and when the Blackberry 7290 came out, and when the last iPod came out, and before all of that, when the Handspring Visor came out, and when the Sharp Zaurus came out.

What stands out are not as much the features as the response of technical people to the features. The conversations that take place before the announcements are always a lot of “big talk” about “well if it doesn’t do this then I don’t know, that could be a deal breaker” and “they’d never be stupid enough to *not* do that” and “I’ll be able to replace two or three other gadgets with this one”.

And what do we all talk about when the announcement is finally made?

We talk about how we can compromise our lives. We rationalize. We start talking about how cool some feature is that we weren’t even expecting, and how it would be so cool to have that, and we completely forget all of the big talk. Instead of looking at this new thing and recognizing that, six months after its release, it *will* be obsolete, and it doesn’t do a bunch of stuff we would’ve expected, and the stuff it *does* do it does in some half-ass, easily obsoletable way (if that’s a word), we instead focus on the shiny thing. They’ve got you again.

The iPhone is, if nothing else, shiny.

It does bluetooth, sure. But you can’t sync it to a computer. Sure, it has 8G of storage, and sure it’s runnning OS X (!!), but you can’t install anything into all of that space that isn’t deemed worthy by the software overlords at Apple, *AND* you can’t expand the memory. Sure it does WiFi, but it doesn’t do 3G. Sure, it’s a phone, but it doesn’t do anything useful with GSM. Sure, it does push IMAP, but it sounds like you’ll be forced to have a Yahoo! account to make use of it.

On top of all of this, there are no buttons. There’s a very shiny, *flat* screen, which means this thing is going to have its screen scraped up in no time. It also has a shorter battery life than my Blackberry 7290, which I got a few *years* ago.

Of course, there’s already talk that Apple may be shipping *two* versions of the iPhone, so some of what I’m saying may be proven true *or* false depending on your perspective. I’d say it proves my statements true: that basically, the version of the iPhone at the launch is essentially obsoleted by a phone released *at the same time*, *by the same company*.

I like Apple products. I’m happy with my MacBook Pro, as well as my G4 Mac. I like OS X. But this is just a nervy attempt to fleece me out of 5 or 6 hundred bucks.

Technorati Tags: , , ,

Blogger issues continue

Man, my worst fear has come true. Blogger is becoming *evil* from a usability perspective, and here I am trapped, because if I switch, all of those posts basically go away… or at least the old URLs become completely invalid. Maybe I just chalk it up, import the posts into something that isn’t tied to a service at all, and move on.

As of now, I can’t even get blogger to publish to my site. This worked before they moved from “beta” to “production”, which I refer to as “alpha” in this case. This is horrible. Wish me luck.

If anyone has moved from blogger to wordpress or some other blog and found a way to make it go smoothly, let me know.

Yes, one Chevy Volt Please

I came across this entry on autobloggreen.com about the Chevy Volt, which is GM’s latest stab at convincing us that they really do put some effort behind getting an electric car out the door to us sometime in the next millenium. I have to admit that, while I’m wholly *unconvinced* that I’ll ever see this car on a showroom floor near me, this car is totally cool.

My disclaimer is that I have clearly not done the research to figure out if this car is as green as it could possibly be or whatever; I don’t know if it takes more energy than traditional means through the charging process, mainly because I’m not an engineer. But the concepts they’re working with and the problems they’re aiming to solve at least shows that they understand that simply putting out a car that runs on electricity and forgetting about every single other detail will not fly.

First of all, this car isn’t something you would shudder to be seen in. Sure, it’s no Ferarri, but neither is anything else (except… a Ferarri). This car looks worlds better than those cheeseball little fiberglass boxes they wrap around the hybrid vehicles.

Speaking of hybrid, I’ve always had a problem with hybrids, and the Chevy Volt improves upon one aspect of the hybrid that I dislike: I’ve always looked at the design of the hybrids as a sign that the technology is not done yet. If it were, you wouldn’t need it to be “hybrid”. Let’s not forget that “hybrid” in “hybrid vehicle” is referring to the fact that there are two technologies working to get the job done, because one of them is costly, wastes energy and gives off emissions (that’d be the gas) and the other one nobody has learned to implement in such a way that it can replace the first one.

Well, GM didn’t totally throw gasoline out the window, but they’re using it in a bit of a different way from traditional hybrids – here’s the deal: you plug the Volt in to charge, say, overnight. In the morning, it has a full charge, which is enough to get most people back and forth to work (they’re shooting for a 40-mile range). However, it also has an internal combustion engine capable of running on gasoline or any of a number of bio-fuels. This engine isn’t connected to the wheels in any way, but rather the engine is used to charge the batteries. In this configuration, a car with a full tank of gas (a 12-gallon tank) and a full charge will go 640 miles. For reference, this is a bit more than double the distance I could go in my old Chevy Celebrity, which I believe had a 16-gallon gas tank.

So now the issues. As usual, the battery technology isn’t done yet, and when they’re done with that, they need to figure out how to make the thing cheap enough that people will actually buy the thing. Both issues seem to be major unknowns right now. I wish them luck, because I’d like to have something like this sooner than later.

Technorati Tags: , , , , , ,

More good food in NY – Telepan on 69th St.

My sister in-law lives with her boyfriend in NY, on the upper west side. I lived in NY for a while too, and worked there on and off for years. My favorite thing about the city is the food. There’s a lot of it, a lot of different kinds of it, and a good bit of it is really good stuff.

So we went to stay with my sis in-law and went out to Telepan, which just opened in 2006. Reservations are highly recommended, though they aren’t walk-in hostile either. They have a wonderful bar, with an adjoining area with a few tables that they reserve just for walk-ins.

Getting back to the bar, I have to say I was pretty impressed. The service was friendly, and the bar was a great way to take in the rest of the atmosphere, which was really comfortable and unpretentious, which pretty much describes our whole experience there. While the wine list will serve well all but the snobbiest tasters, I was esepecially impressed by the list of beers they make available. I was planning on having wine, but couldn’t pass up the 750ml bottle of Saison Dupont Farmhouse Ale, which was excellent, and at that size, easily lasted from pre-dinner drink to just before coffee.

Telepan serves American food that’s anything but boring. The four of us all had the 4-course taster menu, which allows you to pick an appeteizer, a mid course, an entree and a dessert for about $50. The taster portions of the 4-course menu (along with a couple of other random complimentary servings of bread and finger foods) left us all stuffed to the gills.

I had the winter vegetable and bread soup to start. Any time I’m in a restaurant with a menu full of unique items, I like to see what they do with soup, because soup is often neglected and left to be ordinary by run-of-the-mill places. If you run a restaurant, and you’re not targeting the early-bird crowd, please stop serving soup that comes from a 5-gallon bucket. Telepan did not disappoint. I loved it. Winter veggie and bread soup was robust and very flavorful, but not at all heavy. I also got to try the gnocchi and the stuffed shrimp, both of which were also wonderful. Everyone was all smiles, and the service continued to be nothing short of fantastic.

My mid course selection was the Lobster Bolognese. It was very good, and the portion size was perfect. A small lobster tail perched atop a small nest of pasta and a very nice bolognese. Not that heavy crap you get in Italian places shoved into repurposed diners in Jersey that say “Italian” right in their name. This was really nice bolognese. Though I say the portion size was perfect, I really felt like it was a tease. It was great.

My main course was the dry-aged sirloin. I almost ordered it medium, then caught myself, realized I was in the city and not being served by a chef who was working at Red Lobster three months ago, and changed to mid rare. It was prepared absolutely to perfection. It was very tasty, and the brown gravy was skillfully prepared. I think the *cut* of meat could’ve actually been better, but it was certainly very good, the chef did the best that could be done with it, and sourcing consistently fabulous *anything* in a restaurant is non-trivial. Suffice to say that I did not feel at all, at any time, ever, that I was not getting my money’s worth.

For dessert, I had the red wine pear with chestnut cream, and a double espresso. Usually, I order coffee, because I’m not a fan of the back room espresso machines in most “family” restaurants. You know the ones: they use the same terrible beans they use for regular coffee, but charge you three times more money, and it tastes terrible. Telepan, I’m happy to report, has good espresso.

The dessert really just made it to “ok”. I really would’ve been shocked if the dessert blew me away, because dessert at any restaurant where it costs less than $25 just for dessert is often not mind-blowing. In fact, dessert even over $25 is often not mind-blowing. Maybe I’m just not a dessert guy. I will say this: the pear was good, and the chestnut cream was fantastic. I loved that. I just expected the flavor of the pear to be nicely complemented by the wine, and didn’t find that flavor to be there.

I really want to point out that one of the things I feel I’m paying for when I go to restaurants that are $25-$35 a plate is the service. Great service can make up for a lot of other things, or it can destroy the experience at a restaurant with great food. Telepan didn’t have much in the way of shortcomings, food wise, *and* the service was truly excellent. Everyone we interacted with at Telepan, from the Maitre D’, to the bartenders, to the waiter, bread server and bus staff all gave off an air of pride in the place and in their work, without giving off snobbish vibes or being completely robotic. It’s that rare balance that reflects back an image of a restaurant that is world class, but still unassuming and modest. The city has a way of destroying that comfortable feel in restaurants as they age. I hope this doesn’t happen at Telepan.

Smoke Free, Day 5

Well, I think I’m over the hump. Historically, day 4 is a really bad day for me in quitting smoking. Yesterday *did* suck pretty bad, but I’m past it now, and still smoke free. Still lots of cravings, hard to concentrate, fatigued, whatever. Lots of oddball symptoms associated with quitting smoking, but the one fantastic thing I notice every time I quit: I sleep like a champ. It makes the whole thing worth it.

Wish me luck as I go into week 2 on Monday.