Dude, I thought he was going to crap himself

I came up with a great line in a meeting the other day. We were talking about bad news, of which I had dispensed a large amount that day. I decided then and there that I’m going to buy a box of Depends adult diapers and start bringing them to all my meetings. For severe bad news, I’ll galantly offer them to the recipient before I give them the news and helpfully offer, “You might want to put these on,” before I launch into the painful topic. It seems the charitable thing to do.

Yes, that was a much better idea than my idea to start distributing a screen saver that would take processing power from people and use it to serve out http requests. I thought it was brilliant. It could end up being the world’s largest web server. I have no idea how it would work. It obviously wouldn’t work for serving out files since everyone would have to have the files on their machine, but for dynamic requests that are processor-intensive (like, ahem, searches) why not? It makes perfect sense to me.

Categorized as geekery

Get In Line

I’m a nice guy. I really am. I like helping people. I like answering questions. But, I have my limits. Every day, many times a day, I get questions from people about various topics: AOLserver, Linux, Tcl, HTML, CSS, SQL, etc. People love to instant message me while I’m working on something with queries on these subjects, obviously without having done any research of their own. They haven’t checked out the documentation for whatever it is they’re looking for. They haven’t typed in man <insert command here> or even considered it. They ask first, research later. That bugs the living crap out of me. If you really want to earn your knowledge, you will do your digging. How do you think I learned it? For the most part, I didn’t have anyone to turn to and I found the answer myself (and this was in the days before Google, so it wasn’t always easy) or I did without. I broke things, sometimes irreparably, frequently. I had to reinstall Windows, MacOS and Linux more times than I can count because I did something stupid in the name of experimentation. It was fun because I knew I’d figure it out eventually, and if I didn’t, well, my original query sometimes became collateral to the other things I learned on the journey to its answer.

I know some people just want answers and don’t want to earn them. If you’re one of those people, stop asking me questions. If you really want to know, you’ll prove it by looking somewhere other than your buddy list for me. You’ll hit the stacks and do some research before you ask me. Make me at least think you really want to know. And remember, I’m not trying to be a jerk, I’m succeeding. I went to jerk school and graduated at the top of my class: Sum Bigga Jerk.

Categorized as geekery

Attention Campers!

After yesterday’s feel-good rant about acceptance, I think today I’ll talk about tech zealots and the camps they inhabit. I’ve been reading some of ZDNet‘s TalkBack postings (scroll down) and am filled with fear.

There are Microsoft Serfs, Linux Freaks, Anti-Microsoft Pirates, MacHeads, FreeSoftware Infidels, etc. They all have their misconceptions about their “enemies” and seem to want to inject them into every conversation. I’ve been reading the responses to articles for a couple weeks now. They all devolve into the same old tired arguments, that when they were conceived, my have had a backing in fact. Now, after years of spouting the same facts and figures about software that’s now three versions behind, these groupies have lost sight of the truth and fail to keep up with current software and refuse to take them on their own merits.

I sit here in the middle of the issues, having friends on all sides of these arguments. I don’t understand why it has to be an all or nothing proposition. I like the ease of use of Windows 2000 when it comes to games and peripherals (for the most part). I love Linux and the freedom it gives me to configure it however I want, and the superior collection of software included in the distributions I use. I have a thing for Macs, their design and the fact that OS X is growing on me.

Each platform does what it does. Each company (or group where Linux is concerned) has its strengths and weaknesses (or felonies). I just wish people would lay off the rhetoric and come up with new arguments. Be logical. If you don’t like Macs because you have a thing against Steve Jobs’ mock turtlenecks, don’t say it’s because Macs suck. Come out and say you don’t like Steve Jobs and that’s why you don’t like them. If you hate Windows because of the security vulnerabilities, that’s cool… just state it that way. Ok, that’s enough of that. Don’t be a parrot for propoganda. Think for yourself and get your information from more than one source. When our arguments all start to sound the same, no matter what the question, the dialogue is no longer intelligent or productive. It’s just shouting at the wall.

Categorized as geekery

Give it a break, already

I know I’ve been on a downer lately, so here’s something that, while not funny, is at least positive. How amazing is Mozilla? If you don’t know what it is, Mozilla is an open-source web browser that supports open web standards, runs well and has some very cool features that set it apart from the other major browser out there (I’m not leaving out Opera, but if you don’t know about Mozilla, will you know about Opera?). It’s open source, which means that it’s been written mostly by volunteers, with some oversight by Netscape (now AOL/TW) employees.

Its critics have pointed out that it’s taken three years to even approach a 1.0 version. I see their point, but I think they’re missing the amazing feat the Mozilla group has performed. If you look at the releases page, you’ll see a who’s who of Operating Systems. Not only does it support Windows, MacOS 9 and X.x, most flavors of Linux, most flavors of Linux, but also OS/2 and a myriad of others. On top of that concurrent development on those platforms, each build of Mozilla displays pages, with the exception of the fonts available on the system, the same. My site looks the same on Mozilla no matter if I look at it on Windows, Mac, Linux, an embedded version of Gecko (Mozilla’s rendering engine), or on my Solaris box. That is an amazing accomplishment that should make everyone who worked on the project proud.

Microsoft can’t get two versions of Internet Explorer to work the same. Their Mac and Windows browsers don’t even use the same codebase, and only really share a name. Mozilla is the first of its kind, and a great example of the power of a vibrant and mobile open source community.

Categorized as geekery

There’s an excellent article on

