Pages

Thursday, 18 September 2025

Re-reinvent: Finally at the new home

 If, as was promised 10 years ago, you go to blog.jking.id.au you will now be redirected to my new blog at jkingok.github.io .

Thanks for your patience, I guess?

Friday, 14 February 2014

Reinvent: Updating my identity on the web

Inspired by my attendance at linux.conf.au 2014 I am in the process of "rebooting" my identity online and refreshing a lot of the services that I use.

I have been doing this since the start of the year and I've gotten to the point where I believe my blog should be a part of it.

The main aim of all of this has been to get onto reliable modern cloud services and move away from old ways of doing things that I have been doing for over a decade.

Nothing here is groundbreaking or new, but it might be worthwhile for others to reflect on some of this.

What do I mean by the old ways? Things like ISP email accounts, GeoCities services and services that are at risk of failure without an easy way out. Yes, this all stems from being burned by Google's Reader demise, and much earlier the aforementioned termination of GeoCities by Yahoo.

Thankfully in both cases my data has survived but the solution that I came up with weren't necessarily much better. For example my solution to Google Reader was to run Tiny Tiny RSS on a slow computer behind my home internet connection without a useful backup scheme and hampered by slow upload speeds. That's not a modern way of doing things.

So what do I consider the modern way? Well, creating your own open identity online - starting with A domain name of your own. Then we can attach services to this running in the "cloud" and use the domain name as a way of mitigating against changing services. For example, you can find this blog however you did, but from now on it's accessible via http://blog.jking.id.au - meaning it could change to WordPress or something else in the future with less effort. And I don't have to worry about natural disasters taking out my data as much.

So far my change has involved the following steps, which I hope to elaborate on:

Buy the domain name. This is the enabler for everything else.

Associate some email accounts with the domain name.

