June 2008

The database that I have chosen to discuss is stored within the Tivo DVR. The Tivo DVR is a system that sits between a television and cable box. With the Tivo you can pause, fast-forward, rewind and record television shows. There is a huge amount of data about those shows that is stored on the local database and remotely on Tivo’s database. Data from Tivo’s remote databases can be downloaded through the Internet and viewed locally.

The main function of Tivo’s database is to allow users to quickly find what’s on television by browsing through menus that can be sorted by time of a show, channels, a show’s name, actors, genre or the setting of the show.


Since the Tivo does not include a keyboard, the engineers at Tivo needed to develop a way for users to enter search criteria from a typical remote control. The engineers at Tivo came up with the following system:


Users use the up/down channel button to scroll through an alpha-numeric interface to spell words. The Tivo then displays all the matches that start with those letters the user entered. The interface also allows users to enter the name of an actor to find out all the upcoming shows or movies they will be in. The Tivo database can also find alternative show times for particulars episodes in case you might have a conflict in your schedule.

Adding a relational database to the television was a great idea, and the fact that it can be operated through a remote control while sitting on the couch is a great engineering feat. The user interface is very intuitive and easy to learn. Users do not feel like they are using a computer to watch television; rather it feels like it’s just a regular television with some great extra features.

The main shortcoming that I have seen is with the recommendations engine.


Tivo allows user to rate how much they like or dislike a particular program with a thumbs-up or thumbs-down button that is found on the remote control. The user’s preferences are then sent back to remote Tivo who then tries to find other shows that the user might like to watch. This system does not function very well. Recommendation engines are difficult to implement because everyone’s taste is so unique. I hope that Tivo continues to improve their offerings by adding the ability to search by genre or actor for video throughout the Internet that I can then download to my computer.

Human communication is mostly non-verbal: 80-90% of communication between humans are sent by eyes, hands, twitchy noses and other body language. We humans are a very visual bunch! When visual signals are removed from communication, like on the Internet, something else has to take needs to take it’s place. Letters on a screen can’t take the place of body language no matter how many smileys are added. Netiquette is a set of rules that all Netizens (users of the Internet) agree to use so misunderstanding and miscommunication is kept to a minimum.

Here’s a some Netiquette Rules:
Here’s an even longer version More Netiquette

There are many areas when the rules of Netiquette apply. One of the most important is E-Mail.
Here are two messages:
Version 1:
Version 2
I recently saw your profile on Craigslist. I am also Pisces that loves long walks on the beach. Please reply to this email or IM me so we can chat more 😉

Both are creepy, but the bottom one is more Netiquette friendly. Here are the problems with the top version:
1. Using all capital letters – On the Internet all capital letters signify screaming or yelling. Better save that when complaining to the IRS or UPS.
2. Spelling mistakes and missing grammar. Check spelling and grammar before sending correspondence.
3. Too many exclamation marks. It’s OK to use 2 or 3, but it better be really exciting news after 3 exclamation points.

Knowledge of Netiquette is very important during Instant Messaging. Often during instant messaging participants will use acronyms or short forms of words in order to speed up typing. It is good Netiquette to use these acronyms, but not too many. It is also important to understand the acronyms. Here are a few that you might during your next chat:

IMHO – In my honest opinion
ROTFL – Rolling on the floor laughing
TTYL – Talk to you later
OMG – Oh my God!
WTF – That’s difficult to believe (translation)
Here’s a huge list of acronyms http://www.netlingo.com/emailsh.cfm

Another important feature of Netiquette is knowing when to avoid emoticons and acronyms. When using email for formal business correspondence, use smiley faces and phrases like WTF at your peril! Email is by its nature less formal than hard copy correspondence, so chances are you can get away with a slightly more enthusiastic tone than you could in print (read: more exclamation points). But even here, a business email with more than one sentence punctuated by double exclamation points could raise eyebrows. 😉

Netiquette is an important set of rules to master. It’s a shared group of rules that everyone on the Internet can agree on so we can communicate politely, effectively and hopefully not too much misunderstanding. Outside of some of the specific items to help emotionalize written communications, Netiquette’s main point is just to be nice.

“A computer network that can store all our media: music, video and pictures. Any of the media can then be streamed to any computer or television inside or outside of the house! You can listen to any of the music stored on the server in any room of the house. We can look at all the baby’s pictures and movies through the television and I can get rid of all my CD and DVD cases!.”

That was the case that I made to my wife and she reluctantly agreed that I could try and build an integrated media network in our house. I’m sure she thinks this project is just so I can buy more electronic gizmos.

With my wife’s approval in place I started building an integrated media home network. The first step was easy, adding a wireless router so laptops and other wireless devices could connect to the LAN and Internet. I chose a wireless 802.11 Super G router since it was the fastest available at the time (as of this writing 802.11 N is the fastest). Laptops could now connect at a 54MBPS to the LAN.

Next requirement is to share files, printers and have a lots of storage for music, pictures and video. I started with an old desktop PC and installed 4-250 GB drives, some additional RAM and UBUNTU Linux. Once Linux was installed and configured I needed the laptops, which were running MS Windows, to share the huge hard drives and printers on the Linux server. I chose to use SAMBA, Open Source software which allows MS Windows and Linux to share printers and hard drives through the SMB standard. Once Samba was configured I added the Linux server as a shared drive on the MS Windows laptops. Configuration and integration of a Linux machine can be challenging, but there were a lot of great resources on the Internet that helped me. Linux can also help resuscitate PCs that would have otherwise been thrown out. The desktop PC that I have running the Linux server is 8 years old and it still works great!

