Abandon Text!

W. H. Auden once said: "Poems are not finished; they are abandoned." I have been abandoning writing projects for many years, since only the pressure of deadline and high expectations ever got me to finish, or even start, anything of merit. This blog is an attempt to create a more consistent, self-directed writing habit. Hopefully a direction and voice will emerge.

Sunday, April 01, 2007

Mise en Scene

My brother Gene and I just did a little test video call via Skype yesterday -- we've been wanting to give our kids a way to get together more often than just our once-a-year visits over the holidays. Now that I've done these calls with a few different people (Fleet Maull, Harry, and now Gene), I'm starting to notice something about the media. It does make your communication with the person seem more real and in-person . . . but that effect has only a little to do with seeing the other person. It has just as much to do with seeing that other person in their environment. The little office, the stacks of papers and CDs cases by the desk, the light of the window, the O'Reilly book covers in the background . . . in short, another place, as well as another person.

I tend to unconsciously dismiss the importance of place. Somehow, in my mental categorization of the world, place is arbitrary, merely the scene and staging for the people who are in it. And yet, when I have a chance to talk to those people, I'm spending my time looking at everything else besides their face. I feel like a know Fleet a little better, just for the sake of seeing his handsome and uncomplicated study, with the recognizable clutter of desk used for real and varied work.

I used to think that TV reporters doing their "live-on-the-scene" monologues with streets and buildings behind them was hopelessly contrived, a sort of visual "look-Ma-I'm-really-here-in-Russia" validation of their authenticity. But now I'm starting to realize that the placement in the scene has a lot less to do with "I'm really here" and more to do with, "We take you there." The reporter does not need to be standing in front of the White House in order to do a credible story about the President's new policy, but we need to see the White House back there to really put ourselves in the Capitol. Maybe I'm a little more sensitive to that sort of thing since I use audio media (phone and radio) vastly more than I use visual media like TV or, well, actually being there.

And what a relief, knowing that I don't need to clean up anything or worry what my office looks like for these video calls. Far from distracting from the call, all those random things in the background are actually giving the other person a sense of place, a sense of what it's like to be me.

Labels: ,

Tuesday, March 27, 2007

DIY Distance Learning

Last night the Self Knowledge Symposium hosted Sensei Fleet Maull in a live videoconference, after a showing of the documentary The Prison Sutras. It was our first foray into "virtual" events, and it was an excellent event for us. A few observations, especially for anyone else contemplating hosting a virtual speaker:
  • High-end conferencing isn't. High-end video conferencing facilities are available at many universities and at outlets like Kinkos, but the fees are astronomical and the options limited. Many systems, like the one at UNC-Chapel Hill were geared towards conferences between points in their own system, and you have to pay extra "bridge" or "conversion" fees to get connected with some other location. With fees at over $300 an hour, its hardly worth it if you're just trying to avoid the time and money costs for bringing a speaker in.
  • Do it yourself. You can get reasonably good videoconferencing with off-the-shelf internet technologies. We tried a number of video chat clients, and wound up using Skype because it was extremely firewall-friendly, easy to set up, and totally free. You do have to invest in webcams and maybe some decent microphones, but good webcams can be had for $50, and we used audio equipment we already owned (microphones, mix board, mike stand, etc.) to handle sound at the event.
  • Test, test, test. If you're going to do an event with a virtual guest, you have to test the bejeezus out of your setup. We ran tests prior to the event with connecting to Fleet Maull, and also testing making Skype calls from campus classrooms. While no technical challenge was insurmountable, there were lots of little things to check: can this laptop get on the network from this classroom? Is the lighting ok? Are the sound levels comfortable for everyone? How are we going to get the microphone to people to ask questions?
  • Have separate techie and emcee resources. For this particular event, I was being both the host of the event, and also the technical guy running the videoconferencing. In retrospect, I wish I had had someone else do one of those jobs. I was so nervous about making everything work that I couldn't pay closer attention to do doing proper introductions, monitoring the response of people in the room, etc.

Labels:

Monday, March 26, 2007

Phasebook

Nothing makes you feel quite so old and un-hip as new media. As a professional techie who had spent most of my youth working with then-cutting edge technologies – email, desktop publishing, the Web, etc. – I thought I was immune to the normal process of technoscherosis. I never thought there would come a day when I said, “I just don’t understand young people with their (technogadget goes here)s.”

Cellphone? Check.
Smartphone? Check.
iPod? Check.
IM? Check.
Blog? C’mon.

But now I keep running into the world of web-based social networking, where I remain a hopeless dork. When we were distributing publicity for the SKS Prison Sutras event, I was told in no uncertain terms that we needed to get something up on Facebook. Not only had I not thought of that, I did not even entirely understand what that meant.

I have had similar so-square moments when SMS texting was mentioned or used. My free 25 text messages on my cell plan remain unused after the last two years. I think I tried it once, and it didn’t work for some reason, and I never felt compelled to figure out why. Jeez, I sound so much like my grandmother when I say that.

