20100127

Eyeborg: My Thesis Project has Begun

The wheels of academia have begun to turn and I've been approved to start my thesis project in the Center for Wireless Communication (CWC). I can't give out many of the technical details yet, but let me just say that it's insanely cool and has to do with the Eyeborg Project.

If you've never heard about the Eyeborg Project, please check out their channel on vimeo and visit their homepage (www.eyeborgproject.com).

20100119

Fake USB Flash Drives

Hi folks,

For the last couple of years, there seems to have been a huge influx of so-called 'fake' USB flash drives. Why they are called fake, is
  •  they report a storage size larger than they can actually store
    • maybe they use compression internally
    • maybe they just allow data to be overwritten without warning
  • they often cannot be used as a bootable USB device
I am one of the unlucky many who did purchase one of these devices, and found out something was strange with it when it would not boot an Ubuntu or Gentoo Linux LiveUSB installer.

Although I purchased my 4GB USB storage device a long time ago, I always keep electronic records of my purchases. This unit was purchased on Amazon.de, from a 3rd party reseller called MemoryWorld.de . I highly suggest that Amazon should blacklist this vendor for selling fake or counterfeit USB flash storage devices.

My particular device has USB vendor ID (VID) 2008 and USB product ID (PID) 2018. I'm not really sure where you would look for this in Windows, however, in Linux (using lsusb) this device will show up as 2008:2018 .

I'll post some detailed photos of the device later, but I just opened the casing and the USB transceiver is an UHC2008. The company that makes this is called "Shenzhen Sea Song Microelectronics Co., Ltd". The label on the storage chip is SFO8BGTP. I'm not quite sure who this belongs to yet though.

Just in case anyone has the same device, there are some instructions for how to fix and verify the device here. Unfortunately, the instructions assume that you are a Windows user. Hopefully I'll be able to find out if there is an equivalent tool for Linux.

20100108

Picasa for Linux, Multi-touch, and Software Patents in General

I should state this clearly at the beginning of my post, just so I don't come off the wrong way. I do appreciate everything that Google has done and how they have contributed back to open-source software. The same is for Apple - I am grateful that Apple helped to revolutionize the user experience and to inject a fusion of art and technology in their designs. However, there are some issues (mainly revolving around the concept of software patents) that prevent many wonderful, Google-created applications from being wonderful on Linux.

Three examples come directly to mind:

1) Picasa for Linux: does not support viewing or uploading of video files.
2) Android: does not have a 'playmp3' binary when built from source.
3) Android: does not support mulit-touch (using the commercial ROM). update: Newer Android devices do support Multi-Touch, with open drivers. Thanks Google!

With respect to my first issue (and I'm sure that anyone who has a child and a Cannon point-and-shoot digital camera will agree with me) I make a heck of a lot of videos. In some cases, I make more videos than still photos. Picasa (for Linux) does not support videos at all because many video codecs (although there are free implementations) require royalty payments to be made to some patent holder. Maybe Apple and Microsoft do make these royalty payments, and thus can provide the video codec binaries to applications for their platforms. I can't even use PicasaWeb to upload videos of my toddler, and in that case Google wouldn't even need to redistribute any royalty-encumbered software. There's something wrong with this, but let me address the other two points before beginning my rant.

As for the second issue, I believe its a similar situation. Perhaps Google does make royalty payments to Fraunhofer (the 'owners' of the mp3 format patents), which allows them to distribute a device with an mp3 decoder. I would certainly hope that Fraunhofer provides Google with the code, because if they're just using ffmpeg or lame, then there is definitely something wrong with that situation as well.

Lastly, with respect to the third issue, Apple holds patents for mulit-touch and has requested that Google intentionally cripple the Android UI. I can fully understand that a patent could and should be granted for the physical device that senses multiple points of contact, but as far as Apple having a patent on software to read that device (i.e. the driver) and software to interpret that device for a user-interface, that's just absurd.

What all of these issues have in common, is that they all revolve around the same concept: the patentability of software. Along with 90% of the world, I do not believe that software should be patentable. Typically, a patentable 'device' should be 1) novel, 2) useful, and 3) non-obvious. In at least 50% (but more likely 80 or 90%) of software 'patents', they rarely satisfy any of those three conditions, at least in this day and age.

Historically, patents were introduced in order to encourage innovation. A company bringing a new invention to the world was awarded the patent in order to prevent others from wasting their time trying to come up with the same, patented product. This encouraged competitors to come up with different or better inventions. A company awarded a patent was therefore awarded adequately for their hard work, with their physical design being preserved for a limited time. After that limited time, competitors could begin to offer similar inventions on the market. Seems pretty fair to me.

However, software (in the truly scientific sense of the word) is math. Math is a collection of ideas. Patenting ideas has never officially been supported by any patent system. I really think that the only law that should apply to software is that of trade-secret and copyright. Surely, if one company copies the software of another and pawns it off as their own, then that is illegal.

On the other hand, if another entity can legitimately show that the software (be it a signal processing algorithm or device driver) had been cleanly reverse engineered, then that other entity should legally be allowed to sell or redistribute their version of the software, especially if it more adequately suits some population of recipients or users (i.e. if it fixes bugs, works faster, etc). In the same sense, I don't consider it a crime to decipher encrypted transmissions.

I find it tragic that authors of free software are not allowed to distribute their work, and help others, because the patentability of software is accepted in 2 countries on earth. I do believe that physical things should be patentable if they are novel, unique, and non-obvious, but I don't believe that inquisitive minds should be limited.

20100101

Could Google's Nexus One be Available as Soon as January 5th?

Just as many of you have undoubtedly read, Google released a new handset before Christmas to all of its employees for testing. The device is called Nexus One. A decent video introduction can be found here. One thing to note is that the 3D gaming demo (2nd video) shows Qualcomm's logo, which leads me to believe that the Nexus One most likely packs a 1GHz Snapdragon SoC under the hood. I'm very interested to say the least and am eagerly awaiting the rumored January 5th release date.