Wednesday, September 16, 2009

Why I hate Microsoft Visual Studio

  1. It provides me useful, timely information about my current task
  2. It makes it so I have to type less
  3. It works
In short, because I love it. Yes that's right, I hate it because I love it. I've been using another "IDE" recently at work, and it's made me realize just how much I love Visual Studio. Before having to switch from VS, I was aware that I liked it. But the switch made me aware that my feelings for it ran much deeper.

I've never been much of a big fan of Microsoft's products. For well over a year, we only ran Linux at home. Until my current job, my code editor of choice was vim - simple, easy, and reliable. I didn't need any fancy IDE. I was a code-and-run developer (code a little then run the program - repeat ad nauseam). I was unhampered by the need for big integrated toolsets. But then I started to use VS, and it started to grow on me. At first I was confused by all the buttons, windows, dialogs, wizards, panels, etc., but felt more and more comfortable as time passed.

And then today as I talked with a co-worker that still gets to use VS, I realized that I was actually jealous of him for having such a tool at his disposal. I was a little unnerving. Every once in a while, I find that there is a thing that I have been playing with or using without much thought that I suddenly realize I love. These are things that I don't expect to have much of a hold on me when I start using them. They start out as a toy or a means to an end, but they become more than that without me even realizing it.

The last time it happened was with my homemade DVR (digital video recorder - like Tivo). I made one using an old PC on a whim and about $100. It quickly became the primary TV related device in our house until it suddenly stopped working. We survived without it for a couple of months, but we eventually gave in and got a real Tivo.

Both of the experiences were unnerving because of the hold these things had I me. I don't like when technology has its talons too deeply in me. I always like to think that I can easily cast off most of the fancy gizmos - that I can return to "simpler" times and ways. I'm not an early adopter by any means. I am generally skeptical of new gadgets, and it takes me a while to even conceive of a need for them. So loving some of them actually scares me a little.

I cannot hide from technological advances and the shiny things they produce. I will end of loving some of them because of their usefulness to me. The trick, the hard part, is to love the usefulness and not the gadget - to be able to drop it when it is no longer as useful. To love what it does and how it helps without convincing yourself of its necessity for your usefulness.

Friday, September 4, 2009

The Curse of Xanadu

I found an old article about a failed (or not yet successful) product called Xanadu. Xanadu is a hypertext system for publishing and linking documents and information. Sound familiar? No, its not the next hot web app. According to its creators, its what the Web should have been or what will make the Web obsolete. This system was conceived in the Sixties - long before the Web. According to Xanadu, the Web doesn't even come close to their product. It's inferior in every way and is basically just paper 2.0. So, why aren't we all using Xanadu instead of the Web? What are some of the things we can learn from Xanadu.
  1. It was too revolutionary. But isn't being revolutionary a good thing in software? Yes, but with science and technology being too revolutionary can make you and your goals unapproachable. Let's face it. People don't really like their world being turned completely upside-down. We'd prefer that it just tilt a little bit every once in a while. Anything more upsets our stomachs. And when your ideas are too far ahead of what's technologically available at the time, you have to build everything for yourself from scratch. The existing technology gives you almost nothing to build off of. Just think if someone had conceived of a modern car with an internal combustion engine within a completely agricultural society with no conception of even basic metal working.
  2. Perfectionism. This is a typical vice in software. Many people fail to understand the benefits of building and releasing a system with only a fraction of the conceived features. Projects attempt to build all of the proposed features to perfection before allowing customers to have anything. This causes problems. First, it robs the creators of valuable feedback from customers as they develop further features and hone existing ones. Second, it increases the chance that someone else will get to the customers first and win their loyalty before they've even seen your project. And last, it means you will never complete your project because it will never be perfect.
The Web might be just like paper to the makers of Xanadu. But it's made everyone feel as though they've been through a major revolution. And it may have a lot of flaws, but I can use it and it gives me a lot of what I need - now.

I'm not looking for mediocrity. The goal is to create tools that will be useful to people. If they can't imagine or understand them, then the tools will never be useful. If you are unable to allow yourself to give people tools that do some things well (rather than all things perfectly), they'll never see your project.

Tuesday, September 1, 2009

Newspeak Programming Language

After my post the other day, I happened upon the website for the Newspeak programming language. I was previously unaware of it, and it was a bit eerie to find it so soon after posting. I had a brief feeling as though we were just a hairsbreadth away from the totalitarian rule of Big Brother. But on further investigation, I found out that there is nothing to worry about. The Newspeak programming language featured on the site uses dynamic typing, and everyone who's read 1984 knows that the real Newspeak programming language will use static typing.

Saturday, August 29, 2009

I'm Being Followed...


...by Nikola Tesla. I haven't thought about this man since my college Physics courses. Now he seems to be popping up a lot. First, it was with The Prestige via Netflix last weekend. Next, it was a demonstration of wireless power.

The thought of wireless power is an amazing one. Really. If you haven't already watched the video at the link above, go and do it right now. It's much more interesting than my blog.

The ability to dramatically reduce the amount of wires and batteries we use in everyday life would create a lot of freedom.

Thursday, August 27, 2009

Anti-social networks