My only comfort (at least, the one that I’m clinging to) is that some of these phenomena are not really technological breakthroughs so much as youth-culture phenomena. An interview in this weekend’s Wall Street Journal with 22-year-old Facebook founder and CEO Mark Zuckerberg confirmed it. The author did an informal survey of Facebook users and found that the primary, and often exclusive, use of Facebook was to keep tabs on prospective romantic partners and their current availability. Phew. It’s not that I’m square, necessarily: it’s just that I’m happily married. (Ok, let’s just assume, for the moment that the two are not inextricably linked.)

Text messaging was similarly dispelled for me once I saw people use it in its most common circumstances. “Oh, now I get it,” I said. “The only people doing lots of texting are stuck in boring classes or boring business meetings that they can’t escape. Or maybe hanging out in bars.” (While laptops are cool, laptop use in bars remains totally uncool.) And again . . . thank goodness I don’t feel the need to use those technologies.

Of course, some saavy adult user of these technologies is still going to slam me for my backwards ways and Luddite prejudices. They’ll tell me about Zaadz, or some other social network that might transcend mating applications. But those networks just don’t seem to have experienced same growth that solidly youth-oriented sites like Facebook or MySpace enjoy. There is only one niche of networking, personal-profile posting sites that has had the same growth, and it is quite honest about its intent: online matchmaking sites. The more things change, the more they stay the same.

Labels: ,

Sunday, March 25, 2007

Blogger ate my homework

I just posted a lengthy post about social networking, only to be told that "a security token" error prevented my request from being fulfilled. Of, course, hitting the back button did not get me back to my text. I was happily using the Word add-in for Blogger until it was absorbed into the Google Borg, to avoid just this sort of thing.

ARRRRG!

