Archive for the ‘Handhelds’ Category

Chris Blizzard on Mozilla

Monday, April 14th, 2008

Chris Blizzard, now working at Mozilla and Linux integration, gave a most interesting talk, about Mozilla, and their new mobile initiatives. We managed to speak (but not nearly enough) about the mobile strategy afterwards (i.e. I think limiting it to the n810 or tablet like devices alone, seems myopic; phones are where its at), and I hope the conversation continues. Now for some quick notes.

- mozilla.org, is where products create motion. Been around for just over 10 years now
- Mozilla targets human beings (not developers)
- Focus on protecting open standards
- “Creating Joy!” for users
- Avoid feature creep (this is the secret of add-ons) - control the product, and just say, go build an extension. It isn’t just about customising your experience, but its about keeping the core experience joyous and uncluttered.
- Fix real problems on the web (i.e. pop-up blocking)
- 500 contributors to Firefox 3, 75 Localization teams, 200 people, 11,000 patches, 165+ Million users, added +45 million users in the last 6 months, and doubled in the last year - these are impressive statistics (I for one, am impressed by their developer community)
- Who are we targeting? Read Seth Godin’s blog entry “Why downloading Firefox is like getting into college“. Also, Stephen O’Grady’s Blog “Ode to the Common Man
- Bring the full web to mobile. FF3 is where great technology for mobile exists.
- Apple has reset the idea of what the Internet on a mobile should be, thanks to the iPhone. They’ve definitely opened up the market for mobile based browsers. Note, no reason to redesign your website for mobiles in the future…
- Fennec - mobile browser experience
- Performance numbers on the n810 - faster than MicroB and WebKit. Not even optimised for ARM (i.e. no atomic locking), but already at a headstart
- Fennec will support add-ons. Touch and keypad versions are coming soon… Keep in mind all this is just getting started
- Android includes WebKit as part of the base platform. Mozilla on Android? Not quite yet, since Google wants only Java based applications. No mention of native applications yet from Google.
- Not really considered Series 60 (it would be nice), no talk of PalmOS, there is some form of Windows Mobile version, but its not released
- Gecko is hard to embed, in comparison to WebKit. The technology needs to improve, so that the gap that WebKit has, doesn’t widen further

Technorati Tags: , , , , , , , , , , , , ,

The Eee gets a memory boost

Thursday, March 20th, 2008

Deciding to spend my credit note immediately at CPL earlier today, I picked up a 2GB stick of 667MHz DDR2 SODIMM, for laptops. Getting home, I popped open the Eee (breaking the warranty void if seal broken sticker), took out the 512MB stick, and replaced it with the 2GB of RAM.

Booted it up, and the Eee is going faster than ever. XFce4 with 2GB RAM is just fabulous. Best $69 that was spent today.

I was looking for RAM sometime last month, even in Kuala Lumpur, and was told that it was all out of stock, so I’m generally thrilled I managed to grab it here, today.

OLPC browser throwing sec_error_unknown_issuer

Saturday, March 8th, 2008

I had the opportunity to visit a school today. Not quite a school you’ll expect to roll-out a deployment of OLPCs (its a top-notch boarding school, with yearly fees that cost as much as completing a 4-year university degree), but a school in Victoria, nonetheless.

Microsoft products are entrenched in the Victorian school system. It so happens that Microsoft ISA Server 2006 is used to power mail for the students. Trying to access mail via the browser, proved to be impossible with the OLPC.

OLPC browser failing on secure connections (screen 1)
Secure Connection Failed: The certificate is not trusted because the issuer certificate is unknown

The error code received: sec_error_unknown_issuer. So I thought I’d try out giving an exception.

OLPC browser failing on secure connections (screen 2)
Getting an exception? You need to find advanced encryption settings

Exceptions are impossible to get, seeing that there’s no way to get to the advanced encryption settings location. After coming home, I decided to check up on this (which involves hopping on to the developers IRC channel). Turns out the ticket is #5534: Browser cannot connect to sites with non-standard Certificate Authorities.