There’s an excellent article on Mozilla over at Salon. As a fanatical Mozilla user since the earliest preview releases (I didn’t start using is as my default browser until it got stable enough around .9.2), I have to say that I wouldn’t suggest using anything else. I love the e-mail client, the bookmarking system (although there were still some annoying little bugs as of .9.8), and the standards support. .9.9 is out now, and I’d suggest trying it out. Mozilla is a lot faster than it was six months ago and a lot more stable than it was just two months ago. Try it, you’ll like it.

Categorized as geekery

Killer Apps

There are things I have today that I don’t remember living without. I remember the days before e-mail, but do I think I could live without it now? Nope, not for a single day. I’d go crazy. My favorite application, that I don’t think I could live with if it disappeared has got to be Mapquest. Every time I drive somewhere new, I go right there. Every time we take a roadtrip – it’s the first place I go. Like this morning, after I got out of my meeting, I went to Mapquest to plan our trip to Ohio. Mapquest told me it will take six hours and forty-three minute to drive from Sterling, VA to Elyria, OH. I know it’s 376.37 miles between my front door and the hotel where we’re staying, and I even have a nice little map of the route. Thank you, internet!

Categorized as geekery

Save Time Now, Waste Money Later

I’ve been working on a theory for a few weeks that you all probably know already. I want to share it just in case you don’t. There seem to be many people where I work who just don’t get it even when I use small words and exaggerated hand gestures. I even drew a diagram with stick people and arrows. I think I even used multicolored white board markers. Yes, it was pageantry and sophistication all rolled together in the round mound of me.

Equipment: The boxes and software that will run your site, tool, database, whatever.

Backend Programming: Writing stored procedures for the database, setting up data sources, creating daemons, etc.

Webserver Integration: Hooking up the backend systems to the webserver and writing procedures and/or functions to surface them to the webserver.

Frontend Integration: Using the stuff written by the previous step to build the actual pages returned to the user.

Users: Ummm, they use it. The “intended audience”, if you will.

I bet you’re wonder what this theory is now, huh? I’m getting there, just hold on. I work on some very large projects involving many different groups. The flow is in a lovely table to the right. The problem is that if the system involves daily interaction with employers, or worse, the general public, any steps you’ve taken to cut corners that make the product less usable will ultimately cost you more more in time and money than if you had just done it right the first time. Every hack that the person after you has to create in order to get code to work is a waste of time and money. Every useless step a user has to do to accomplish the purpose is wasted time that gets compounded by the fact that there are probably many more users than there are programmers. It’s even worse if this is a consumer site. If it doesn’t work, or is difficult to use, they won’t use it at all, and it will really be a waste.

Cost-cutting measures during development made in the sake of saving time or money save neither. Every mistake made that isn’t fixed wastes the time of the next person to work on the project. If the next step involves multiple people, you’ve multiplied that waste by the number of people who have to compensate. No matter how much your backend developers make, it’s not enough to justify wasting the time and talent of the people who take over. The same goes for everyone else involved. When building something, do your part right. Talk to the people who will be using what you produce. Let’s say you’re in the webserver integration group and you’re writing something that will be used by 20 people. Talk to them and make sure you’re not doing something that will make them have to work around your product instead of using it as intended.

This all boils down to usability. The principles of usability don’t go out the door just because it’s software and not a webpage. Writing crappy code because it takes you less time is no excuse. It’s the poorest of excuses because you’ve just inflicted a giant time and money waster on the people who then have to use it. So, think before you code, please? Say it with me: I will not write crappy code. I will do things the right way, deadlines be damned!

Categorized as geekery

How to get your geek to love you

I’ve done some of these before. I did my week of GeekTraining tidbits (1, 2, 3). Today, it’s some stuff for project managers. The title is different depending on the company (or even within the same company). Here, they used to be called project managers, and now they’re producers. The name’s been changed about ten times without the job function moving at all. Being a project manager is a pretty crappy job, as far as I can tell. You end up as everyone’s dumping point for bad news, demands, requests, problems, gripes, requirements, schedules, conflicts and slips. You don’t get the thrill of building something, much credit if it’s successfull, but a lot of blame if it fails or comes in late.

I won’t deal with project management as it relates to dealing with business folks, because I don’t know much about it. I do know how to deal with geeks, because I am one, and have to deal with project managers of varying talent levels all day, every day. Here are some of my observations, gathered from my three years in my current position:

Good Project Managers:

Bad Project Managers:

understand, at least at a high level, the technology involved in a project. They understand acronyms, implementation timelines and relative complexity.

constantly remind the geeks how stupid they are by asking the same question several times in the same meeting, constantly answer questions with blank stares and decide certain tasks are easy because “it didn’t sound hard to me”.

provide a buffer between business folks and geeks, translating businessSpeak into real requirements and providing effective communication between the two groups.

forget to tell the geeks about requirements until the last minute and refuse to stand up to business folks when the business folks give unreasonable timelines or demands.

keep track of each step of the project. A good project manager knows that person A from design is going to be late, and therefore, geek B needs to know that work won’t be coming until later, and then communicates the slip to the business so they can readjust their schedule.

do their best to avoid being the bearer of bad news, and conveniently ignore slips by other groups while still expecting the geeks to make up for everyone else by completing their work in less time than they agreed to.

are friendly and develop good working relationships with each party. This goes a long way to making everyone do their best work. When a requirement becomes a request instead of a demand, everyone is more likely to accomodate it.

are antagonistic and think the best way to get people to do their job is to constantly nag them, stand over their shoulder, speak for them in meetings and set schedules without consultation. They’re my favorites.

There are more, I’m sure, but this is all I can come up with at the moment.

Categorized as geekery