When such things happen, I have learned to say, "Surely I'm not the only person who has this problem. Surely someone else has solved this problem." And so I went poking around for an updated Blogger add-in. It turns out there is a new Word integration . . . for Office 2007. Of course the Microsoft geeks (who are big blog users) will jump in to add value to the latest version of Office. And just as surely, they have absolutely no vested interest in supporting anything earlier than that. And the Google engineers dare not build such a thing themselves, lest they anger their partner in what must be a touchy relationship anyway. (In case you've been under a rock for the last five years, since Google inherited the earth, Microsoft and Google are the bitterest of foes.)

And, ironically, there is a glimmer of geek excitement in me when I think: Hey, I could build one! I started looking at the API documentation, visions of functions and interfaces dancing in my head, when I have to slap myself and come back to reality. Of all the things I could possibly do in my "free" time, writing software for the greater glory of Google is not one of them.

Labels:

Friday, March 16, 2007

Brave New

Brave New World, Aldous Huxley's futuristic novel about a society that had simultaneously eliminated all suffering and all meaning, has always been high on my recommended reading list. But there were parts of it that I always thought were a little far-fetched. The people of the future had such super-attenuated attention spans that they couldn't begin to tackle a full story; their entertainment consisted of hyper-abridgements, Hamlet in 60 seconds and such. "Ok, he's exaggerating for effect," I thought. "Surely people wouldn't really subsist on minute-long entertainment."

And yet the future is here, and about 500 years ahead of Huxley's timeline. The cover of this month's Wired blares: "Snack Culture: Tasty Bits o' Fun!" They chronicle the inevitable progression of cultural condensation: the rise of abridgements, Cliff's Notes, and most recently, the emergence of YouTube and other one-minute-media. People don't have the patience to sit through a whole hour of TV anymore; they watch one-minute clips on their iPods. Even a ten-minute piece of music is deemed too long, and services now rip them down to about two minutes. Viacom's $1 billion lawsuit against YouTube is seen as the death-rattle of old media, full-length content vainly struggling against a sea of snippets.

And who am I to scoff? This blog is representative of the same trend. I don't have time to write a novel, so I content myself with 500-word essays instead. Nor is anyone interested in reading more than 500 words at a go. . . mine or anyone else's. I was seduced by the power of instant entertainment last year by Scrabble on a cell phone . . . it's amazing how many hours you can kill five minutes at a time.

The only bright spot that I see, the one place where our society is not following Huxley's script, is the realm of user-generated content. We are not merely soma-doped cows consuming government-mandated entertainment. More people than ever before are creating the content. A five-minute blog reading can take an hour to write, and a five minute video can take days to create. So there's the sliver of hope that the interactive, participatory nature of the new media will engage more brain cells than it kills.

Labels: , , ,

Wednesday, February 28, 2007

Defensive Requirements

I’ve been through the wringer over the last couple of days with a software deployment for one of my customers. Nine salesmen flew in with their laptops to have the new CRM system installed and to get training, and we’ve spent the last day and a half just trying to get their systems ready: upgrading operating systems, patching operating systems, setting up wireless networking, adding computers to the networking domain, etc. My only salvation has been that the people I’m working for are the nicest people in the world and have been very understanding. Nonetheless, when nine pushy guys are all visiting you ever few minutes and saying, in that practiced sales tone, “Are you done with my laptop yet?” . . . it’s stressful.

All of which is the result of promising too much. I learned a ton of stuff about everything under the sun by being a go-to guy in a small software company, but the downside of being a generalist is that you don’t know when to say, “That’s not my job.” Had I been wiser, I would have forced someone else to be responsible for making sure the laptops were in good shape before they showed up with them. I might still have been the one to do all the work . . . but at least they would have understood that I was going out of scope.

The soul of an IT guy hangs in the balance of this sort of struggle. On the one hand, I can’t do everything for everyone. On the other hand, I don’t want to be one of those trolls who just reflexively says, “That’s not my job” ever time something unexpected comes up. The secret to responsible service seems to be finding the nicest possible way to say “no.”

Labels: ,

Wednesday, February 21, 2007

Programming Karma

A couple people commented on my post yesterday about Programming Support by Google, and I wanted to clarify a few things. Mostly, just soften my position.

Both Janet and Kenny pointed out that giving help to others online, with little realistic expectation of being remembered, was pretty altruistic. One of the fundamental rules of building community is that people give as well as get; and if I benefit from the postings of others, I have karmic debt to repay. Not only should I feel free to post my discoveries (no matter how ego-motivated they may be) but I have a moral obligation to do so. That karma is bigger than just the geeky world of programming; all of society is ultimately based on collective action, and we can't expect to have world peace and justice unless people give in to the urge to help others just because it's the right thing to do.

There are also perfectly rational (but still self-serving) reasons to share one's knowledge. Most of the people who maintain blogs or post in newsgroups are consultants like me, programmers for hire who want to generate attention for themselves and demonstrate their chops. There is no pretense that they are sharing their code out of the goodness of their hearts, unless you're hanging out with the Richard Stallman crowd of GNUbies and think proprietary code is evil. The posters are just out stumping for their new book, or their professional services, or just doing their jobs as technical evangelists. So it isn't just cheap ego-thrills -- it's just good business.

And besides, it's not always the ego boost that you expect it to be. Often people will post to say that your code doesn't work for them, or doesn't work in all situations, or even that it's a retarded way to do it and you should try this instead. Those with superior knowledge will trump you constantly. The feedback can be bracing.

The best motivations are probably the predominant ones: sympathy, and enthusiasm. You, also, have suffered with intractable problems, and felt relief and gratitude when you found the answer thoughtfully prepared by someone else. It makes you feel good to know you can make someone's day, recover their lost weekend, and maybe save their marriage by your gift. But that's hardly ever spoken. It's the enthusiasm, the naked thrill of technology, that has voice: "Isn't this cool?!"

Labels: , ,

Tuesday, February 20, 2007

Programming Support by Google

For the last several weeks I've been in crunch-mode for four different programming projects, all of them coming due (or overdue) at the end of this month. Collaborating with others to solve technical problems was the first true application of the Internet, back when it was chummy fraternity of DARPA wonks and university researchers, so it should come as no surprise that it's still the best place to go for solutions to programming problems.

I've been experiencing the Wikipedia Effect, the ultimate paradox that:
  1. No matter how obscure your problem is, someone else in the world has asked the same question before and often already found the answer.
  2. No matter how seemingly common your problem is, often nobody has found a good solution for it.

This paradox is what stokes the blogosphere and inspires millions of programmers (yes, and I mean that literally -- there are millions of programmers in the world) to sit down and share their knowledge. Many of us pull up instant answers to questions five times a day: "How do get the process ID for your program? How can you validate an email address?" But then you hit a question where the answer is not forthcoming. You find post after post in newsgroups where geeks concede defeat, in various states of panic or resignation: "Yeah, I ran into that problem, but no, there's no really good way to handle it."

So when you struggle with that problem, and after days of struggle, frustration, and pain, and you finally come up with the solution, you feel like the king of the world. You have something that you know hundreds, maybe thousands of people want to know. So it's no wonder that they climb to the top of their imagined turrets and bellow, "Behold, ye legions of hackers in distress! I, your hero, have found the Way!"

It's happening just often enough to me right now that even I am tempted. I have so little time for the things that matter in my life, and even I am just dying to show the world that I know the best way to have a single instance of a program running in a given user's Terminal Services session. It's not even entirely clear why the ego is so gratified with such an achievement. Others might benefit from your knowledge, but nobody will remember you for it. (At this moment, I cannot recall the name of a single person from whom I've glommed code online.) Mostly it's a vain attempt to get recognition for something that no one else will probably appreciate. Certainly your boss or your customer will never appreciate the amount of effort that went into solving the problem; all they know is that it was broken, and now it works, and you might have spent five minutes or three days solving the problem, and they really don't care. So you turn to your peers, hoping that for a small handful of people, you will be a lifesaver, a godsend, a hero, a saint.

Labels: ,

Sunday, January 21, 2007

Spin Wars

