The online home for Greg Leedberg, since 1995.

Saturday, March 10, 2007

CNet: The Fall Of A Once-Great Website

Back in the day, by which I mean the year 2000, I couldn't say enough nice things about the website CNet. They had a great section of reviews of software, hardware, and gadgets in general. They supplied useful computer news to enthusiasts. And, most of all, they had a big hand in popularizing my first big software project, Billy.

I "released" the first version of Billy in late 1999. I put it on my website, uploaded it to Simtel and a couple of other download-oriented websites, and was happy to be getting a download or two each day. Then one day I decided to submit it to CNet's Download.com website, which at that time was pretty much the biggest download website in the world.

As soon as Billy hit Download.com, downloads went through the roof. Right from the beginning, at least 100 people a day were downloading Billy from that site, and that number continued to grow. During Billy's run on Download.com, I estimate at least 200,000 people got the program from that site. And from there, Billy just grew. Once 200,000 people had their hands on my software, it started popping up on other websites, review sites, and traffic to my overall web site started to surge as well.

CNet's Download.com is really significantly responsible for the success of Billy and Leedberg.com.

But then Download.com began to change. Rather than letting people freely submit their software, a fee was required. For a small hobbyist project like Billy (and, I'm guessing, the majority of projects on Download.com), it was next to impossible to pay a fee for this service. So, I pulled Billy from that site. Luckily, it had been up there long enough that I had established a strong hold outside of Download.com as well, so pulling it from that one site did not spell the end of interest in the project.

So, that's evil act #1 -- Download.com went from being the #1 supporter of small, free, high-quality software projects (all posted projects went by an editor first), to suddenly caring more about money. As a result, the software selection on Download.com started to slant more towards demos of commercial software, so it stopped serving its users as well.

It doesn't stop there.

After a couple of years, I visited Download.com again, and found out that they had done away with their fee, and now it was possible for small project to submit for free. Hoping that Download.com had gone back to its roots, I re-submitted Billy. During the submission process, I used a disposable email address from SpamGourmet.

Which brings us to evil act #2 -- Within hours of submitting Billy, spam started to pour in to the disposable account. Apparently, Download.com had made up for the lost fee by selling e-mail addresses to spammers. Most submitters who use their private email address probably would not realize this, but since I used a disposable, single-use email address, it was very apparent.

So Download.com (and CNet in general) has gone from being one of my most respected websites, to being evil, to being forgiven, to being born-again evil. What a tangled web we weave.

I understand that money is necessary for a website the size of CNet to function. However, you shouldn't serve the interests of money at the expense of the users of the site -- otherwise, you'll have a running site but no users! This is obvious in the success of Google versus the decline (in quality) of Yahoo. Whereas Google focused from the beginning of non-obtrusive, relevant text ads, and sticking to a core set of services that users actually wanted, Yahoo continued to add image and animated ads and services no one wants. Just compare their front pages. CNet is using Yahoo's playbook, while they should be emulating Google.

Focus on goodwill towards your users, find a revenue stream that aligns with, but doesn't obstruct, that goodwill, and the money will come. Until then, I once again choose not to use CNet.

Labels: ,

Monday, September 04, 2006

Use Jabber!

Instant messaging has proven itself to be one of the truly "disruptive" technologies of the past few years. The primary communication medium for college- and high school-aged people is no longer the telephone, it's their computer, through the use of IM.

IM was pioneered by, of all companies, America Online. Almost from its inception, AOL allowed members to send text messages directly to each other, and maintain "buddy lists" of their friends so they could see who was online and accessible at the moment. Then came the capability to put up "away messages", which serve as a sort of text-based answering machine but with the flexibility to change the message at will.

All of this produced a completely new way of communicating. You could talk to multiple people at once. Talk while doing something else on your computer. You can know exactly who is available at the moment, and where people are if they aren't available. Many of these ideas have made their way into other mediums. For example, cell phones support similar ideas when using push-to-talk phones.

Instant messaging has become incredibly popular with young people, and is making significant inroads in corporations, government, and military environments as well. It is changing the way we communicate -- but the software and protocols we use for IM are a complete mess. There is effectively no truly standard IM protocol today, rather there are several competing protocols and IM services, which are largely not compatible with each other.

We still have AOL and its proprietary protocol. Then we have Microsoft's MSN system. And Yahoo's system. And IBM's SameTime. Even MySpace has an instant messaging component to it. What this means is that someone on AOL can't talk to someone on MSN, who can't talk to someone on Yahoo, and so on. What this really means is that people with friends on multiple networks end up having to install and use all of the client software for each network, which is a completely unworkable long-term solution.

This is not how mature, successful communications mediums are produced. Who would own a phone if they could only call other people who subscribed to the same phone company? As I said earlier, IM is becoming quite popular amongst young people -- but it's never going to become a mass-market communications tool as long as the IM world is so segmented.

Enter Jabber. Jabber is an organization that has, for several years, been developing and promoting XMPP, a true standard for instant messaging. XMPP is a protocol which supports all of the core functionality of the major IM services, such as text messaging and away messages. The difference is that XMPP is designed to be open (so that any IM network can use it) and interoperable, so that if two networks both use XMPP, users of those networks can talk to each other.

XMPP works a lot like email. With email, you have an account through an email provider, say, Verizon. Verizon has a domain for email, such as verizon.net. On Verizon, you have an account name, like xyz, and so your email address becomes xyz@verizon.net. Anyone, even someone with an email account on Google or Yahoo, can send you an email to your Verizon address, because they all use the same email protocol.

Same thing with XMPP. You get your IM account through a service provider, and have an account name on that service. So your XMPP address becomes something of the form user@service.com. Anyone on any network using XMPP can talk to you by using that address.

I firmly believe that this sort of interoperability is what is needed for IM to go to the next level. It needs to become ubiquitous, and that won't happen without interoperability. And to some degree, I've been vindicated by Google -- their Google Talk service uses XMPP and so is able to communicate with other XMPP services.

So why hasn't XMPP caught on?

Namely, because of resistance by the entrenched major players of IM. AOL, Microsoft, and Yahoo, have not adopted XMPP, and they control the vast majority of the IM market. They really have little reason to use XMPP, from a business standpoint. As long as you need to use AOL's proprietary protocol to talk to other AOL IM users, you will need their client and an account on their service -- which means they can deliver ads to you. If AOL, Microsoft, and Yahoo suddenly support open standards, then the IM market would splinter into tons of smaller XMPP-based IM services, and the current big guns would lose their market share. To them, it's not about doing what's right, it's about doing what will maintain their bottom line.

So why don't users just have a mass exodus to XMPP-based services and leave the low-quality proprietary service behind? Because as long as people have friends on AOL, MSN, and Yahoo, they will want to keep those accounts in order to talk to those people. The first people to switch networks would be without any one to talk to. Since the dominant market players are not standards-compliant, they've created a vendor lock-in that really makes it hard for people to leave.

But really, why doesn't just every IM user switch to XMPP services at once? Lack of publicity. The majority of users do not know that anything better exists, and so are happy to stay on their closed networks. We need to, somehow, make everyone aware of Jabber and XMPP, how much better it is, and then get people to start switching.

Really, though, there are absolutely no technical reasons why XMPP has not taken off. It is merely because of the above-mentioned reasons, which are largely business and political reasons. XMPP is more than capable of doing everything people are currently doing with their IM services.

So where do we go from here? Google accepting XMPP is a great start. What would be even better is if the really big players, such as AOL, also decided to do the right thing and accept XMPP. If they are so scared of losing market share, they should figure out ways to add value to their XMPP service so people would still choose to have accounts with them. Look at Google's GMail. It's just one email service in a sea of free email services, but has taken over the market since knew just what users wanted and made a great, interoperable service. AOL, Microsoft, and Yahoo need to do the same thing.

They're maintaining their market share, but at the expense of IM really becoming a de-facto standard for communication. Why wouldn't they want that?

Labels: ,

Sunday, June 18, 2006

What's Up With Bluetooth?

I like to think that I understand the computer industry. Maybe I don't, but I like to think I do. I'm a software engineer. I read Slashdot every day. I talk to lots of people about computers -- both casual users as well as geeks such as myself. I think I've got some perspective on what people use their computers for, what they wish their computers could do, and where the industry is and should be going soon.

As such, I make predictions sometimes. The prediction I've believed in the most is that, some day, we will no longer use cables to connect peripherals to our computers. Rather, everything will be wireless. Buy a printer, set it next to your computer, turn it on, and you can print. Buy a keyboard, set it next to your computer, and you can type. Casual computer users have issues figuring out how to connect wired devices to their computers. What type of cable? Which port on the computer? Which port on the device? How long of a cable? Even the most knowledgable users seem to despise cables -- why can't I bring my keyboard into the living room? Why didn't my printer come with a required cable? Why do I have to help all of my casual computer-using friends set up their printer? A completely wireless set-up would benefit everyone.

Which is why I was completely excited when I first heard of Bluetooth, years ago. Bluetooth is a wireless standard. Any device that supports Bluetooth can connect to any computer that supports Bluetooth. No cables, no specialized wireless receivers, one standard method for connecting wireless devices. Bluetooth was exactly what I had predicted.

However, it seems that Bluetooth has had a lot of trouble truly taking off.

An example: I currently have a wireless keyboard and a wireless mouse -- bought separately, because I like Logitech keyboards and Microsoft mice. So I have two wireless receivers sitting underneath my monitor. I am thinking of upgrading both soon, so I figured I could get a Bluetooth-compatible Logitech keyboard, and a Bluetooth-compatible Microsoft mouse, and connect them both through the same Bluetooth adapter. This solution is the very ideal (in my mind) of what Bluetooth can offer to the consumer. However, I could not actually find what I was looking for. Logitech offers no keyboards that support Bluetooth, other than in keyboard-mouse combinations. Even then, there are only two Bluetooth desktop sets available. Microsoft offers just one single mouse that supports Bluetooth, but this mouse is dated and doesn't seem to be readily available. Again, Microsoft has one keyboard-mouse combination that supports Bluetooth, but that is it. There are some notebook mice that use Bluetooth, but I want this for a desktop, so those are out. Logitech and Microsoft seem to have only mildly accepted the benefits of Bluetooth, and are pushing it into a niche market.

The same is true for most other devices. Bluetooth is intended to completely replace cables. However, I looked into connecting my still-relatively-new Canon iP6600D printer via Bluetooth. It is possible, but requires a ~$100 Bluetooth adapter, which is almost what I paid for the printer. Bluetooth headsets exist, but my research into them indicated that reliability under Windows is questionable. For other devices, such as scanners and webcams, Bluetooth compatibility is non-existant.

The only market where Bluetooth seems to really have taken off is the cell phone market. It is now quite normal for cell phones to support Bluetooth in order to allow for wireless headsets and connections to computers. This is nice, but to be honest I don't care about the cell phone market, and I think that if Bluetooth only takes off there, then we have completely wasted its potential.

Bluetooth has the ability to completely change the way we use computers, by making every peripheral wireless, and all wireless peripherals connecting through the same interface. For some reason unknown to me, the big hardware manufacturers, such as Microsoft and Logitech, seem to be ignoring the full potential of Bluetooth, while continuing to produce their own proprietary wireless devices. They obviously "get" that wireless is good, but can't see that wireless will never truly take off as long as every manufacturer has its own incompatible receivers and devices. It's nice to see that Bluetooth has taken off somewhere -- cell phones -- but this is only the surface of what is possible with Bluetooth.

A fully wireless computing environment is my dream, and I really believe in it, and in Bluetooth's ability to make it a reality. As consumers, we need to start demanding more and better Bluetooth devices from the manufacturers. I would say "vote with your wallet", but that's hard to do when the problem is that there aren't many Bluetooth devices to buy.

Labels: ,

Monday, May 29, 2006

No More Word Files!!

No, I'm not declaring that the Microsoft Word file format is dead, or soon to be so. Rather, I'm calling for people to realize why it should be dead (or at least marginalized!).

First, let's soldify what this argument is about. Microsoft Word is a word processor, developed by Microsoft. Over the years, it has become the most-used word processor around the world. Interestingly, it's quite expensive -- Microsoft Office Standard (which includes Word plus a handful of other less-used applications) costs in the neighborhood of $130.

Many arguments have been made against Word on the basis that it is closed-source, while there are free, open source alternatives out there, such as OpenOffice, KOffice, and AbiWord. I'm not here to make this argument. I think that corporations have a right to make money off of their products if they want to (and that other people have the right to make their software available for free, if they want to). Likewise, if someone thinks a product is worth what it costs, they have every right to pay for it. And if having the source code isn't important to them, so be it.

My argument is against the file format Word uses. Whenever you type up a document in Word, you likely save it such that it has a ".doc" extension. This signifies that it is stored in the Word file format. The Word file format is what's considered a "closed " file format. It's binary, so a human wouldn't be able to look at the contents raw and understand them. Worse yet, only Microsoft fully understands the format, and they don't release the specifications of that format. So, only products made by Microsoft can (in theory) fully and reliably read and write Word files. Contrast this with an open file format. Generally, an open file format's raw contents are human-readable, so it's easy to figure out what's going on in the file. Most importantly, the specification for the format is documented and publicly available, so that anybody is free to make a program that can read and write the format.

Ignoring the specific case of Microsoft Word, there are lots of problems with closed (or "proprietary") file formats in general. Most obviously, they lock you into a particular vendor's products. This means if you use Microsoft Word to create a document, to ensure full compatiblity you will always need Microsoft Word in order to read that file. There are some free projects that have attempted to reverse-engineer the Word format, but none of them are 100% accurate. This hurts you in the present, since it means that any computers you own will have to have Microsoft products on them in order for you to carry your work between the computers. More frighteningly, this introduces lots of possible problems in the future. You will basically need a copy of Microsoft Word forever in order to continue to read your files. What if Microsoft goes out of business? Stops making Word? Stops making Word for the particular operating system you are currently using, forcing you to upgrade unwittingly. By creating this lock-in, the closed format decreases competition, as people are less likely to use a competing product if all of their existing files will be unreadable. This is true for any product that uses proprietary formats.

Also, using closed formats is a hinderance to open communication. If you want to type up a document in a closed format such as Word, and send it to someone, they have to have Word as well. This turns the closed file format almost into a "virus" of sorts -- it keeps spreading as people find a need to communicate with someone who already has it. If the person you want to send the file to doesn't have Word, you won't be able to share your information with them.

The above reasons are general arguments against all closed file formats, and they all apply to the Microsoft Word file format. But of course, the Word format has several of its own particular downsides. For one, if you are forced to upgrade to the newest version of Word in order to read your old files, you may very well find that the new version of Word can't actually read your old files. Even though Microsoft has the specifications to this closed format, it has a notorious reputation for somehow making it so that new versions of Word have problems reading certain older files. And of course since only Microsoft has the specification to this format, you're out of luck if you want to try and find some other program to use.

Also, it is a problem that Word is not cross-platform -- it is only available to people that run Microsoft Windows, and Apple's operating systems. So, if you want to send a file to someone using some other operating system, such as Linux or BSD, there is simply no way for them to acquire a copy of Microsoft Word, and you are completely blocked from communicating with them. On this same train of thought, you have to keep in mind that Microsoft Office is a very, very expensive program to purchase. As I said above, $130 just for the most basic functionality. It is entirely possible that this is more than some people can afford, or is more than some people think Office is worth. It's not at all clear to me why someone would assume that their peer has purchased a program that costs this much money. Sending someone Word files may be putting pressure on them to spend the money for Office -- money they may not be able to spare.

So what's the solution? Clearly, the point I'm getting to is that we should try to use open formats rather than closed formats. Currently, the best example of an open format for word processing is OpenDocument. OpenDocument is an open, XML-based, file specification that was developed by a committee of interested organizations. It incorporates the vast majority of word processing features that existing products such as Word offer. However, the specification is completely open, and anybody can produce a product that can read/write it. Several already do, most notably OpenOffice. It is expected that in the future there will be a plugin for Word that will allow it to use this format, and eventually it's likely that Word will even natively support it.

Even if you don't use OpenDocument, use something more open than Word's default format. such as RTF, PDF, or HTML. OpenDocument is probably the best open format for word processing currently, but even if you don't use OpenDocument right now, you should at least use something more open than Word (especially when you send a file to someone). Formats such as RTF, PDF, and HTML are relatively well-understood and/or open, and have both free and commercial readers and writers available for most operating systems. Coincidentally, both RTF and HTML are natively able to be read and written from within Word.

In conclusion, I think that the success of the Word file format is one of the worst things to happen to the computer industry -- ever. It's pretty bad for storing your own personal files, but it's especially bad for cases where you want to share your files with other people -- closed formats simply weren't designed for this. If you need to send a file to someone, please, please, don't send them a Word file. Convert it to something more open. And even if you store your everyday documents in Word format, consider saving your most important documents in a format that you know will still be accessibly 10 years from now.

Of course, ideally, you should just use OpenDocument for everything.

Labels: ,

Friday, May 12, 2006

Spam: How To Deal With It

As I've talked about before, I receive a large amount of spam. Not as much as I used to -- at its peak, I received about 200 spam messages a day -- but still too much. One would hope that after years of having to deal with spam, I would have some advice to pass to people, and I do.

The first, and most important, thing to do in order to deal with spam is to never, ever, put your email address on the web in plain text. Frequently people make websites and want to be able to receive feedback, so they give their email address. But, this is exactly how spammers make their email address lists. They have programs that crawl the web, just looking for email addresses to spam. Even putting it in a "mailto:" link makes it available to them. If you really want people to be able to send you mail from your site, find out if your hosting provider has some sort of formmail solution for you to use. For example, at Dreamhost, I can make a page that has a form that a user can fill out, the form gets submitted to a program, and the program is configured to send the message to me. My email address is not visible at all on the form page. Most hosting providers have something similar.

Crawling the web is one way that spammers get your address. Another way is when you give your email address out to companies online, who then go on to sell your address to spammers. To combat this, I use a free service called SpamGourmet. The way this works is that I set up an account with SpamGoumet. Let's say my account name is GregLeedberg (it isn't). You tell SpamGourmet what your real address is (so you do have to trust SpamGourmet itself). Then, whenever you need to give an email address to a company, you can, on the fly, make up a forwarding address through SpamGourmet that will forward through to your real address, but only will forward a certain number of emails. You don't even have to go to SpamGourmet to make the new address. All you have to is give the company an address in the form [some unique identifier].[maximum number of messages you want forwarded].[account name]@spamgourmet.org. So if EvilCorporation wanted my address, I could give them an address such as evilcorporation.20.gregleedberg@spamgourmet.org. The first 20 messages would be forwarded to me, in case they are legimitate, and after that the address is no longer valid. So if EvilCorporation sells that address and it gets spammed, it will quickly stop forwarding me the messages. For each company you need to give an address to, you can come up with a new unique identifier, which will have its own message counter. I use this whenever I need to give an email address to someone I don't automatically trust.

