Cross-platform cloud storage with Dropbox

When a good friend of mine bought a Sony Xperia X10 Mini Pro (that small dude does have a keyboard) and couldn’t find JungleDisk in the Android market, I went looking for alternatives (I had already looked into cloud-based storage/ backup back in 2007) and found Dropbox.
Dropbox is an Amazon S3-based cloud-storage solution with client software for just about every system, Android included. Moreover it offers an API for platforms or applications that need Dropbox access as well. The basic account (with 2Gb storage) is free (sign up here and I’ll get some more free storage thank-you-very-much), so I installed it on the Windows laptop at work, on my Linux “disktop” and on my HTC Hero and (at first sight) all seems to work exactly as advertised (free, easy, cross-platform).
And now that I have external storage that allows sharing files with anonymous users, I could offload some files from my own server? But more importantly; I really should look into reworking that old backup shell-script again (I’ll have to get dropboxd up and running first though). Or maybe I’ll just install WP Time Machine to automatically back up just this blog to my Dropbox-account?

Inventing Androids made easy

Google announced “App Inventor for Android“, a Java Web Start based IDE that allows everyone and your mother to create innovative Android-apps by simply dragging & dropping blocks around;

App Inventor in Action

Granted, this isn’t the web-tech approach I was hoping for (just frigging copy/paste Palm HP’s WebOS’s MOJO, will you Google?), but this sure seems like a great leap forward! Now let’s hope people will do more then let their cat purr on our phones.
If you want to play around with App Inventor, you’ll have to apply for access first. While eagerly awaiting an answer from Google, you can already take some pictures of you cat or you could browse the documentation and the tutorials.

March of the Androids

Lots of exiting things happening in Android and HTC Hero-land these last few weeks:

  • June 22nd: I flash my HTC Hero with VillainRom 10.3 (i.e. Android 2.1 aka Eclair + HTC Sense)
  • June 23th: Google releases the source code for the blazingly fast Android 2.2 (aka Froyo)
  • June 23th: CyanogenMod announces that he and his team will create CM6 based on these sources for a great number of HTC devices, including the Hero CDMA (the US model for Sprint)
  • June 29th: HTC finally pushes out Android 2.1 for Hero in Europe
  • July 1th: The VillainRom-guys announce VillainRom 12 based on that new ROM
  • July 3th: Lox, one of the CyanogenMod developers, announces the first Hero (GSM) Froyo-build
  • July 5th: HTC released the kernel sources (based on 2.6.29) they used for Hero
  • July 5th: Lox & co are working on a merged HTC Hero GSM and CDMA build based on the official kernel sources

So I flashed my Hero again, with VillainRom 12 (clearly more responsive then 10.3, a few bugs are solved as well) and I’m looking forward to flashing CyanogenMod 6 once that’s stabilized. Because, after all, Hero’s like their Androids fresh, don’t they?

Eclair on HTC Hero: going rogue with Villainrom

I flashed my HTC Hero again, this time with an Android 2.1 image from Villainrom. Why not wait for the official update? Well, we’ve been waiting for quite some time now, the HTC-update might not even work on a rooted device and a colleague of mine was running Villainrom 10.1 for over a month now and was quite pleased with it.
So if you want to go rogue as well, go Villainrom using this installation guide. And in case things happen that aren’t described in that detailed howto, here are 5 things I had to learn the hard way;

  1. Formatting your SDCARD when on a Modaco rom might not work, having a colleague nearby who can format for you on his handset or PC might help.
  2. If flashrec complains “Could not run command” but your device is already rooted then forget about flashrec, you’re a superuser now
  3. nandroid+ext might not work, just perform a normal nandroid backup
  4. market downloads sometimes don’t work, in my case this was solved by resetting privacy and location-sharing settings to their (permissive) default settings
  5. Villainrom provides OTA-updates, but these aren’t always applied, re-downloading and re-applying the update did the trick for me.

