Category Archives: Hardware

Nokia Microsoft marriage is the end of Nokia’s handheld business

Nokia and Microsoft announced a partnership today. Together they will form a smart phone alliance. The high end profitable market of Nokia smart phones is moving to the Windows mobile platform. Nokia will move the Symbian platform which they used exclusively up until now to power the mid and low range models.

The effect of this decision is very profound for Nokia and Microsoft. For Microsoft it finally opens up the market for smart phones for them. Nokia’s market share is still very sizable. For Nokia on the other hand it will move them into a hardware maker. The implementation of Windows mobile will lead to margin erosion on their handheld business. Even if they manage to be a huge player in the smart phone market and become successful with bring Windows mobile handsets to the market they will loose anyway.

There is no exclusivity in the Windows mobile platform. When it Is successful other handset players will enter into this market too. The added value Nokia will bring is limited to the quality of their hardware. Any add on service or software they bring will be copies any of the other handheld makers or Microsoft themselves.

The only company who wins in this marriage is Microsoft. Nokia has nothing to gain from this deal and can only loose. Either the platform is not successful and they will loose even more market share. Or the platform is successful and other companies will jump in and erode the market for Nokia.

The future for Nokia is now very bleak. Most likely it will end the Nokia handset business in a few years — possibly 5 years from now. Nokia will sell its handheld business to a competitor who is interested in the hardware technology Nokia created. Most likely an Asian company will take over and use it to jumpstart their handheld business or bring it to a higher level.

It is decisions like this which makes you wonder what the board of Nokia was thinking at the time when they brought in Elop. I am sure they are scratching their head right now since Nokia’s shares went down from $12 to $9 in 2 days.

Companies who are control freaks

One of the major drivers behind innovation is openness. Through openness knowledge is shared, reused or build upon to create bigger and better things. And this openness is at risk. Companies – but also universities – are becoming control freaks trying desperately control the use of their knowledge, products and content. This is a serious risk for keeping pace with innovation and moving society as a whole forward. The examples are abundant: In this article I will highlight some of them.

One of the most visible examples is digital rights management (DRM). You will find it everywhere. It is part of every television sold, every copy of Microsoft Windows, ebooks and game consoles like the Playstation or Xbox.

Using DRM companies control the use of content. The user does not own the content anymore but buys a license or right to use it. The user may only use the content based on license bought. This seriously restricts the options the user has for the content. Without technical circumvention a user cannot for instance copy a DVD to their Ipod for viewing on the go.

Sometimes this leads to very odd situations – especially from the consumer point of view. A prime example is what happened with the ebook 1985 of George Orwell sold by Amazon. At some point it was determined that Amazon did not have the right to sell this ebook. Amazon promptly send out a recall command to all their Kindle devices which erased the ebook from these devices. Just imagine you were halfway through the book you thought you owned and then it suddenly disappears. Of course this led to some very disappointed customers and Amazon had to apologize publicly for their mistake. But it also showed clearly the problem with licensing content and not owning content.

In the past you could lend a book to someone, but this also not possible with ebooks. The companies selling the ebook restrict the copying of ebooks. This is a serious restriction for sharing knowledge. And overall ebooks are sold for the same price as regular books which you do own and can lend to a friend.

Another example are closed ecosystems around products like you see with Apple products or in the game console market. The barrier of entry to create an application (like a game) on a platform like Sony’s playstation or Microsoft’s Xbox is quite high due to high cost of their software development kits. It is just not that easy for a developer to create an application for these devices.

And although the openness of the Apple product line (mainly Ipods, Ipads and Iphones) is much higher than in the game console market developers still need to pass the nod of approval to be able to offer their software through Apple AppStore. The requirements to get your application approved are not very clear and applications are rejected for unclear reasons.

Companies create these closed ecosystems to control the use of their own products.

But industries grow based on openness. Standards and open platforms enable other companies (or organizations or individuals) to take part of the ecosystem. Perfect examples are GSM standard for mobile phones or MP3 for digital music. You can buy your music at one store and play it on different players. Without these open standards the industries would have grown much slower.

Why AI is hard

Artificial intelligence was one of the first buzzwords I can remember from the previous century. It promised a future with intelligent computers or devices which could understand you and act autonomously.