Two instances of media spin hit me simultaneously yesterday.
  1. My mother-in-law forwarded a vicious slander of Barack Obama that had been forwarded to her. The message tried to paint Obama as a closeted radical Muslim. I suppose it doesn't help that his middle name is "Hussein," which might as well be "Jones" in the Middle East but most American's only hear it as "evil guy." A quick check on snopes.com easily verified the truth: he's been active in a Christian church for the last twenty-five years and never said or did anything to indicate he ever considered himself a Muslim.
  2. The Wall Street Journal published an op-ed from Paul A. Offit, citing a JAMA study that asserted that people who abstained from certain immunizations were putting their communities at much greater risk for certain diseases. I haven't been able to read the full text of the study to decide how much credence to give to it, but I found it rather irresponsible that neither Offit nor the Wall Street Journal disclosed his ties to the pharmaceutical industry -- that he is a consultant to Merck on the production of vaccines, that he has refused to disclose whether he is paid by Merck, and has a financial stake in the production of vaccines in the form of his patents. Of course, I didn't know this off the top of my head -- this basic information was available courtesy of a single Google search.

These two incidents show the acceleration of both knowledge and ignorance in the information age. The basest lies can shoot around the world in days . . . but individuals can validate that information just as easily, too. I am not so much concerned that individuals and media are generating spin; that has always been true and always will be true. What concerns me more is the fact that we are all becoming little publishers ourselves -- our capacity to send information or misinformation has become magnified. Journalists have an accepted standard for fact-checking, validation, and full-disclosure . . . but those standards have not disseminated to the broader culture.

I know journalists are often slamming the blogosphere for playing fast and loose with standards of reporting, but I am not just echoing the "you're not journalists so just shut up and listen to us" argument. I don't believe that a blogger, or even a person who innocently forwards an email to their friends, has to meet the same journalistic standards as CNN. But I wish the popular culture recognized that they ought to have some standard . . . and hold them responsible for it.

Labels: ,

Friday, January 19, 2007

Steal this Lecture

The News and Observer reported that an NCSU professor has been asked to stop selling his lectures as online downloads. Interestingly, the university was not contesting whether the professor owned the rights to his lectures -- they affirmed that he did own the copyright to his own material. They were worried that he might have a conflict of interest, if he is making money on material that students expected to have already been covered by tuition costs. At least, that's what they are saying . . .
I am fascinated by this development because for the last five years I have been predicting the coming of the "rock-star professor," an educational free agent who will generate syndicated multi-media interactive content (what in ancient days was called a "class") used by many more institutions or individuals than a single teacher could previously reach in the traditional classroom fashion. Such an evolution in higher education would create a competitive market for good teaching, something often shockingly lacking in colleges and universities. An engineering grad student once told me: "This is probably the only professional job one can get with absolutely no training. I have zero preparation to teach." Nor does anyone have an economic interest in teaching him: the pay is comparable to unskilled labor.
In the case of Dr. Schrag, it looks like the university is trying to side-step the legal question of ownership, but still frames up the question in the status-quo assumption that the university is the seller of the education, not the professor. He is being told he can't sell it to his students because they already bought it . . . in the form of tuition to the school. Given the ever-mounting costs of college tuition, I can see why students might object to being nickeled and dimed . . . but it's hardly without precedent. When I was in school, professors routinely created course packs, photocopied materials of articles, reprints, and original material made specifically for the course. They were printed at Kinkos, and sold to students. It was just another textbook to buy, that's all. And at the price of $2.50 per lecture, his entire course could be had for $80, which is not uncommon for a textbook. (Ahhh, textbooks . . . that's another racket I would love to see undermined by a truly free market.)
When the university officials say "we just need a little time to look at the issue closely and sort everything out," what I hear them saying is: "look, you're going to create a lot of confusion in the marketplace. You're opening the door to people buying from you instead of us. Our whole branding message as a university will be shot if you start offering a la carte lectures. More importantly, that's our action. Hands off."
But the day is coming, mark my words. When a better-quality product can be had online for a fraction of the cost the universities charge, the market will there. The universities will get into the education syndication business, lending their branding to such efforts . . . or they will get run over by it.

Labels: , ,

Thursday, January 18, 2007

Globally Positioned

My boss Harry gave me a GPS navigation system for Christmas -- a Garmin StreetPilot 340. He had floated the idea of giving one to all our consultants, and I had deferred for myself. "I was sometimes tempted to buy one, but I never thought I would use it enough to justify the price tag." I mean, how often am I driving to a new place? Once a month? And, between MapQuest and good directions, I always managed to find my way. So it seemed like an over-geeked thrill, a luxury purchased and never used, like an expensive exercise machine that gathers dust.

At least, that was my expectation. How wrong I was.