I added to the ticket, mainly because the MS ISA Server 2006 actually had a valid certificate, signed by VeriSign. It works fine in Firefox, but just not on the OLPC. Apparently, there’s an FAQ about this too: How to ignore SSL warning about invalid security certificate? However, the idea of installing Opera, just doesn’t bode well with me - the browser itself, must work.

Time to get hacking…

Technorati Tags: , , , , , , ,

The Eee PC: After a week

Sunday, February 3rd, 2008

After writing my impressions on Eeedora, it seemed only natural to write about the hardware. There are definitely some issues that I found with the Eee PC that I am not too happy about (and some that are just great).

For starters, who makes a laptop these days, without integrated Bluetooth? It just seems daft. This is a tiny sub-notebook, and how can I get on the Internet if I’m sitting in a train or a bus? The most natural thing would be for me to enable Bluetooth on my mobile phone, and use it as a modem. Oh wait, the Eee PC is missing Bluetooth, and its a WiFi only device. Sure, I can stick a USB Bluetooth dongle on it, but thats an external contraption, that I’ll have to make do with.

I was going through the fine print, and while ASUS provides a 2-year warranty on these laptops, the warranties themselves, seem to be limited to the country of purchase. These warranties, are not international. Who makes a laptop these days, that doesn’t expect the user to travel much? I can imagine that when travelling, the Eee PC can’t be my only laptop - I’m the kind of person that finds Dell’s next-day-onsite-business warranty pretty darn useful.

The keyboard, is tiny, but its expected for such a tiny laptop. I’m wondering why so much space is reserved for the speakers, and why not just give us a larger screen? I have a feeling its got to do with cost, and this can only get better in the future. I’ve noticed that the keyboard requires you to occasionally “jab” it harder, to get the key press that you want. Or its just that my fingers aren’t nimble enough, on this small thing.

The location of the left Shift key, is silly. In VIM, you occasionally tend to press the Up Arrow key, as opposed to the Shift key. I’ve seen people hack their Eee, to ensure that this stupidity is reversed. However, I’m not into moving keys around, to satisfy my needs at this stage.

The one button mouse, that does both right and left clicking is a very nifty feature. How do I middle-click? This is a very crucial feature in Unix land, and especially useful in Firefox (tabbed browsing).

The battery life, for something this tiny, sucks. It sucks even worse, when the WiFi is enabled (quite naturally). My dreams of it being used daily during a conference, or at a meeting, has clearly been shattered. To fix this, I might have to order an external battery pack, that outputs between 9-12V (apparently, 9V is too little to power this 9.5V device, but 12V is just fine).

I’m pretty happy with the performance of the SSD:

[root@Eee ~]# hdparm -tT /dev/sdc

/dev/sdc:
 Timing cached reads:   566 MB in  2.00 seconds = 283.05 MB/sec
 Timing buffered disk reads:    4 MB in  4.39 seconds = 932.40 kB/sec

[root@Eee ~]# hdparm -tT /dev/sda

/dev/sda:
 Timing cached reads:   566 MB in  2.00 seconds = 282.50 MB/sec
 Timing buffered disk reads:   66 MB in  3.07 seconds =  21.50 MB/sec

/dev/sda being the internal SSD, while /dev/sdc being a USB thumb drive (2GB, Sandisk Cruzer Micro).

The built-in video-camera, is pretty standard. Its resolution isn’t great, but it suffices for a video chat.

Sound, is OK. I installed VLC, to allow me to play video/audio, and realised that it was going to set me back, in total, about 21M, with all its dependencies. Hardly appealing, but I was going to have a more interesting time, bringing in Totem, for instance. I have managed to watch a DivX movie, without too much trouble. Will I be able to watch one, entirely, say, while on a plane (or train), I don’t know.

Yes, video, and DivX decoding, works fine on a 630MHz processor. Why has ASUS under-clocked the Eee, giving it a 300MHz performance slack? Did the difference, really save battery life?

There are many ways to hack an Eee. The many guides online, showing how and what one can do (from simple Bluetooth, to a GPS or a touch screen) is just amazing. I don’t plan on hacking my Eee (yet, anyway), and the most I’m going to do, is go get more memory- RAM is always a good thing.

Its small. I spent this week using the train and tram system quite a bit, and realised that even though the trips themselves were short, I was getting some work done (like finding time to write blog entries, and some code - I haven’t gone as far as installing a toolchain on the Eee yet, but if you can find some Internet access later, committing code is easy). Its OK that its cramped. And its OK that it works on top of my huge backpack. These are clear benefits of its size, and hopeful durability.

Its cheap. I had a colleague who’s laptop (a Macbook) died the night before he was about to give a talk. He could head a few blocks down, buy an Eee, and immediately start re-writing his talk again. I saw him deliver his talk, using the Eee and the stock Xandros that was installed on it. In the old day, if your laptop died, you just started to walk around with a notebook and pen,and you gave your talk informally, without slides :)

Anyway, enough rambling (I’m about to reach my stop). Next up, what powertop thinks of the Eeedora install, and re-spinning it.

Technorati Tags: , , , , , ,

Eeedora Impressions

Thursday, January 31st, 2008

Being the long-time Linux user that I am, there was no way I was going to be satisfied with Xandros, which is the stock Linux that ASUS ships with the Eee PC. I was stuck for choice between Ubuntu and Fedora, and after some careful evaluation, I decided that Fedora, was right for me.

Getting Eeedora, was pretty straight-forward. The installation wiki is pretty accurate when it comes to the “how” of installing Eeedora. For me, it was made easier that I had a Fedora system already, so I could run the tool to create Live CDs from the livecd-tool package.

One snag I noticed, and this is more with the Live CD script, is that when you don’t have a bootable USB thumb drive, it tells you that, but doesn’t quite tell you it didn’t make an installation on the thumb drive. I guess the script could be more idiot-proof. Anyways, making the drive bootable is easy.

Now, once that was done, it was on to installing on the Eee. I ensured that in the BIOS (accessed via pressing F2), the first boot device was the USB thumb drive attached to the system at boot-up. However, it was never booting into Eeedora, and I only managed to see the Xandros start up. Highly disappointing.

Turns out, that hitting the Esc key was the magic sauce, during boot-up. Only when doing that, was I given a boot menu, and then I could choose if I’d like to boot off the internal SSD, or the USB thumb drive. Once that was sorted, I was pretty happy to see a familiar Fedora-looking screen (sure, it said Eeedora, for legal reasons, but I think its a pretty darn good spin :P).

The installation process went on pretty smoothly. During partitioning, I was pretty much rid of Xandros - the chosen default was actually the most sensible. Just one / partition, filling up the entire disk, with no swap. As usual, anaconda (the Fedora installer) will warn you that not having a swap partition will be detrimental to performance - I wonder how many newbies might decide to create a swap partition (kind of a big no-no, on these SSD based devices).

One thing I did notice was the use of ext2 partitioning as opposed to a journalled filesystem like ext3. The natural question then comes to mind, as to why not just use jffs2?

Once the filesystem partitioning was sorted, and GRUB was chosen as the default bootloader, anaconda proceeded to install packages. This was a fairly speedy process, and once that was complete, it was a simple reboot, and I was booting off the SSD before I knew it.

You’re logged in by default as the eeedora user. You get a stock XFCE4 environment (or stock, that I would think anyway), and it comes with the basic utilities you need to get working (Firefox, wireless, etc.).

There were some things I obviously did not like, so decided to poke a little further. First up, was creating a user, that was not”eeedora”.

Dissecting the .bash_profile of the eeedora user, I noticed some things:

  • pulseaudio -D - pulseaudio as a daemon for the user? Why, sound seems to work just fine on my Eee without it
  • xsetroot -solid steelblue - seems OK, but not actually required anyway
  • startxfce4 - if you want a GUI the moment you login, this is useful. But it only really works out well, because of the hack in /etc/inittab that says c7:12345:respawn:/sbin/mingetty –autologin=eeedora tty7. Seeing that I disabled autologin for the eeedora user, I pretty much see a login screen, and startxfce4 manually. Sometimes, I can actually get away with working in just a shell… However, I can see this from a usability point of view, I guess. Of course, the other issue is that the eeedora user, does not actually have a password!
  • Logging out of XFCE4 and going back to the console, immediately triggers a machine shutdown. This seemed counterintuitive.

