Friday, March 31, 2006

Yet another solution to VoD rental

A couple of weeks back, when checking the postal mails, I saw a marketing flyer from a company called moviebeam. It is a new way of delivering movies directly to your home. I thought, probably they use satellite receiver and have enough bandwidth to do VoD. But what surprised me was they use an internal receiver -- that is no need for a dish like in satellite TVs. When I peered closer on the ad, I saw the word 'linksys' on the box! that was a surprise to me; I never knew Cisco was involved in such a VoD rental market.

Anyway later I realized the way it works is that they use some unused PBS broadcast TV signals to continuously send movies. They get stored in a hard-disk like device in the home. You can have some 100 movies always in the disk. You pay for movies that you watch. So in some sense it is not really VoD (Nothing is really 'on demand'), you can't watch whatever you like. But you must choose one from the 100.

In the last few years, since the arrival of Netflix, the video rental business has changed dramatically. Of course it has affected the theater business too. After BBI's arrival, wal-mart's exit, talks of amazon starting the service in US, this rental market has changed so much in the last 5 years. It is all good for the end consumer since netflix/blockbuster online offer some very good deals for the money.

While thinking about this moviebeam's way to getting the movie directly into your home, I got this idea of delivering movies in an yet another way. Note that even though the data networking companies want to send a 100Mbps or 1Gbps fiber to the home and allow VoD to run over IP; it is going to be a while before we have all this connectivity and watch any movie streamed from a server in real-time.

Consider these two ways of delivering stuff to people
1. water, electricity, cable-TV, moviebeam, Netflix, BBI
2. cash (ATM machines), gasoline (gas-stations), groceries (grocery-stores)

The items in 1, come directly into your home. Items in 2 have a large number of distribution centers where people go and fill the stuff periodically. The new VoD rental I thought of falls in 2.

We don't have gasoline flowing from a pipe in our car parking spot. We go and fill it from a nearby shared station. How about doing the same for video? I want to watch this DVD, I go to this ATM like place(let's call it pickup-station) and swipe my membership card. The station instantly burns the DVD and pushes it out. The stations are all connected by high speed data links to backend video servers.

Just like netflix/BBI, I order the movie ahead (say a few hours before) in their website. I also select the nearest DVD pickup-station. The provider transfers the movie to the collection station and it is ready for my pickup. I use a container to transfer the movie physically from the pickup-station to my home. It could be just a rewriteable DVD or some special hard-disk like device capable of holding 5GB or so of the movie data.

The main positives in the approach are exploiting two recent breakthroughs - cost effective high speed data links (>1Gbps) and low cost of rewriteable DVD like media. The infrastructure is needed only on the few select pickup-stations; not in every home like in the direct to home approach. The whole network of pickup-stations and back-end video servers can be extremely automated and thus the labor cost is very minimal. We don't have the shipping cost of today's netflix/BBI online.

Friday, March 10, 2006

Increase your vocabulary using Yahoo My Web

Yahoo has introduced a new service called My Web 2.0. It allows you to save webpages you like. You can also add "tags" -- like the ones in other services like Flickr. Tags are labels/keywords you assign to a page so that you can retrieve/search them later. In some sense, it is a beefed up bookmark management tool. The main novelty is the social nature where you can share your myweb with others. And you can add privacy to restrict who can access your pages.

I found a cool application.. that is when I am reading online and I find an interesting word, I save it in my web pages. I put in a tag "wordlist". When I visit my web later, after a few days, it helps me refresh my mind of the new words. Many a times, this lack of refreshing the word, is the reason you forget its usage. I hope to add more and actually now when I read some quality material, I look for interesting new words! ;) Once I find it, I save a link of its definition from into myweb under tag "wordlist".

Currently the service is still in beta and they don't have a facility to directly see someone's tags (at least I couldn't find it). You should do a search to find it. My id is kar1107; you can take a look. Go to Click on 'All tags' and enter 'wordlist'. You should be able to find a list of pages and you can find the ones with 'kar1107' and that is mine. This link seems to work now and does point to kar1107; but it may change later if Yahoo updates the links.

Wednesday, March 08, 2006

Automate your debugging using Expect

That's right; isn't it cool to see automate and debugging in the same sentence? :)