So, the above two methods try to reduce the amount of spammers that have my email address. But inevitably, you will end up on some spam lists. What to do then?

Well, my first line of defense if I get spam, is to use a free service called SpamCop. Usually, when you get a spam, the "from" line is obfuscated, as are any links within the email. You can send your spam to SpamCop, who has tools that are able to figure out where a spam is really coming from, and where the links are really going, and can then send complaints to the ISPs involved. And it seems that, on the whole, ISPs really do listen to SpamCop reports that they get. By using SpamCop, you can effectively shut down a spammer's current account. Of course, in time they will just open a new account somewhere else. But if we keep them moving and continually make it hard for them to send their spam, hopefully eventually they will give up, or less people will want to spam.

Lastly, even with all of these tactics, I still get spam. So as a last layer of protection, I just use Mozilla Thunderbird as my email client, which has excellent spam filtering algorithms which can learn to detect the spam that you get. This at least makes it so that I don't have to explicitly look at every single spam message I receive. Sure, some messages get past the Thunderbird filter, but it still significantly cuts down on what I have to see.

So that is how I have dealt with my huge spam problem over the past few years. It works okay, but I still wish that spammers would realize that what they do is really not an effective way of marketing. Annoying your potential customers doesn't win sales, it just causes backlash.

Labels: ,