Get a password manager - this process creates a lot of new passwords and the modern way requires them to be unique and complex (and my brain can't cope with them all!)

Get some cloud resources - virtual machines and databases and/or hosting

Start running some cool services - such as the RSS platform and a blog

Comments welcome as always.

Wednesday, 5 September 2012

New GAuth version now hitting Nokia Store on N9

With special thanks to Jean Blanchard for his regression fix you should now be able to update to GAuth version 1.6 on your Nokia N9 with Dropbox and multiple account support.

Monday, 3 September 2012

Mea culpa, or more to test before going to Nokia Store

So version 1.4 of GAuth wasn't good enough for Nokia Store in the end. Here's a couple of reminders to make sure this doesn't happen again:

  • Nokia Store still tests against PR1.1. It is now impossible for me to do so, without using Remote Device Access (which is a pain, because everything else can be done from my phone - I have a spare phone for testing but I've foolishly upgraded that one to PR1.3 too OTA).
  • Test for new users of your application that it works. Some of my new code was relying upon having settings already there, which of course wasn't the case for new users of the application.
  • Test for upgrading existing users. This is a problem that I hit in the past where I was wiping the settings because I was treating upgrade as uninstall-install.
Version 1.5 is now on GitHub. Existing users who had 1.4 working needn't upgrade.

Wednesday, 29 August 2012

New version of GAuth... Long awaited features

Thanks to everyone for their support for GAuth.

This week sees a new update coming.

The main trigger for this is that Dropbox has added two-factor authentication compatible with Google Authenticator, and I'd fallen behind because a user pointed out the GAuth wasn't working with it.

That kicked me into gear! Thanks to Max on this blog for pointing it out (I'm not a big Dropbox user yet).

Then of course, if people get the update, they'll be adding Dropbox to their GAuth. Which would've fallen foul of the fact that GAuth only ever supported one account at a time. Yes I know I was asked about this a while ago. But it's fixed now and that's what matters.

And then over on talk.maemo.org a fan has contributed an inverted theme icon for GAuth. So I thought I'd return the favour with a simple tweak to add an inverted theme mode to GAuth. Simply enable it in Settings after installing the update (unfortunately I can't swap over the icon as easily - you'll still have to do that yourself).

So after 1000 downloads on the Nokia Store alone I give you GAuth 1.4. Available now on GitHub* and soon in the Nokia Store via an automatic update to your phone (hopefully within the next week).

* Note that you have get the update the same way you installed the previous version. If you have the Nokia Store version, your phone will not allow you to update to the GitHub version. Do not uninstall your version because you will lose your tokens! Just wait for the update notification, won't be long I promise.

Monday, 16 July 2012

Build your own: XBMC for Android from Ubuntu 12.04

Firstly massive credit to the XBMC team for pulling off the feat that is XBMC on Android. I'll bet though you're desperate to try it yourself. I'll respect XBMC and not share my build (I couldn't support it if I did) but here is a recipe for Ubuntu 12.04 users. Or equally, Windows users because you can't install using the Windows Android SDK. First, for Windows users, install Oracle VirtualBox. Then install Ubuntu 12.04 using the mini net-install CD (this gets you less packages you don't need). The instructions in the XBMC repository (docs/README.android) are then fairly complete, except for covering all of the dependencies you need. You must: sudo apt-get install build-essential git-core default-jdk autoconf autopoint curl zip unzip zlib1g-dev gawk gperf ant Then when building the android depends for configure you need: ./configure --build=arm-linux-androideabi --with-sdk=/home/user/android-sdk-linux --with-ndk=/home/user/android-ndk-r7-crystax-5.beta2 --with-toolchain=/home/user/android-sdk-linux/platforms/android-10 --with-tarballs=/home/user If you've never built anything with the Android SDK on this machine you have to generate a debug.keystore using ant debug on any random (a blank project will do) Android project before running make. And the veru last step in the documentation is wrong. The APK you want to install is in the root of the source named xbmcapp-*-debug.apk.

Saturday, 19 May 2012

Update: GAuth new version now available from Nokia Store and thanks to the first 100+ downloaders.

My app GAuth has been approved to the newer better version for the N9's Nokia Store. If you haven't downloaded it yet, go for it. If so, and you didn't already grab the updated version from GitHub, you can get the new version from the Nokia Store now.

The new version is a little more polished, including a help file the first time you start it up or from the menu button.

Sunday, 13 May 2012

Announcing the Nokia Store release of GAuth

So this happened on Friday but immediately afterwards I was coding my next project and found an awkward bug so I planned to delay the announcement until after I had written and Nokia Store had approved the update, but seeing as people are already downloading it (for which I am grateful), GAuth has now been released as a free download on the Nokia Store.


This marks my first successful release of an "app" on any mobile platform. I've toyed with very briefly the iOS App Store (and helped friends release apps) but nothing myself, and I've toyed with the Android Market/Google Play Store but no joy there. The main difference was that I was able to make a full-blown app in my spare time just using my phone*.

* Well plus SSH access to a Linux server for some small parts.

GAuth is a Google Authenticator implementation for the Nokia N9. It allows you to generate six-digit token codes required for two-step verification of your Google Account when GAuth on your Nokia N9 is paired with your Google Account.

That bug? It was a oversight in that when next you download an update to GAuth it will treat it as an uninstall followed by an install, rather than an upgrade which will reset your settings. The new version is available now on GitHub (get version 1.3 - it's the latest as of now) and you will be able to seamlessly get upgrades from the Nokia Store when later I make them. Nokia Store should have the update next weekend. The new version also features built-in help with a description of how to match your phone to your Google account.

The workaround for the bug is simply to copy and paste your secret from the Settings before you do the update, and copy and paste them back when the update wipes them out. This won't happen again.

For more information on this app, please visit the dedicated GAuth page on this blog and I'm interested in your feedback.

Saturday, 5 May 2012

More hints on publishing PySide QML apps to the Nokia Store for N9

I promised in the comments I would run down exactly what it takes me to publish a PySide application using QML to the Nokia Store for my N9 a couple of weeks ago.

I've got some comments back from Nokia Store QA and I had to make changes so here are the things I've learned so far:

Wednesday, 25 April 2012

N9: App: GAuth available for download

My first real mobile app is available for download now from GitHub and hopefully soon from the Nokia Store.

Update: Here's a screenshot. I couldn't add this from my phone where I usually blog from.

It's an implementation of the Google Authenticator for the N9.

This is the one killer app I needed to convert to my N9 fulltime from Android.

It generates the same codes as the Android version and can be used, for a single account at the moment in the same way.

I hope this is of use to some N9 users out there.

For more information read the details at GitHub (it's open source) and download it from there too. Note that you must have Unknown sources turned on in your application settings until Nokia approves.

I have my own ideas but I am soliciting for what I should try to port next. Please leave comments!

Monday, 23 April 2012

N9: A trick to get pyside-assistant to build into a Nokia store-compliant path

I'm experimenting with building applications for the Nokia Store on N9.

My current foray involves using PySide in Python.

PySide provides an incomplete harmattan package template in their pyside-assistant tool. Incomplete in that its output would not pass QA on the Nokia Store.

Nokia Store requires that your application's files live under /opt. However pyside-assistant, through python distutils, installs at least the python scripts to /usr instead. (It seems to be following whatever your Python system is set to - I'm on Ubuntu 11.04 and that is what I get.)

However by making a symlink on your computer from /usr to /opt/packagename and adding the line:

sys.prefix = sys.exec_prefix = '/opt/packagename'

The resulting package is rooted in the /opt folder instead.

(Of course there are other more trivial changes that must be made too, and I have yet to try for QA on this application.)

Hope this helps someone.

Wednesday, 16 November 2011

How to get rid of the dependency on Icon Project when using it to make iOS 5 shortcuts

The Icon Project app is great way to get custom app icons onto your home screen. In combination with iOS 5 exposing deep links into Settings, its a must have.

However installing the app from the App Store did make me pause and reconsider when it says "your icons won't work if you uninstall Icon Project".

Wow, I thought, one extra icon I have to keep around. Because once you have your icons, why should you need it?

Turns out that the URLs for the icons are redirected through the Icon Project app. Making them truly standalone is better and this is what I set out to do.

To do this we edit the URL back to what it should be before saving it to our home screen using the technique for Mobile Safari bookmarklets.

Create your icon as normal and when Icon Project sends you into Safari follow these steps:

1. Save the icon's web page as a bookmark (not on the home screen yet).

2. Edit the bookmark (tap Bookmarks, then find it, tap the Edit button and tap the bookmark).

3. Copy the Address text to the clipboard (tap the text, tap Select All, tap again, tap Copy).

4. Press the Home button and launch the Notes app. Create a new note and Paste in the text (the address is an embedded web page therefore it's easier to edit this way).

5. In the note, look for the URL starting with iconfactory:// ending with a numerical ID. Replace this text with the URL you want the shortcut to load.

6. Select All and Copy the text again.

7. Return to Safari. Select All on the address and Paste to replace it with the modified version. Save the bookmark.

8. Go to the bookmark. This will reload the web page with the new URL in it.

9. Now Save to Home Screen as normal following it's instructions. This icon won't require Icon Project to be installed.

Now you can delete the temporary bookmark you created but I instead recommend you keep it so you can quickly re-create the one on the home screen should you delete it and later want it back. Think of them as backups. You can move them into their own folder too if you want.

Now to prove it, you can delete Icon. Project. (Don't panic after proving your icons work simply reinstall it from the App Store Purchased page.) Icons created without being modified freeze on a white screen. The modified ones should still work.

Bonus tip: If you want some other icons, use Google Image Search in Safari, saving the icons you want to the Camera Roll (long tap and then select Save Image) then get the icons via the Camera button in Icon Project.

More prefs URLs for use on iOS 5 for Settings App shortcuts

The below link describes App shortcuts deep-linking into the Settings app on iOS 5.

How to Create Custom Shortcuts For WiFi Settings, Airplane Mode, and More – No Jailbreak Required

(Blogger app keeps losing my text, so apologies for the abbreviated post.)

This captivated me so I hunted around for more options, here they are:

Call forwarding: prefs:root=Phone&path=CallForwarding

Call waiting: prefs:root=Phone&path=CallWaiting

Show my caller ID: prefs:root=Phone&path=CallerID

Mobile calls and data usage: prefs:root=General&path=USAGE/CELLULAR_USAGE

Tuesday, 15 November 2011

Commentary on Google announces _nomap for WiFi SSIDs

Greater choice for wireless access point owners

While my initial thought is that this is a clumsy idea (it means that you have to re-save your network password on all of your devices for the new SSID) I'm warming to it for a crucial reason:

Recently a couple of things have bothered me in WiFi geolocation:

1. I moved house. The location of the access point I own still registers the old address.

2. I bought a new access point secondhand. The location of that access point still registers as the original owner's address some 3000km away!

Now the _nomap solution won't fix either of these problems because both access points are already in the database. I am waiting patiently for Skyhook to trickle down the updates, if that's even the correct place (how do I update Google directly?).

But it can be used to great effect in another case: mobile wireless hotspots. Any mobile hotspot, be it a device, a laptop (such as a Mac or running Connectify), or a mobile phone has no inherent location, therefore I would love it if manufacturers (because we know no-one changes defaults) could append _nomap in their firmware to the default network name on such devices.

Then again, maybe all devices should do this to their default name upon factory reset, because it only takes being tracked once to get in the database and it's harder to get out once you're in (how often is Google really going to be sampling your network name in your neighbourhood anyway?) as in my above cases.

Of course none of this stops the nefarious among us, the information is out there anyway...

Thursday, 27 October 2011

More work done on Gitter

I have made more changes to Gitter. UI changes this time, no Git improvements yet.

I figured I would add a Browse button to view/edit files in the checked-out repository would be nice, so there it is.

And my commit log got longer than my screen, so I had to introduce a scroll bar.

I don't predict much work on this soon - it's a long weekend here and I'm driving next week :(

Same address as before to download.

Tuesday, 25 October 2011

My Android-on-Android workflow so far

With the release of the first of my SL4A scripts, I thought it beneficial to document how I got here and what I'm using.
I'm using a lot of existing Android applications and gluing them all together, which is Android's biggest strength.
Firstly, the core applications are the programming environment.
SL4A is the scripting environment and text editor.
Py4A is the Python interpreter.
I'm using Github which likes Markdown documentation, so for this I use Epistle as a simple WYSIWYG editor.
I'm using IconReader2 in my layouts to use built-in Android icons in my scripts.
I'm using Hacker's Keyboard for typing. It gives a full keyboard including the Python-critical Tab key. And it fits okay on my 7-inch Samsung Galaxy Tab.
And of course I'm using the Blogger app to make these announcements on my blog.
I use the ASTRO file manager for those duties, including its ability to create and modify zip files that I use for distribution and to enable the Android browser to upload any file (though seemingly except for zip files).
I tried using the (Google) Docs app for uploading but I found its multiple versions support lacking and a little unreliable.
In stark contrast the Box.net app supports both of these including in-app sharing. (At this point I cheated and used my iPhone to sign up for Box because you'll get 50GB this way right now.)
I then use the Urly app to make short URLs from the Box.net ones.
And my Samsung Galaxy Tab is powered by Overcome 7 Series Gingerbread.
Then I use my Gitter script just released to update my Git repository, a script I designed with the help of the UI Builder I've made, which is soon-to-be-released.
All of the above have my recommendation.

First published script: Gitter

UPDATE 2: And it should be fixed now. Note that I think there's a problem with timezones on commits but that's only a minor annoyance for me. It will affect you if Gitter isn't the only committer to your repository.

UPDATE: I'm a dummy. I've just learned after committing the source code that directories are trees in Git. Fixing this now. This affects the Commit button.

Okay so I promised this a little earlier but I haven't been carpooling until yesterday.

This is the first of the Android-on-Android scripts. It allows you to have a Git repository on your phone and optionally synchronized with a remote server such as Github.

It is very simple but I might expand it over time. It only supports the master branch and doesn't merge well.

Here is the script package. You will first need to install SL4A, Py4A, PyCrypto, Paramiko and Dulwich.

The source code will arrive shortly in my Github account.

Tuesday, 4 October 2011

The Android-on-android Project

Here's what I'm currently working on:

I'm toying with programming on Android but with a twist - I'm trying to do it all from my Samsung Galaxy Tab. This way I can do it anywhere. It's something my iphone doesn't offer and that I've recently become aware of through the SL4A scripting project and the many modules of Python.

Soon I will post some of the software I have been using and what I think of them and then I will follow this up with my first scripts.

The first scripts are building block development tools that make it easier to make more scripts in the future. Let me know what you think.

Friday, 30 September 2011

dulwich for Android

This is just a little post to help out when trying to install dulwich - the pure Python implementation Git version control - on Android.

Dulwich is distributed as a .tar.gz archive, whereas my Android device won't allow me to download these files.

I have converted the archive to .zip which is Android-friendly and have made no other changes. This is the latest version that is current as of now - 0.8.0.

You can download this version here (link fixed to be a direct download).

Wednesday, 28 September 2011

Scripting gets a home on github.com

I have just figured out how to export my scripts from my Android tablet.

I like Git version control so wanted to useit to back up my scripts. However there was nothing I could find to perform commits from Android to somewhere like GitHub.

Enter Dulwich - git written in Python. I installed this to the phone (had to do it over USB unfortunately). I then found a code sample integrating it with Paramiko - SSH written in Python. That had a dependency on PyCrypto which is helpfully compiled as an egg on the Py4A page.

Now all I had to do is write a script to do the commit. Easier said than done. I've been spending all of my commute time on it and have only just got the first pushed commit into the repository.

Of course I wouldn't have had a chance of doing this on my iPhone! Three cheers for Android Scripting!

You can visit the fruits of my labour here. But don't expect much - I still have to learn how to push a diff'd second commit!