Dan Appleman: Kibitzing and Commentary

My personal blog

On Device Convergence and Human Nature

This week, Wired posted two articles on device convergence: Five Gadgets That Were Killed by the Cellphone and Seven (More) Gadgets Killed by the Cellphone. I responded in my Examiner.com column first with Five Gadgets that were supposedly killed by the cellphone, but aren’t dead yet and today with Five gadgets that won’t get killed by the cellphone.
It wasn’t really until my second response that I really tuned in to the real philosophical difference between my approach and that of Wired. I get a sense, reading the Wired columns, that there is a fundamental approach that convergence is good and inevitable, and that ultimately cell phones will become good enough and powerful enough to effectively obsolete everything else.
Now, I’m enough of an Science Fiction fan to concede that someday this may be true – it’s quite possible that in a century or so we’ll all have cell phones embedded in our skulls providing full 3D sensory communication and gaming experiences, while shooting photos through our optically enhanced eyes and quietly irradiating our brains.
But barring breakthrough of that magnitude, it seems to me that the Wired columns, like those of many authors, are far too focused on the technology and not nearly enough on the people who use it, and how they relate to it. For example: it’s easy to look at teens and young adults and how they have adopted and use certain technology and assume that is the future for everyone. But you can’t really extrapolate that way until you’ve seen what happens once they get older. The constant text messages and Facebook posts of the young 20-something professional might be replaced by something else once she’s a harried mother trying to maintain a career.
I invite you to visit my column at Examiner.com, where I’ll always try to remember that the people are more important than the gadgets. And I’ll continue to post here on my blog additional commentary that doesn’t quite fit in the column itself.

Can you really rent-a-coder?

Over the past year or two I’ve kept an eye on the various online consulting sites – Elance, guru.com, RentACoder, oDesk. I’ve actually used RentACoder once (as a buyer on a very small project) and was satisfied with the results – though I suspect I spent more time writing the spec and managing the programmers than I would if I had done the work myself.
I do think we are likely moving into a recession the likes of which our parents and grandparents talked about (shhhh… let’s not use the D word). But I also think it is a very different world – and whatever ends up happening will not be like the 1930’s. One of the big differences is, of course, the Internet.
These online consultant sites (and more that I expect will appear) are part of the difference. I expect more people (not just software developers) will find themselves taking on project based jobs as compared to employment as things get worse.
Yesterday I wrote a column introducing these four online consulting sites – if you are not familiar with them you might want to check it out.
For those who are familiar with the concept, and perhaps with one or two of them, you might be interested in my follow-up column that compares key features of all four sites.
I’d be interested in hearing of experiences you may have had (good or bad) with any of them.

Gadgets, gadgets and more gadgets

Ok, I’m a geek. I love gadgets. But, I have a confession to make – I’m a flawed geek.
You see, a true gadget nut loves gadgets for their own sake. If it looks cool and has great features (the more the better), it’s great – that’s all that matters. Cost, value, reliability, technical support, practicality and usefulness – these tend to stay in the background; minor details to be excused or explained away.
I’m too much of a skeptic to be a true gadget freak. I think an intuitive and easy to use gadget with fewer features is far better than a fancy complex gadget with tons of features (most of which you’ll never use anyway). I’ll take six month old technology if it will save me 50% off the latest and greatest. And in today’s economy, I really want to make sure that every dollar I spend is worthwhile.
I’ve always wanted to write about gadgets, and I finally found the right opportunity. I’ve become the National Gadget Examiner at Examiner.com. It’s an interesting concept – a sort of virtual newspaper that seems to be succeeding at attracting competent people to write about their topics (I’m speaking of the other writers, called Examiners – you can judge my competence for yourself).
I’m certainly having fun at it so far – gadgets is a broad topic (at least as I interpret it), and I hope my skeptical (and cheap) attitude will strike a chord. I invite you to check it out at Examiner.com: Gadgets Examiner.
I’ve been cross-posting the articles to a new blog: TheThriftyGeek.com as well. I’ll also be using that for more in-depth articles that don’t fit on the Examiner site.

The Dilbert Principle and Emotional Context