Sunday, May 07, 2006

My Backup Strategy

My computer is the centerpoint of my life. Partly, that's because I'm a geek, and a software engineer. But, I would wager a bet that many people, including non-geeks, are in the same situation. These days, our computers are home to at least our digital photographs, emails, word processed documents, music, financial data, and lots more depending on what you do with your computer. That being the case, it's easy to see that if any one of us were to lose our computer one day, we'd also be losing a lot of important data and memories.

Which is why everyone should back up their stuff. And, everyone should have a sensible backup strategy that protects in both small-scale and large-scale data loss scenarios. So today, I'm going to describe to you my personal backup strategy, which has developed over the span of my computing life, and I now think is pretty good.

First, what do I back up? Some people back up every bit on their hard drive. I don't. What's important to me is exactly what I described above -- my pictures, documents, music, etc. Basically, my data. Not my program installations, registry settings, and so on. On my computer, I have a very strict separation of program data and user data. All of my personal data is kept on one partition (which just happens in this case to be an entire drive), and my "My Documents" directory is mapped to that partition. My Windows installation directory and all of my programs are installed to a separate partition / drive. I figure, if I lose my hard drive, I can always re-install my programs, so what's really important is to make sure I don't lose my data. This also significantly cuts down on the size of my backups.

Now that it's clear what I've backing up, it's important to think of just what sorts of scenarios we're trying to protect our data from. The most common data loss scenario is simply a hard drive dying. This happens quite frequently. Another data loss scenario is that something physically happens to the computer itself -- a power surge, you drop the entire computer, the power supply catches fire and the case fills up with smoke, etc. This happens less frequently, but in thie worst case this causes the entire computer to be unusable. Another data loss scenario is that something happens to the entire house/building where you store your computer -- fire, flooding, etc. Lastly, it's worth considering the scenario of a large-scale natural disaster, such as earthquake, hurricance, or even military attack. In those sorts of cases, your data probably won't be first thing on your mind, but months later you'd probably start to wish that you had your old digital pictures and documents.