Up until now we still do not use AI-enabled devices in our daily life. Why is that?

Our brain has 10 billion brain cells. Each brain cell has 10.000 connections to other brain cells. Neurons activate pathways to brain cells. The activation of brain cells along those path pass along the message of the neuron to other brain cells. Some pathways end and the message is not forwarded. The combination of brain cells and pathways between brain cells is how the brain processes and stores information.

To make AI happen we should be at least be able to mimic the brain cells and pathways functions. There are two options available; hardware and software emulation.

You could compare the brain (without memory) with a CPU. Current top-of-the-line computer processors contain 2-3 billion transistors. That comes close but each transistor has only a few pathways and is in the end only a transistor. If you would emulate the pathways the current CPU need to contain at least 50.000 more transistors than they today. Based on the Moore’s law (CPU transistor count doubles every 2 years) we can have to wait until 2025 to get to this point.

From a memory perspective you need to store the values of each of the pathways of the brain cells. This would require 10B * 10k * 1 byte = ~90TB of data. The biggest individual memory units currently available are 12GB. Applying the law of Moore again and we reach 90TB memory units in 2023.

With current technology we are able to emulate the brain function of an insect. Hence you see all those insect-like autonomous robots.

Based on these calculations it looks major progress can be made in AI in 15 years from now because the necessary computer hardware is available to be able to emulate the brain functions. Of course emulation is only the first step. The emulated brain also needs to be programmed to work. Much like any brain is programmed before birth.

Picture by toad(Creative Commons Attribution-Share Alike 2.0 Generic)

Touchscreens bring new requirements for web design

A new class of devices are becoming more prevalent and these are touchscreen enabled devices. The touchscreen is a very common interface on mobile devices nowadays, mobile phones and mp3 players use them very often. And now with the release of the iPad combined with the upcoming slate pcs of companies like HP, Dell and Asus the touchscreen is growing up. And this has an impact on the design of websites (among other things like application user interface design).

With the growth of these devices web designers need to take care of yet another class of devices.  In this case a new class of devices with a particular input method. Using a finger to navigate and manipulate directly on the screen requires changes. A mouse can be controlled very precisely. But using your finger you can still hit very specific areas — arguably maybe even more precise as a mouse — but the interaction area is much larger. In other words a finger is bigger than a mouse pointer.

Web designer need to take these new class of devices into account when designing new websites. Things they need to consider:

  • Easy to hit buttons for navigation and actions
  • Leave enough space around links to avoid miss clicks using a finger
  • Employ other user interface paradigms in line with touchscreen use:
    • Dragging feels more natural with fingers than with the mouse
    • Gestures for navigation or manipulation of items

Another aspect with touchscreen devices unrelated to the input is that the available screen estate is smaller. This means that website need to be optimized for screens with low resolution. Also these screens are often used in portrait mode instead of widescreen like most laptops and monitors.

Also very important to note is that these devices have often the ability to dynamically change the orientation of the screen. It is possible to catch this event using Javascript and dynamically update the stylesheet to change the screen layout for the chosen orientation.

Touchscreen devices bring new requirements for websites and with the launch of the Apple Ipad it is now time to think and implement optimizations to cope with these devices. In my opinion these devices will become very important for reading and using internet content and web designers need to be ready for them.

CEntrance DACport – high quality portable USB DAC


According to a test on head-fi this $500 gadget delivers high quality audio from your USB port. The CEntrance DACport plugs into a USB port and is recognized as USB audiocard. It delivers analog audio to a standard headphone jack.

CEntrance describes itself as “founded in 2000, CEntrance develops, licenses and distributes cutting-edge audio products worldwide. CEntrance is known for its co-development work with audio industry leaders such as Waves, Benchmark, Lavry, and Mackie.”. Never heard of them before.

I am going to put this on my gadget wishlist. Maybe something to pickup from ebay next year.

More information:

Coolermaster xcraft 360 not recognized

I bought myself a Coolermaster Xcraft 360 which is a 3.5″ harddisk enclosure for SATA drives.

Only problem was it did not work. Under Linux I got the following error messages:

[270245.742829] usb 5-1: new high speed USB device using ehci_hcd and address 7
[270255.775427] usb 5-1: device descriptor read/64, error -32
[270256.005006] usb 5-1: device descriptor read/64, error -32
[270256.234609] usb 5-1: new high speed USB device using ehci_hcd and address 8
[270256.364383] usb 5-1: device descriptor read/64, error -32
[270256.593986] usb 5-1: device descriptor read/64, error -32
[270256.823584] usb 5-1: new high speed USB device using ehci_hcd and address 9
[270267.225518] usb 5-1: device not accepting address 9, error -110
[270267.345313] usb 5-1: new high speed USB device using ehci_hcd and address 10
[270272.895669] usb 5-1: device not accepting address 10, error -71

This was on a Ubuntu 7.10 machine. Next I tried a CentOS 4.7 machine. Same problem. Finally I tried a Windows XP laptop. There I got the message “USB Device Not Recognized. One of the USB devices attached to this computer has malfunctioned and Windows does not recognize it”. My first reaction was uh oh. I got myself a bad piece of hardware.

Next I went on a search on the internet. I read about a lot of people having the same kind of problems. Even mentions on the forums of Coolermaster themselves. But no reply or solution was to be found.

Next I turned to the manual but there was also nothing to be read which could point to this problem.

As a last resort I tried a few things like connecting, disconnecting, turning it on/off at various moments and finally the damn thing worked. You know what the solution was?

Solution

Turn the Coolermaster XCraft 360 on without the USB cable connected. Wait 5-10 seconds for the harddrive to settle and then connect the USB cable to the computer. Then it works. There is no other way.

Coolermaster should have mentioned this in their manual, their support personnel on the forums should know the answer, but in the end their hardware should not have this problem in the first place.

MythTV

This Christmas I had planned a very special project for myself. I was going to replace my Philips HD-recorder with something more elaborate and useful. A long time ago I read about Tivo in a computer-magazine. And it instantly hit me that this was the ultimate TV-recording device. At least as long there is no useful high quality video ondemand functionality available. And I was not alone and the last couple of years several open source projects have sprung up which offer a digital videorecorder running on Linux. And I was going to build one of them using: MythTV!!

Why MythTV?

The main requirements for building my own digital videorecorder was the lack of show management with my Philips videorecorder. The user interface of this recorder is so sparse that it is no more than a digital incarnations of my previous Sony VHS recorder. With the only benefit that it could store way more shows and you can instantly select the show you want to see. But programming is painfully slow. And to be honest is quite dumb. In contrast MythTV is refreshingly smart. Smart because it can:

  • find and record shows based on their title and not a specific air time. So if the broadcaster decides to air the show a few minutes later or earlier MythTV will record it anyway.
  • find and record shows based on their category (eg. movies), description or cast.
  • give you complete control on when the show is recorded. It can record a show whenever it airs on a specific channel or across all channels.
  • give you complete control on saving shows. You can determine how many shows are stored and automatically delete older shows.
  • supports any number of TV tuners you can build into your system. If you want to record 3 shows at the same time, you can if you insert 3 TV tuners in your system.
  • mix multiple types of TV capture cards. You can mix regular analog cable with digital formats like DVB-C, DVB-T or DVB-s — in order digital cable-TV, over-the-air or satellite.
  • Program you videorecorder using your TV or via a webbrowser on the other side of the world if you want to. It even sports a nifty WAP interface for your mobile.
  • Plug in different recording backends with different playback frontends. You can place a box in the US and watch your recordings on your laptop in The Netherlands.

And the list goes on and on. Just imagine that you can automatically convert your shows for your ipod with the commercial breaks automatically deleted and upload them to your ipod through Itunes.

This is the reason I chose MythTV. Because it can do just that and more. It makes my Philips digital videorecorder look pale in comparison and I have not found a commercial offering with this kind of feature set anywhere — with exception of the Tivo which is unavailable — and unusable I might add — outside the US.

Hardware

