Wednesday, August 30, 2006

I had discussed some product ideas with a colleague. And then both of us unanimously chucked it out thinking it would not find any users and was a bit cumbersome to engineer, mainly due to external dependencies. Today, I understand it is actually being productised.

Monday, August 28, 2006

Audio CD players, VCD, DVD players etc are consumer devices that can play content off optical storage devices. However, there is a lot of content available on the internet. Movie-On-Demand and streaming models of content distribution also use the internet as the distribution medium.

But I can’t watch these on TV, unless my TV is ‘internet enabled’. And my TV needs to have all the software in place in order to play the content viz. protocols for streaming media (Real-time Transport Protocol, Real-time Transmission Control Protocol ) and codecs for the zillion proprietary and open formats in which the content gets distributed.

So, would be neat if there is a consumer electronics device, which can stream content from the network, and also provide audio and video line-out functionality so I can connect it to my existing home entertainment system. Due to the nature of the device, it might be necessary that the device have a processor of some kind, either a general purpose low power processor or one specific to the application in mind.

Nowadays a lot of noise is being generated about Ultra Mobile PCs (UMPCs). These are computers that (seem to) fall somewhere between a smart phone and a tablet PC. UMPCs are ‘internet enabled’ and have all the software support needed for streaming media content. So it can get be used exactly for what I just mentioned. Actually what is needed is a modified version of it. We can probably strip the display unit off the UMPC, since the display is external in any case.

It can connect to a network, either home or external to stream content and also provide for any buffering so as to eliminate jitter and give smooth uninterrupted playback. Maybe it can even download and store the streamed content for playback at a later time. This is like the ASUS WL-700gE router, which can download torrents with the PC turned off.

Now, if the device has a normal low power processor and a general purpose OS running, then I can probably have a browser installed on it too. So I can check mail on a BIG screen. :)
And since the device can connect to a home media server, it might also fall in place with entertainment solutions like Intel® ViivTM.

Monday, August 14, 2006

Open Source Company

The Original Open Source Company talks about using the model of open source software ( I presume the author actually means Free Software) in different areas, specifically in establishing and running a company. Will be definitely interesting to see how far this idea goes and what the company achieves. I believe the biggest hurdle will be in decision making, since it wil get tougher as the company grows and the description by the author says 'decisions about the day to day operations of the company are voted on by one ‘n all'.

Open source seems to be the buzzword of today. With people 'Open source'-ing everything, we will have soon have an open source spectrum of products.. spanning from open source software to 'Open Source Underwear'!

Coming back, as the (above) company grows won't a hieracrchy (however rudimentary) tend to establish itself? (Err... is there a name for this phenomenon?). I am unable to think of examples. Even in case of demorcracy, there is the government and the governed. And once a hierarchy is established, there is going to be reduction in the information that flows from level to level (quality/amount/importance).

Consider any existing company. There are enough and more barriers that cut the flow of information from the `higher` to the `lower` levels. If there is a question asked on corporate decision making some kind of half hearted information is given. Why? Because the information requested was 'need to know'. But then everything in such an establishment will probably be 'need to know'. Worse still, information doesn't seem to flow smoothly inside a team in the company, irrespective of the team's size.

If the proposed company does not fall prey to hierarchy-dom, it will be a one-of-its-kind. And I might invest in it. :-)

Friday, August 04, 2006

Linux on USB flash drive

There are many sites providing USB pendrive distros, most notably PendriveLinux. But what I was unable to find was a step-by-step procedure. So began experimentation and I created a Linux installation on a 128 MB USB flash drive. And its pretty simple.
So here goes...
You need :
  • A linux box, with sources, gcc & binutils.
  • ExtLinux bootloader.
  • A USB pen drive (also called USB stick, USB key, USB etc etc).
  • Busybox
Configure the kernel and compile it. Especially, USB support must be part of the kernel and not a module. In my configuration, all h/w support was part of the kernel image. Nothing was included as a module.
Also, this means that we need to specially customize the kernel for the target hardware on which the USB installation will be used. So we have all the necessary support without increasing the kernel image size.

The USB drive needs to be partitioned and formatted as an ext3 partition. I created a single bootable ext3 partition.
Next is to install extlinux on the USB device. Extlinux is a bootloader that can boot linux of an ext2/3 partition. The steps to do this are in the syslinux site.

Once this is done, copy the bzImage and the initrd file to the boot directory on the USB drive and also create the extlinux.conf file. The initrd file gets created in /boot directory of the linux box when 'make install' is run. Once can choose to create their own initrd too.

I extracted the initrd and then copied the directories created onto the USB drive. This had the directories bin, lib, proc, root, sbin, sys, tmp and a init shell script. Linux needs an init (or a linuxrc) which it executes as the first process.

Now that the files are copied, reboot the box and get it to boot from the USB disk. :-).

Busybox can be used instead of the various individual binaries. Busybox is a lightweight console app that provides for the various binaries needed on Linux.

Next experiment: get X server & Window Maker on the USB drive.