Needless to say, I disabled all this, in my new user account, as well as disabled autologin in the inittab.

Why XCFE4? Its a 900MHz Mobile Celeron processor, deliberately underclocked to 600MHz, with 512MB of RAM. This is the kind of environment, that can run GNOME. And when we notice problems with GNOME, its time we fixed it. Heck, I have an almost similarly configured IBM laptop, without PAE, that runs GNOME just fine!

I must commend WiFi Radar - this is something that pretty much, just works. And its small. It looks unmaintained, sadly, so its probably time to take an interest in it. Fn+F2 enables and disables wireless very well. I do however notice that even with the wireless disabled, the WiFi light (in blue), remains turned on. I find this to be rather quaint, and must prod it further.

Brightness control (Fn+F3/Fn+F4) seem to work well in Xandros, but I can’t seem to replicate such joy in Fedora. There is absolutely no reason why this shouldn’t work. It does annoy me, because its sucking precious battery life, from my usage of the Eee, by keeping it nice and brightly lit, when I’m on the battery.

Suspend and resume, just work. And because we’re dealing with an SSD, it just works, really fast as well. Sure, when I open up the screen of my Eee, I actually need to press the power button to get it to resume, but this kind of behaviour is perfect for me.

Do I like recompiling all the magic in /root/eee-setup, everytime I get a new kernel? No. Speaking with Dave Jones though, there is an expectation that all the drivers will be available in F9. Kudos.

Webcam? Works fine when I run lucview. Doesn’t work with the Skype beta that I get from the Skype download site. No idea what is missing, I just feel a bit bummed that I’ve got to find the solution to this issue at some stage soon.

As an install report, I think this does, just fine. Its now just time to hack on the distribution, to get it to the way I want it to work.

Asus Eee PC, OLPC, all in one week

Wednesday, January 30th, 2008

This month has clearly been an interesting one. Maybe, I should reserve it to be just this week.

On the weekend, I went looking for a rack, and came back with an Asus Eee PC. Today, while there were about 70 OLPCs given away to lucky, random linux.conf.au 2008 attendees, I wasn’t one of them.

However, I got one of the reserved units. Apparently, 100 units were shipped. Excellent.

Pack comes with a power supply, laptop, manual of some sort, and Jim gave me an Australian adapter (it comes with a US based plug).

Like I said in a previous post, I see great reason for the OLPC to rock. Now, I’ve got plenty of work ahead of me, to ensure thing do. Tasks include ensuring Fedora 9 boots off the Eee (I spoke to DaveJ about this, and the ideal plan is to make it installable by default - now its all driver hacking).

Excited, I am, naturally. Working on Fedora again. Whee!

The Eee has enabled me to work on the train and tram rides to get from South Yarra to Melbourne University. The OLPC, just got on my network (ifconfig -a eth0, find MAC, and voila! it works) and I’m sure to be using and hacking on it soon.

Time to sleep, these 9am keynotes are a killer. I am so not a morning person.

OLPC, by Jim Gettys

Tuesday, January 29th, 2008

Some notes from Jim’s OLPC talk, which was full. I’ve added thoughts about (rural) Malaysia, because its naturally close to my heart. I’ve not had a similar opportunity to go around rural Australia (does it even exist?), and things are (I think) a lot better in Australia, than they are in Malaysia… I’m sure Jim’s talk video will be up soon, and his slides are worth going through - some interesting pictures there too.