How do we protect against the most common scenario, of a hard drive failing? For this, I have two hard drives. One has all of my programs and OS on it, and one has all of my data. However, on my program-only drive, I also have a large partition that serves as a backup for the data-only drive. Every single night, I have an rsync script that performs an incremental backup of my data onto the backup partition. Since it is incremental, I only am moving the data that has changed, not the entire 40GB of data. Obviously, this plan requires that my backup partition be the same size as my data drive, and so my program drive needs to be significantly bigger than the data drive (so it can store all of my programs, plus the data backup). You just have to take that into account when upgrading drives. This backup is performed every night, since this is the most common type of data loss. So, if my data drive failed tomorrow, I would have a backup of that drive that is no more than 24 hours old.

With isolated drive failure covered, what about if the entire computer was incapacitated? i.e., the power supply catches fire, smoke fills the case, and every component is killed (thus eliminating both my data drive and the backup of the data drive). To protect against this, once a month I backup my data drive to DVD-RW media. This way, the backup is stored outside of the case, but is still accessible. I only do this once a month because this can't be automated with a script, so it requires more effort and time on my part. It's worth noting that DVD-RW (and CD-RW) media can't neccessarily be trusted, so to make this backup more reliable, I actually use two different DVD-RW discs, which I alternate between each month. So I always have one disc which is no more than 1 month old, and one disc which is no more than 2 months old. This is better than using just one, only to find out when I need it that it's actually not been working for the past several months. It's also worth noting that since obivously a 4.7GB DVD is not enough to hold all of my data, this is actually just a selective backup. I leave out big media items, like ripped music files and home movies. In a crunch, I could do without those items.

