Programmer’s Log Programmers Writing Stuff – Garry Bodsworth

10Jul/101

JooJoo Technical Details

For those of you as nerdy as me I thought I would try a virtual teardown of the JooJoo to gather information on its internals.

First up the nvidia ION platform it is using is the MCP79 (revision b1). They are all much the same when it comes to ION motherboards with the revisions.

lspci output:

00:00.0 Host bridge: nVidia Corporation MCP79 Host Bridge (rev b1)
00:00.1 RAM memory: nVidia Corporation MCP79 Memory Controller (rev b1)
00:03.0 ISA bridge: nVidia Corporation MCP79 LPC Bridge (rev b3)
00:03.1 RAM memory: nVidia Corporation MCP79 Memory Controller (rev b1)
00:03.2 SMBus: nVidia Corporation MCP79 SMBus (rev b1)
00:03.3 RAM memory: nVidia Corporation MCP79 Memory Controller (rev b1)
00:03.5 Co-processor: nVidia Corporation MCP79 Co-processor (rev b1)
00:04.0 USB Controller: nVidia Corporation MCP79 OHCI USB 1.1 Controller (rev b1)
00:04.1 USB Controller: nVidia Corporation MCP79 EHCI USB 2.0 Controller (rev b1)
00:06.0 USB Controller: nVidia Corporation MCP79 OHCI USB 1.1 Controller (rev b1)
00:06.1 USB Controller: nVidia Corporation MCP79 EHCI USB 2.0 Controller (rev b1)
00:08.0 Audio device: nVidia Corporation MCP79 High Definition Audio (rev b1)
00:09.0 PCI bridge: nVidia Corporation MCP79 PCI Bridge (rev b1)
00:0b.0 IDE interface: nVidia Corporation MCP79 SATA Controller (rev b1)
00:10.0 PCI bridge: nVidia Corporation MCP79 PCI Express Bridge (rev b1)
00:15.0 PCI bridge: nVidia Corporation MCP79 PCI Express Bridge (rev b1)
00:16.0 PCI bridge: nVidia Corporation MCP79 PCI Express Bridge (rev b1)
02:00.0 VGA compatible controller: nVidia Corporation Device 0876 (rev b1)
03:00.0 Network controller: Realtek Semiconductor Co., Ltd. Device 8172 (rev 10)

The mini PCIe networking card is a Realtek 8172. Ubuntu details are here and driver install instructions are here for older kernels. I found the drivers very problematic, and according to the discussions out there on the Internet many other people struggle to get it working well on Linux.

You'll also notice there are no ethernet controllers listed.

And now stuff from dmesg....

A normal looking Atom chip.

CPU0: Intel(R) Atom(TM) CPU N270 @ 1.60GHz stepping 02

And I assume hyperthreading is enabled:

CPU1: Intel(R) Atom(TM) CPU N270 @ 1.60GHz stepping 02

Bluetooth is pretty standard:

Bluetooth: Generic Bluetooth USB driver ver 0.5

About 128Mb is allocated for graphics from the 1Gb total:

Memory: 888772k

There is a USB hub with 6 ports somewhere:

hub 4-0:1.0: 6 ports detected

The touch controller:

input: eGalax Inc. USB TouchController as /devices/pci0000:00/0000:00:06.0/usb4/4-1/4-1:1.0/input/input3

The driver for the touchscreen is here.

There is a keyboard somewhere maybe it is used for something internally:

input: Chicony USB Keyboard as /devices/pci0000:00/0000:00:04.1/usb1/1-1/1-1.2/1-1.2:1.0/input/input4

I'm still trying to work out the ambient light sensor and rotation sensor (which allegedly us ACPI through a hacked kernel that has not been GPL released yet).

9Jul/101

JooJoo or is that iooioo? A Review