The killer feature that I did not anticipate was "Arrival Time." The device not only tells you where to go, it continually predicts your arrival time to the destination. So, all the stress of wondering whether you're going to be late or not is completely removed -- from the beginning of the trip, you know. No more wondering if you have time for a quick side-trip; that, too, can be calculated. That knowledge can be extremely powerful when you're trying to squeeze in errands. And if you call the customer to tell him you're going to be late, you can make a really accurate prediction of how late. The end result: much reduced stress. A two-hour drive to Charlotte, when time was tight, could be two hours of "hurry-hurry-hurry" tension . . . and now that's gone.

Another side-benefit is street education. Even when you think you're familiar with an area, you don't always know the best way to get from A to B. Several times the Garmin has saved me five or ten minutes by showing a better route.

And that's all on top of the original concept: telling you how to get someplace new. Even Janet, technophobe slow-adopter that she is, had to admit: "That thing saved my butt last night." When you're going to a new book-club location in the dark, in heavy traffic, the strain of watching and wondering, "Am I there yet? Did I miss my turn? Is this my turn?" can wear you down.

There are limitations, of course. There are some addresses and locations the device doesn't know about, and the usually easy process of programming it because maddenly frustrating. Sometimes it can't find it's satellites right away and you have to wait. But these are exceptions that prove the rule -- once you have the luxury of that information, you don't want to be without it.

Labels:

Friday, January 12, 2007

The Computer-less Vacation

Another one of my resolutions for the coming year was to (gasp) actually take Harry's advice and take a real vacation. By real vacation, I don't mean my usual notion of vacation, where you stop going to work but you just use that time to "catch up" on things around the house. That might be a useful change of pace, and relaxing in its on way, but that's just time off. That's not a vacation.

In order for it to be a vacation, you have to vacate. You have to go somewhere else. As trite as it sounds, you really do need to "get away from it all." In the past I never found the idea of travelling vacations all that appealing, because travel requires lots of planning, has its own kind of stress involved, and is expensive. The things that usually entice people to travel -- new food, sunny beaches, shopping, site-seeing, and all the other images that cruise lines and credit card ads like to flash at you -- have limited appeal for me.

The only reason I want to go someplace else is to completely, utterly disconnect from my working life. It's the same reason I went and lived in the woods of West Virginia in near-perfect isolation for eight months -- I need to remember what it's like to alive apart from my work. And that will mean leaving the computer behind.

I can probably count on one hand the number days in the last three years in which I did not touch a computer at all. That's not necessarily bad . . . but I sense the potential for other capacities to atrophy, when so much of life is lived inside the Box. When my kids wander into my study, and want to get my attention, they know they can't always drag me away, so they ask to do things on the computer themselves. "Let's make numbers," they say, climbing into my lap. So I pull up WordPad and let them peck at the keyboard, while I kiss them on the top of the head. I dread the day when I will be the one coming into their rooms, trying to get their attention off the screens . . . I would like to live with them in a screenless world for as long as I can.

So I'm thinking Colorado . . . I see mountains in my future, and bike paths, and streams and lakes, and hikes in the daytime, and books and fires at night, and the ghostly haze of cathode rays dispelled by sunlight.

Labels: ,

Thursday, January 04, 2007

Easy credit, uneasy me

I downloaded my credit card transactions yesterday, getting ready to reconcile about three months worth of stuff. I generally like to do the books -- it feels like accomplishing something while being generally light work, something I can do while listening to music. So I was chugging right along with a good rhythm: Accept, Accept, Accept, type a note here and there, Accept, Accept, look up a receipt, Accept, Accept. . .

And then I begin to see charges like this:
12/14/2006 Incom Jerusalem $2,678.95
12/14/2006 Currency Conversion Fee/SHEKELS 10000 $0.00
12/16/2006 Jerusalem City Hall $1,453.20
12/16/2006 Currency Conversion Fee/SHEKELS 5000 $0.00
12/20/2006 Haozor Jerusalem $2,543.03
12/20/2006 Currency Conversion Fee/SHEKELS 10000 $0.00

And they keep on going, line after line like that.

Hoooooly shIT!
I ripped out the credit card from my wallet and dialed the number on the back, my heart pounding. "Hello," says an automated phone system on quaaludes, "welcome to U.S. Bank's automated service center. What can we do for you today? You can . . . Get your account balance . . . Get interest rates . . . Get transaction information . . . "

"Where's the freakin' option to report fraud?!?!"

"...I'm sorry, I couldn't understand what you just said. You can . . . Get your account balance . . . Get interest rates . . . Get trans--"

"SOMEONE IS STEALING MY MONEY."

"...It sounds like I better get a customer service representative to help you," she/it coos. They must have an algorithm to hear distress.

So, I explain what I'm seeing, and the live human being sounds very competent but rushed. "Ok, I'm going to put a hold on your account right now . . . there's a six minute wait to talk to the Fraud department, can you hold?" The Fraud department is equally competent and only slightly less rushed: "Ok, we've locked that account and we're sending you a new card and we'll credit your account for those transactions and we'll send you some paperwork you have to sign and do you have any more questions?"