So now we've covered every data loss scenario except loss of the entire building, and large-scale disaster. I use just one backup method to protect against these two scenarios. For this, once a year I backup all of my data (including media) to a set of several DVDs, and then store this DVD set as far away from my computer as I possibly can. When I was at college, for instance, I would store these discs at home. The idea is, in the more likely case (of these two scenarios) that the building is lost due to fire or flood, you've got a backup set stored somewhere outside of the building that you can fall back on. Even in the more extreme case that your entire region is affected, hopefully the set is far enough away that it is still safe. Due to the lower chance of these scenarios happening, this set is only created once a year. So, worst case, you revert back to your data as of no more than 1 year ago. That's still better than no data at all. I use DVD-Rs here because they tend to be more reliable long-term than the re-writable kind. And since you can't erase them, once they are no longer the "latest" annual backups, you can keep them with the computer just so you can have some extreme roll-back capability, possibly spanning several years of these backups.

So, that's my backup strategy. You'll notice I don't use any special backup programs. Just rsync (a free, open source file sync'ing tool that comes with Linux and Cygwin) and any DVD/CD burning application. I think, on the whole, that backup programs are a scam.

If you don't already have a backup strategy, I hope that this will prompt you to start doing some sort of backup. And if you already do backups, I hope that maybe I've explored some scenarios you hadn't thought or given you some new ideas.

Labels: ,

Thursday, April 06, 2006

Why Aren't You Videoconferencing?

Science fiction always portrays futuristic communication as being video-based. In the future, no one will have to talk to someone and only hear them -- we'll be able to see them, too! There seems to be a common belief that this is the way forward, and will enable humans to better stay in touch. I can't wait for this type of technology to come to fruition.

Except, it is already here.

Videoconferencing is no longer a thing of movies and TV shows. Videoconferencing is here, reasonably priced, and available for consumers. But, it seems like there is still this perception that it's "on the verge" of becoming available.

For several years now, I have used videoconferencing. While at grad school, I used it to stay in touch with my family. Nowadays, I use it to stay in touch with my girlfriend. I have to agree that when distance keeps people apart, video makes a huge difference when communicating, compared to voice-only conversations. It's a great thing to be able to see the person that you miss.