So I finally managed to get myself a Fusion Garage JooJoo from eBay for a reasonable price. I had previously tried to order through their online shop with multiple failures, basically their payment system does not work (I tried with three different cards). This was not a great start to my experience, so I sat it out and waited for one of them to appear on eBay.

Why was I so keen to get hold of one? It is essentially an nVidia ION in a tablet. At Camvine the main hardware is based on this platform, so I thought it would be a great toy to play with and get our software working on it. I can say my gut feeling was right and I had it going quickly.

No pictures for this one as they are all over the Internet. But check out great internal photos here.

And on to the review....

HARDWARE
I'll start with the hardware. It's not badly done, with a nice sturdy engineered body. The quality of finish does surpass what I thought it might be. What we have is nVidia ION netbook internals crammed into a slim tablet chassis.

The Display
The screen size is just wrong, I know why they went for 16:9 (with a very respectable 1360x768 720p resolution) but it just doesn't work. When you are in portrait the top of the screen is way too far away from you. The screen is really configured for movies rather than web browsing with that shape and resolution. Ideally for a tablet you do want something closer to 4:3 and each edge being a minimum 1024 (I'll come onto why in the software section). The viewing angle on the screen is good in one direction but then the other it is literally useless and you end up tilting it to see the content.

Heat
The tablet does get very hot. It has a fan internally which you can hear quite clearly when you hold it up to your ear. That is good, but the thing that gets really hot on the ION is the video chipset (I've seen it going at 70ºC). The heat seems to be at its greatest somewhere around the battery pack area which is odd since it is the other side to the processor.

Power Button
Either my fingers are too big or the power button is just not very good. It is quite good as it is orange when charging and white light when on, but it is recessed too far and seems terribly unresponsive.

Ambient light sensor
Great to have one, but unfortunately it is positioned more or less where you place your left hand when you are operating in landscape.

Weight
It is a bit more weighty than it needs to be but I put that down to the screen size. With a smaller, better screen it would have been much more of an impulse device to use.

Logo
The logo on the case appears when the JooJoo is switched on which is a real nice touch. Also it illuminates the right one depending on the orientation you are currently in.

Webcam
It has a webcam but I have not seen that it works - maybe it is for future software releases.

Overall
I simultaneously dislike and like the hardware (from an external point of view). For the internals some corners have been cut. The niggles take away from the final finish, so with things like ambient sensor positioning, power button, and screen physical dimensions fixed it would be a lot better.

SOFTWARE
For all of the hardware it is the software that will make or break the platform. The software is basically a web browser with a web based start page showing bookmarks, with compiz to switch between windows.

Boot Time
It is fairly quick to boot, but now lots of things boot quickly. It mainly suspends when you "power off" and then restart. This is great for speed but unfortunately the software can get upset so you need to reset hard in order to get a working system.

Main Menu
The main menu at the top I still haven't quite worked out how you are supposed to bring it up. Sometimes it is a tap at the top and sometimes a one finger swipe near the top. Sometimes it is the top left only as well.

Wifi
It seems it can only remember the last wifi network you were connected to so you have to type in the password again and again when you change locations. For a portable internet connected device that is pretty poor.

Scrolling
The JooJoo is "multitouch" for differing values of multitouch. Essentially the only thing I have found multitouch is that webpages scroll by using two fingers (like the Apple touchpad). There is no other functionality I have found like rotate or pinch n zoom. The really annoying thing is that the main webpage that you start from uses one finger to scroll (due to the HTML implementation I am guessing) so once you are used to two-finger scrolling going back to the main page is really painful.

Web Browser
According to some hackery on the JooJoo forum the browser is actually Google Chrome. It is surprising it has some performance deficiencies in scrolling and browsing. The browser supports Flash as well which may please some people (my intense aversion to it does not endear me to it).

Multitasking
Because all webpages you have open are essentially live, you can end up with a Flash video playing int he background sapping CPU without even realising because it does not suspend the background processes.

Compiz
You can switch the active web browser window using a compiz based switcher. It hasn't been nicely user tested as you can end up scrolling off the left or right and struggling to get an active window. To throw away a page simply chuck it off the top which is a nice gesture.

Rotation and Orientation
Rotation is obviously done using xrandr. This means no nice animation when changing orientation and you get the horrible destruction/creation of the framebuffer. Also the orientation seems to only have only two active edges because otherwise the illuminated logos would be upside down. This makes it inconvenient.

GTK
It obviously has some GTK in the background (for Chrome), but I have seen GTK error dialog pop up momentarily whilst whizzing around the compiz 3D bit. It looked very odd. Also in the Chrome browser it is obvious there is no GTK theme because you have the default (and off-putting) grey standard widgets for combos and the suchlike.

Webpages and Scaling and Zooming
As I mentioned earlier there is no pinch and zoom and no way to scale webpages. This is really important because of the resolution of the device. One direction it is 768 pixels, so most webpages are designed with a minimum 1024 width and this means that you have to scroll horizontally to see a whole webpage. There are two solutions - either scale a webpage (which is really easy in WebKit - even I have managed it for CODA), or supply a screen with a minimum 1024 in both directions (1280x1024 is still a great resolution).

Security
Okay, I log into all of these webpages and then switch off the device. Someone else switches it on and they can just go straight into those webpages because it simply remembers the credentials. This is a wide gaping security hole and brings me onto the next thing.

Users
It is a single user device. I am pretty sure there is no particular "user" on this linux system, this means it is right pain for more than one person to check their gmail on this device.

Overall
The software is OK for a toy, but not to be used beyond an internal engineering practice. I was pretty annoyed by it after five minutes, so it is time to nuke it.

HACKY HACKETY HACK HACK
So the real reason I got it was to hack my own OS onto it and to play around writing apps for it.

For a stand I decided to order a plate display stand which should work a treat and you can get two for a fiver(!) Also I have ordered a 2Gb PC3-8500 204 pin DIMM for £25 to up the memory. This should make it even nicer to hack on.

The SSD storage is the biggest debacle though, it is a mini-PCIe mSATA with some flipped pins which makes it impossible to find a replacement. People have been trying for while now. However, what I have ordered is a SD card to mini-PCIe adapter so I should be able to shoe-horn in some storage.

The wifi is also horrific, it is a Realtek card and as anyone who has tried to get these working on Linux solidly can attest they are cheap and nasty. I can't get it to work even when compiling the module under a 2.6.31 kernel. I might find another half height mini-PCIe wireless card to replace it with, Atheros has been quite good (and maybe find a wireless N).

The best bit is the screen and touchscreen is mounted upside down so all firmware images and media are stored upside down. Pointless attempt to avert hacking....

IS IT THE END YET?
So the JooJoo is good and bad, I couldn't recommend it to "normal" users, but it is a real interesting hacking platform. If some of the tablet OSes come out this year they could give it a whole new lease of life. Hardware wise it is nearly there, but needs more work (and battery life). The software is a long way from being first useful, and then good which is unfortunate.

Tagged as: , , , 1 Comment
16May/090

DisplayLink Open Source

Yesterday Displaylink released Linux source code for its USB display adapters. The project is LGPL and available on FreeDesktop. The project itself is called libdlo and is available from this link with the Git repository here. You can see DisplayLink's announcement here.

At the moment it is a low-level library for speaking to the device and is not yet wrapped in a Xorg driver. The code itself supports ASIC devices and only the USB versions (if that means something to you then you have probably worked for DisplayLink at some point).

The code itself is impressively documented, and means people should be able to get something up and running pretty fast. I'm sure some interesting and exciting projects will come out of this.

Well done to DisplayLink on doing this - this is going to be a really good thing for getting content onto displays. USB is a really good solution - imagine daisy-chaining lots of displays controlled by a single computer.

13Apr/090

nVidia + Linux + ACPI = Borked

It's a simple equation and has cost me a day of trying to get ACPI suspend/hibernate working on Linux. It took me long enough to realise it was the nVidia driver causing the issue.

Whenever I tried suspend or hibernate I would get a black screen with a flashing cursor in the top left. After working out it was the nVidia driver I tried all the remedies I could find on the Internet by other people with the same bug. What I discovered was this problem has been around for going on at least three years and no solution is being worked on.

The obvious articles are here, here, here, here, and here.

All solutions provide slightly different but the same solution, you need to set NvAGP in your xorg.conf to either 0 or 1 and optionally use agp=off for your kernel. I tried various concoctions and none of them worked.

I think I worked out what the problem is though. If your motherboard chipset is not nVidia (I think they call them nForce) then NvAGP will never work because mine always drops back to agpgart. This must be why most of the success is seen on laptops where the IGP must be using nVidia chipsets. My motherboard has a VIA chipset (old and crusty I know) with a GeForce 8500GT hence my complete and utter lack of success.

Like I said this problem has been around for quite a while and the chipset problem could be why the only responses I have read from nVidia is that they are unable to reproduce it. So for me it will be a new sensible graphics card with hopefully fairly open drivers.

Tagged as: , No Comments
13Apr/090

How To Ruin A Long Weekend

One of the things I was looking forward to this long weekend was watching DVDs. So I come back home on Thursday plonk my Tales Of The Black Freighter into my Windows Media Center 2005 box and I get jerky video and crackly sound. So I then spend a day trying to diagnose the problem.... Starting with making sure my Windows install is up to date with patches, new nVidia drivers (which managed to successfully break everything so I tried multiple versions), and new versions of the codecs I use. The best part was in Media Player I got no sound and fine video, but on Media Center I got jerky video and crackly sound. All from the same codec.

So, I decided it was time try MythTV properly, so I nuked the drive with a Xubuntu install which crashed halfway through showing me the true nature of my problem when there was no turning back - the DVD drive was dying. So I decided to proceed with my Linux install because I was on my way and liked the philosophy behind MythTV's design.

Now three days later I have a mostly working system, but I have had a number of casualties. First my DVD drive, then I blew up my monitor which I had to drive all the way to the office to collect, and now my graphics card is living on borrowed time (I will post about that in a bit). None of it is MythTV's or Ubuntu's fault, but I should of known when the weekend starts badly it can only get worse. I even got so desperate I considered installing Vista, but I am now really close to getting the whole system up and running.

As for MythTV itself - the features it provides were exactly what I wanted, DVD, TV, CD music, random downloaded videos. But it has proved to be such a pain, some of it Xubuntu's fault, some of it is MythTV's, and my greatest share of pain has come from nVidia.

The backend design of MythTV is a real good idea but it is painful to get up and running - even with the nicely supplied packages. Especially if you decide to change your IP address or XMLTV stops working briefly. The setup user interface is designed to be used from a big screen, but is extremely unintuitive and counter to any GUI guidelines you have ever seen. It took about three attempts to get the hook up between XMLTV and my DVB-T card correct and in the database.

The frontend is okay, but is at least five years behind anything you have seen for media centers (they have a new version they are working on but there is no planned release yet). You have to fiddle around so you can successfully eject DVDs, get your remote set up (involving text configuration files) which works okay but not intuitively (the stop button doesn't do what I expect on a Windows MCE remote), watch DVDs (enable the correct repositories), and getting your Samba mounts working (why on earth aren't Samba shares an optional directory rather than having to mess around with fstab?)

I did try X-Box Media Center as a front-end for the MythTV backend. It is much nicer to look at, provides some real good features (with a great iPlayer plug-in), worked with the MCE remote flawlessly and sensibly, and is only lacking the ability to schedule recordings. If that was possible I would use that as a frontend, because it seems much more stable than the MythTV UI. I did also try Boxee, the commercial version of XBMC, but although it looked quite nice I found it was not as good as XBMC it is derived from and its MythTV frontend refused to work as it is broken.

My thoughts this weekend have gone from MCE2005 to MythTV to XBMC to Boxee to XBMC to MythTV.... That also discounts the amount of time I sat down considering how I would write my own.

My main work now is to get hibernate and suspend working, but that requires a post all of its own. At least at that point I will be functionally equivalent to my Windows MCE2005 install that I nuked.

15Feb/092

The Little Box That Almost Could

A few weeks back I was looking at some small low-powered computer units. One was really interesting, a passively cooled ultra low voltage tiny computer you could VESA mount to the back of monitors.

It goes under a number of different names, BVM's EPC-500, the eBox-4300 / 4310, and the MicroClient Sr. They all seem to be rebranded versions of the same platform, and I think the eBox is the original although I could be proved wrong.

Features
* 500MHz VIA Eden ULV CPU with 512Mbyte/1Gbyte DDR2 RAM
* Bootable from Compact Flash or USB
* Internal HDD option
* Linux port available on CF or USB Pendrive
* Low power consumption
* VESA mounting capability

Specifications
* CPU: VIA Eden ULV 500MHz.
* BIOS: AMI BIOS.
* System Chipset: VIA CX700M.
* I/O Chip: Winbond W83697.
* System Memory: Onboard 512MB/1GB DDR2.
* I/O: 1 x EIDE, 1 x PS/2 K/B/Mouse; 1 x Type I/II CF slot
* 2 x RS-232 Port (option); USB 3 x USB 2.0 Ports (two on front).
* Display Chipset: Integrated VIA UniChrome 2D/3D Graphics with MPEG4/WMV9 decoding accelerator.
* Display Memory: up to 128MBytes sharing system memory.
* Resolution: up to 1920 x 1440.
* Audio: AC97 2.2 (Codec); VIA Vinyl VT1708.
* Audio Interface: Line out, Mic in.
* Ethernet: Chipset Realtek 8100B 10/100 Base-T
* Remote Boot ROM built-in boot ROM function, supports PXE boot and Wake-up on LAN.
* Mechanical & Environment:
* Power Requirement: +5V @ 3.0A.
* Operating Temperature: 0 ~ 60°C.
* Operating Humidity: 0% - 90% relative humidity, non-condensing.
* Size (W x H x D): 115x 115 x 35mm.
* Weight: 505g

Also the motherboards are available on their own with much more power processors (up to 1.5GHz passively cooled and 2.0GHz with a fan using VIA Eden ULV processors). The spec sheet is available.

I was looking quite deeply into this platform to test its potential. I wanted to run Linux on this and it had an in-built video decoding co-processor as well as 3D support through the CX700M chipset. Anyway I eventually managed to get Xubuntu running with Compiz effects.

The problem I found with the system is that the drivers are thoroughly inadequate and that the open-source support is nowhere to be seen without VIA helping by supplying the documentation for the video decoding acceleration. The GPU is a CX700M and the binary drivers are available and the official drivers are available from VIA (Ubuntu 8.10 currently). With these the 3D support is okay apart from some font rendering issues when using Compiz.

Some of the older drivers supply the support for the video decoding co-processor. Unfortunately I could not get a version working with a current version of Ubuntu, which in turn even if it did work would not have supported the 3D graphics properly. Also in order to make use of it you have to jump through a number of extra hoops and also operate as root which is a good security risk(!)

There are two specialised version of the media players that VIA has customised to make use of the drivers that supply the MPEG-2/4/h.264 and WMV9 acceleration. These are VeXP (Via Xine Player) and VeMP (the VIA enhanced mPlayer). I did put them into Git repositories starting from the base they branched from so I could work out what the patches did. They rely on closed-source library called libddmpeg.so that is part of some of the older drivers which provides the interface to the video acceleration hardware. This in turn relies n linuxgate.so.1 which provides a direct interface into the kernel for interrupts and the suchlike. This probably explains why all these things if you can get them to work require root access. I did try grabbing the library from an older driver and using it on a newer driver, which would have been too good to be true if it worked (it didn't but at least I didn't kill the system).

The place to go for drivers and utilities is VIA Arena where they maintain all the older legacy downloads as only the bleeding edge are available on the official VIA website.

There is a special version of Puppy Linux that is optimised for the platform. The development website is here. Unfortunately the media player supplied is not the one that makes use of the co-processor functionality, well it didn't for me anyway. Maybe this s worth revisiting again at some point.

There is a blog covering the Microclient Sr here and a Google Group discussin it here. There is also a good comprehensive website (in French). Finally, a couple of reviews are here and here.

This is a really cool bit of it with nothing else in its price range/features. Unfortunately the Linux support is such a headache, if it worked I would be extremely happy and it would be very interesting to see how it functions with video and 3D. The tiny little box can even do insanely high resolutions of 1920x1440 which would be very useful.

Tagged as: , 2 Comments
4Jan/0912

Ubuntu 8.10 – It’s Great But With A Couple Of Problems

I am in the process of making my desktop computer into a work computer by removing Windows XP and going down the Ubuntu (8.10 Intrepid Ibex) route.

I thought I'd share some of the problems I had just in case some other people find my solutions useful since from my Googling I notice quite a few people have some issues. I think also I made the problem a bit worse because I am using 64-bit on my Core2Duo.

Problem #1 : Can't get my nVidia GeForce 6600GT to work with the nVidia binary blobs. I was using the latest out of the repositories and then tried the latest from nVidia and all I got was a blank screen and some not very helpful logs. I was getting seriously annoyed after hours of hacking at X configuration files and different nVidia drivers, almost to the point I was going to go out and buy an ATi in the hope open source or at least better drivers would be forthcoming.
Solution #1 : The way I ended up having to solve it was using the Beta 1.80 drivers from nVidia. Definitely not an ideal solution because I have now discovered problem #2.

Problem #2 : Songbird 1.0.0 won't work. There are two places to get 64-bit debs for Songbird which are both listed here. It won't start though - bah! On closer investigation glibc is complaining about and invalid free() call. In the callstack you can see the culprit is the nVidia driver. So now I have to ask myself do I want Songbird or a proper nVidia driver, but Firefox does work with no problems for me. There is also a report of the problem at the Songbird customer service site.

Problem #3 : Sound didn't work for my motherboard. I knew the chip and driver required which was a snd-via82xx (serves me right for using such a cheapskate sound solution). So a quick sudo nano /etc/modules and adding the driver name to the end of the file fixed that problem. It just needed a restart for the kernel to pick up the change.

But, enough about problems, I am very impressed now I have the basic system up and running. The desktop effects are extremely nice and non-intrusive. You need to install the "Advanced Desktop Effects Settings (ccsm)" and "Compiz Fusion Icon" to gain access to the UI for customisation. I did a few minor tweaks mainly to switch off wobbly windows and enable the Expose-a-like "Scale". In general the user interface all looks great. If you don't have the graphics card problems I have there is a good set of instructions here on getting the drivers and running Compiz.

I also installed Flash 10 (for x64) and it worked flawlessly. I even managed to watch the Dr Who announcement on the iPlayer Watch BBC One Now option. Flash does eat CPU but it seems to work fine apart from the fullscreen option on iPlayer. And obviously Firefox is as good as ever. I've installed Screenlets and used the widget layer available in Compiz for the OSX-like Dashboard.

What I did next was to install Virtualbox 2.1 using the repository method (to override the ones available from Ubuntu). Then I proceeded to install Windows XP that was on this machine in the VM. After finding the right disk installation was faster than when it was actually on the hardware as were reboots. I am really impressed with this. It even activated first time!

Now I have a properly working system I can say that the 12 hours I spent (mostly trying to fix the unfixable) doing this was more than worthwhile because it boots fast, lets me work fast, and is completely controllable. The only hope I have is that there are some mature open-source video drivers (with 3D) out there in the future because then I will know which cards to buy for minimal hair loss. Also I swear the Ubuntu installation takes about ten minutes maximum compared to the unwieldy Windows installation.

16Oct/080

Good Looking Ibex

I have been running a VM of Ubuntu Intrepid Ibex for a few days now. I am not overly enamoured by the default theme, mainly the blandness and the window padding which since using my Mac I know is an unnecessary luxury (also to make Vista more manageable make sure you get rid of the crazy 4 pixel window padding).

I decided to use the Dust theme because it is understated, looks clean and by default using no window padding. The main bonus is that there is a Firefox theme as well, and as I spend most of my life with open web browsers it deals with that minor niggle of consistency. The screenshots that you will see by following the above link will show you it is well thought out.

As Lifehacker have posted today there is a new theme called DarkRoom with Ubuntu Intrepid Ibex. It's basically a dark (brown) theme. From the screenshots it looks nice and leathery but nowhere near as nice as the Dust theme. I can't seem to find if it skins Firefox but since it is an official skin I imagine it must.

Tagged as: , No Comments
13Oct/083

VirtualBox Ubuntu Intrepid Ibex On The Mac

I've been playing around Intrepid Ibex on my Macbook Pro. I discovered Parallels frankly is pretty poor in Ubuntu support so I decided to try out VirtualBox.

I downloaded the latest Intrepid Ibex Beta and it installed quickly and cleanly on the virtual machine. Then I installed the the Guest Additions that improve the performance of working in the virtual machine (the equivalent would not play ball with me on Parallels even with Hardy 8.04). There is a bit of manual tweaking to get it all working because the resolution is stuck at 800x600. What you need to do is edit your xorg.conf by typing the following in terminal sudo gedit /etc/X11/xorg.conf

You need to replace the contents of the file with (just choose your resolution by replacing 1024x768):

Section "Device"
   Identifier   "Configured Video Device"
   Driver    "vboxvideo"
EndSection
Section "Monitor"
	Identifier	"Configured Monitor"
EndSection
Section "Screen"
   Identifier    "Default Screen"
   Device    "VirtualBox graphics card"
   Monitor    "Generic Monitor"
   DefaultDepth    24
   SubSection "Display"
     Depth    24
     Modes      "1024x768"
   EndSubSection
EndSection

Restart your system and you are good to go!

Tagged as: 3 Comments
31Aug/080

Free Software – It’s Spreading

There is a good post called The "Appliancising" of Free Software which talks about how free software is helping to make appliances of computing equipment and the diversification of the "standard" software. Perhaps not the best description but the post itself brought up some interesting points.

The way I see it is that the loudest complainers (who probably don't even use free software) complain that there is too much choice in free software. Basically when you create a computer "appliance" you would use some custom software set up especially for that device. It is likely you would start with something like Debian or Gentoo and then customise it for your own needs.

Even writing commercial software the same thing occurs. I have seen the same product rebranded for not only different markets but for different resellers and agents. Then they all want their own customisations to differentiate from what is essentially the same software.

Doing the same type of thing with Windows is just insane. For a start you can't really configure the system without undocumented things and jumping through many hoops, even Media Centers are pretty much equivalent editions possibly with some changed logo graphics with only the hardware providing the differentiating factor.

Also doing the same thing from scratch is brain-damaged. Reinventing the wheel for little or no benefit will just lead to maintenance headaches. As a developer I am fundamentally lazy and will reuse what I can because it is great to stand on the shoulders of giants.

I am looking forward to this future of diversity because one-size-fits-all doesn't work and could supply better to tested and built systems that actually do what they say.