A number of questions do come to mind, like:
  1. How can a credit card account that has maybe $500 a month in charges for the last ten years suddenly have $10,000 in charges within 14 days from a foreign country, and nobody noticed anything suspicious? Were the fraud-detection data analysis computers helping themselves to the phone system's quaaludes? "No, maaaan, he's jus' probably spending Christmas in the Holy Land, see?"
  2. Why in hell's name do I have a $20,000 line of credit anyway, when I never asked for it and never used it?
  3. If it's so freakin' easy for anyone who has ever received my credit card number to start painting Jerusalem red with my account, why hasn't it happened before? Have I been living in a bubble with a totally false sense of security all this time?

But I don't ask those questions aloud. I thank her, hang up, and begin wondering how my credit card number got stolen. I think about every online vendor, large and small, and how secure their systems might be. I think about how much worse it would be if someone had tapped my bank account, or my online investment accounts . . . in other words, I settle into a good steady funk of paranoia.

Labels: ,

Tuesday, December 26, 2006

Busman's Holiday

I'll be posting on the run during the holidays, I think, since I'm on the road and never know when my next internet connection will come from.

Of course, here I am trying to fix my mother-in-law's computer. Why do techies inevitably start fixing things when they ought to be relaxing. But it is oddly relaxing, though. A change is as good as a rest. After the noise and the hullaballoo of family and travel and playing with the kids, some quiet focus on a novel intellectual challenge is very calming. Plus it puts me back into myself, so to speak . . . I often feel rather disconnected during the holidays, because so much of my time is spent in ways completely un-like my usual routine.

Trite cliches about balance would usually surface at this point, which my Stoic breeding, German genes, and SKS training would strictly forbid. But work can be so pleasant in small doses.

Labels: ,

Sunday, December 24, 2006

Why .NET is cool (yes, seriously)

I suppose I could write about something deep and significant on Christmas Eve, but after all the careful attention paid to making it an optimal experience for the kids, I'm worn out. It's a lot easier, for the time being, to go on auto-pilot. Which, for me, means to talk geek stuff.

I finally, finally started using .NET on two recent projects. Even though the new Microsoft programming platform came out over four years ago, I put off adopting it until the last possible moment -- that is, until I had a business problem that actually required it. I always considered it a strike against .NET that it had taken four years for me to find an problem that made me think, "Hmm, I think I'll use .NET." Even if Visual Basic 6 is ten years old, it's working, and I'm familiar with it, and I have no time for learning curves.

As it is, I was forced to jump by the usual reasons: everyone else was doing it. Or, more specifically, both Salesforce.com and Microsoft Dynamics CRM were using web services to expose the API for their web-based applications, and the only reasonable way to talk to them was to use .NET. So I swallowed hard and jumped in.

