james david low

live / work / play / worship

Who I’d like to see in the dunk competition

The dunk competition was pretty rubbish this year (2014), so here’s who I’d really like do it:

8:37pm / Mar 25th / 14 Comments

Top 10 things I am missing about HK, enjoying about the UK

Missing about HK
Living in Ocean View
Walks along Ma On Shan promenade
Pacific Coffee at the Science Park
Hyatt Shatin
Crystal Jade
Chinese food in general
Living near the ocean
Friends and family
Living in the Hong Kong international bubble

Enjoying about the UK
Buying things online
Walks on the downs and in blaze
Living close to my mum and Grandma
Seeing Nate and Shaun
Fish and chips
Having a king size bed
Not living in a box
A much bigger kitchen
A fresh start at church
Having to face the realities outside the Hong Kong international bubble

6:09am / Feb 8th / 14 Comments

Simultaneous MIDI/Audio with Apogee ONE for iPad

The original Apogee ONE for Mac was USB audio compliant and could be made to work with the iPad with the iPad camera connector and a powered USB hub (see video).

I just tried the the same thing with the new Apogee ONE for iPad. It is USB audio compliant and does work natively with its own cable to the iPad, but I couldn’t get it to work with the USB cable through a powered hub in the same way as the original ONE.

Has anybody else managed to get it to work?

8:31pm / Dec 30th / 13 Comments

Disable Git in Eclipse

I use the excellent Source Tree as a visual Git client, and really dislike messages about versioning when I’m coding. Eclipse’s Git colours and overall intrusiveness seem to be particularly bad. I couldn’t find which plugin to remove but I did find the following settings:

This setting will stop Eclipse from automatically attaching its Git functions:


If you’ve already loaded some projects before disabling the above setting, you can disconnect those individual projects from Eclipse’s Git functionality here:


7:17am / Jun 5th / 13 Comments

A New Language for App Engine

I love Java and I love Google App Engine. Google recently announced that they’re adding a new language to the existing languages (Java/Python/Go). My bet is that it’s PHP since:

1) Its the most requested language on the App Engine issue tracker:


2) The session at Google I/O features Stuart Langely and his github is all PHP centric:


12:08pm / May 11th / 13 Comments

iPhone Push Notifications with JavaPNS on Google App Engine

There have been several issues with getting JavaPNS working on Google App Engine. These included:
1) GAE didn’t support sockets or SSL
2) GAE doesn’t support signed jars, the BouncyCastle cryptography library is signed
3) GAE is transitioning to Java 7, and Java 7 has issues reading .p12 certificates

These instructions are for JavaPNS 2.2 and GAE 1.7.7, things may change on both fronts to make things either easier or harder.

1) GAE didn’t support sockets or SSL

With the arrival of GAE 1.7.7 sockets and SSL are now fully supported:

2) GAE doesn’t support signed jars

Remove META-INF/MANIFEST.MF from the latest BouncyCastle jar or download my modified jar of BouncyCastle 1.48

3) Java 7 has issues reading .p12 certificates

a) Generate your .p12 certificate as per Apple’s instructions

b) Install Java 6 JDK

c) Use Java 6′s keytool to convert the .p12 to a .jks

keytool -importkeystore -destkeystore CERTIFICATES.jks -srckeystore CERTIFICATES.p12 -srcstoretype PKCS12

d) Configure JavaPNS to use the .jks format instead of .p12

boolean production = false;
String device = "DEVICE_ID";
String keystore = "CERTIFICATES.jks";
String password = "PASSWORD";
String message = "Hello JKS";

AppleNotificationServer jksServer = new AppleNotificationServerBasicImpl(keystore, password, ConnectionToAppleServer.KEYSTORE_TYPE_JKS, production);
PushNotificationPayload payload = PushNotificationPayload.alert(message);
PushNotificationManager pushManager = new PushNotificationManager();
List<PushedNotification> notifications = pushManager.sendNotifications(payload, Devices.asDevices(device));

Thanks to Palomino Labs Blog for the hints about Java and .p12 files:

8:30pm / Apr 24th / 13 3 Comments