It starts with the decision and purchasing of the necessary hardware. This is the list of components I selected to build my digital videorecorder:

  • CPU: Intel Core 2 Duo E4600
  • Memory: 1GB
  • Harddrives: 2 * 80GB Western Digital (combined RAID-1 for the OS), 500GB Western Digital (for recordings)
  • Motherboard: Intel Desktop Board D945GCNL
  • Case: Coolermaster Centurion 5 (my current favorite case) with Coolermaster ExtermePower 380W PSU
  • Capture cards: Hauppauge PVR-150 and Hauppauge PVR-500 (dual tuner capture card)

The decision for this list of hardware was a trade off between price & quality. I like the quality of the components from these manufacturers but it is not top of the line to keep the cost down. And it is simply not necessary to have more horsepower.

For some time now I make a habit out of running the Operating Systems under software RAID-1 for 100% reliability. And since harddisks come cheap nowadays and have more than ample room to hold the Operating System it is for me a no-brainer.

Software

In general I run CentOS as my Operating System of choice. It is a 100% binary-compatible clone of Red Hat Enterprise Linux build from the source RPMs made available by Red Hat. But for this project CentOS would not be a good choice. MythTV needs bleeding edge packages like FFMPEG which are not available under CentOS. Though I could opt for adding external repositories to CentOS to take in these packages my experience is that hurts the stability and maintainability of the system since you are upgrading or moving away from set of core components of CentOS. In these circumstances I rather choose a Linux distribution which comes with the right set of packages including MythTV itself.

There are several dedicated MythTV distributions implemented as deratives of existing distributions like Mythdora (based on Fedora), KnoppMyth (based on Knoppix) or Mythbuntu (based on Ubuntu). But I decided to go for Ubuntu and to be specific Ubuntu Server 7.10.

It installed without problems on the aforementioned hardware and the installation was a breeze. It comes with the latest stable versions of MythTV and all kernel drivers for the Hauppauge capture cards. The only item I manually upgraded was the firmware for the Hauppauge cards. For some reason Ubuntu ships with old versions of the firmware though the firmware is already more than 1 year old.

The configuration of MythTV was quite straightforward. It takes some time and especially reading on setting the right options. The cards were immediately recognized but setting up the channels and TV guide was more work. At first the whole configuration process looks very overwhelming and most options are not very self explanatory. Moreover the documentation is not very good. Although all information is there it lacks describing the overall picture on what you are doing and why are doing it. But all in all it did take not much time to get to the stage I could record my first show.

Next to upgrading the firmware for the Hauppauge cards I also installed a new TV guide grabber for Dutch TV channels. The default delivered grabber for Dutch TV from XMLTV is rubbish. A few people on the internet developed a replacement called tv_grabber_nl_py which uses tvgids.nl to collect the TV guide information. It took me some effort to properly configure this grabber and have it run automatically overnight. This could have been better. Though I still think that all TV stations should make their programming available through RSS feeds. It is plain stupid that they see this as a money maker. It is like asking an entrance fee for a store. But hell these are the same people who want to avoid people skipping ads. I think in a decade TV stations will be as irrelevant as the music labels are becoming now if they do not realise that they have to keep up with modern technological capabilities available to the average consumer.

Frontend Xbox & laptop

To view the recordings I use two frontends. One frontend is running on my Xbox under XBMC and the other runs on my laptop.

Xbmcmythtv frontend is a Python-based plugin for the Xbox media centre. My Xbox (1st generation) is modified to be able to run unsigned applications and was in the same procedure outfitted with a larger 120GB harddrive. I use this xbox only for watching videos, playing my mp3s or showing my photos. Although the box is a bit too noisy to be the ultimate mediacentre device from a technical perspective it comes close. It has excellent TV out quality, digital optical audio output and a remote control. I modified the extension menu to have the Xbmcmythtv script as the first choice and default choice for easy selection. From Xbmcmythtv I can access all the recordings, view them and delete them after viewing. Although it can do more I only use it to view recordings. You could also program using the TV guide, see the upcoming recording schedule or watch Live TV.

My laptop — a Lenovo Thinkpad z60m — runs CentOS 5. And as stated earlier I did not see this distribution as the ideal candidate for the MythTV recorder it can run the frontend of MythTV with a limited amount of changes to the base distribution. I added ATRPMS repository which holds a complete MythTV installation including all upgrades and addons necessary to run MythTV. I limited myself to the installation of the MythTV frontend and modified the repository configuration file to only include those packages necessary to be able to install and run the MyhTV frontend. In total I needed 17 files added to my CentOS 5 installation. And now I can watch Live TV from my laptop or any recording made by the MythTV recorder anywhere in the house. Which is very refreshing.

