Emotional rollercoaster: installing Jelly Bean on a Galaxy SII

Jelly Bean "about" screen on Samsung Galaxy S III’m happy! Here’s why; when I bought my Samsung Galaxy S II a year and a half ago, it came with Android 2.3 aka Gingerbread. Last year Samsung released an official update for Android 4.0 (Ice Cream Sandwich). And while most manufacturers stop after one major upgrade, Samsung promised Android 4.1 Jelly Bean for the aging SII a couple of months ago. And so early this week I took a ride on this Jelly Bean rollercoaster:

    1. Yay, Sammobile reports Samsung started pushing out Jelly Bean for the Galaxy S II
    2. Damn, apparently the ROMS are only available for Spain & China, not for my region yet.
    3. Yay, the Spain version has support for my region after all, downloading.
    4. Damn, can’t shut down my phone to switch to “download mode”, it just reboots.
    5. Yay, re-inserting battery while holding Volume down, Home & Power switches the phone to download mode after all, flashing with Odin!
    6. Damn, flashed and rebooted, but installation wizard hangs, rebooting.
    7. Yay, installation wizard completes after all.
    8. Damn, ADW settings screwed (widgets & some shortcuts MIA)
    9. Yay, almost done configuring ADW (except for the tethering shortcut on my desktop, can’t seem to reinstate that).
    10. Damn, no keyboard selection in notification bar, so no Swype!
    11. Yay, Swype available after all, hidden in “Language & Input” configuration.

So does Jelly Bean put the old S2 on the same level as the S3? Not really, some advanced S3-features aren’t included, think the ones in the Premium Suite for S3 that Samsung released a couple of months ago, especially “multi-window” (which might make less sense the smaller S2 display anyway). Both the Calender application and the mail-client (for my Exchange-mail) changed. Samsung replaced Calender with their own S Planner, which has a more skeuomorphic UI which doesn’t fit with the rest of the OS. Good thing you can install the default Android Calendar from Google Play. Mail got slightly better, with a nice little refresh-button and a timestamp showing when the last connection occurred (I don’t do push mail). But most importantly: Jelly Bean does feel more smooth (thanks to Project Butter) and at first sight battery life seems better as well. So, yeah, I’m happy!

As found on the web (January 28th)