My first Android 2.1 impressions; clearly snappier (and tests show 2.2 to be a lot faster still), some great apps on the market that weren’t there for 1.5 (Google Goggles looks great!) and most importantly; one of the best mobile browsers around (as confirmed by Quirksmode Webkit tests). So yes, I love my Eclair!

Why I’m rooting for HTC to buy Palm

It seems like ages, but just one year ago I had very high hopes for the relaunch of Palm; the OS was based on Linux, the UI seemed great (multitasking done right from day 1) and their Mojo-framework would allow applications to be developed with nothing but html, css and javascript. But the Palm Pré and Pixi weren’t the big hit, Palm has been hemorrhaging cash for years and they are now actively looking to be bought.
Apperantly Lenevo, Huawai and ZTE have expressed interest, but I for one am especially rooting for HTC. They do great hardware (e.g. my old Qtek 9100, my current HTC Hero and Google’ Nexus One) and they have exprience with a multi-OS product line (Windows Mobile and Android). But most importantly; they have Sense UI!
Sense is the user interface that HTC puts on top of WinMo and Android, to provide users with good looking, easy to use home screens that feature widgets to display e.g. calender, mail, clock, weather, but also information from Facebook, Twitter and Flickr. WebOS could really help HTC broaden and deepen Sense; e.g. by porting the WebOS multitasking cards metaphor, Synergy (unified contact list, deeply integrating internal sources and social web) and the nifty notification system. And Mojo could (easily?) be ported to WinMo and Android as well, HTC could then open up Palm’s App Catalog for all HTC WebOS/Sense devices, allowing developers to create, publish and sell mobile applications for multiple operating systems!
Picture all of that and all of a sudden you’ll see a major player that has the hard- and software and the experience to challenge Apple at home and abroad and in court with great hardware and, thanks to WebOS, even greater software. Go HTC!

Hemorrhage

WordPress galore: plugin bugs, android app, json-api & wp 3.0

Some random WordPress-related thingies I’ve been looking into;

  • I bumped into a weird bug in css-js-booster which caused error-messages like
    <!-- Booster had a problems finding wp-content/
    plugins/css-js-booster/../../../../../../
    3f540bbd99f8ebecb73880a685db76ae_plain.css -->
    

    to appear in the html-source, although all CSS seemed to be processed. The problem was caused by PHP’s safe_mode and got fixed in 0.2.2, thanks der Schepp!

  • A few days ago my entire WordPress-blog returned empty pages, the admin-section included. Turns out that this “white screen of death” is a known issue with the WP super-cache plugin when combined with PHP APC (2 of the main components of my “Speed up WordPress“-post). As this only occurs rarely, I’ll stick to restarting Apache for now (I don’t want to switch back to eAccelerator) but I hope the APC and WP Super-Cache teams will look into this further.
  • After ditching Google Analytics, I looked into how WordPress stats are collected. Indeed, the script is sourced at the end of the HTML, thus slowing down the rendering of the page.  Let’s hope someone at Auttomatic reads Steve Soulders’ very interesting blogposts on “Performance of 3rd Party Content” and decides it indeed is time follow Google Analytics’ example and switch to asynchronous loading of the WordPress stats Javascript.
  • I installed the WordPress Android application and played around with it a bit. I don’t think I’ll be posting with it any time soon; writing on a small touch-device is a hassle, there’s no such thing as a rich HTML editor and  updating pages and especially posts or comments is very slow (because of the incredible overhead and complexity of the xml-rpc API?). Still, nice to see the WordPress-icon on my HTC Hero 😉
  • Thinking about that clumsy WordPress xml-rpc API (which I experimented with approx. 1 year ago), I started looking for a plugin that provides a rest/json api. JSON API does just that and it has great potential, but it might not be suited for public-facing WordPress installations just yet, as it allows unauthenticated users to create new posts. So you might want to wait for authentication to be added to JSON API before installing it?
  • And I just read that the first beta of WordPress 3.0 was released; wordpress and wordpress.MU get merged, menu management and a new theme are but a few of the new features. Wouldn’t is be great if functionality/ ideas from wp-super-cache, css-js-booster and json-api would be added as well?

Google loves html5 (in Android 2.0)

android 2.0 aka eclairThe specs for Android 2.0 were just released and whaddaya know;

Support for HTML5:

  • Database API support, for client-side databases using SQL.
  • Application cache support, for offline applications.
  • Geolocation API support, to provide location information about the device.
  • <video> tag support in fullscreen mode.

Great, no more fiddling with Gears just for Android’s sake. Let’s hope they adhere to the relevant html5specs the same way Apple does, so you don’t need to do differentiate between iPhone os3 and android 2.0 when creating offline-capable web-apps!
Off course there’s more than just html5 in this new Android version, here’s a short video showing some of the changes in Eclair:

Android 2.0 Official Video

A personal message for HTC to finish this blogpost: feel free to skip Android 1.6 to focus on using 2.0 as the basis for my Hero‘s next rom update 🙂

Bridging the gap between html5 and Gears

my trash in gmail mobileGoogle claims HTML5 on the web is the future of applications on mobiles and they present the high-end mobile version of Gmail (on iPhone and Android) as an example of what can be achieved with web-based applications. But, as I wrote earlier, the Android-browser does not support HTML5’s webdb, appcache or geolocation at all (and neither does Google Chrome). Instead Google offers similar (but different) functionality in their Gears-plugin.
Almost the same functionality, but with a different API, how did they implement mobile Gmail? Well, Appcache (a.k.a. “offline web application”) seems to be implemented separately. That  makes sense as defining which files can be stored locally is more or less a one-off job. But for more complex data-oriented offlining with a local database, Google created a wrapper-script that hides the Gears and HTML5-API’s and the underlying differences, thus offering a unified way to store and retrieve information from a local db. The code, including an example, can be found in WSPL’s svn-repository in Google Code.
And while it’s not used (or needed) in gmail, there also is a a geolocation-wrapper to abstract those HTML5 and Gears-implementations. Once the wrapper is instantiated, getting the user’s location on iPhone (OS3), Android and some others becomes as easy as doing:

geo_position_js.getCurrentPosition(success_callback,error_callback);

Great stuff, those wrappers. But wouldn’t it be even greater if Google’s browsers would support the native html5-specs, so these stopgap solutions  weren’t needed to start with?

Impatiently flashing my HTC Hero into shape

the new android recovery image menu in actionI’m an impatient man, so although I heard rumors that Mobistar might be testing the HTC Hero update (which is Belgium-specific, as the YouTube application has to be removed because of privacy law concerns), I decided to go the “less official” way and root and flash the darn thing myself. The process was pretty easy (thanks for the info Thomas & Serge), the outcome is great; my phone is a better Hero for it!
So suppose you’re as impatient as I am, suppose you don’t care that this may void your warranty, suppose you’re not scared of bricking your brand new toy, suppose you’re a not entirely technically ignorant, then you could follow these steps:

  1. Root your HTC: by using flashrec.apk to flash a new recovery image on your HTC as described here. If you get a “backup failed” error in step 10 as I did, you just need to power off and on and try again (the backup itself isn’t used anyway, that step is just needed to have flashrec allow you to continue).
  2. Upgrade your rooted HTC: from the new recovery image menu flash MoDaCo custom ROM v2.x (I installed 2.2, 2.3 was released a couple of hours ago) to your system as described here. And don’t forget to wipe before flashing as I did.
  3. Update to the latest radio package to version 63.18.55.06EU_6.35.06.18 from the recovery image menu (you should know the drill by this step) for optimal radio performance.

But you could also wait for the official update, off course …

Flashback: C64 Encounter op Youtube

Héél lang geleden speelde ik Encounter op m’n Commodore 64 (ik heb er op zolder nog eentje staan, for old times sake) en dat zag er zo uit:

Encounter

Er is overigens een port van c64 emulator Frodo voor Android en de Encounter-d64 is ook downloadbaar, nu nog een joystick op m’n Hero vijzen en we kunnen weer spelen! Anders moet ik die flash-based c64-emulator eens proberen?