Tablets for Christmas
I remember a Christmas in the late 90s where it seemed like everybody got a mobile phone. This year it’s looking like we’re going to see the tablet equivalent, so I thought I’d do a quick round up of what I’m expecting to see.
The home front
If I include my in-laws then there will be at least three Nexus 7 devices coming for (or before) Christmas. My wife was quite taken by the advertising for the Kindle Fire HD, but when my brother showed her his Nexus 7 she was sold on the Google alternative[1]. I was personally something of a Nexus 7 sceptic when it launched, feeling that the lack of memory and 3G options made it weaker than my existing (original) Galaxy Tab, but both of those issues have now been fixed[2].

For the kids
I got an email from a friend this morning saying he was getting iPad minis for his two daughters (and asking if that made him an Android traitor[3]). This makes sense to me, as iOS still has the lead on games, which is one of the main things that kids use these devices for. I’ve got my own daughter one of the new iPod Touches for exactly the same reason.
![]()
Differentiation and market sizing
The iPad has had a good run as the main attraction in the tablet marketplace, but I see this coming to an end. I expect the iOS ecosystem to continue differentiation in two ways:
- As a premium product, in the same way that Macs were during the PC era. It’s clear that Apple is still going for a marketing based approach to the devices themselves, with a line up that starts with the iPod Touch, and goes up in size via the iPad Mini to the full size iPad. There’s still big margin in each of these. Google and Amazon on the other hand are going with very thin margins on the devices, so any price differentiation in the line up comes pretty much straight from the bill of materials. This will likely be the area where Apple will continue to differentiate in the long term.
- As the preferred gaming platform. Developers in general will go where the numbers are, and whilst iOS has had the lead on sales it’s also been the develop for first platform for games. This is less of an issue for many (older or first time) tablet users who just want to surf the web and read emails and ebooks, but remains a big deal for people that want games, particularly if they’ve already bought a bunch of stuff in the AppStore.
The contrast between the Apple approach and Google/Amazon is on device premium. Apple (at least for now) get to make money on the device and on the rent payer they get in the AppStore, whilst Google and Amazon are clearly willing to give up the device premium to attract rent to their ecosystems. This almost certainly plays out as Android having a major growth spurt into 2013, and it’s then only a matter of time before the balance tilts for gaming etc.
What about Microsoft?
The Surface looks like (yet another) brave try, but the reviews I’m reading suggest that it’s too expensive and the software’s too flaky to justify the price tag. If this really is MS showing their OEMs how it’s supposed to be done then I’m not expecting too much from the rest of the field.
![]()
The wider tablet with keyboard category[4] looks to me like a well intentioned attempt to close the gap between tablets and laptops from a functional perspective, but it’s important to look at how people spend their time. If 90% is consumption of content and 9% is curation of content then that leaves the creation gap at 1%, and 1% does not a healthy market segment make.
Conclusion
This Christmas is going to be the turning point for Android based tablets, and the gaming and enterprise markets will need to react accordingly in the New Year. Apple is going to have a great Christmas too, as they get to double dip by making money on devices as well as content. I fear a bad New Year hangover for MS and anybody getting a product from their stable over the holiday season.
Notes
[1] I had previously suggested that the Nexus 7 might be a better choice than the Kindle Fire HD, but holding one in your hand can make all the difference. In practice the differentiation is less about the devices and more about whether you want a shopping cart from Jeff Bezos or Larry Page parked in front of you.
[2] I use my Galaxy Tab a lot on the train when in the UK, and it’s often my main source of connectivity when I’m in the US (courtesy of the AT&T SIM that came with it) so 3G connectivity is pretty important to me. If I was buying something for myself this Christmas then it would be a 3G version of the Nexus 7. I’m not buying because although the Nexus 7 is all three of better/faster/cheaper the original Galaxy Tab is still perfectly adequate for my needs. There might be some important inferences here for tablet upgrade cycles.
[3] He has been an Android smartphone user since the early days, and more recently got himself an ePad Transformer tablet.
[4] Intel seem to have labelled this ‘Ultrabook Convertible’, though it’s not clear to me that there’s a rigorous base specification for this like there is with the Ultrabook branding. I’ve seen at least 6 different physical approaches illustrated, which suggests to me that nobody has yet figured out what customers actually want.
Filed under: technology | 3 Comments
Tags: amazon, android, Christmas, convertible, Fire, google, HD, iPad, kindle, Microsoft, Nexus 7, Surface, tablet, ultrabook
When I first created an automated build system for OpenELEC I had two reasons:
- Official releases from the OpenELEC team were infrequent
- There were no official SD card images (just .bz2 release bundles)
Looking now at sources.openelec.tv I don’t think point 1 is true any more. I’m going to keep my own system going for the time being, but in parallel I’ll try to provide images based on the official builds. I will also continue to provide release bundles with media_build for those using DVB receivers that aren’t properly supported with existing drivers.
Filed under: Raspberry Pi | 14 Comments
Tags: build, card, image, media_build, official, openelec, Raspberry Pi, Raspi, release, RPi, SD
Broken netbook media player
The screen on my wife’s Lenovo s10e gave up the ghost last week. I thought it might be just a loose connector and that I could fix it, and an initial attempt at strip down and rebuild seemed to work. Sadly my fix didn’t hold.
I’ve been using my own s10e mostly to play videos on a bedroom TV[1], so I switched over the hard drives. This got my wife working again, and also gave me the opportunity for a project that I’ve had in mind for some time (in anticipation of this eventuality).
With the broken screen removed from the netbook I mounted it, its power supply and the TV power supply onto the back of the TV with velco pads:
This got the netbook and tangle of wires out of the way, but left the challenge of how to control it. I dealt with that by getting a Kogan Wireless Keyboard and Trackpad. It’s about the size of a regular TV remote, but is surprisingly easy to use.
So now I have a very tidy setup that I can control from bed.
Notes:
[1] Sadly the bedroom TV I bought a little while ago didn’t come with HDMI, so I can’t just use a Raspberry Pi with OpenELEC.
Filed under: making | 2 Comments
Tags: keyboard, Kogan, netbook, remote, trackpad, tv, wireless
OpenELEC with media_build
Update (13 Nov 2012): Since OpenELEC is now on a recent kernel there’s no point to media_build any more, and I won’t be doing any further builds. Some DVB drivers aren’t enabled, but this is easy to rectify (it didn’t take very long to get CE6230 support mentioned below sorted out).
Update (10 Nov 2012): Since newer kernels were included in OpenELEC at the end of October I’ve not been able to create new releases with media_build. The good news is that it913x DVB adaptors (like mine) now work just fine with regular OpenELEC. The bad news is that various other DVB adaptors (e.g. CE6230) are missing from regular OpenELEC. If I figure out some other way of including missing drivers I’ll create some new builds – but don’t hold your breath.
A lot of people have been having issues with driver support for digital TV devices that can be fixed with the media_build drivers. I’m pleased to announce that I’m now publishing release bundles that include media_build using the same automated mechanism that I put together for regular release bundles and SD card images (NB I have no plans to do SD card images for media_build as it’s relatively trivial to copy a release bundle onto an SD card).
Filed under: Raspberry Pi | 10 Comments
Tags: build, ce6230, driver, dvb, image, it913x, media, media_build, openelec, PiChimney, PVR, Raspberry Pi, Raspi, RPi, SD
Moving house
For a few months now I’ve been offering OpenELEC release bundles and SD card images at openelec.thestateofme.com, and more recently I set up resources.pichimney.com to host a broader range of Raspberry Pi related downloads. The servers that I’ve been using were part of the BigV.io beta, so I’ve not been picking up the tab for VMs and bandwidth.
BigV has been great. Fast servers, expandable disks and plenty of bandwidth. Unfortunately it would cost me too much to stay there now that they’re starting billing (bandwidth alone would be around £40/month), so I’ll shortly be moving the URLs over to a new virtual private server in the US that I found via LowEndBox offering 3TB/month inclusive bandwidth.
The new server comes with 60GB of disk space, so I’m not going to fill things up by moving over the entire back catalogue of builds and images. I’m also going to have to prune things as the storage fills up.
No loop devices on OpenVZ
The one gotcha that’s already caught me out is that loop devices don’t work (due to security issues) on the OpenVZ platform that my VPS is hosted on (I knew there would be something to justify the premium for KVM or Xen). This means that I can’t make release images on the server itself. For that reason I’m going to keep a VM on BigV for the time being and make the images there (shipping them over to the main web server with rsync).
Filed under: Raspberry Pi, technology | Leave a Comment
Tags: bandwidth, BigV, build, device, hosting, image, loop, openelec, OpenVZ, Raspberry Pi, Raspi, release, RPi, rsync, SD, VM, VPS
Wales ape and monkey sanctuary
Our family holiday this summer was in Wales, and one of the great attractions that we visited whilst we were there was the Wales ape and monkey sanctuary. I had a bit of trouble finding it online, so I thought I’d give it a bit of link/tag love here. I also had a struggle finding it on my satnav, so the coordinates are:
Latitude: N 51° 47′ 47.4317″
Longitude: W 3° 41′ 25.4675″
OS Grid Ref: SN834122
We called in at the sanctuary after a visit to the nearby show caves, which made for an excellent all round day out.
Filed under: travel | 1 Comment
Tags: ape, centre, monkey, primate, rescue, sanctuary, Wales, Welsh
One of the great disappointments for me in last week’s launch of the iPhone 5 is that it doesn’t come with near field communications (NFC) capabilities. This was explained in an interview with Senior VP Phil Schiller:
It’s not clear that NFC is the solution to any current problem, Schiller said. “Passbook does the kinds of things customers need today.”
Phone as token
This comment seems to concentrate on using a phone as an NFC token, which is typically used for low value applications like buying a lunch or taking a short train ride. In this case the phone is used as the key to somebody else’s lock. Where NFC like payments systems are already popular (e.g. Octopus in Hong Kong) then many people achieve this already by putting a card (or the electronics from it) inside a phone case/cover.
Phone as terminal
It’s quite right that using a phone as an NFC token adds little value (maybe you get to have a transaction record on the device). The real missed opportunity is using the phone as a terminal – the lock for somebody else’s key. This opens up a number of additional possibilities:
- The phone can be touched against an NFC card to authenticate an individual or a transaction they’re carrying out (rather than clumsy hardware based two factor authentication systems that might be fine with desktop PCs but don’t work well in a mobile environment). This allows very high value transactions to be addressed.
- The phone can be used as a point of sale terminal – think something like Square, but without the need for a magnetic stripe reader. This would of course be the route to solving the problem of NFC point of sale equipment being expensive to roll out.
Conclusion
Apple seems fixated on phone as token use cases and how these can be tackled with software only based approaches like its Passbook. This means that it’s missing the opportunity to grow the ecosystem for phone as terminal applications (and that ecosystem is far more fragile with Apple keeping outside).
Filed under: could_do_better, technology | 1 Comment
Tags: apple, authentication, NFC, payments, terminal, token
OpenELEC keeps getting better
I’m on the road right now (heading out to San Francisco for an Open Data Center Alliance event before IDF), which means that I can’t play with all the great new stuff happening with OpenELEC on the Raspberry Pi. The team have a blog post covering the changes, which include PVR support and the Raspberry Pi build moving into the main stream.
The OpenELEC team have also accepted some changes I made to the create_sdcard script to use loop devices to make image files.
As ever, head on over to resources.pichimney.com for the latest release bundles and images. My build bot will keep churning out the new stuff even if I’m too busy to try out new features for myself.
NB if you’re updating to r11904 or later then make sure to change the 3rd party boot loader stuff as well as kernel.img and SYSTEM.
Filed under: Raspberry Pi | 19 Comments
Tags: build, image, Media Player, openelec, PVR, Raspberry Pi, Raspi, release, RPi, XBMC
Tablets go multi user (at last)
Almost a year and a half ago I wrote that tablets should support multiple user profiles:
Multitasking —> multiuser?
As more tablets and similar devices start to appear in the household I’m increasingly convinced that they should have multi user capabilities. A smartphone may be a personal device, but a tablet is a more social, shareable sort of thing. I want to be able to give these things to my wife and kids, but I don’t necessarily want them using my accounts for stuff (and they will of course want to sign into their own accounts). Of course the manufacturers want to sell more devices (one per person) but is this realistic? My bet is that Google will get this right ahead of Apple, and that it just might be the move that makes them win.
Clearly Google haven’t been listening (and as expected neither have Apple)[1], but Amazon are doing this with the Kindle Fire HD, which I think is great. Details are still a little sketchy, but there’s clearly some stuff aimed at kids under the banner of ‘FreeTime’, and I hope there’s some more generic support for multiple users on the same device (though I’m left wondering how this will relate to licensed content like books, music and videos).
I must also say that the Kindle Fire HD looks great from a spec perspective. I’ve been a bit down on the Nexus 7 due to its lack of 3G (which I love on my Galaxy Tab) and limited storage, and the LTE version clearly solves those problems (albeit at a hefty price premium). What it would be great to see is a 7″ tablet with decent storage and cellular wireless – that field is still open.
Updates
7 Sep 2012 – Looks like the new 7″ Kindle Fire and Kindle Fire HD are coming to the UK too, but no sign of 8.9″ models (or anything with cellular Internet).
Notes
[1] I know that Motorola have had a stab at this with the Xoom Family Edition, but the implementation seemed flawed.
Filed under: technology | 2 Comments
Tags: 7", 8.9", amazon, family, Fire, HD, kindle, LTE, multi, multi-user, user
I’ve written before about my OpenELEC build bot, and even detailed how to run one for yourself in the cloud.
After the VPS I’d been using died the other day I had to rebuild my environment, and thought I’d take the opportunity to try some things out.
The key change is using a loop device for creating the SD card images. This is perhaps what I should have done from the start, but the easy availability of extra hard disks on the VMs I was using made me take the easy road. Thanks to root9.net for helping me along the way here. Using the create_sdcard script from OpenELEC I’ve made a few tweaks:
create_loop_sd#!/bin/sh ################################################################################ # This file is part of OpenELEC - http://www.openelec.tv # Copyright (C) 2009-2012 Stephan Raue ([email protected]) # # This Program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This Program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with OpenELEC.tv; see the file COPYING. If not, write to # the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA. # http://www.gnu.org/copyleft/gpl.html ################################################################################ # usage: sudo ./create_sdcard <drive> # example: sudo ./create_sdcard /dev/sdb if [ "$(id -u)" != "0" ]; then clear echo "#########################################################" echo "# please execute with 'sudo' or -DANGEROUS!!!- as root #" echo "# example: sudo ./create_sdcard <drive> #" echo "#########################################################" exit 1 fi if [ -z "$1" ]; then clear echo "#########################################################" echo "# please execute with your drive as option #" echo "# example: sudo ./create_sdcard /dev/sdb #" echo "# or: sudo ./create_sdcard /dev/mmcblk0 #" echo "#########################################################" exit 1 fi DISK="$1" if [ "$DISK" = "/dev/loop0" ]; then PART1="${DISK}p1" PART2="${DISK}p2" IMGFILE="$2" losetup $DISK $IMGFILE else PART1="${DISK}1" PART2="${DISK}2" fi clear echo "#########################################################" echo "# #" echo "# OpenELEC.tv USB Installer #" echo "# #" echo "#########################################################" echo "# #" echo "# This will wipe any data off your chosen drive #" echo "# Please read the instructions and use very carefully.. #" echo "# #" echo "#########################################################" # check for some required tools # this is needed to partion the drive which parted > /dev/null if [ "$?" = "1" ]; then clear echo "#########################################################" echo "# #" echo "# OpenELEC.tv missing tool - Installation will quit #" echo "# #" echo "# We can't find the required tool \"parted\" #" echo "# on your system. #" echo "# Please install it via your package manager. #" echo "# #" echo "#########################################################" exit 1 fi # this is needed to format the drive which mkfs.vfat > /dev/null if [ "$?" = "1" ]; then clear echo "#########################################################" echo "# #" echo "# OpenELEC.tv missing tool - Installation will quit #" echo "# #" echo "# We can't find the required tool \"mkfs.vfat\" #" echo "# on your system. #" echo "# Please install it via your package manager. #" echo "# #" echo "#########################################################" exit 1 fi # this is needed to format the drive which mkfs.ext4 > /dev/null if [ "$?" = "1" ]; then clear echo "#########################################################" echo "# #" echo "# OpenELEC.tv missing tool - Installation will quit #" echo "# #" echo "# We can't find the required tool \"mkfs.ext4\" #" echo "# on your system. #" echo "# Please install it via your package manager. #" echo "# #" echo "#########################################################" exit 1 fi # this is needed to tell the kernel for partition changes which partprobe > /dev/null if [ "$?" = "1" ]; then clear echo "#########################################################" echo "# #" echo "# OpenELEC.tv missing tool - Installation will quit #" echo "# #" echo "# We can't find the required tool \"partprobe\" #" echo "# on your system. #" echo "# Please install it via your package manager. #" echo "# #" echo "#########################################################" exit 1 fi # this is needed to tell the kernel for partition changes which md5sum > /dev/null if [ "$?" = "1" ]; then clear echo "#########################################################" echo "# #" echo "# OpenELEC.tv missing tool - Installation will quit #" echo "# #" echo "# We can't find the required tool \"md5sum\" #" echo "# on your system. #" echo "# Please install it via your package manager. #" echo "# #" echo "#########################################################" exit 1 fi # check MD5 sums echo "checking MD5 sum..." md5sumFailed() { clear echo "#########################################################" echo "# #" echo "# OpenELEC.tv failed md5 check - Installation will quit #" echo "# #" echo "# Your original download was probably corrupt. #" echo "# Please visit www.openelec.tv and get another copy #" echo "# #" echo "#########################################################" exit 1 } md5sum -c target/KERNEL.md5 if [ "$?" = "1" ]; then md5sumFailed fi md5sum -c target/SYSTEM.md5 if [ "$?" = "1" ]; then md5sumFailed fi # (TODO) umount everything (if more than one partition) umount ${DISK}* # remove all partitions from the drive echo "writing new disklabel on $DISK (removing all partitions)..." parted -s "$DISK" mklabel msdos # create a single partition echo "creating partitions on $DISK..." parted -s "$DISK" unit cyl mkpart primary fat32 -- 0 16 parted -s "$DISK" unit cyl mkpart primary ext2 -- 16 -2 # make partition active (bootable) echo "marking partition active..." parted -s "$DISK" set 1 boot on # tell kernel we have a new partition table echo "telling kernel we have a new partition table..." partprobe "$DISK" # create filesystem echo "creating filesystem on $PART1..." mkfs.vfat "$PART1" -I -n System echo "creating filesystem on $PART2..." mkfs.ext4 "$PART2" -L Storage # remount loopback device if [ "$DISK" = "/dev/loop0" ]; then losetup -d $DISK losetup $DISK $IMGFILE -o 1048576 --sizelimit 131071488 PART1=$DISK fi # mount partition echo "mounting partition $PART1 ..." if [ -d /dev/shm ]; then rm -rf /dev/shm/openelec_install mkdir -p /dev/shm/openelec_install mount -t vfat "$PART1" /dev/shm/openelec_install MOUNTPOINT=/dev/shm/openelec_install else rm -rf /tmp/openelec_install mkdir -p /tmp/openelec_install mount "$PART1" /tmp/openelec_install MOUNTPOINT=/tmp/openelec_install fi # create bootloader configuration echo "creating bootloader configuration..." echo "boot=/dev/mmcblk0p1 disk=/dev/mmcblk0p2 ssh quiet" > $MOUNTPOINT/cmdline.txt # copy files echo "copying files to $MOUNTPOINT..." cp target/KERNEL $MOUNTPOINT/kernel.img cp target/SYSTEM $MOUNTPOINT cp 3rdparty/bootloader/* $MOUNTPOINT cp openelec.ico $MOUNTPOINT cp README.md $MOUNTPOINT # sync disk echo "syncing disk..." sync # unmount partition echo "unmounting partition $MOUNTPOINT ..." umount $MOUNTPOINT # cleaning echo "cleaning tempdir..." rmdir $MOUNTPOINT # unmount loopback device if [ "$DISK" = "/dev/loop0" ]; then losetup -d $DISK fi echo "...installation finished"The other big difference is I've split up the script into the looping part that checks for changes on git and makes builds, and the post build part that creates image files:
loopit.shwhile : do # Inner loop for git pull while : do GIT=$(git pull) echo $GIT if [ "$GIT" = 'Already up-to-date.' ] then echo 'Waiting half an hour for another pull at Git' sleep 1800 else echo 'Kicking off the build and post build processes' break fi done # Delete old build rm -rf build.OpenELEC-RPi.arm-devel # Make release PROJECT=RPi ARCH=arm make release # Run packaging script ./lendit.sh # Loop back to start of script doneThis lets me run the image script standalone if I need to do that:
lendit.sh# Set env vars for release package name TARBALL=$(ls -t ~/OpenELEC.tv/target | head -1) BUILD=$(echo $TARBALL | sed 's/.tar.bz2//') RELEASE=$(echo $BUILD | sed 's/.*-r/r/') IMGFILE=~/OpenELEC.tv/releases/$RELEASE.img # Copy release build to web server sudo cp ~/OpenELEC.tv/target/$TARBALL /var/www cp ~/OpenELEC.tv/target/$TARBALL /mnt/box/OpenELEC # Unpack release cd ~/OpenELEC.tv/releases tar -xvf ~/OpenELEC.tv/target/$TARBALL # Wipe virtual SD sudo dd if=/dev/zero of=$IMGFILE bs=1M count=910 # Move into release working directory cd ~/OpenELEC.tv/releases/$BUILD #Run script to create SD card sudo ../create_loop_sd /dev/loop0 $IMGFILE #Get into right directory cd .. # Compress release file zip ./$RELEASE.img.zip ./$RELEASE.img # Remove image file sudo rm ./$RELEASE.img # Copy zipped image to web server sudo cp ./$RELEASE.img.zip /var/www cp ./$RELEASE.img.zip /mnt/box/OpenELEC # Go back to OpenELEC directory cd ~/OpenELEC.tv # Send an email python gmail.py "OpenELEC Build Complete - $RELEASE" $BUILD
Filed under: howto, Raspberry Pi | 3 Comments
Tags: bash, openelec, script