Man, what took me so long? Here are the things I wish I could have told myself at least a year or two ago:
  1. If you're worried about the language changes being too cumbersome, you can relax. Almost everything you're used to using is still there. More importantly, the IntelliSense features in Visual Studio.NET 2005 are so vastly superior to previous versions that you're immediately alerted to important changes.
  2. Speaking of which, I can't say enough good things about the IntelliSense. I mean, I appreciated auto-completion of code and prompts for proper structure, but I was also annoyed at how VB6 would throw a hissy-fit if you deigned to move off a line before you had completed it. Now the syntax checking is unobtrusive and in the background: errors are called out with the little underlining squigglies you're used to seeing for spell- and grammar-checks in Office. Unused or undeclared variables are called out. And it even auto-corrects certain mistakes: I had forgotten that they threw out the "Set" keyword for object assignments (e.g. Set obj = New(, QuoteWerks.Application)) but IntelliSense was so smoothly correcting it behind me that I didn't notice for several hours.
  3. The form drawing features are equally unobtrusive but compellingly useful. As you drop and move controls on the form, the environment automatically handles alignment and spacing, showing you what it's measuring from with little red lines . . . again, helpful without being bossy.
  4. The changes that have been made to the language are sensible ones. The inexorable push towards object-orientation is good, really, even if you've still managed to get through your career without ever writing a class module. It might seem a little odd to think of a form or even a string as a class, but the moment you start using them that way, you're glad about it. All the string-manipulation funtions are now methods on the String class, so you can pop them onto the end of an expression instead of at the beginning (e.g. obj.FirstName.Rtrim() instead of Rtrim(obj.FirstName). And again, the IDE does such a good job of autogenerating all the class-related code that you'll hardly notice.
  5. Web services really do make sense. I was extremely skeptical about the idea at first: "Oh, gee, now we're not only breaking things into different components, but now they're going to live on different machines, too? That will be a joy to debug." But we already have lots of client-server applications talking to each other -- it's just that we had gotten used to using TCP/IP sockets and protocols and such. Now the machinery for inter-machine communication is really easy. I once made a COM+ application as a debugging sample, and it was really hard and next-to-useless. But the .NET web service stuff was easy to use . . . so easy, in fact, that we will see the opposite problem, in which people start making web services for functions that have no business being web services.
  6. Installing the .NET Framework is not that big of a deal. It may seem like a massive runtime engine to install, but with bandwidth and diskspace so plentiful, does it really matter if the runtime is 5 MB or 50 MB, as long as you have to install one at all?
  7. Structured error handling (Try...Catch...Finally) is sooooo much nicer than the old kludgy way of using labelled blocks of error-handling code at the end of a Sub. It's so good that hack programmers like me will actually start doing some real error-handling, instead of throwing in "On Error Resume Next" and praying a lot.
  8. Visual Studio.NET 2005 follows Larry Wall's primary directive for programming environments: "Easy things should be easy, and difficult things should be possible." Easy things, like sending an email, or preserving a form's position between runs, are very easy. Hard things, like rolling your own controls, are more possible than ever, thanks to the class-oriented aspects of everything.

Right now, I'm having a hard time thinking about going back to VB6. So if you haven't tried it, I think you can stop waiting.

Labels:

Friday, December 08, 2006

Top 10 Signs You're in a WTF Company

The Daily WTF website celebrates (or should I say reviles) "curious perversions in information technology". They recently launched a new service offering job postings to save people in WTF-prone companies with new jobs in (hopefully) WTF-free organizations. I am extremely grateful that I have had few personal encounters with such incompentence on such a grand scale . . . but I have seen a few.

So here it is:

Top 10 Signs You're in a WTF Company:
  1. Months of work by the marketing department gets proactively wiped out by an IT deparment trying to "clean up the servers." None of the data is backed up.
  2. When asked if the users call them much with issues, the IT staffer says brightly, "No, they don't ever call us unless the servers go down. They call us a lot about that."
  3. When asked if the IT staff should be called to help resolve an issue, the end user snaps, "Don't you ever let them touch my computer!"
  4. FoxPro 2 applications are still in production.
  5. The IT department's testing server, where they try out new stuff, has SQL Server 7.0 installed.
  6. Power in half the building goes out due to a cable being cut by construction crews. The switch is fried and most users cannot access the network. Surprisingly, nobody is yelling, screaming, or even laughing.
  7. An intercom announcement says, "The network is back up. Repeat: the network is back up." A user turns to his computer, tries to log in. The network is not back up. The user does not yell, scream, laugh, or even cry. There is no expression at all on her face, except maybe a distant look of sadness.
  8. When told that the network is still not back up, the IT manager says, "No, it IS back up!" and walks away.
  9. When asked about any particular IT system, the end users say, "Well, that's the way it was when I first started here X years ago."
  10. The IT manager gets irritated because the consultant keeps asking so many questions.

Labels: ,

Sunday, December 03, 2006

My IT Philosophy

I recently referred to "my IT philosophy," and I was slightly surprised that I did have a philosophy about this job, one that had evolved over time and had some unifying principles. Some of this is received wisdom, but most of it comes from my own experience. I imagine there are writers about patterns and anti-patterns who have better articulations of essentially identical ideas, but these are how I've thought about them in my own work:
  1. Serve the business need first. IT staffers are sometimes so emeshed in their technical challenges that they forget that their mission is to solve business problems, not to merely build or maintain systems. When evaluating priorities or weighing possible solutions, an IT manager should always ask: "What's the business need, and how can respond to that need as quickly and effectively as possible?" For instance, if a salesman can't get an order processed on the last day of the month, a typical IT guy might just treat it like any other issue and tell them to wait for the technical issue to be fixed. A superior IT guy would address the business need first ("here's how we can manually by-pass the bug for this one issue") and then fix the system later.
  2. Sales uber alles. Every IT guy has more issues pending than time to address them . . . which means they have to make decisions about which issues to address immediately and which to let burn. The typical IT person will address issues in the order they were received, or worse, reverse order in which they were received. Others categorically ignore everything and only pay attention to the squeakiest wheels. But ideally, issues should be addressed according to a hierarchy of how they impact the business. I work according to the following hierarchy: executive-level issues, then sales-related issues, then customer support-related issues, and then everyone else. Executives are first in line for purely political reasons: you don't get to keep your job unless the top brass are kept happy. But after that, sales is the number one priority. If an issue is keeping a salesman from selling, or keeping him from closing a particular deal, that's top priority. This reflects my overall business philosophy: I believe the most successful organizations are those that are sales-focused and sales-driven.
  3. Start with the user in mind. Every aspect of application development should begin with the user. Requirements should be gathered first from the users themselves. Specifications should always flow from use-cases first, and then into underlying technology. Actual development should alway start with the user interface and then implement the actual business logic. All this flows from the first principle: stay focused on the business need, as it is experienced by the users.
  4. Gather requirements from all levels. Nobody has the entire picture when it comes to a significant application. The mangers might think they know everything that needs to be known about what an app needs to do, but they often miss important details that are obvious to people working in the trenches. Likewise, end users may know what's important for day-to-day operations but be myopic about long-term issues. When gathering requirements for an application, talk to everyone involved if at all possible.
  5. Be agnostic on technology. All that matters is that the solution works and is maintainable. If the solution works, and works soon enough to meet the business need, all kinds of other flaws can be overlooked. A solution might be ugly, use old technology, be less-than-ideal, or just plain un-hip, but the boss's boss won't care if the business need is met. It's amazing how many techies get stuck on trying to find the perfect solution while the world is burning.
  6. Design for the long run, but implement for the smallest measurable change. A staggering number of IT projects never get completed, usually because the business needs change before the development could be completed. To avoid making perfect and irrelevant software, you need to always err on the side of making the scope smaller. Don't overbuild. Do exactly what is absolutely necessary to meet the business need, and no more. If the app proves to be effective and important, you will get a chance to build it out some more and add features.
  7. Understand your issues (or be doomed to repeat them). This is probably the only exception to the "meet the business need first" principle. It is entirely possible that "try rebooting your computer" will solve the immediate problem, but that's not a satisfactory level of support. You have to make every reasonable effort to really understand what's going wrong, or issues will linger, multiply, and resurface at every turn.

Labels: ,

Friday, December 01, 2006

Luddite consultant

I have a confession to make. Yes, I make a living supporting technology, introducing organizations to new levels of digital sophistication. But . . . in my heart, I'm a Luddite. My greatest challenge in business is persuading end-users to embrace the changes I bring to their jobs . . . and yet I find that I resist change as much as they do.

For instance:
  • My computers are old, for a techno-geek. I keep them at least two or three years.
  • I finally upgraded my personal installation of Microsoft Office to Office 2003 -- three years after it was released.
  • I finally wrote my first .NET application . . . four years after the technology was released to production. Until then I had continued to use Visual Basic 6 (now quaintly referred to as "classic" VB) which was released ten years ago.
  • As I wrote earlier, I'm still using a five-year-old digital camera, which is starting to get stares of amazement from the late adopters who are sporting cameras half as small with twice the resolution and zoom.
  • My boss, Harry, has repeatedly pushed initiatives to get us to use new software: billing software on our PDAs, personal organization tools, new CRM systems like Commence. On every single initiative, I dragged my feet. (Ok, I was actually right to hate Commence, which we eventually scrapped, but that's another story.)

In general, I am perfectly happy to continue using the tools and technologies I have right now, and anyone pushing something new has to make a strong case to push my hand. To some extent, that is consistent with my conscious IT philosophy of "solve the business problem first, then worry about making it pretty." But it's a trend that I would be embarrassed to admit to my customers.

Labels:

Monday, November 27, 2006

Everything I Ever Needed to Know, I Learned on the Can

I never set out on a formal career path to get into software or programming. But some part of me thought that it would be cool if I could do the programming on my own web forms, and when I was looking for work I saw a lot of adds for people who knew CGI and Perl. So I bought my first Camel book, and read it in my "free time." I deliberatedly use quotation marks around that term, because by "free time" was limited to about three 10-minute bathroom breaks, and maybe ten minutes before I fell asleep at night.

Still, that added up to about 45 minutes a day of time. Which added up to maybe three working-days of study time a month. After a couple months, I was able to do some programming. I made the first few CGI scripts for the SKS website.

And so it was with Perl . . . and then SQL . . . and then Javascript . . . and then Visual Basic. Simple algorithms, relational algebra, database theory, interface design . . . all were mastered in ten-minute chunks while taking a dump. As my knowledge grew, I got to spend more and more of my working time applying my skills, which accelerated the learning tremendously. But the bulk of my new-technology learning was (and still is) in stolen moments.

Gradualism is a powerful thing. If you can allow yourself to pour your in-between minutes into something -- anything -- it can add up to something significant. That was why I finally quit my Scrabble addiction, and started jotting notes for my blogs on my handheld instead. Faithful in little is indeed faithful in much.

Labels:

Saturday, November 25, 2006

Hardware envy

This Thanksgiving, as everyone was whipping out their cameras to take pictures of the kids, my father looked at my camera and said, "My God! That thing is huge!"

Well, he's right. It's a six-year-old Sony Cybershot, and it's about the six of a box of animal crackers. But what makes it more interesting is that this same camera elicited whistles of appreciation from the same man five years ago.

There's nothing new about hardware getting old . . . or men talking about their computers or gadgets they way they used to talk about their cars. But it's not just the hardware that's changing -- the people who are using it is changing just as fast. A seventy-year-old man is dissing my camera. Before you know it, some homeless man is going to laugh at my Cybershot and ask if I looted a Salvation Army depot to get it. And I'm going to sound like the crufty old geezer still typing his letters with WordStar on a PC Junior -- "Well, it works fine for me, I don't really need anything newer . . . "

This may be my first keeping-up-with-the-Jones moment . . . where I stopped to wonder whether I should buy something new, not because I wanted it, or needed it, but because I wondered what people would think of me because of it.

Nah.

Labels: