Tethered to o2

I’m on a train tomorrow, and thought it was a good opportunity to use my phone as a wifi hotspot.

This works flawlessly with the Samsung Wave 3 (though the GUI to turn it on is a bit suboptimal). It turns out it’s not so simple with the iPhone – because the network operators appear to have “upgraded” the experience for iPhone users.

On an iPhone you turn on Personal Hotspot by going to Settings, then General, then Network. You get a straightforward-looking button “Set Up Personal Hotspot”, like so:

Set Up Personal Hotspot

Unfortunately, when I click on it, I get a prompt to visit my network operator’s website, at http://www.o2.co.uk/iphonehelp/modem:

Visit o2 Website

Fortunately there’s a button “Go to Website”. Unfortunately, when you click on it, this is what you get:

o2 personal hotspot website

That small text says “File not found“.

I opened the website in my desktop browser, and it redirects to http://service.o2.co.uk/IQ/SRVS/CGI-BIN/WEBCGI.EXE?New,Kb=Companion,question=ref(User):str(Mobile),T=guruCase,VARSET_COBJID=11820,Problem=Obj(11820) (that’s a nice URL). The page is basically a collection of FAQs, but rather surprisingly the first FAQ is not “How do I set up tethering?”:

The o2 modem website in a desktop browser

While I was on that page, I got prompted to use o2′s online support chat, which seemed like a shortcut to solve the problem. I was connected to Guru Hayley, and encouraged to ask her anything. Turns out anything does not mean “how do I set up tethering?”:

o2 online support chat

“Our system isn’t working” is the new “my dog ate my homework”.

Ok, so reading through the FAQs a bit more it looks like I need an “Internet Tethering bolt-on”. According to the “My tariff & Bolt Ons” page on o2′s website, I already have “iPhone Web Bolt On (Unlimited data access in the UK on your iPhone)” and “Unlimited Wifi for iPhone SIMO (Unlimited Wi-Fi access on your iPhone at over 7,500 Wi-Fi hotspots from The Cloud or BT Openzone in the UK)“. Leaving aside whether it should be “Wifi” or “Wi-Fi” (doesn’t matter but at least be consistent), neither of these sound like “iPhone Internet Tethering”, so let’s have a look at the other bolt ons I can add to my account:

o2 Bolt Ons

None of those sound like “iPhone Internet Tethering” either.

So if I want internet tethering on my iPhone it looks like I need to email o2 and wait 24 hours, or call them up at 5p a minute (probably to be told to call back when their system is working).

Or I could just stick my SIM back in the Samsung Wave 3 when I need tethering, and skip the “Bolt-On”. Which option seems easier, cheaper, and more likely to work in the time available – and less offensive to a customer who’s just wasted 30 minutes on what should be a perfectly simple task?

Perhaps I’ll just read a book on the train tomorrow…

Posted in Mobile Tech, Planet | Tagged , , , , , , | 4 Comments

Out for delivery?

It feels like my Amazon order has been in transit for ages. It was dispatched over 40 years ago and I’m still waiting …

amazon order

Posted in Personal, Planet | Tagged , , , , | 3 Comments

Media and storage of the future

I just lost a hard disk. No big deal.

My somewhat complicated home media setup is this: I have a Samsung TV plugged in to a first generation AppleTV. The AppleTV is connected to the network via wired ethernet to an Apple AirPort Extreme base station / router. Hanging off the USB port of the Airport Extreme is several terabytes of storage courtesy of a Drobo containing a bunch of cheap(ish) OEM hard drives.

The AppleTV has been upgraded with a Broadcom Crystal HD chip in the internal PC Card slot – which normally has a wifi card in it. I figured it was worth sacrificing wifi, since with the size of HD video you really want to be using a fast wired network anyway. In order to make use of the HD chip, I have XBMC installed on the AppleTV.

So I sat down this evening to watch a film over dinner. I switched the TV over to the AppleTV, fired up XBMC, and navigated to the files on my Drobo – except they weren’t there. For some reason, the AppleTV wasn’t seeing the Drobo. I pulled the face plate off the Drobo to find out what was going on, and noticed it was in standby mode – unmounted by the Airport Extreme. No wonder the AppleTV couldn’t see it!

I restarted the Airport Extreme, but when it came back up and woke up the Drobo, I had the ominous flashing red light beside one of the drives. The light that means “drive failure”.

At this point in the story, there would normally be panic at the thought of lost data. What actually happened was a swift trip to Amazon, a quick calculation of cost per megabyte followed by ordering a new OEM drive to replace the failed one. It should be here on Monday, but meanwhile I can still access all my data.

It’s not always smooth sailing – see Drobo good, bad, ugly and Drobo updates. But when talking to a friend the other day who was still nursing individual external USB drives, I realised that on the whole the Drobo has been well-behaved and fits into the “it just works” category of technology that is so rare these days. It’s been online for almost two and a half years, and I’ve only had to mess with it on three occasions until now: installation, adding capacity, and replacing the first blown disk.

So I’d thoroughly recommend a Drobo instead of an external USB drive, and for a home media centre solution it works really well with the AppleTV (and associated hacks) as well.

Posted in Computing, Planet | Tagged , , , , , , , , , , , , | 1 Comment

Statistics

Blog stats

Borrowing from Alex King’s Simple SQL Queries for Blog Stats, here’s some stats on this blog.

  • The first post “It’s alive!” was made on 31st May 2003, some nine years ago.
  • There have been 1,572 posts.
  • On average, there are around 160 posts a year.
  • Most posts are comfortably over 1000 characters long.
  • The average post is about 170 words long; the longest is currently FOSDEM 2011: Saturday, and the shortest is This week’s addiction (whatever happened to…)
  • There’s been an inexorable move toward fewer, longer posts in the last few years.
  • These stats don’t include this post. I’ll leave that madness to xkcd.

Meta meta…

Here’s some useful queries for getting blog stats from a WordPress database.

Get first and last post:

select min(post_date) as start, max(post_date) as end from wp_posts;
+---------------------+---------------------+
| start               | end                 |
+---------------------+---------------------+
| 2003-05-31 10:35:11 | 2012-01-13 18:14:58 |
+---------------------+---------------------+

Get number of posts:

select count(*) from `wp_posts` WHERE post_status='publish';
+----------+
| count(*) |
+----------+
|     1572 |
+----------+

Get number of posts per year:

select YEAR(post_date), count(*) from `wp_posts` WHERE post_status='publish' GROUP BY YEAR(post_date);
+-----------------+----------+
| YEAR(post_date) | count(*) |
+-----------------+----------+
|            2003 |      154 |
|            2004 |      329 |
|            2005 |      501 |
|            2006 |      225 |
|            2007 |      176 |
|            2008 |       75 |
|            2009 |       17 |
|            2010 |       19 |
|            2011 |       70 |
|            2012 |        6 |
+-----------------+----------+

Get average number of posts per year:

drop table if exists average_posts;
create temporary table if not exists average_posts
select YEAR(post_date) as Year, count(*) as Count from `wp_posts` WHERE post_status='publish' GROUP BY YEAR(post_date);
select avg(Count) from average_posts;
+------------+
| avg(Count) |
+------------+
|   157.2000 |
+------------+

Get average length of posts (in characters) per year:

SELECT YEAR(post_date), AVG(LENGTH(post_content)) FROM `wp_posts` WHERE post_status='publish' GROUP BY YEAR(post_date);
+-----------------+---------------------------+
| YEAR(post_date) | AVG(LENGTH(post_content)) |
+-----------------+---------------------------+
|            2003 |                 1260.8182 |
|            2004 |                 1174.0729 |
|            2005 |                 1062.4770 |
|            2006 |                 1003.2622 |
|            2007 |                 1473.9489 |
|            2008 |                 1862.2267 |
|            2009 |                 3575.2941 |
|            2010 |                 3447.3158 |
|            2011 |                 6024.9000 |
|            2012 |                 8707.6667 |
+-----------------+---------------------------+

Get average word count of posts per year:

drop table if exists word_counts;
create temporary table if not exists word_counts
SELECT `ID`, `post_date`,
SUM( LENGTH(`post_content`) - LENGTH(REPLACE(`post_content`, ' ', ''))+1) AS 'Wordcount'
FROM `wp_posts`
WHERE `post_status`='publish'
GROUP BY `ID`
ORDER BY `post_date` DESC;
SELECT YEAR(post_date), AVG(Wordcount) FROM `word_counts` GROUP BY YEAR(post_date);
+-----------------+----------------+
| YEAR(post_date) | AVG(Wordcount) |
+-----------------+----------------+
|            2003 |       148.3052 |
|            2004 |       147.6809 |
|            2005 |       112.4611 |
|            2006 |       105.3289 |
|            2007 |       161.6875 |
|            2008 |       218.9600 |
|            2009 |       451.3529 |
|            2010 |       450.3158 |
|            2011 |       673.8714 |
|            2012 |      1017.6667 |
+-----------------+----------------+
Posted in Personal, Planet, Research | Tagged , , | 2 Comments

FOSDEM 2011: Sunday

In advance of FOSDEM 2012, I’m publishing previous years’ notes. Here’s 2011 day two: Sunday.

Barebox

FOSDEM booting linux fast and fancy

Reason for attending this talk: to understand more of the technical details behind fast boot of Linux devices, which will be an important factor in the success of mobile linux.

The subtitle of this talk was “Booting Linux Fast and Fancy”, and the speaker focussed first on how to make linux boot quickly and then provided tips for making the boot look good. There were approximately 100 people present for this early morning session.

Why worry about boot? The evolution of phones to include linux means boot user experience becomes more important. Industrial devices don’t look like computers and shouldn’t boot slowly. Automotive devices have fast-boot requirements – they must be answering CAN messages in less than 200ms after power-on.

History of the project:

  • 2007 – barebox project – forked from u-boot as a technology study under ‘u-boot-v2′ name.
  • 2009 – first release, renamed barebox, hosted on own infrastructure
  • 2011 – 24 releases to date, timed releases 1 per month + maintenance releases on demand.
  • commit history – missed it! slide went by too quick.

The project supports a range of CPU architectures – arm (at91, ep93, i.MX, netX, nomadik, omap, s3c24xx), m68k, ppc, sandbox, x86 bios based, etc.

It supports:

  • build: kconfig, kbuild
  • boot media: linux16, nand, ubi, sd
  • data: dfu, kermit, z/y/zmodem, tftp
  • gfx: framebuffer, splash screen
  • filesystem: cd, ls, cp, saveenv/loadenv, mount, partitions
  • tools: crc, edit, gpio, unizo
  • user interaction: login, menu (for simple text-based menus)
  • drivers: i2c, mfd, flash, serial, spi, usb host+device
  • modules: insmod, lsmod
  • memory: meminfo, memtest, md, mw
  • network: ipv4, dhcp, netconsole, tftp, rarp, ping, nfs, dns

Configuration done just by assigning variables e.g. eth0=172.0.0.3.

Booting linux fast:

  • power controller releases reset line: optimize hardware (electronics)
  • ROM bootloader starts running: select cpus optimized for fastboot eg mx25
  • fetch boot blok from nand/sd: done by firmware, usually can’t be tuned
  • execute first boot code: first place can do something in sw
  • initialize hardware: only what’s necessary, tune clocks & timings
  • fetch linux kernel from nand/sd: async read and decompression tricks eg prepare kernel image in blocks of certain size, while decompressing block, instruct device to send next block.
  • execute linux
  • extract compressed image: depending on hw, use uncompressed image or zImage
  • kernel boots, initialize hardware: minimized kernel, all tricks from elinux.org wiki
  • /sbin/init: depending on use case, use initramfs or real rootfs (slower)

Example: 336ms from bootloader to init on freescale mx35, 532mhz. On beagleboard this is usually 800ms.

Booting linux fancy:

  • initialise hardware: backlight off load splash show splash backlight on (to avoid flicker)
  • kernel boots, initializes hardware: make sure framebuffer has fixed address between bootloader and kernel – no re-init! (stops splash disappearing)linux driver looks at what is initialized, and doesn’t reinitialize.
  • sbin/init: cross fading with overlay

Fast, but not the 200ms limit for automotive.

BTCS: Boot Time Critical Services (originally inspired by freescale, now implmented with mainline focus).

Idea: set aside some memory, register a poller in barebox, make sure memory is handed over to linux, poller ends up as a normal interupt service routine in linux.Interupt service routine runs during bootloader. compromise – can’t use much infrastructure from isr. possible to run commercial stacks for ECU.

CAN is ready after about < 100ms. Downside: it is a bare metal stack.

Key takeaways: it is possible with attention to detail to create extremely fast booting devices. This would be of significant value in a mobile linux stack.

Linaro

Reason for attending this talk: Linaro could form an important base for a mobile linux platform.

Approximately 300 people attended this talk. The speaker began by outlining the rationale for Linaro’s creation: ARM-embedded is too hard, and there are 4 key problems:

  • under-investment in the open source that makes up linux platform
  • distribution fragmentation: different tools/versions, different graphics and multimedia plumbing, kernel forking and versions
  • SoC fragmentation, different SoC vendors with different approaches eg kernel, power management, graphics and multimedia
  • not enough optimization, features in processors not being used

How is Linaro fixing this? engineering, engineering, engineering!

FOSDEM linaro developers

In the above graph:

  • blue: Canonical
  • red: ARM
  • yellow: codesource?
  • green: IBM
  • pink: TI

They recrutied engineers from all member companies and hiring their own people to work on Linaro.

Linaro engineering : working groups, taking opensource upstream and improving, releasing own branches with new features (will go upstream but maybe not there yet)

landing teams only area with privacy (future products/hardware)

platform engineering: mix all together. important to have reference images prove it works and test/validate work of other groups.

two types of cycle:

  • 6 months design – implement – deliver features
  • subprojects on monthly releases

10.11 technical highlights

  • took member bsps and wrote summary of what was wrong
  • combination of distributions and SoCs .
  • release hardware packs as set of enablement files
  • at end of cycle toolchain widely adopted

lessons learned

  • too high level, goals too abstract
  • ramping up engineers to 90 was time-consuming

2011 plans: build of linaro-enhanced key distributions on member SoCs

  • android
  • ubuntu
  • chrome os
  • meego

Building a test and validation framework for member SoC hardware.

Qt tales from embedded trenches

Approx 200 attending. Speakers are kde developers – kdepim, plasma, libgcal, gallium,…

kinetic scrolling – as made famous in 2007 by iphone. but prior art discussed in 1982 bill buxton two-handed input in HCI, canola 2007

Qt flickable 2008 “oh my god QML’s so wonderful!” in fact a really really neat way to do things. You can do it in C++ but use QML, it’s easier.

implementations;

  • ariya’s flickable 2008
  • toyflick 2009
  • plasma scrollwidget 2009
  • imtk imtkkinecticlistview 2010
  • qml flickable 2010

Meego UI without libmeegotouch? issues with libmeegotouch – can’t run on symbian (uses GTK), so cheat

pure blood qt runs everywhere – nokia n580, n97, n900.

Posted in Computing, Mobile Tech, Planet, Research | Tagged , , , , , , , , , , , , , , , , , , , | 2 Comments

FOSDEM 2011: Saturday

In advance of FOSDEM 2012, I’m publishing previous years’ notes. Here’s 2011 day one: Saturday.

FOSDEM is the Free and Open Source Software Developers’ European Meeting, an annual free event hosted in Brussels and entirely organised and run by volunteers. Typically around 5-6000 developers attend. The event is run over a weekend, with a networking beer event the Friday beforehand. This year around 1500 people showed up for the beer, according to the estimates of the security staff.

The event comprises a number of keynotes and multiple parallel tracks of volunteer talks. 2011′s main tracks were:

  • System
  • Web Browsing
  • Languages
  • Web Frameworks
  • Cloud
  • Office
  • Lightning talks
  • Developer Rooms – BSD, Cross Distribution, Cross Desktop, Data Analytics, Embedded, Free Java, GNU, Jabber and XMPP, Mono, Mozilla, MySQL and friends, Security and hardware crypto, World of GNUStep, Accessibility, Configuration and Systems Management, LibreOffice, Virtualisation, Open Source Telephony, Perl, PostgreSQL.

Some thoughts from the event overall:

  • Attendance
    • Attendance once again seemed higher than previous years, with a broad mix of attendees in terms of age, profession, geography, language.
    • Many businesses as well as projects now count FOSDEM as a “must attend” event.
  • “Android is a bucket of arse” / “has anyone noticed the only Android talk is about setting it free?” / “Google’s Android is not the perfect embedded OS”
    • The general mood amongst delegates is that Android is an appalling technical implementation, and very few seemed interested in developing for the platform. This was in stark contrast to the level of interest in Linaro and MeeGo.
  • WebOS has problems too
    • Even though Palm WebOS is widely admired by the community, apparently HP has spent the last year since acquisition dealing with licence compliance issues.
  • Consolidation
    • Previous years have seen rooms devoted to specific distributions and specific desktop software. This year all the distributions were in one room and the theme was typically how to work together and on cross-distribution packaging initiatives. All the desktops shared talks on important cross-desktop key components.
  • Device fashion
    • Despite being superseded in the marketplace, the Nokia N900 was still an extremely popular device at FOSDEM. Second most common device sighted was the G1, followed by a range of Android and iPhone models.
    • Some delegates had a range of tablet devices, but these were still very few compared to laptops and netbooks. The most common laptops were Apple Macbooks and Macbook Pros, many of which were running linux.
  • Trends
    • There is an increased interest in the embedded end of the market with more talks and also large crowds around the embedded/beagleboard stands.
    • Firefox and HTML5 seemed significantly more popular this year, and there continues to be notably few talks about WebKit/Chrome.
    • Last year’s buzzword NoSQL has been superseded this year by “big data”.

Some of the talks attended:

Lightning Talk: Is the UK Government backing free software?

Two reasons for attending this talk: firstly, it’s a useful barometer for the acceptance level of open source in general and the progress of open source in large organisations. Secondly, I’ve worked with Sirius on rolling out infrastructure, so it’s good to keep tabs on what else they are doing.

There were about 200 people in the auditorium for the lightning talks. This talk started by pointing out that despite many open source policies and statements of support, the government has never implemented open source to any great degree. The last Labour government were very pro-business, typically favouring large multinationals, and so vendor lock-in through proprietary formats prevented any real adoption of open source.

The civil service typically work with and are supplied by large system integrators who historically have not been open source friendly.

The new administration is taking a top-down approach to driving change and wider adoption of open source. Examples of this include an SME Summit at the Treasury on 11th February 2011, and an Open Source supplier forum on 21st February 2011 where all open source suppliers will be present.

In addition, Bristol City Council are conducting research using a large system integrator paired with a small open source company (Sirius), and Cardiff council are running a series of workshops amongst key stakeholders, facilitated by Sirius, to explore options for using open source.

I wanted to get into the Firefox talks next, but the room was full (standing room only, no-one else allowed in for health and safety reasons).

How to be a good downstream

FOSDEM how to be a good downstream

Reason for attending this talk: I’ve seen first-hand the very real economic and technical problems with the way large mobile platforms relate to upstream projects, in that code is often forked and patched and rarely contributed back, providing both an economic burden of maintenance and technical difficulties in backporting bug fixes and enhancements. It was hoped that by attending this talk key remediation strategies might be identified.

There were about 50 people in this talk. This talk was given by noted Debian developer Thomas Weber, and was subtitled “How to make both your and upstream’s life easier”. It was a follow-up to last year’s talk “How to be a good upstream”.

Key points that need to be remembered:

Communication

  • when you make some specific changes, discuss with upstream what changes were made and why
  • being pro-active is key

Empathy

  • Different people/projects have different goals and constraints
  • Remember that upstream is busy too
  • if you forward bugs, include all necessary information in the bug report – don’t force upstream to use your bug tracking system
  • do not propose unscalable solutions eg. “upstream can subscribe to my distribution’s bug tracking system” : Debian alone has 120+ derivatives

Packaging (initially and ongoing)

  • Introduce yourself – so upstream knows about the package and has a point of contact
  • Keep in contact with upstream and ensure they understand that you are packaging for a distribution
  • Take a look at upstreams bug tracking system before your own release
  • If you leave or stop packaging inform upstream!

Example: xdebug 2.0 bug fixed in 2.1 Aug 2009; first stable was june 2010, in Ubuntu 10.04 LTS it’s still not fixed.

Cooperative work

  • Forward patches (ideally before applying them)
  • Be present on upstream’s communication channels
  • Intercept the questions of the users of your distribution (you know the details of your distribution far better than upstream). This generates good karma.

Key takeaways: mobile platforms don’t always do this. They should all consider identifying their upstream projects, identify all their modifications made against upstream, do an audit of their releases against upstream bug trackers, and introduce their maintainers to all the upstream projects.

Swimming upstream

FOSDEM swimming upstream

There were about 75 people in this talk. This talk started with a quick survey of the audience: the audience were geographically well-distributed, some had travelled 1000+ miles to attend. 80% of the audience don’t speak english as their first language, and no-one in room has been using linux for less than 2 years – most have been using it for more than 10 years.

Jared asked “does innovation happen in a conference room?”, and then proceeded with an analogy of why salmon swim upstream and why contributors should push their code upstream. He used another analogy of how multiple streams form a river to describe how “code starts out as 1 or 2 people working together then it forms a larger community”.

What is a community? It is the relationship of people with shared goals and common interests. With a software community: what is the difference between people working on same piece of software and a software community? A software community is a table – where people with different backgrounds, experiences, goals can come together and have healthy discussions. Sometimes they talk more about the process of the table itself!

What is a distribution? It is a bundling of software. When Fedora started, they didn’t want to push upstream – but this approach didn’t work as it became impossible to maintain the platform. Fedora now push upstream aggressively to carry as few custom patches as possible.

Upstream -> Fedora -> Redhat Enterprise Linux

“people take pride in working with open source, contributing to something bigger than themselves”

Key takeaways: Fedora, a relatively large and well-supported open source linux distribution, were unable to handle the burden of maintaining the platform without pushing upstream. Mobile platforms should learn from this experience and understand that it is not possible for them alone to support a forked platform.

Downstream Packaging collaboration

FOSDEM downstream packaging

This talk suffered from poor audio, starting too early whilst people were still arriving, and people were talking over the introduction.

The speaker started off with the premise that packaging an open source project is easy, but modifying it (patching) to fit the distribution’s requirements is hard due to the maintenance burden incurred by patches.

The obvious answer is to get the patches upstream as soon as possible, but this is not always possible as some open source projects have missing maintainers or are unresponsive to distribution contributions.

A workaround is for distributions to work together to form a new upstream, but maintaining a new upstream is hard.

One suggestion was to create canonical-package-name-maintainers@distros.freedesktop.org and then subscribe the email address to per distribution package VCS commit mails.

Question: how many examples of upstream abandonment? Several key ones: X11R3, X11R4, lesstif, nedit. Most niche packages, but still with a significant number of users.

FOSDEM patch sharing

The second part of the talk focussed on patch sharing:

  • store all downstream patches at same place
  • give write access to maintainers
  • read to everybody
  • let maintainers collaborate

Advantages: differences are more obvious, one patch can be used for multiple versions.

Whenever someone creates a new patch:

  • push into common repo
  • all maintainers will know shortly
  • know whether it is distro-specific
  • know what it does
  • know when it get upstreamed
  • know about fixes
  • can incorporate it
  • can help cleaning it up
  • can help pushing it upstream

cf. openembedded:

  • one repo with recipes and patches for software
  • everyone works together (even on packaging)
  • only differences are marked

patch conventions – easily parseable metadata:

  • upstream package name and version
  • maintainer (for patch)
  • strip level (-p prefer)
  • list of bugs
  • description
  • status (quick hack, send to upstream, upstreamed)
  • distributions included in

Start with debian patch policy. Other key links:

Bdale Garbee summed it up best: “if you maintain a piece of software for a particular distribution and you don’t know the maintainers from other distributions, you are failing”.

Key takeaways for mobile linux platforms: maybe they should be a patch farm against an existing distribution, rather than a platform in their own right. They could sponsor work toward a common patch store, by helping developers get together to talk about it and plan it. This would help them by mitigating their maintenance burden.

E17

FOSDEM enlightenment

Samsung have a high level of investment in Enlightenment technologies, having hired the principle developer. This talk is therefore critical to understanding the core graphics in Samsung’s Linux platform. There were around 100 people in the room for this talk.

e16 was released in 1997, and e17 has been in development for over a decade. Embedded devices are the main target and e17 has been rewritten from scratch based on e16 experience.

Enlightenment is a lightweight desktop environment based around EFL – Enlightenment Foundation Libraries. Enlightenment takes care of the current layout. All features or gadgets on the desktop are a module – so you can unload them. An e17 desktop consists of a set of modules loaded – a profile. A default basic profile is defined for different use cases. e17 is totally modular so you can load only what you want to use.

e17 supports themes. With edje everything can be themed. There’s only one file to download for the whole theme.

e17 has full compositing support.

e17 is opengl and opengl-es compliant. If the platform has bad graphics drivers it can switch to software engine.

e17 supports textures from pixmaps and indirect rendering.

e17 works on desktop and embedded.

The gui: there is a basic toolkit, there is no complete toolkit, just basic widgets (button, list, scroller…) and some tools to make life easier for coders (for example dbus bridge). You use ecore and evas to create windows. You use edje to create a new widget.

The future: Release. Maintain compatibility.

In e18 the plan is to integrate a complete toolkit for widgets.

Questions from the audience:

  • Do you have a release date?
    • “no”
  • what is the footprint?
    • Around 40mb? 30mb? (the second e17 talk stated around 24mb)

The Enlightenment stand at FOSDEM also had e17 running on a range of devices including what looked like an HTC phone and a Samsung Galaxy Tab.

Key takeaways: there is a fair amount of developer interest in e17, but despite a very long development cycle it still seems relatively incomplete. However, the minimal footprint, embedded target and eye candy focus might provide a more consistent user experience closer to iPhone than it is possible to provide using GTK or Android graphics.

Open Sourcing Java

This talk was given by former Sun Chief Open Source Officer Simon Phipps. It was very well attended with approximately 200 people in the room and a long queue of people unable to get in.

Governance

Sun nearly broke opensolaris with heavy governance. They learnt from that lesson and with OpenJDK they took action first, open sourcing the platform and then wrote the governance after the fact. Another key lesson is that setting up an open source foundation does not fix anything – it is important to make the open source platform work first.

All community members matter

  • it’s a mistake to assume a competitor can’t help
  • there are approximately zero people who show up just to break things
  • the rules you make to control those zero people break things worse than the zero people do

Real relationships help and heal

  • written communications only support existing relationships
  • second languages affect understanding (easy to believe you mean what you say – but you only use the words you know) (saying “I’m not a native English speaker” is a great way to excuse almost anything else you say)
  • old hurts can be cured by positive healing (have breakfast lunch and dinner with people you don’t agree with)

training reptiles takes time (corporations are reptiles)

  • corporations don’t exist, people do (you can’t trust a corporation)
  • confronting corporate problems rarely works (no point going to MS and telling them patents are evil)
  • solutions need to layer and build over time – create habits not traps (gradually change the environment)

Open source isn’t about licenses or code – it’s about a certain set of liberties. Software freedom has to be the guiding principle in what you do.

Software Business Value is the first derivative of Software Freedom

  • Ability to share code -> grows user base
  • Ability to study code -> developers not needing training
  • Ability to modify code -> ecosystem of companies
  • Adopting posture of freedom is not delivering freedom

Pragmatic compromise to achieve larger goal can be acceptable

  • contributor agreement
  • assembly exception to allow mixed licensing

Licenses are constitutions for communities

  • licenses normally bilateral agreements
  • open source licenses are multilateral circle around the community that defines the boundary.

The fact that java wasn’t open sourced in 2003 and packaged in a usable fashion on linux meant it lost a huge amount of momentum.

Why was apache license not chosen? BSD/Apache/GPL were all considered. Apache patent grants and lack of contribute-back would have removed commercial incentives to collaborate. BSD/MIT don’t convey patent grants in any concrete way, so could have been an option.

Bdale commented that it’s a balancing act that GPL represents between conveying rights and ensuring everoyone plays openly.

The most important thing Sun ever did to get Java adopted was not licensing under GPL but sending Tom to debconf to make debian packages. This made the JDK a second class citizen and not a third class citizen.

Key takeaways: companies must work together across commercial boundaries. Foundations / holding organisations should lighten up on governance and focus on software freedom and deriving value from building the platform. Making the platform usable is critical to widespread adoption.

Simon’s slides: Lessons I learned liberating Java

 

 

Posted in Computing, Mobile Tech, Planet, Research | Tagged , , , , , , , , , , , , , , , , , , , | Comments Off

Getting started with Tizen

The Tizen source and SDK were unleashed yesterday, and I’ve just had a first glance. The documentation is a bit all over the place, so here’s some notes on getting up and running. For more information on what’s going on with Tizen, read my blog post on Tizen and on platform community.

~

The platform build page at https://source.tizen.org/platform_sbs_install.html states Tizen requires Ubuntu 10.04 or higher. The SDK page at https://developer.tizen.org/sdk.html caps Ubuntu at version 11.04, as does https://developer.tizen.org/sdk_install.html. In reality, the SDK installed on 11.10 without any problems.

Installing the SDK

The SDK page says “To install the SDK you will need to have root privileges” but does not use sudo to run the installer. You will be prompted for the root password during the install.

The following steps worked for me:

  • Install Virtualbox.
  • Install Ubuntu 11.04 (or risk 11.10)

apt-get install git

sudo add-apt-repository ppa:ferramroberto/java
sudo apt-get update
sudo apt-get install sun-java6-jdk sun-java6-plugin
  • Get the SDK working by running through: https://developer.tizen.org/sdk.html. Install the Tizen SDK prerequisites. Because Tizen loves you, they kindly put commas between package names so you can’t copy-paste them. Here’s the list all ready to go:
sudo apt-get install qemu-kvm binutils-multiarch debhelper fakeroot realpath libsdl-gfx1.2-4 gettext procps xsltproc libdbus-1-3 liblua5.1-0 libexif12 libcurl3
  • Download and install the SDK:
wget https://developer.tizen.org/download/tizen_sdk.bin
chmod +x tizen_sdk.bin
./tizen_sdk.bin
  • The installer will exit (“Installing ….. OK”, “Done”) before the GUI installer has completed. Don’t worry about it.
  • Go through the install process. Note the SDK needs 1.2GB to install. The installer is only 4.6mb, so expect some downloading.
  • First time around, my installation failed with the following error:

(Un)Installation failed

Cannot connect to server. Please check your network status or use command line option ‘-proxy <address>:<port>’ for using proxy.

It’s recommended to uninstall all and install again.

The install is wanting to talk to http://112.106.1.254/tizensdkpackages/InstallManager/Linux/ and http://112.106.1.254/tizensdkpackages/current/linux-packages/ but those both work fine.

The second time around it worked (and good grief, the tizen download server is fast … or not very busy. I got 1.52MB/s).

Some random notes about the SDK:

  • the open source license is alphabetical, so the first thing you’ll see on the list of software components is ‘Android Open Source Project(ADT DDMS, adb)’.
  • The SDK license is actually a Samsung SDK license: TIZEN SOFTWARE DEVELOPMENT KIT (“SDK”) LICENSE AGREEMENT [...] A LEGAL AGREEMENT BETWEEN YOU AND SAMSUNG ELECTRONICS CO., LTD. (“SAMSUNG”).
  • The Open Source SDK components are at http://developer.tizen.org/download/tizenopensdk.tar.gz but that basically consists of valgrind, qemu, the emulator kernel and oprofile.

Installing Scratchbox Build System (SBS)

This works pretty much as advertised – though note that the first step 1 (installing package dependencies) conflates two separate lines, and should read:

sudo apt-get update

followed by:

sudo apt-get install dpkg-dev pkg-config uuid-dev cpp gcc gcc-multilib libarchive-dev liblzo2-dev zlib1g-dev libxml2-dev automake autoconf realpath

Or you could just do:

sudo apt-get update && sudo apt-get install dpkg-dev pkg-config uuid-dev cpp gcc gcc-multilib libarchive-dev liblzo2-dev zlib1g-dev libxml2-dev automake autoconf realpath

There’s IP addresses hard-coded all over the place: in the SDK install, in the SBS documentation, in the SBS install script, and in the SBS utilities themselves, for example:

# The server with all required APT repositories
_APT_SERVER="${SBS_APT_SERVER:-112.106.1.254}"

This is extremely brittle, and I expect there to be breakages. It’s pretty poor practice and I would have preferred that the ‘source.tizen.org’ CNAME was used more consistently. That IP belongs to Samsung, by the way.

Where there is a domain name configured, it’s www.tizendev.org, which does not resolve to a public machine:

./install-sbs SBS install script
git version: 08ecba2
last commit: Date:   Wed Jan 11 16:39:11 2012 +0900
For help see: http://www.tizendev.org

Note that you’ll end up with SBS stuff in ${HOME}/sbs-install and ${HOME}/sbs, which may or may not annoy you.

As per the instructions, ~/sbs-install/bin/sbs -A i386 -c will give you a working i386 Scratchbox target. It’s great to see at the end of the first run:

sbs: All done.  Build environment was successfully setup at /home/savs/sbs

Progress!

~

On the whole, kudos to Samsung (and Intel, and Tizen) for getting the code out there. And especially for having a reproducible build system with clear instructions. This is a huge leap forward for Tizen, and a critical first step.

Posted in Mobile Tech, Planet, Research | Tagged , , , , , , , , | 4 Comments

FOSDEM 2010

Although I’ve been a regular at FOSDEM for a few years now, I’ve been rather poor in ensuring my notes got onto this blog. In advance of FOSDEM 2012, I’m publishing previous years’ notes. Here’s 2010.

The Free and Open Source Developers’ European Meeting (FOSDEM) is an annual free and non-commercial event organized by the community, for the community. It’s a two day event organized by volunteers to promote the widespread use of Free and Open Source software and to provide Free and Open Source developers a place to meet. The event takes place in Brussels and has been running since 2000. In recent years attendance has been in the region of 4000, and in 2010 the attendance was closer to 6000. The event is hosted by the Université Libre de Bruxelles.

During 2010′s event there were 294 talks organized across 10 tracks (including Keynotes, Security, Scalability, Monitoring, Database, Javascript) and 22 subject-specific rooms (including Distributions, Embedded, Mozilla, GNOME, Openmoko, X.org).

I presented two LiMo talks: “LiMo Platform and Mobile Linux” and “Mobile distributions and upstream challenges“. I also attended a good number of talks, which – due to my employer at the time – mostly had a strong mobile and embedded focus. Some of the highlights included:

Embedded software development best practices (Adrien Ampelas)

Adrien gave a complete end-to-end guide on how to do embedded platform development. He covered everything from source control, to build mechanisms and quality, to code review and distribution. The talk identified many issues that open mobile platforms do not address.

One slide in particular that appealed to me on build processes applies equally well to any software development environment: how long does it take a developer to get up and running?

Build Process

FreeSmartphone.org and D-Bus (Michael Lauer, OpenMoko)

OpenMoko was hardware and software combined in a single device. The device is now dead, the software lives on. FreeSmartPhone.org (FSO) is the community software platform that has developed out of the ashes of OpenMoko.

What is FSO intended to be? A collaboration platform, a bottom-up stack, and a reference implementation. The heavy focus is on working software in real hardware with constant innovation/improvement on top. The goal is to close the middleware gap. ie. “middleware for mobile phones”. It is deliberately not positioned as a standards effort like LiMo Foundation/LiPs.

There’s heavy reuse of pre-existing components both within community source and old OpenMoko (eg. phone stack). D-Bus facilitates good architecture because it permits separation of business logic from UI. Lightweight, language independent UI independent, P2P and P2M IPC process communication enabler. D-Bus architecture involves a system bus and per user session bus. Methods and signals handle P2P and P2M. Get/Set for fast operations, list/retrieve for slow operations.

  • > “mdbus -s” to enumerated system bus services
  • > “mdbus -s org.freesmartphone.ogsmd” to talk to SIM app toolkit

One D-Bus interface can expose multiple objects.

  • > “cli-framework” gives you a Python command line to D-Bus operation on FSO

Using it everything you can do programmatically with D-Bus can be done interactively which is very cool for demos.

Python D-Bus support: “One small step for programming, one giant leap for middleware”. FSO has control logic all written in Python for faster development time. BUT Python is slow! Also, an interesting comment: people are afraid of using scripting languages in embedded devices. FSO2 has been entirely rewritten in Vala – a high level language that can be compiled to generate C. FSO2 has libmsmcomm (Qualcomm MSM) and libgsm0710 modem (from OpenMoko). The OpenMoko team are looking in 2010 to port FSO2 to OpenMoko Neo FreeRunner, Palm Pre, and HTC Dream.

FSO2 initiative is very interesting – they’re focussing on how to build a mobile Linux platform not as a bunch of disconnected static APIs but as a living system of methods and signals mediated via IPC. The “APIs” are entirely exposed through D-Bus and developers interact with system components/services through D-Bus.

SHR (Thomas Zimmerman)

Stable Hybrid Release (SHR) is the Reference UI for FSO1/2. It’s gradually going to phase over to FSO2 (Cornucopia) in 2010. You build an SHR-based image with a single makefile. There are a set of user side daemons:

  • phoneuid: UI daemon which caches views for performance
  • libphone-ui-shr: main UI library providing dialler, contacts, messages

It’s based on X.Org Xserver 1.7.4, E17 Illume (Enlightenment).

An FSO-SHR Conference was planned for 2010.

hackable:1 (David Wagner)

hackable:1 is a Debian distribution for ‘hackable’ devices. It works by maintaining patchsets and building debian packages by downloading vanilla upstream, applying patches, and compiling for specified target. The focus is on providing a stable and easy to use development environment. It provides a much cleaner way of maintaining downstream changes. It provides a basic platform including simple UI. It’s supported by a Parisian openmoko reseller and ISP.

hackable:1

Tracker and SPARQL (Rob Taylor, CodeThink)

Tracker is an RDF semantic store. ie. a “nosql” approach to data storage – even though today it has an sqlite backend. Metadata is associated with a file through tags which can then be queried to present data in interesting ways. Rob demoed a clutter-based applet that was sorting/sifting photos and twitter feeds. It was written in 200 lines of js and backed by a tracker database being queried using SPARQL. See labs.codethink.co.uk.

~

Previously: FOSDEM ’08, FOSDEM 2010, FOSDEM 2011.

Posted in Computing, Mobile Tech, Planet, Research | Tagged , , , , , , , , , , , , , , , , , , , , , , , | 3 Comments

Predictive Text

Cringely has a bunch of predictions for 2012. They all feel wrong, for one reason or another. Let’s run through them.

A new CEO for Apple: No.

Amazon and Bezos supplant Apple and Jobs: No. Shareholders don’t understand Amazon and will keep punishing the stock in the same way they punish Apple stock. “Selling stuff cheap” is not sexy enough. No-one gets excited about Primark. Amazon will take 3-4 years at least to see the advantage of Kindle Fire strategy. And Bezos is not the man to build a rapport with media industries, he’ll continue to just try to route around them – which will take much longer. So long term: yes. Next year? No. Don’t get me wrong – I think Amazon is one of the best companies on the planet. But I don’t think many others realise it.

Intel buys Qualcomm: No. Hubris. If Intel can, they will try to get there by throwing marginally less cash than the purchase price of Qualcomm at dumb initiatives like Tizen. And they aren’t hurting enough – yet.

Motorola buys Tivo: No. Tivo is dead anyway. Googorola hubris will say they can build the new TV experience better than Tivo, Apple, or anyone else. Expect another year of Google TV failures.

No IPO for Facebook: This could go either way. My bet is it will be very late 2012 or early 2013; those new investors that came in last year are going to be anxious to see a big return in a 1-2 year time frame. They won’t be happy to wait. And Facebook are sailing very close to the wind on all-out privacy invasion, and need to IPO before this becomes a mainstream PR issue.

Thompson’s no Yahoo: Well duh. This is not a prediction. Nokia Windows phones are going to bomb. And it will probably rain this week. Any other dumb non-predictions we can make while we wait for Yahoo to quietly die? ;-)

New Microsoft CEO: I’d bet against it, as the real damage to shareholders hasn’t happened yet. Office and Windows remain safe strongholds in the medium term; acquisitions like Skype allow the perception of progress (and actually are a pretty smart move if you can no longer innovate). Most shareholders simply don’t understand the form factor bloodbath that iOS is wreaking, and are therefore content to see Windows Phone bumble along. Microsoft always gets it right on the third iteration … Mango is only the second (never mind the 6 versions of Windows Mobile before it).

~

See also Gruber’s claim chowder of Cringely on Adobe.

~

Let’s put my money where my mouth is. Here’s five predictions you can judge me on:

  1. No Apple television set and no iPad 3.
  2. Google TV will be another failure. And Google+ will continue to be a failure.
  3. No new WebOS hardware.
  4. No Euro collapse (sneaking in a non-tech one).
  5. This year will be ‘boring’ (at least in tech) in comparison to last year’s apocalyptic nature (Elop, Leo, Jobs, etc), even counting Nokia off-loading the smartphone division to Microsoft and little Nokia resurrecting mobile linux.

And you? Where do you place your bets?

Posted in Computing, Mobile Tech, Planet, Technology | Tagged , , , , | 2 Comments

Humax PVRs

I have a rather lovely Humax PVR9300T, a digital video recorder that I bought a year or so back. Or, it was lovely, I should say. Just before Christmas, the box started to freeze. Rebooting it didn’t make a difference; it would play television for a minute or two before freezing again.

I figured this was all part of the failing IT saga (Macbook, Kindle, now PVR). But no.

It turns out that I’ve been using the Humax PVR all wrong. The firmware on the device hadn’t been updated since January 13 2010, and the old firmware is buggy. I had auto-update turned on, but apparently the automatic over-the-air firmware updates only run when the PVR is in standby mode, and I’ve never bothered to put it in standby.

So, if you have a Humax PVR, you need to:

  • Check that you have the latest firmware (UPTTF1.00.26 from 7 July 2011, at time of writing)
  • If not, ensure that automatic updates are enabled
  • Make sure you put the device into standby mode when you are not using it, so that it can update.
  • Alternatively, force a manual update when the OTA firmware is being broadcast.

And then, happy TV watching and recording!

~

I hadn’t realised that these devices can do over-the-air updates, but I guess it’s a logical extension to the switch to digital. It’s quite cool to see the device pulling down an update without having to plug in a serial or network cable. At the same time, I’m a little disappointed that I don’t get to hook my laptop up to the PVR to flash the firmware and play geek. Maybe next time.

~

Of course, if I were to buy a new PVR today, I’d be getting the Humax HDR-FOX T2 HD 1080p 500GB Recorder with Freeview HD which is all shiny and has HD in the name and so is clearly better. Guess I’ll have to ‘accidentally’ put a few thousand extra volts through my newly-fixed 9300 ;-)

Posted in Personal, Technology | Tagged , , , , , , | 5 Comments