Now that I had a wireless network and a huge amount of storage, I was ready to add a media interface to my network. I wanted to be able to record television and be able to watch stored video on any television in the house, or on a laptop. I also wanted to be able to watch home movies, that were stored on the server, to be watched on a television. Fortunately for me the TIVO digital recorder is capable of connecting to a television and streaming video from external storage through Galleon, an Open Source media server. With Galleon installed I could have a 1000 of hours of video stored on my server that I could watch on my television.

The final step was to add the ability to stream music from the Linux server to any set of speakers in the house. I could easily do this by placing a laptop in any room in the house and then connect speakers to the laptop, but I wanted a solution that would force me to buy another gadget. I found the Logitech Wireless Music System for PCs. This wireless device comes in two pieces: a USB wireless transmitter that connects to a PC and a receiving base that connects to a stereo. Whatever audio is playing on the laptop is streamed through the base and is played through the stereo’s speakers. The system also has a remote control so songs can be fast-forwarded or rewound.

Here’s a picture of my home network:

Home Network

1. Router to the Internet
2. Firewall – Rules based router that allows or blocks traffic from the Internet
3. Wireless connectivity
4. Laptops
5. Server – Linux server running UBUNTU, SAMBA and Galleon. 1 Terabyte of storage
6. Tivo
7. Television
8. Stereo with Logitech Wireless Music System for PCs

I am satisfied with my network, but I want more upgrades! wireless speakers, more hard drive space and a better way to integrate an iPod. There are two major problems that I am still facing:
1) It’s hard to navigate through so much media through a television or a stereo. The only way to find a program on TIVO is to scroll through hundreds of titles.
2) I have way too many remote controls. I have at least 6: television, stereo, TIVO, cable set-top box, DVD player, iPod and Logitech wireless music system. I have been able to merge a couple of them, but I still have too many.

Open Source Software is software that is available with source code, redistributable for free and any changes made need to be redistributable for free. A more detailed definition is available here, http://www.opensource.org/docs/definition .

If software does not meet all the Open Source criteria then it is not Open Source software. Shareware or software that is available for free like Adobe Acrobat Reader is NOT Open Source software. Adobe Acrobat (which doesn’t claim to be Open Source) breaks the cardinal rules of Open Source: it cannot be freely redistributed and the source code is not publicly available. However, merely allowing redistribution and having publicly available source code do not by themselves explain the Open Source movement’s appeal or why it’s so revolutionary.

Eric Raymond, in his essay “The Cathedral and Bazaar” (a great essay that everyone interested in Open Source should read) says that the Open Source is like a Bazaar in that there is a community, participation, energy, bartering and goods for everyone to try (free software). By contrast, most commercial software, like Adobe and Microsoft, is developed in the Cathedral. Development is done behind the firewall at a campus and not at the Bazaar; source code is protected and can only be seen by a few chosen people. If there are bugs or problems they will be found by the chosen people (hopefully) and then given back to the masses with assurances that it is fixed (but no source code to prove it).


1) “Many eyeballs tame complexity” – I found this in “The Cathedral and the Bazaar”. If you’ve ever developed or even used software you know that bugs are software’s worst enemy. With an Open Source project you are asking a community of interested people to try the software and take a look at the source code to find bugs. One of the biggest users of this method of QA is the Firefox web browser. Firefox is an Open Sourced web browser that the community develops and QAs. When security bugs are found in Firefox a patch is created much faster than a similar security bug in MS Internet Explorer. See Reference http://news.cnet.com/Mozilla-Were-more-secure-than-Microsoft/2100-1032_3-5630529.html

2) Open Source software helps technology companies start up faster and cheaper – In the mid-to-late 90’s when the Internet was first taking off, there were not that many commercial tools that were available to create an infrastructure for technology companies. The only Database servers, web servers, development environments were created by a very few companies (think Cathedral). The software was very expensive, ran on expensive hardware and needed to be installed, configured and maintained by knowledgeable consultants. Fast forward to 2008 Open Source has made it much cheaper to start-up a technology company. Start-ups can now use entirely Open Source software to power their technology infrastructure, this group of software is know as the LAMP Stack.

L – Linux, an Open Source operating system comparable to Microsoft Windows Server
A – Apache, an Open Source server for serving web pages
M – MySQL, an Open Source relational database server
P – PHP (or Perl), an Open Source programming language

Now instead of spending money on expensive software, hardware and consultants start-up companies can now focus in on advantage #3.

3) Open Source software helps innovation – There are hundreds of useful websites that use Open Source as the basis of their services. A few of the innovative companies that have leveraged Open Source software are Facebook, Meebo, Salesforce.com, Google and the Mozilla Foundation. All of these companies have been able to use Open Source software as a starting point to develop new and exciting software and services.


1) Business models are more difficult with Open Source software projects. If you are giving away software you are not making any money from selling software. If the reward of creating software is eliminated, how will developers survive?

2) Not all Open Source projects are popular and have a community. Just because a project is Open Source does not mean that it will gain a following and benefit from the advantages above. Only the best Open Source software will reap the advantages. To understand how much Open Source software is available take a look at FreshMeat or SourceForge. There are only a few Open Source projects that only have a meaningful community participating in development and QA.

3) Not all Open Source software is high quality. A great deal of Open Source software is created by part-time developers that don’t have a lot of time to maintain their software.

Caveats aside, great innovations have come from Open Source and great companies have been built using Open Source software. Overall, Open Source’s advantages outweigh the disadvantages. Because of it’s unique licensing and sharing there will be more innovation and more great companies founded.