generic (feed #49)
generic (feed #49)
blog (feed #46)
generic (feed #49)
generic (feed #49)

Ik, slimmer dan (toekomstige) leerkrachten?

een goed rapport, ik, echt! en gij?Ik ben nooit een bolleboos geweest. Niet van de domsten, maar dus zeker ook niet van de slimsten. Ik ben dan ook enorm bescheiden, een mens moet zich niet beter voordoen dan hij echt is.
Maar als het goed is, moogt ge het ook zeggen natuurlijk; ik ben slimmer dan (toekomstige) leerkrachten. Pas op, dat zeg ik niet, dat zegt Knack. Ik had immers 91 van de 92 meerkeuzevragen over aardrijkskunde, geschiedenis, politiek en economie in deze test juist beantwoord, wat in leraren-taal toch een dikke 9/10 is. Flink afgerond, want in het onderwijs houden ze het, blijkens de studie waarover Knack bericht, toch liever simpel.
Geen 10 op 10 dus; op een blinde kaart de Schengen-zone van de Eurozone onderscheiden was niet makkelijk en die eerste kruistocht juist plaatsen was -ik geef toe- toch een klein beetje een gok. Maar bij vraag 75 zag ik mijn perfecte score dan toch definitief verdwijnen toen ik de Slag bij Hastings een paar honderd jaar te laat op de tijdsas zette. Bummer.
Maar even serieus; nu Elise in de lagere school zit, heb ik terug meer voeling met ons onderwijs en ik heb niks dan bewondering voor de mannen en vrouwen die ons kleinmannen dag in dag uit met alle enthousiasme nieuwe dingen leren. Ik sta versteld van de vergevorderde differentiatie voor verschillende leesniveaus in het eerste leerjaar en van de pedagogische vaardigheden van de juffen en meesters. Maar als ik het artikel in Knack lees, kan ik niet anders dan een zagende oude vent zijn, die vindt dat het vroeger beter was. Vroeger, toen Mijnheer de Onderwijzer het wel allemaal wist. Of haalde die z’n kennis ook maar uit de 26-delige papieren voorloper van Wikipedia?

Multi-lingual WordPress the Easy Way

Imagine you run WordPress with English as default language, but some posts are in another language. Dutch, maybe? Up until a couple of months ago, you wouldn’t really notice anything about that setup. Google might be slightly confused, but us bloggers aren’t really into SEO anyhow, no? But with the release Safari 5.1, Firefox 16 and especially Internet Explorer 10, support for CSS Hyphenation became (somewhat) widely available and if your theme (WordPress TwentyTwelve or its performance-optimized 2012.FFWD child theme for example) has support for in the CSS, your hyphenation would yield weird results because of the fact that the browser uses the language attribute in the HTML to decide which dictionary to use.
The solution, if your theme is HTML5, is to add the lang-attribute to the article-tag if you have something to check the language with. In my case I just had to copy TwentyTwelve’s content.php and change line 11 into:

<article id="post-<?php the_ID(); ?>" <?php if (in_category('lang:nl')) { ?>lang="nl" <?php } ?><?php post_class(); ?>>

A real simple hack indeed; I check if the article has category “lang:nl” attached to it (which I already used) and set the language-attribute with the correct value if it does. Hyphenation now works for Dutch blogposts and I guess Google will be happier as well that way?

As found on the web (January 7th)

blog (feed #46)
generic (feed #49)
blog (feed #46)
generic (feed #49)
blog (feed #46)

Adopting an OSS-orphan: Autoptimize

I’m taking over support for the venerable Autoptimize WordPress plugin. Although I started out using CSS-JS-booster first, I switched to Autoptimize for my JS & CSS aggregating and minimizing pleasure somewhere in 2012, not in the least because it was the only plugin to offer conversion of background-images to data-uri’s. I hadn’t noticed back then that Autoptimize was already pretty old and that the developer announced he didn’t use WordPress any more and that he had lost most motivation. Fast-forward to December, when, while working on a Twenty Twelve child theme, I noticed that Autoptimize messed Twenty Twelve up severely. So I dug in, found some problems and fixed some others while I was at it:

  • leave html5.js be; aggregating it breaks HTML5-support in older IE versions
  • make sure the IE-specific CSS-files are loaded after the normal aggregated CSS
  • ensure both JPG and JPEG files are taken into account for conversion of background-images to data-uri’s
  • correct a bug that resulted in aggregated files not having a hash in them (having one or more autoptimize_.php can break things)
  • stop autoptimizing for logged in users (which broke the WordPress 3.5 admin bar again)

Based on feedback on the WordPress support forums, others were still using Autoptimize as well, needing bug-fixes and support so I contacted Turl a couple of days ago and proposed that I join his one-man team. He agreed, so I’ll be taking over Autoptimize as of now. The first update (1.4.1) with the fixes listed above will be pushed to SVN soon. I’ll provide support on the wordpress.org forums as well and release new bugfix-versions if needed. New features or other major updates however, are not on the roadmap (yet). I wouldn’t want my own children, WP YouTube Lyte and WP Donottrack, to feel neglected, now would I?

And now you can even have my WordPress password!

Being slightly obsessed with security, I was delighted to discover that two factor-authentication (OTP) using Google Authenticator client is not restricted to Google applications, but is fully standardized and as such can be implemented without dependency on Google services on any system. There is code (off course varying in quality and scope) available for PHP, .NET, Java and Python (and I’m sure there are others).
As you might expect after reading the title, there is a great Google Authenticator WordPress plugin which I installed in 5 minutes time earlier today. For the Drupal-heads; Antwerp-based Attiks have a module that implements Google Authenticator OTP which looks worth checking out as well (and I’m interested in your experiences with it, actually).

Looking in the mirror: 2012 numbers, 2013 goals

man in the mirrorAs I did a year ago for 2011, here I am looking in the mirror at my 2012 numbers and 2013 goals:

  1. This blog:
    • 130 blogposts (78 “real” posts and 52 aggregated lifestream-events)
    • 109285 pageviews, the most popular individual article being 5 tips to tackle the problem with iframes (8622 views). Off all new 2012 blogposts, Fix Samsung ICS Exchange connection errors was read most with 5727 views.
    • 294 comments (including trackbacks and my own replies)
    • Main goal for 2013: carry on, I guess? Maybe some more personal posts in Dutch. I’ve always loved to write in my native language, but it can be pretty time-consuming as I tend to rewrite a text multiple times before I’m OK with wording and flow (which I’m not as sensitive to in my non-native English).
  2. WP YouTube Lyte, my WordPress plugin to do “lazy load YouTube embedding”, is doing really well:
    • 9 minor and 2 major releases including the big 1.0.0 milestone
    • 66286 downloads (passing the 100.000 downloads mark in July)
    • Main goal for 2013 and long overdue; responsiveness but also even better performance (less reliance on JavaScript to do heavy lifting, using less http-requests).
    • Moreover, I was honored to see Yoast’s Video SEO plugin has support for WP YouTube Lyte and equally proud to be able to decline a commercial proposal to have my plugin add a link next to each and every LYTE player.
  3. WP DoNotTrack 2012 proved a fruitful year for my 3rd party tracking filtering plugin:

2012 was also the year that I got to know Drupal & Acquia a lot better, the year my lovely daughter learned how to read, the year I grew scared of Europe’s economical & Belgium’s political future, the year I saw Radiohead live and the year I finally learned how to fly.