Everybody wants the best for their kids. Most kids in the world, have no electricity at home :( Parents, themselves, might be illiterate or aware of the world. Teaching is not a valued profession by society, sometimes, and worse, books sometimes may not exist. Classrooms? You might not be so lucky.

So, what is the OLPC trying to achieve? A few hours of access in the computer lab every week, is not enough. Children lack opportunity, not capability. We should focus on high-quality education for all.

If schools exist in some places, there are insufficient classrooms. True, take Malaysia for example - there are two sessions to ensure folk get an education (morning, and afternoon sessions). This makes one get a fewer hours per day in school. Schools are often very crowded, so cables don’t really work.

The OLPC has a sunlight readable screen. This means classrooms can be outside. This won’t really affect Malaysians, seeing that there are actually classrooms. Electricity, might be hard to come by in some rural areas, but there are at least classrooms (or cabins, even).

In e-book mode, the OLPC runs for about 13 hours in B&W mode, and 8 hours in colour mode.

Parents tend to not be computer literate. Girls tend to have lower literacy than boys. Do we have fonts, for said languages? Does a computer interface (or even Sugar) apply, because we base our UI on metaphors?

Teachers, often only have 5-6 years of schooling themselves. Luckily in Malaysia, there are teacher training colleges, and you don’t become a teacher, unless you’ve gone through teacher training. However, teaching in Malaysia, does seem like an undesirable job (low paying, for example, might be an answer). One laptop/teacher? I honestly don’t even think this has been achieved in Malaysia.

What does one do about drop outs? Logistics, sometimes make it not feasible, for one to get to school, every day. Even in Malaysia, we know of people spending 2 hours to walk, to get to school. These stories move you, and you wonder, if its possible that they don’t have to go to school daily. People in the Klang Valley (read: Kuala Lumpur and surrounds) don’t even have electricity (or can’t afford it).

Regular laptops take about 10-20 watts, but the OLPC goal is 2W! They’re not there yet, but they’re getting there. 3-5W isn’t good enough.

A small child can generate 5-10 watts. Its a 21 watt battery. So the idea of hand cranking, too much is not good. Jim passed around a hand crank, and a solar panel. Both cost about the same, about USD$12-15. The solar panel does 5W, and costs about USD$12.

Mesh network, demands that the wireless is always on, otherwise, packets will not be forwarded.

Whats the CPU, on average, doing? Usually just refreshing the screen, and forwarding packets. Incidentally, the OLPC screens use LEDs - this makes them easy to recycle. The OLPC is an environmentally friendly laptop!

The OLPC actually turns off the CPU and most of the system - it just keeps the wireless and mostly, the display on. They use a DCON chip, and Marvell’s wireless chipset allows this to work well. During e-book reading, you’re only using 1.5-2.5 watts, depending on the screen and wireless use (so the 21 watt battery will do wonders).

Generators at schools, means that there’s a great cost, for fuel. And fuel prices are going up. So power for regular laptops, suck.

Jim highly recommends us to read Three Cups of Tea. Its been on the New York Times bestseller list for quite a while.

I noticed someone using the hand crank in the talk. The hand crank, can be mounted to a table, by the side, and then cranked. Very smart design. It however, does make noise. Imagine a classroom filled with folk, cranking their OLPCs? I don’t think the teacher will be very pleased.

The OLPC’s are hardy. You want to ensure they survive a rainstorm or a duststorm. Accidents happen, so allow kids to repair these things. A repair station can be very far away. The machine itself, can be assembled and disassembled, with a screwdriver. This could be interesting if its sent around Malaysia - rural areas in Sabah/Sarawak, and probably on the Peninsular, will definitely benefit from this.

Mountains are great for the network. Speaking to David Woodhouse earlier, and he mentioned that dry climates (like what we get in Melbourne, and generally the rest of Australia) is great for the mesh network. However, humidity, is generally not so good - this can affect Malaysia, especially during the monsoon season, the humidity goes up pretty high.

5 year life is aimed at. 2,000 battery cycles is the aim. Now, imagine replacing books? In Malaysia, 5 years means 5 years of either secondary education, or 5 years of primary education (well, its 6, but with the OLPC, I can imagine kids get to skip grades…) Books are really expensive, and while going to the schools are generally free, its not free to get books. Students going without books, is just silly. It realistically seems that the OLPC might be ideal to kids in primary school, rather than secondary school. I don’t actually know if its expandable for learning biology, chemistry, physics, etc.

The “Show Source” key exists. Learn, learning, by debugging!

The aim is to create children that will be both consumers, and creators. This I see benefiting not only Malaysia, but also Australia (ICT deficit in Australia is the largest in the budget, at something like $21 billion, and growing yearly).

Sugar: GTK+/Pango/ATK/Cairo. Python is what is used to tie it all together. Presence, allows you to build collaborative applications with each other. Take pictures, and share with people all around you. That’s what the “Share” activity in the UI is for.

How do you deal with parents who are suspicious with the OLPC, due to illiteracy? Involve them in the process. Do it upfront, don’t wait till later.

I’m actually highly moved by the OLPC. My recent travels to Vietnam, Cambodia, Thailand, India, China, and of course Malaysia, has made me think hard about what we need to do for spreading education and FLOSS. I’m sure I’ll talk about this more, later…

Trying to reliably make MyISAM crash; Maria is sturdy as

Tuesday, January 29th, 2008

I’ve been very excited seeing that we announced the Maria Engine Preview. Giuseppe and I were trying to setup a demo, for Maria, at the lightning talks happening later today, towards the end of the MySQL MiniConf at linux.conf.au 2008. It involved MySQL with Maria, and an Asus Eee PC. For the demo, we wanted to show pulling the plug, which can be done either via a kill -9 `pgrep mysqld` or pulling out the battery of the Eee.

However, we failed to get MyISAM to reliably crash! Yes, imagine that, we actually want it to crash - pity that it might have only happened about 1/3rd of the time we tested it. The magic we were looking for:

check table t1;
+---------+-------+----------+---------------------------------------------------------+
| Table   | Op    | Msg_type | Msg_text                                                |
+---------+-------+----------+---------------------------------------------------------+
| test.t1 | check | warning  | 1 client is using or hasn't closed the table properly   |
| test.t1 | check | warning  | Size of datafile is: 23998464       Should be: 16000256 |
| test.t1 | check | error    | Recordlink that points outside datafile at 23000368     |
| test.t1 | check | error    | Corrupt                                                 |
+---------+-------+----------+---------------------------------------------------------+
4 rows in set (0.09 sec)

What we got instead was just a warning mentioning a client is using or hasn’t closed the table properly. Clearly, not so good for a demonstration.

When the magic of set storage_engine=maria; was run, and you crashed (either via pulling out the battery or doing a kill operation), Maria would survive the crash. At worst, you’ll see:

check table t1;
+---------+-------+----------+------------------------------------------------------------+
| Table   | Op    | Msg_type | Msg_text                                                   |
+---------+-------+----------+------------------------------------------------------------+
| test.t1 | check | warning  | Auto-increment value: 0 is smaller than max used value: 32 |
| test.t1 | check | status   | OK                                                         |
+---------+-------+----------+------------------------------------------------------------+
2 rows in set (0.20 sec)

So, Maria is clearly tough, as Giuseppe puts it. Give it a twirl (binaries, sources), and hop on over to the Maria Forums if you have questions. And if you’re checking out/building from source, you might find the Building MySQL from source guide handy

Alas, only a demo in a VM today . It seems more reliable inside a VM, not quite on the Eee. Besides, the poor SSD has been through quite a number of fsck’s now. BTW, one other thing to note: Maria log files seem to be pretty huge. Running it on a SSD that has about 1.5GB of free space (total, 4GB), is harsh.

For reference, the test (generally, wait for count to reach 128, switch terminals, and kill mysqld/pop battery off):

drop table if exists t1;

create table t1 (id int not null auto_increment primary key, b longblob) ;
select table_schema,table_name,engine
     from information_schema.tables
     where table_schema=schema() and table_name='t1';
insert into t1 values (1, repeat('a',1000000));
insert into t1 select null,b from t1; select count(*) from t1;
insert into t1 select null,b from t1; select count(*) from t1;
insert into t1 select null,b from t1; select count(*) from t1;
insert into t1 select null,b from t1; select count(*) from t1;
insert into t1 select null,b from t1; select count(*) from t1;
insert into t1 select null,b from t1; select count(*) from t1;
insert into t1 select null,b from t1; select count(*) from t1;
insert into t1 select null,b from t1; select count(*) from t1;
insert into t1 select null,b from t1; select count(*) from t1;

Technorati Tags: , , , ,