So, how much of a premium do I pay for this futuristic ommunication? Actually, other than hardware, I don't pay anything. How expensive was the hardware? Not counting the requisite PC, I paid less than $100 (much less, actually).

I really, really don't get why videoconferencing isn't a huge hit right now.

So, what do I use to do videoconferencing? Currently, my service of choice is SightSpeed. SightSpeed provides free one-to-one videoconferencing. The video is slightly on the blurry side, but the audio is crystal clear and the synchronization between audio and video is perfect, the video is incredibly smooth, there's no perceptible delay, and the interface is very intuitive. For a small annual fee, you can get multi-party conferencing and a video-mail inbox. But the free service certainly suffices for most people. I can't say enough good things about this service.

There are other good video services as well. For quite a while, I used a service called CQ-Phone. I also have used Eyeball Chat and MSN Messenger. These were all pretty decent as well, but had notciable delay and worse lip audio-video synchronization. You'd be surprised how valuable it is for the conversation to feel "real-time", even at the expense of some video clarity.

For hardware, I use a Creative WebCam NX Pro, but pretty much anything from Logitech or Creative is pretty good these days. They range in price, from $20 to over $100, so you can pay as much or as little as you want. But, even the cheaper ones are pretty darn good. It's also good to have a headset to prevent echo. You can get a mono headset (which is all you need for a conversation) for about $10.

Wow, this futuristic technology is really straining my bank account.

So, the software technology is here, and vastly improved over the first attempts made in the early 90's. The hardware is here, and is pretty cheap, with good quality, and is easy to set up. So, why aren't people using videoconferencing? There are a few main reasons I can see.

The first is the inherent catch-22 of videoconferencing. A person may be inclined to try videoconferencing, but if they don't know anyone with a webcam, they're not going to go out and buy the necessary equipment. And as long they do that, other people will avoid webcams for the same reason. What we need is for a webcam to magically appear at everyone's home one day, so now everyone will have a webcam, and have someone to talk to. A few years ago, computer manufacturers were starting to rectify this by including webcams with computers. Unfortunately, they stopped this before everyone had a webcam. I know that this is how I personally came into the world of videoconferencing. My parents' computer came with a webcam. So, when I went to grad school, I bought one for me so I could stay in touch with them. When my girlfriend and I were going to be apart for awhile, she got one since I already had one. Had my parents' not had a webcam come with their computer, I may never have gotten one myself -- who would I have talked to?

Another reason is that the best way right now to videoconference is with a computer, but I think a large segment of population is "afraid" to use their computer for communication. As a society, we are emotionally attached to our phones as our primary communication devices, and it would be quite a big shift for us to all start using computers for this. For a brief while, I used Skype, on my computer, as my primary means of making phone calls. Even for me, a rather technologically-inclined person, it felt odd to be using a computer to call for pizza and to wish my grandmother a happy birthday. Somehow, we have to overcome this mental hurdle.

The biggest reason, I think, is just that people aren't aware that videoconferencing is here, it's usable, and it's very affordable. Somehow, the mass populace has to made aware that this is now an option. This is, of course, one reason I decided to post a blog entry on this subject. But somehow, there really needs to be more attention brought to this subject. My previous idea of a webcam magically appearing at everyone's home would certainly accomplish this as well.

I am a big fan of videoconferencing. I think that it really is the future of communication, and it enables us, as a society, to communicate and interact over long distances in ways we have never been able to before. Videoconferencing is here, despite the fact that most people don't seem to be aware of it. We just need to, somehow, get webcams into peoples' hands, make them aware of what's out there, and convince them that it's okay to use something other than a phone to communicate.

Labels: ,

Sunday, April 02, 2006

We Need A Standards-Based, Web-Based Calendar / Address Book Solution!

For years (all throughout college and grad school, really) I have used, and loved, Palm computers. Specifically, for 3 years I had a Palm IIIxe, and then got a Sony Clie. I used them for keeping track of my schedule, making to-do lists of school assignments, and, most of all, keeping an address book that contained "last known good" contact info for basically everybody I've ever known since high school. That functionality was a "killer app" for me during college, and the ability to carry it all with me to classes was what closed the deal. I really feel that my Palms made life a lot less stressful during college.

But then I graduated and got a job. Since starting my real-world job, I have found that I certainly still require those functions -- calendar, to-do list, and address book. However, for my work-life, all of that is provided by the groupware software we use at work (Lotus Notes). Notes is certainly far from perfect, but it provides an amazingly well integrated set of functions. Group-oriented calendaring, to-do's, email, address book, instant messaging, and even journaling functions are all there, and all work together amazingly well.

So, I no longer require a Palm for my work life. However, I still need that functionality in my non-work life. I still would like to keep an address book of everyone I know, without it being tied to my employer. I still have appointments and events I'd like to keep track of in a calendar. But, the thing is, I no longer feel that I need to have all of that contained in a dedicated, separate device.