Experiences so far

Overall this is the best videorecorder I ever had. I even watch more TV than before because I can finally set my own schedule and pace for watching TV.
Though all is not well in heaven First of all documentation on MythTV is lacking. Basic documentation can be found at the Myth project site and specific information on niche topics. But there is a definite gap between those two types of documentation.

There is a lot of documentation missing issues regarding XML-TV and the integration of TV Guide data. In case everything works out of the box or you need what is delivered by the standard distribution than it will work. But beyond that you will run issues.

The whole transcoding implementation is very basic and purely tailored for a specific niche which I have yet to discover. The transcoding to mpeg4 is lacking most quality options to ensure proper transcoding. I find the current implementation not useful. Any use case scenarios on how to create your own scripts to proper transcoding including integration into MythTV — so you can watch the transcoded files from your frontends — is unsatisfactory.

In general MythTV tries to hide the complexities from the user. To enable that goal it lacks the advanced options to extend the solution with your own functionalities. And don’t get me wrong it is definitely useful for everyday use for a lot of people. But it could better harvest the knowledge and creativity of the community by opening up or making available more parts of the solution more easily to accommodate such extensions.

But in all honesty it is still version 0.20 something at this moment which conveys the message that the developers are not done yet. Maybe in time all those issues will get addressed. I am happy to see that such quality projects are coming to maturity and make the whole Linux / Open Source / call-it-whatyou-want experience enjoyable.

Some companies may learn a few things or more from this project. Hey Sony are you reading this! Your product offerings suck big time in comparison to this. And it is not only Sony. And boy I cannot wait on Apple to kick some serious butt in this arena. The opportunity is definitely there! And meanwhile I while enjoy my MythTV setup.

References

  1. MythTV – http://www.mythtv.org
  2. tv_grab_nl_py – http://code.google.com/p/tvgrabnlpy/
  3. ATrpms – http://atrpms.net
  4. xbmcmythtv – http://sourceforge.net/projects/xbmcmythtv/

What is it with this number 09f911029d74e35bd84156c5635688c0 ?

For some reason I found the above number everywhere on the internet. On YouTube, Digg or Flickr and even on T-Shirts. :)

It looks like something to do with HD-DVD? Anyone?

TODO in Desktop Linux: monitor configuration

This is the first post in a series. I use Linux daily as my workhorse but I also use Windows (currently XP). There are differences between Linux and Windows. And though I can do most of things I want in Linux there are still specific issues with running Linux as a desktop. In this series I highlight a specific issue per post. For your information I use Ubuntu Edgy 6.10 as a reference platform.

In this first post I start with one of the major problems I encounter during business use of Linux. The situation is as follows. I have a laptop. The laptop is mostly used in three configurations:

  1. Standalone
  2. Connected to a desktop LCD monitor
  3. Connected to a projector

The issue is that X does not recognize any monitor which was not connected during startup. So when I resume my laptop from standalone use and I hook it up to an external monitor, the monitor is not recognized or used by X. When I start up the laptop with the external monitor in depends on my X configuration what happens. In some cases the external monitor is used exclusively and in other cases the external monitor and the laptop LCD are showing the same picture (“cloning”). And can you imagine how this looks when you have an widescreen laptop LCD screen and a 4:3 LCD external monitor?
The expected behaviour is that whenever you connect an external monitor a popup is shown asking what I would like to do. Much in the same way as the desktop handles the insertion of a DVD or CDROM. Moreover I need to be able to change these settings during runtime. Although not perfect Windows is at least capable of doing this. It does not recognize the monitor on connecting but at least it enables you to configure when it is available.

The development of X.org even introduced a regression issue with regard to my Thinkpad Fn+F7 button. With this button I could change the graphics card output selection. But since X.org the radeon driver is not able to this anymore.

In some internet post I read that dynamic configuration of monitors is part of the feature roadmap of X.org R7.3. So there is hope that this issue is finally resolved sometime in the next years. I truely hope so!