I think I read this, may be an year ago, in comp.lang.tcl. The poster was trying to track down a memory leak in a C application. He is a tcl/expect guy and wanted to run gdb under expect. His idea is really cool. Basically he wants to connect to gdb thru' expect. Then issue commands to set breakpoints at malloc and free. Every time gdb hits the break point, expect gets control. It issues a bt. Grabs the output and stores in, say a tcl array.

It may collect other data like caller, arguments(like size of allocation) and any other information that can be seen as relevant(say from info arg/frame). After a sufficiently long run, you have this complete history of who did alloc/free when/where. That can be analyzed to lead to the source of the leak. The beauty of the whole process is that, the original C source is never changed. No need to add a printf or any such thing.

I found this idea of automating a gdb debug session very powerful. I haven't yet had an opportunity to try it out; but I believe its power is awesome. That's a great way of throwing a machine's power at solving its own complexity.

There should be various other applications; the real power comes in that, you don't have to change anything in the C program. You stop it, at will with gdb and collect data to store it in your tcl data structures. It does involve a decent amount of initial work in getting the expect script work; but I think for a really tricky problem, this method should come in handy.

Tuesday, March 07, 2006

IM like stealth settings for cell phones

This is yet again a cell phone feature post; I'll try not to put any more cell phone stuff at least for the near future! ;) I'll add a bit more variety.

The feature I was thinking is how to stay invisible from specific contacts. Exactly like the stealth settings available in the newer yahoo messenger. Consider that someone is repeatedly bothering you over phone and for some reason you can't tell him straight "don't keep calling me". You don't want to be disturbed.

What you do is enable a setting so that you remain invisible to his/her calls. Basically the phone responds something like "the mobile number you are trying to reach is either switched off or inaccessible". The caller thinks you are really away somewhere and doesn't try reaching you often. You are available to other callers just fine. So it is a setting you enable on a per contact basis.

I'm surprised such a feature is not available in most phones; I did a google and couldn't find relevant stuff (that's a pleasant surprise, because many a times, what I think, someone has already thought about it!). I didn't further refine my search lest I may find someone has indeed done that before! ;). In fact there are not many solutions today to runaway from an bothering call, except may be to change your number. Or switch off the phone altogether. I think this faking of "phone unreachable" should work great for mobile phones. It still doesn't help harassment over land-line.

But ofcourse after a while, the caller will get suspicious; but you should be able to reap some benefit till then.

BTW this thought occurred to me in a train trip from Coimbatore to Trivandram. So I put this pic which we (I and Priya) took from the train when it was crossing a river. Priya had borrowed her dad's cell phone temporarily for our use; the phone ran, and she didn't answer the call as it was her uncle calling. She said his uncle will try the land-line and that's good since anyway he is trying to reach her dad. So I thought, may be there should be a way to put a whole bunch of contacts in invisible mode; so you don't even receive the call. And your phone stays fully functional otherwise.

Friday, March 03, 2006

Running servers on cell phones

When I was in India, I was surprised at the number of services available on cell phones through text messaging. Say you want to know the latest cricket score, you send a text message to a special number (with a special message - like a command) and you receive back the information you wanted. Surprisingly such services are not that prevalent here in US.

For all these services, the phone acts like a client. It is the one that initiates the conversation. I was wondering if we could provide capability to run server functions in the mobile phone. On doing a google search, I did find a research project in nokia and they were successful in running a full apache web server on a mobile phone. I guess there should be some problem dealing with the heavy weight bulk transports like TCP in low bandwidth cellular networks. Also marrying the IP network with cellular is not easy; simple issue like addressing is different.

What I would like a first step, is support to run light weight servers. Something like the telnet port 13 time service you find on a unix machine. Any other phone should be able to query my phone for specific information. And initially there is no need to merge the internet world with mobile - so no need to expect direct IP connectivity from a normal computer. Of course once the system matures, it it is desirable to have it interoperable with the traditional IP network; so queries can come from normal computers.

A simple application is querying a phone for its status. Like the topic of my prior post, a caller can query a phone to know if it okay to initiate a call. This is very much like the status message you find in IMs like yahoo messenger. If you see 'I'm busy' you think twice before you send an instant message. Another possibility is querying a phone for its geographical location. A built-in GPS can serve that data. In future, there could be a lot of other data (images, video) that could be served out.

Of course all these servers running on your phone will have necessary authentication to ensure privacy. You share information only with those whom you want to.