So this is where the story begins. After 6 years of using Palm computers, I was ready for something different. What I specifically wanted was to find a calendaring/to-do/address book application that I could run on my desktop. Additionally, I wanted it to be able to sync with a web-based calendaring/to-do/address book system, so that I could view and edit all of that over the web when I am away from my computer. Lastly, I really wanted the syncing between the web and desktop apps to be transparent, i.e., I don't want to have to push a big "synchronize" button, I want the programs to talk to each other automatically whenever I make a change. With this set up, I get the benefit of a good desktop interface, a web-based system that I can access from anywhere I have web access, and transparent syncing between the two.

To make a long story short: after extensive searching, I have not found anything that fully accomplishes what I am looking for.

I found several open-source, web-based groupware applications (notably Zimbra and PhpGroupware), but these all seemed to be either overkill, expensive, or, in some cases, buggy. I also found a standards-based, web- and desktop-based solution which integrates seamlessly with other desktop applications (ScheduleWorld) -- but it seems far from complete so far (can't edit from the web). So none of these all-in-one solutions seemed to work. I started to look at standards-based applications, to see if I could piece together a solution.

One pairing that comes close involes Mozilla Sunbird. Sunbird is made by the same organization as Firefox and Thunderbird, but Sunbird is a calendaring/to-do application. Sunbird also includes functionality to remotely publish and subscribe to online calendars. It uses the iCal standard employed in Apple's iCal application. There are free services out there that will host iCal calendars (such as iCalExchange), and I was able to get the syncing working. iCalExchange lets you view your calendar over the web after it has been published by Sunbird. However, at least in the case of iCalExchange, you cannot edit the online calendar. All edits have to be made in the desktop client, and then are viewable on the web. Web-editability is one of my primary needs, so this partial solution was out (I say partial because it only addresses calendaring and to-do's, not address books).

One other partial solution I found was a combination of Microsoft Outlook and Yahoo! Calendar and Address Book. First, some background on these two systems. Microsoft Outlook is the desktop client to Microsoft Exchange, which is Microsoft's competitor to Lotus Notes. However, Outlook can run without Exchange, and provides all of the functionality I need, plus more (email). Despite my sometimes dislike for Microsoft, Outlook is actually not that bad of a program. Yahoo! provides an online groupware-ish solution in the form of Yahoo Calendar and Address Book. These are web-based calendaring, to-do, and address book systems. They have amazingly nice interfaces for web applications, and also are able to import/export tons of formats, so your data is not going to be forever locked into your current vendor (one of my fears throughout this search).

So, here we have one good desktop client, and one good web client. Luckily, Yahoo also provides a program called IntelliSync, which allows you to synchronize your online Yahoo data with a number of desktop applications, including Outlook. This is very, very close to what I want, obviously.

But, not quite. There are a number of problems here as well that become apparent when you start to use it. First and foremore, Intellisync is not transparent. You have to manually run IntelliSync and press a "Sync" button in order to synchronize Outlook with Yahoo. Which means every time I make a change to one, I have to make sure to synchronize it in order to see the change in the other. Annoying. The other problem is that if I am going to have Outlook open most of the time for address book / calendaring / to-do list functions, I might was well just use it for email as well, rather than having Outlook open as well as Thunderbird. Which brings up two new problems. One, I really like Thunderbird as an email client, and I really don't like Outlook for email -- it just doesn't "feel right" to me. Also, Outlook doesn't seem to do spam filtering on IMAP email accounts (which is what I use so my email is always accessbile online as well as from my desktop -- just like what I want for calendaring and address books!). I get a ton of spam, and Thunderbird does a great job of filtering it over IMAP. I can't give that up.

So, Yahoo / Outlook was as close as I could get. In looking at the problems with this combination, I realized what the ultimate solution would be: transparent syncing between Yahoo and the various Mozilla products. By which I mean, the Yahoo address book should sync transparently with the Thunderbird address book, and the Yahoo calendar/to-do list should sync transparently with the Sunbird calendar/to-do list. This statement here is really my big conclusion. I really think that there are a lot more people out there who would use this solution if it were available -- but it isn't. Mozilla makes excellent desktop software, and Yahoo makes excellent web software. Plus, there seems to be a growing desire for web-accessible groupware-like functionality amongst home users. We really need transparent syncing between these two excellent software sets. Yahoo does not provide an open API for developers to access its calendar and address book systems (it does provide APIs for several of its other systems). If they provided this, I'm sure that someone out there would write a plugin for Thunderbird and Sunbird, if Yahoo didn't want to do this themselves. Do you hear me Yahoo? Mozilla? We want this!

For the time being, I have decided to just use Yahoo's online calendaring and address book systems, with no desktop part of the solution. This isn't ideal though. If I lose my internet connection, I also lose access to these important pieces of data. It's good for now, but I will certainly keep looking for my "ideal" solution. And if anyone else out there has searched for this sort of a solution and found something closer to it, let's discuss in my message board!

Labels: ,

Saturday, February 25, 2006

Leedberg's List: Cygwin

Leedberg's List is my own little soapbox where I can voice my opinion on a subject that, I think, I'm pretty darn knowledgable about: computer software. In this installment, I'd like to highlight a program which may not be required for every computer user, but for a segment of the population, it completely changes the way you use your computer. The newest addition to Leedberg's List is Cygwin.

Cygwin, fundamentally, is just a DLL -- a library of functions available to Windows program. That doesn't sound so exciting. The key to Cygwin is what functions it provides. Cygwin is an implementation of POSIX functions for use in Windows programs.

