2011-02-27

Emergence of the Tablets

So recently i read an article about the iPad and how it still has no rival, even when faced with the Moto Xoom. The gist of the article was that the iPad is unrivaled and no matter how many Android iPad clones arrive, the iPad will still be the number 1 tablet on the market. The article claims that Apples R&D is years ahead of the competition and anyone playing catchup will never be as good.
This reminds me of several hundred articles from 2008, 2009 and even early 2010. About how the iPhone was dominant in the market and no one could ever compete. Clones would never be as good, and even Android was only playing catchup and hence will never be better. Lets review some mobile phone numbers from Gartner:
Q1 2010, Android at 9.6% and iOS at 15.4%
Q1 2011, Android at 22.7% and iOS at 15.7%
What that tells me is either that Android is superior ( in terms of value ) or iOS is better and that's irrelevant to mass market consumers.
Now let's assess the first possibility. I prefer the control, choice and freedom on my Android phone. For example, the menu button is something i really miss when using an iOS device. Furthermore i like having options, such as widgets and keyboards. I strongly disagreed when those articles said Android was being developed in the shadow of iOS. Back in those days, iOS didn't have multitasking or even the option to change your wallpaper ( something even my Nokia 6280 had! ). Android introduced those features from day one. Widgets came shortly after, and development has gone so quickly on Android, that feature for feature they surpassed iOS at least a year ago. Which is my general experience with healthy open source projects. Rumours are now floating around that Apple will introduce NFC into their next phone. This leads me to ask, who's actually playing catchup. However, i will admit that almost every single feature that iOS and Android share, is more polished on iOS. This may be considered a sign of quality, and some people firmly believe the quirks and roughness of Android drop its value as a market competitor.
The second possibility is something i find more likely. Most end users - sadly - don't care about freedom and choice. They do generally care about availability, reputation and cost. This is where Android clearly dominates. In the US, iPhone was, until recently, available only on AT&T. This must have hurt sales. Here in the Netherlands, T-Mobile held a similar monopoly. Last year their data network collapsed ( and i still stuggle to use at and am waiting eagerly on the arrival of my Nexus S on Vodafone ). These sorts of availability issues allowed competitors to get a foothold when it mattered. The reputation of Android started off pretty low. I was discouraged from buying my G1 when it first came out. The store clerk said bad things about the OS, that it wasn't ready. I bought it anyway, and despite working daily with iPhones, i still didn't regret my purchase. Slowly it grew to be the only other serious smart phone competitor. A year after my G1 purchase, my wife went to get a new phone, and pretty much all that was recommended in the price range were Android phones. Which is the final point. The iPhone is still too expensive. Android phones are everywhere. Even on prepaid packages. Everyone can have them. This is where the open OS shines. There's no limit to what kind of device you can buy with Android on it.
So back to the tablets. What does the above rant have to do with the iPad? Well, i feel we're in the same situation now with tablets that we were with smartphones when the G1 launched. The Xoom strikes me as the first viable tablet from the rest. Yes, it might not be better, but it's a matter of time before there are 20 Honeycomb tablets floating around with prices ranging from $250 to $1200. So unless Apple adjust their strategy, i think the likelihood is that the same thing happens as with the iPhone/Android fight.
Apple, firstly, need to catch up. The iPad's low resolution and lack of camera's currently aren't on par with most upcoming Android tablets. The iPad 2 may correct this. Apple's iPad pricing has been aggressive, but companies like Archos are known to produce considerably cheaper competitors. If they jump onto 3.0, the first $300 Honeycomb tablet won't be far behind. Once main stream retail picks up the plethora of tablets, it'll be easy to grab a cheap device that fills most of a particular user's needs. If Apple instead go against their normal grain, and release a mid range tablet device with lower specs and wider market reach, they might have more chance competing, otherwise i believe that they will be fighting to hold a lead in 2 years time.

2011-01-01

Lucid Nexus One Development

Android development is fun. It's a lot nicer than iPhone development, and although it's not as smooth as Windows Phone 7 development, you're not tied into OS or IDE. So i've recently installed Ubuntu 10.04 ( LTS ) on my netbook, mostly for performance reasons, and need to continue work on my clock widget - which hit 400,000 downloads sometime yesterday :)
There are pros and cons of Android dev'ing on Ubuntu, but the biggest one is that by default, the debug bridge ( adb ) doesn't have permissions to access the device, namely my Nexus One. Reading many online posts the suggestion is to run the adb as root, or just restart the service with sudo. Unfortunately that sucks, why?
  • You have to keep redoing it every time you start up your dev environment
  • Running a potentially insecure service as root!!!
  • If you do restart it while eclipse is running, you get some extra output in the console window
To be honest, for me the first and third are my biggest issues, i hate admin and i don't like unnecessary output in my windows, especially not in distracting red - yes i'm a psychotically pedantic developer.
So here's the proper solution:
As recommended by Google the best thing is to add a udev rules file. So,
  1. Unplug your device!
  2. Create a file as root: /etc/udev/rules.d/51-android.rules
  3. Paste this line into the file: SUBSYSTEM=="usb", SYSFS{idVendor}=="XXXX", MODE="0666"
  4. Lookup the vendor id in this table ( from the android dev site linked above ) and replace XXXX with your devices vendor id:
    ManufacturerUSB Vendor ID
    Acer0502
    Dell413c
    Foxconn0489
    Garmin-Asus091E
    HTC0bb4
    Huawei12d1
    Kyocera0482
    LG1004
    Motorola22b8
    Nvidia0955
    Pantech10A9
    Samsung04e8
    Sharp04dd
    Sony Ericsson0fce
    ZTE19D2
    If you're using a Nexus One, like myself, the vendor id is NOT in that table! At least for some reason, my vendor id registers as: 18d1
  5. Save and close the file. Plug in your dev device, and start up eclipse/adb.
That's it really!
PS: To find out the Vendor id of your random android device, run lsusb with and without the device plugged in. Do a game of spot the difference, and the first 4 digit hexadecimal number ( XXXX from the number XXXX:YYYY ) is your vendor id.

2010-12-05

Trying to go back

Linux, it's a double edged sword. It's awesome, there's no doubt about that. But it hates every one of it's users. The constant fighting to get it to do what you want as a desktop OS. As a server it's great, but the desktop still has a long way to go.
Over the last few month's i've not used my desktop much. My desktop dual boots Windows and Ubuntu 10.04. When i eventually got to upgrading to 10.10, the graphics setup just failed and died. Someone with less Linux knowledge probably would have reinstalled, since even the repair stuff didn't work. I basically had to get into a console, uninstall my ATI drivers, delete my entire Xorg config, and reset everything up.
So in place of my desktop, i got a netbook ( semi-netbook really, dual core atom processor with NVidia 9400M processor, runs Supreme Commander 2 pretty ok ). It came with Windows 7 Home edition. Windows 7 is ok, i can live with it. It's a lot better than XP and they even implemented a Mac style dock better than Apple. I've wanted to install Linux on there since day one but everytime i try out a live usb, i get some stupid trivial issue.
First with Ubuntu 10.04, my sound didn't immediately work. Something silly was wrong and it was a setting i had to tweak, but i'm not going to return to the hell i've had on my desktop with sound issues - i eventually just bought a new sound card to fix an OS issue.
10.10 came out, so i thought, awesome! Let me try the netbook edition. Crashed on first boot, because it needed 3D acceleration to be active for Unity. I had a lot of trouble attempting to activate the NVidia driver from a live usb, so i gave up and thought, let me preview the default gnome desktop. My sound was working, but it still had the same annoying problems that 10.04 has on my PC. The message popups in the top right go invisible when you mouse over them, but are still there. I want to be able to click on them, but no, that's not an option. The OS social integration is awesome, but 60% of the time doesn't login when i boot up and has other strange issues. So i gave up for a while.
I used to love KDE. I still do, great technology! So last night i thought i'd check out the latest Kubuntu. And it's truly awesome, beautiful and functional. Still has the Ubuntu issue of not just being able to activate the NVidia driver on live booting, but i expected that. Now imagine a person new to Linux. Boot up the live stick, open the browser. It says, 'Hey, we can install some kewl stuff to improve your browser experience, like flash and a bunch of plugins'. Click ok. It responds with, 'Blah blah flashplugin-installer blah blah blah'. Click ok and it closes. That's just terrible. Clean boot of the recommended 32-bit version, and it can't even install Flash?
Now having had this problem with Ubuntu 10.04, i know that for some reason the flash installer keeps breaking with the package manager, and there's supposed to be some easy way of fixing it. So opening up KPackageKit as my package manager, i search for flash. No where to be found. Wait a go communicating with your users Kubuntu. That's where i gave up. I used to have the patience for it, and go to the adobe site or scour forums for answers, but i'm long past that.
If a live usb disk can't convince me that the distribution is easy enough to not get my hands dirty - like i have for the past 10 years - then i'm just not ready to install it. If Android is the only Linux i end up using in the next few months, it's because all the desktop variants can't get basic things right.