Midi Keyboard Velocity Curve Calibration With Pianoteq

I’ve dabbled on piano since I was about 6, and even though I’m still not very good, I do know that you simply can’t match the feel of a real live grand piano.

But…after 26 years of playing, I’ve finally found something that comes close. There are lots of great sounding piano modules / samplers out there, but Pianoteq with their velocity curve calibration, simply feels amazing.

Some of the sample based plugins like Imperfect Samples might sound more realistic, but without calibrating the velocity curve I can’t imaging getting the same feel as Pianoteq. (Pianoteq is great for live too with its low memory/cpu usage.)

You’ll see from the difference in my calibrated and original curve below, I wasn’t even able to get close to playing a sensitive quiet note until I calibrated:



7:10pm / Apr 17th / 13 Comments

Top 10 things I will and won’t miss about Hong Kong

Won’t miss:
The heat
And humidity
Small box apartments
People pushing in lines/trains (and I’m talking about Hong Kongers not mainlanders)
White people staring at me on trains
Provocative ads on the MTR

Will miss:
Ma On Shan
Walks by the ocean
Crystal Jade
Peking duck
Octopus cards
Sham Shui Po
Having “being a crazy white person” as an excuse

6:46pm / Apr 15th / 13 Comments

List Apps To Update After Moving iTunes App Store Countries

I moved my iTunes account from one country to another recently as I am about to move. An annoying thing is iTunes doesn’t know how to update apps that you’ve downloaded from a different country, even though if you download it manually again you get the app for free. It works on the iPhone/iPad, so its really something they should fix in iTunes.

If you have OCD like me it can be very annoying to constantly have a (1) or something by the Apps, meaning you have Apps to update. I recently worked out where this information was stored, and came up with a relatively quick way to update these apps.

1) Open Terminal.app

2) Run the following command:

grep --binary-files=text -A 1 "<key>title" ~/Library/Preferences/*.iTunes.plist

3) Find those apps in iTunes and right click them -> “Show in iTunes Store”

4) Download the app again, if you bought it before it will say something like “This update is free because you have already purchases this app”.

5) After you’ve updated it once, it remembers that you’ve downloaded it from the new country and it can automatically find the update as per usual.

Note: Be careful because if an app has been removed from the App Store altogether, iTunes will sometimes redirect you to another app from the same publisher. This happened to me, I was redirected from the free (discontinued) app to the paid version, and thinking it was the same app I bought an app I didn’t mean to.

4:46pm / Feb 20th / 13 Comments
« Previous Next Page »


Live / Guestbook / Photos / Play / Bass / Dumble / Fuzz / Jazz 101 / Music / Quartet / Work / AirShow / Firstline / JabberSkype / Juice / Limelight / Limelight / FAQ / Limelight / Version History / Misc / Onoko / Wordpress / Zest / Worship


Andy / Anna / Dad / Dawen / Matt Low / Nate / Sayling


43 Things / Facebook / Google+ / Linkedin / Old Webpage / Runkeeper / Twitter / YouTube


Who I'd like to see in the dunk competition / Top 10 things I am missing about HK, enjoying about the UK / Simultaneous MIDI/Audio with Apogee ONE for iPad / iPhone Repair Bristol / Disable Git in Eclipse / A New Language for App Engine / iPhone Push Notifications with JavaPNS on Google App Engine / Midi Keyboard Velocity Curve Calibration With Pianoteq / Top 10 things I will and won't miss about Hong Kong / List Apps To Update After Moving iTunes App Store Countries / DynDNS via curl on Apple TV 2 / iOS-WebStack with Apple TV 2 firmware 5.2 (iOS 6.1) / Fast Track Ultra 8R in Mountain Lion / Google DFP with Appcelerator Titanium / Alternatives to Google Apps / Digitech iStomp and the new iPhone 5 lightning connector / The case for wired keyboards / Cornerstone vs. Versions vs. SmartSVN / Use of Foxconn and other manufacturers / iPhone Screen Setting / Pedal Board / New Family Friendly Homepage / Tip for efficient living / Detecting Quercus / Amazon S3 for WordPress with CloudFront / Database Read Replicas / Force User Login Multisite / Moving Church / Top 10 things I love about living in Ocean View / My Paper / iPhoto '11 No Place Smart Album / Creed / Random OSX Hacks / Getting Married :) / Diddy Feet / Very helpful error message / Apple LED Cinema Display with a PC / Simply Christian - N.T. Wright / Some things need to be said again / G. K. Chesterton - Orthodoxy / What life in heaven is like... / Cut & Paste and Tabs in Finder / Titanium Autocomplete Eclipse / <3 Adobe / Must listen to / Number 5 UK Social Networking Apps / OpenTerminalHere and AntHere / Two Excellent Podcasts / Grrr Apple / Everybody Wants To Go To Heaven / From The Lord's Prayer / Writing Word/RTF Docs In Java / CarbonHomepage.com - One up on blackle / Manifesto - The goal theory of motivation and the circle theory of value, security, Sin and repentance / Chrome my firefox / iPhone Apps / On not having energy to explain depression because you're depressed / Windows Live Fail / My official (only?) post on the iPad / Stop blaming the investment banks / 2010 / Thoughts On Keyboards / Guitar History / Good Idea / Can I lose my need to impress? / Some Images / The Things That Will Destroy America / HTTP headers and raw POST data for PHP-CGI / Mail.app RSS Smart Mailbox / iSync icon after iTunes sync / The New Cosmology: Theistic Implications / A Guitar Story / A slow miracle is as incredible as a fast miracle / Prayer - Ravi Zacharias / Dismantle.Repair. / Great Ravi Zacharias Talk / Top 5 Pet-Peeves / Top 5 Books / iPhone Idea / Top 5 Movies / Dawen - American Me / Great new homepage / US$150 Off Dreamhost Promo Code / Songs I wish I wrote / Apple Remote Control / Worship slides on an iPhone/iPod / 50 Things To Do Today / Back on form / iPhoto -> Wordpress / Emoji on iPhone / Friend's Music / Reverse Sabbath Ends / Very Happy / Nick Pitera / Dream Impossible / Lost in 8:15 / Reverse Sabbath / Awareness / How He Loves / Upgrade IE / The God Delusion Debate / Gibson ES-175 Reissue for sale / Shabbat / Random Things / Make your google look gorgeous / Competition / The best video EVER! / Games / Icebreakers / Inconsistent Messages / Spanish Proverb / I think you're wrong about this one / Hugs / Ravi Zacharias - The Existence of God / Life Story / Mission Statement / God Rock Music / Why I'm in counseling / Wordpress Bible Gateway / More Ideas / Imago Dei / Only in Hong Kong / Limegreen Autoupdate / Wordpress Backup / App Ideas / Spreadsheet Widget / RandR REST Library / BufferedReader / Regular Expressions / fishnchips.hk / Number 352 / YouTubeApp.com / My new favourite store / Post ToDo / 3rd Party Authentication / Sound Interfaces / Computers Again / Google Spreadsheet to iCal / Shouting Match / More Dawen / Dawen @ A-List TV / YouTube Feed / Limegreen Released / Creativity / Nice Blog / Podpress and Wordpress 2.6 fix with revisions / MySQL BIT in PHP / Life Matters / Love the iPhone / What we all should be / No I will not fix your computer / These Pages / Obama Endorsement / Business Ideas / Jesus And Domitian / Tuesdays / Thank You / The philosophical implications of stepping on that crunchy looking leaf / Pointless Sites / iPhone HK / Private Files / Dawen Wang / T-Shirt Gifts / Allow Categories / Remedy / Alter Ego / Hey! Get My IP / Facebook Comments / Donald Miller - Story / Play - update / Fresh Look / Limelight Released / Random / Updates Galore / Most Amazing Blogger Ever / Just LOVE / The Lark Ascending / Time To Blog / Still catching up / SYATP / Here To Eternity / 2006 / 2005 / FINALLY


500GB Storage / PHP / MySQL / SVN / Webdav / SSH / $5.95 month