Ted Neward posted a great article today “Do you fall prey to technical folk etymology?” in which he suggests (correctly) that we based our technical decisions on emotional context.
Ted is a fine writer, and his points intelligently argued. I am perhaps a bit more direct (crass?) and less politically correct, so I thought I might elaborate a bit on his thoughts. It is not just that our technical decisions are influenced by emotional context. In fact, the Dilbert Principle applies – we are all sometimes idiots.
As technologists we delude ourselves into thinking that we make clear-headed decisions based on logic. Nothing can be further from the truth. Not only are we influenced by emotional factors, they are often the dominant factor in our technical choices.
I remember noticing even as a kid how fads would come and go in our neighborhood. One week it would be spinning tops, another paper airplanes, another endless games of Monopoly (today’s equivalent would be video games and web sites – and I date myself intentionally for reasons that will soon become apparent). Technology fads operate in much the same way, though the time span is measured in months and a few years instead of weeks and months.
The C# vs. VB .NET debate has been raging for years, with the VB .NET folks claiming (correctly) that it’s a fine language and raging that Microsoft insiders refuse to give it the support and respect it deserves. Meanwhile the C# folks feign obliviousness (oh, we didn’t provide VB .NET support or samples for that new SDK? Oh… well… uh… we didn’t have the resources?).
This misses the point entirely. The C# vs. VB .NET dilemma is purely emotional. The VB .NET folk (of which I am one) will continue to use the language because, gosh, it really is a bit more productive than C#. Besides, any good VB .NET programmer can read C# examples or even code C# if necessary because we know it’s all about the framework, and any half competent VB .NET programmer can do C# in a matter of hours, if not days.
Meanwhile the C# developers within (and outside of) Microsoft will ignore, denigrate or avoid VB .NET because, let’s face it, it gives them something to feel superior about. When a C# developer says “VB .NET is the language of idiots”, by implication that developer is not an idiot. That’s a strong emotional statement – especially given that the rapid pace of technology change means that each and every one of us spends more and more time feeling like an idiot (which we are, in the sense that the percentage of available knowledge that we know continues to decrease because what there is to learn increases faster than anyone can possibly learn it – I’m just one of the relatively few people willing to admit it openly).
If a C# programmer, can gain some emotional comfort to offset this by labeling VB .NET developers idiots, who can blame him or her?
I’ve reached a point in my career where many working software developers are younger than I am (many of my contemporaries have become managers or architects, and while I do some of that, I still write lots of production code – mostly because coding is what I enjoy most). I’d always bought into the idea that software development was a “young person’s game” and wondered how long I’d be doing it – but I’m beginning to wonder if that too was an emotional belief unfounded in truth. I’ll write more on that later.
What I do know, that many younger programmers don’t, is that the amazing “new” technology that they are excited about that is sure to change software development forever is, more likely than not, just another fad. Moreover, I also know that most of the new technologies coming from major vendors (including Microsoft), though always labeled as “new technology that is going to change the way people develop software or use technology” is, more likely than not, just marketing hype that is trying to create another fad.
Ok, that’s phrased a bit cynically – because it makes it sound like they are being manipulative. They aren’t (mostly) – it’s just that they, like everyone else, are viewing the technology through an emotional lens. My emotional lens is scarred and cloudy, not because I’m a pillar of reason (I’m not), but because after you’ve lived through enough fads you get better at spotting them. Or put another way, once you’ve been burned often enough you start thinking twice about what part of the technology furnace you shove your hand into.
I don’t know that I’ve gotten better at making reasoned technological choices – but I’ve gotten a lot better at avoiding emotional and unreasonable technological choices – and in figuring out when it is ok to make a technology choice based on emotion.
Ted asks at the end of his post:
“In short, I actively seek to defeat technical folk etymology, if only in the small area I personally can affect.
Do you?”
You can’t defeat it – emotions will almost always trump reason. But sometimes you can co-opt it. Fads aren’t defeated by reason – they burn themselves out naturally only to be replaced by the next fad. Just remember that when you’re trying to prevent someone from making a terrible choice based on emotions, it’s not enough to use sound reasoning – you need to come up with an emotional argument as well if you hope to succeed.

The Email Encryptor Reborn

Email obfuscation using Javascript is a popular way to hide Email addresses from spam-bots. One of the most popular of these was written by Jim Tucek at the Academy of Science at St. Louis. Unfortunately he hosted it on one of their student pages at http://www.jracademy.com/~jtucek/eencrypt.html, and the other day (during a website move), all of those pages were taken down, leaving web developers unable to create new Email addresses for sites that use the script. After getting a panicked call from a friend (who has many clients on the script), I decided to step in and see what I could do to help. The result can be found on my new Email Encryptor page.
This actually posed an interesting challenge. Jim used RSA encryption (about 10 bits) to encrypt the strings. I’m not sure why he chose an asymmetric algorithm instead of a symmetrical algorithm – as the primary result of this choice is to make it hard to create new Email addresses (in a symmetric algorithm you could use the decryption key to encrypt as well – so the loss of the original page would have had little impact. In an asymmetric algorithm having the decryption key offers no help). Fortunately, the algorithm itself is reasonably simple and widely published. Though I use cryptography a great deal, this was actually my first time doing the math, and translating some of the mathematical requirements into computer algorithms took a bit of thought. It was also the first time I’d really thought about modulus math. Finally, there was the Javascript coding itself. Though my primary expertise remains VB .NET and C#, I’ve gotten to do quite a bit of Javascript in the past couple of years (both in web projects and some Ajax work), so that part was relatively simple. By the way, I love the Visual Studio 2008 Javascript debugger – it doesn’t get much attention, but it’s very cool. As a side-effect I also got a nice prime number example to use next week at SD-West when I talk about the TPL, I mean “the Parallel Extension to the .NET Framework”.
So ultimately I was able to get it to work. It’s now live and hopefully will serve as a good resource to those left stranded when Jim’s page went down, and the rest of us in our never-ending battle to fight spam.