2010-01-24

Intruder alert

Well, i've been away for a while, work has been keeping me busy. I have also been developing a Clock widget for android, and you can download it via this QR Code:

Otherwise, i have done some testing of Motion Detection software for Linux, and here is a brief overview of what i have discovered.

There appear to be 2 developed solutions, ZoneMinder and Motion

ZoneMinder:

This seems to be the more well known and more established of the 2. It appears to have lots of binaries available, but sadly mostly for debian based platforms. If you need to compile it from source, it becomes a complete nightmare of weird dependencies, many of which i didn't know existed. It took several hours to get configure to run, and in the end, i could compile it, but it crashed on launch. Not very impressed. I also noticed that it was heavily perl based, and while i have no problem with that, it did make things more complicated than they could have been. That said, the screenshots show some fantastic features, and i'm sure that if you can get it up and running, it's a great - although possibly overcomplicated - piece of software.

Motion:

This also had a few odd dependencies, but took no more than an hour from download to simple motion snapshots working. After working out how to set up the config file, i also got the built in webserver running. From here, i need to set up a remote viewing and config site and an email notification service, which shouldn't be too hard. Overall, this software is considerably easier to setup than ZoneMinder however not as feature packed. This does, however, do everything i need it to do, and has some nice extra features which i thought i might have to build myself. It may be simpler than ZoneMinder, but it is definitely extensible. It also includes setup for proper LAN security cameras and the built in webserver has some nice features. There are also some smart features such as automatically drawing a white box around the area of motion in the image.

Conclusion:

If you just want to set up a simple motion detection camera for home, i recommend Motion, as the setup was simpler, and it does the basics really well. If you need a bigger solution, and potentially have a PC to spare just for this purpose, then ZoneMinder is probably what you want. In the end, i'm just really glad to see some motion detection solutions for Linux.

2009-09-30

Comux 011001

2009-08-20

When the Contribution Model Fails

I'm a big advocate of Open Source software. I feel that there really is no reason to close software source for the most part, and in general, closed libraries are very frustrating for me as a developer. However Open Source has it's flaws. The contribution model may be one of it's greatest strengths, but is also a big weakness.

What leads me to this "revelation" is an issue which i've been considering getting involved in and fixing. It's a Gimp enhancement request, which is probably the thing that annoys me most about Gimp at this moment. The "bug" is the lack of grouped layers in Gimp. Obviously, not having groups for layers can make a large document really convoluted, but more than that, i often find myself wanting to make modifications to multiple layers at once, such as opacity or translations. So what's the problem? Surely if they know about it and it's in their list, i should either do it myself or just be patient?

It's a 7 year old feature request.

I do understand that "implementing this feature is not trivial", but 7 years is not even close to acceptable. I realise they are suggesting it might make it to version 2.10, possibly in 2011 or 2012? Before the end of the world i'd hope. But seriously, in the commercial world, people lose their jobs for taking over a month to implement features like this. This is not easy to do, but in that time the KDE guys have written Krita from scratch, which may end up soon overtaking Gimp in features, and already has grouped layers. To me it almost seems like no one wants to take on the task.

What happened to open source being the cradle of innovation, instead of lagging behind commercial competitors? In Gimp, you have the Open Source stereotype. It's not as good as commercial counterparts, and lags several years behind in features. Some Open Source projects really seem to suffer from this. I'd suggest that X.org is another that just can't keep up with feature requests. Is it because of a poor codebase that people struggle to build on? Is it because of lack of interest in the project from outside devs? I'm not sure, but it really does bring down the quality of some big Open Source projects. 

On the other hand you have the entire KDE team as an example of real innovation. The KDE desktop is years ahead of any competitor, the codebase is beautifully clean, and they are churning out major features in just a few weeks. My example of Krita is a very pertinent one. It may turn out to be a big threat to Gimp in the long run, especially because it is now cross platform. The pace of development is clearly much faster, and it seems that it already has some of the modern features Gimp lacks.

In the end this does highlight some of the problems with the contribution model of Open Source software. Some projects fall behind, potentially become aged, while others forge ahead. How do you prevent a split like this? Should similar projects collaborate? Does that then remove an element of choice? The way i see it is that if it is needed enough, someone will do it. Maybe thats why Krita is moving so quickly, compensating for Gimp's inadequacies? It's probably also why Google are going to replace X.org in Chrome OS. After all sometimes its good to do some spring cleaning.

2009-08-01

Opera does something right, again!

In KDE, i disabled the window border, and in Opera moved the tabs to the right... this is a browser experience i can certainly get used to!