POSIX is the set of system calls that make Unix programs, well, "Unix programs." POSIX is pretty much common across all flavors of Unix. By providing a Windows implementation of POSIX functions, developers can produce programs using the POSIX calls they are used to on Linux, but have the programs running on Windows. Cygwin of course doesn't let you just run a Linux binary under Windows, but it lets source code that's written to the Linux environment be compiled and then run under Windows.

Now that would result in limited appeal, for sure. But the real usefulness of Cygwin is that they've taken a huge body of Linux software, and re-compiled it using the Cygwin DLL, making it available for Windows. Now we're getting somwhere!

When you download and install Cygwin, you have the option of also installing all of the programs Linux users are accustomed to having available. Bash, GCC, and all of the other great command-line utilities that make Linux so great.

Cygwin has even re-compiled the X11 GUI system for Windows, so you can run a large array of Linux graphical programs, such as Emacs and Grace. Lots of Linux programs out there supply Cygwin versions, since in most cases it's so easy to take a pre-existing Linux application and make it work with Cygwin -- thereby making it available to a whole new group of users.

For me, Cygwin has effectively negated my need to dual-boot Linux and Windows. I used to dual-boot the two operating systems because overall I liked the user-friendliness and device support of Windows, but there's lots of software on Linux that I like to use. With Cygwin, I can run Windows and enjoy the benefits of that, while at the same time using most of the software that was keeping me on Linux. Without having to reboot all the time!

Cygwin pretty much provides a full Linux-like environment on Windows, great for people who are used to Linux but also appreciate the good aspects of Windows. Even if Cygwin merely provided the great Bash shell, it would probably make Leedberg's List -- it's orders of magnitude better than the command shell that comes with Windows. But Cygwin goes way beyond that and provides pre-compiled versions of tons of other great Linux program at the same time -- all capable of running in Windows alongside Windows applications. If you've ever liked Linux but had to use Windows, Cygwin is for you.

Labels: , ,

Friday, February 10, 2006

The Significance of A Free Visual Studio

I recently discovered that Microsoft is now providing a free version of its Visual Studio development environment, called Visual Studio Express. In November it will become a $50 product, but considering that the full Visual Studio sells for $1000+, that's still a steal. I'm writing about VS Express because I think it's more than just a company lowering the price of their product, or offering a "light" version of a heavyweight system.

I've used Visual Studio for several years. In college I bought a "student" version of VS (which was effectively the same as the full version, but at a steeply discounted price). Even though I was very much coming from the Linux world at the time, I fell in love with Visual Studio. I generally regard it as one of the best products Microsoft makes -- not that there's much competition for that title. It's a great integrated development environment with some top-notch tools for debugging, GUI building, deployment, and just general code exploration. I've never seen anything from the open-source world that comes matches it, although Eclipse is getting close.

The problem with Visual Studio was that, at the cheaptest, it was $100. For students. For regular people, it was much more expensive. It's a great product -- but not that great. Additionally, it's a product that Microsoft needs people to use. Windows is nothing without good software, and good software is built by good programmers, and good programmers like to code a lot. Pricing a development environment out of the range of most common programmers inhibits the creation of good software. Sure, big software companies will buy all the site licenses they need. But, commercial software doesn't win many peoples' hearts. Some of the most popular software of recent times (Napster, WinAmp, PKZIP, to name a few) was developed initially by "hobbyists", not big corporations.

This situation has always put Windows at a disadvantage --particularly against Linux. Out of the "box", Linux comes with an almost endless supply of development tools. Compilers for almost any language, debuggers, editors, all come standard with Linux. Sure, they may not be quite as good, in my opinion, as what you get with Visual Studio, and they certainly don't work together as well. But, they are free, and they're right in front of you when you install Linux. People will use them. To create innovative software. For Linux. I don't care, but Microsoft surely should. When you install Windows, you get no development tools. There are some free compilers and such available, but they all are pretty bad, compared to either Visual Studio or Linux's tools.

I've always thought this to be an odd situation. Microsoft is almost encouraging people to develop for Linux, or to develop for Windows using tools that aren't made by Microsoft. For most hobbyist programmer, it simply isn't an option to buy a $1000 product, and at the same time it simply isn't an option to not program. Hence, non-Microsoft products will prevail.

It's good Microsoft has made a free/cheap version of Visual Studio. At least, for them it is. It's sort of bad for their competitors. But now the average person can install a high-quality development environment without breaking the bank. And this really does benefit Microsoft in the long term. Sure, they'll make less money per copy of Visual Studio. However, probably more people will use Visual Studio as a result of this, which cements their domination in the market. Also, if people (particularly young students) use Visual Studio at home and learn how to program using it, then that is what they're going to feel most comfortable with if they enter the software industry. This will likely cause more big companies to want to buy high-cost licenses of Visual Studio.

In colleges, there's a definite anti-Microsoft sentiment in computer science departments. Maybe this is partially an effort to fight that. If young people had access to Microsoft tools, they might not view them to be quite as evil.

As disclaimer, I have not used Visual Studio Express yet. I don't know how it compares to the full version of VS I am currently using. I intend to try it out sometime soon, though. At any rate, it's not so much the specifics of VS Express that interest me, but rather the idea of it. Microsoft finally got something right.

Labels: ,