I recently read an article discussing social networks and their affects on relationships.
All this online social networking was supposed to make us closer. And in some ways it has. Thanks to the Internet, many of us have gotten back in touch with friends from high school and college, shared old and new photos, and become better acquainted with some people we might never have grown close to offline....

But there's a danger here, too. If we're not careful, our online interactions can hurt our real-life relationships.
The author lays some of the blame on the technology used for communicating in these venues, but I think she lets it off the hook too easily.
One of the big problems is how we converse. Typing still leaves something to be desired as a communication tool; it lacks the nuances that can be expressed by body language and voice inflection....But let's face it, the problem is much greater than which tools we use to communicate. It's what we are actually saying that's really mucking up our relationships.
While I agree that we all need to take responsibility for what we say regardless of the method of communication, I think the communication method drives the content considerably.

Body language and voice inflection are extremely important in communication. I can turn an expression of sympathy into a cut of sarcasm or vice versa without the words changing at all. The sight, sounds, and physical presence of other people cannot be underestimated in communication.

That's one of the reasons we've switched to using Skype to talk to far away grandparents almost exclusively. Our children benefit immensely for being able to see as well as hear them, and I believe it has strengthened the bonds between them.

But beyond the differences between text and "physical" communication, most social networks promote vapid and inane communication by how they are set up. The very construction of the tools is part of the problem.

Take Facebook. What's the first thing you see after signing in? A list of status messages, game scores, causes joined, quiz scores, etc. for all your friends. Most of which say nothing even remotely important. At the top of this list, I'm invited to type a short response to the question "What's on your mind?" Who cares what's on my mind? (Wait...I shouldn't say that on my blog.) What I mean is - shouting a sentence out to the world while everyone else is shouting doesn't exactly invite a meaningful dialog. Sure you can write longer notes, but they are not the focus of the tool - not by a long shot.

How about Twitter? While it reduces some of the noise compared to Facebook by providing only the equivalent of status messages, it only allows extremely short statements of 140 characters or less. Again, its the equivalent of shouting a 140 character sentence out the world while everyone else is shouting.

You'd think that the small messages allowed by these tools would encourage us to do everyone a favor by choosing our words carefully. But it seems to have the opposite effect. We've decided that quantity is better than quality - better to say the first thing that pops into our mind than to attempt to think of something meaningful to say.

Beware of the tools you use - their construction promotes certain uses over others.

Saturday, August 22, 2009

Skeletons in my closet

Recently, I've had the benefit of helping a friend with his company's site. I used to work for him, and I was the original programmer for the site. As I'm working on it now, I'm almost amazing at how horrible the code is - it's almost embarrassing. I don't consider myself to be any kind of guru now, but this old code of mine is REALLY bad. It's enough to shake my head in disbelief that (a) I was allowed to write web applications and that (b) the site is still in use 8 years later. But while being embarrassed by my old work, it's been encouraging to work on it again for a few reasons.

First, I'm glad that I can now see how horrible the code is. It shows how much I've learned despite the fact that I've never had any formal training. As I said, I'm definitely no expert now, but I've definitely come a long way. Of course, it should also be said that their was probably nowhere to go but up with my skills.

I'm also encouraged by the fact that the site has continued to function for the company and meet their basic needs. In fact as I look back, no other job of mine has allowed me to be as big a benefit as I was to that company. I was able to literally change major portions of their business process to make the company much more efficient. It makes me smile to know that I helped that company so much.

Even though I was more than a little hesitant to dig up these old shameful bits of my past work, I'm glad I didn't pass it up.

Thursday, August 20, 2009

Newspeak

I recently read George Orwell's 1984 for the first time on a friend's recommendation. One of the most interesting aspects of the book was Newspeak, the new version of the English language devised by the totalitarian government.

It was so important to Orwell's vision of terrible future that he added an appendix to the book to explain the concepts and purposes of the language. Newspeak was intended to restrict the range of verbal expression and thought - to actually make some things unutterable and therefore unthinkable. This was done by eliminating entire words from the language and eliminating all of the undesirable definitions of the remaining words. The creators of Newspeak worked hard to make sure that the language was a small one with a high degree of precision. If there were no words to express an idea contrary to the government's doctrines, the ideas would fade away or not occur at all. This was one of the government's chief methods of maintaining control.

At first I thought, Orwell given too much power to language, but then I realized that language is something people and organizations throughout time and the world attempt to control. Books have been burned in hopes that their ideas will go up in smoke as well. The political left and right (and all sorts of other types of organizations) attempt to define and redefine words on a constant basis to fit their uses. New words are constantly being added while other ones are being marked as undesirable while still more are having definitions removed or changed entirely.

Then it got me thinking about Newspeak as it relates to recent technology.

Consider computer programming. As a software engineer, I'm constantly trying to control the actions of a computer using a language designed for just that. These languages come with an extremely small amount of words - words that don't correspond to desirable actions have been eliminated. We want the words to be narrowly defined so there won't be any ambiguity and the computer will know exactly what to do.

Consider newer technologies aimed at enabling communication between people. Twitter limits you 140 characters for a single thought. Facebook begs you to give a short status message to tell the world about you at that moment. Texting has changed the face of language by changing the spelling of words and emphasizing short, precise words.

I've begun to be a little nervous that Newspeak is being brought about unwittingly and voluntarily by the creators and consumers of our latest technology.