Thomas James Just a geek.

Technology, Gadgetry, Photography and Software Development

Latest Posts



I’ve recently found myself sharing a common set of resources around team leadership, engineering management and people skills. Rather than repeat that privately, here it is. This is by no means an exhaustive list either.

Fantastic Books (or Audio Books)



Random extras

Battle of the 4G dongles


Having recently received my kickstarted GLocalMe G2 Global Roaming device & with a few past devices just sitting around I thought I’d put them to the test. In a completely non-scientific way.

  • Telstra post-paid data share sim
  • Dongles
    • ZTE MF91 (Telstra Branded)
    • Netgear AirCard 760S (Telstra Branded)
    • GLocalMe G2 (Software Version 151122)
  • Devices
    • iPhone 6 Plus
    • Google Nexus 6
    • MacBook Pro Retina 13” 2015 model

Each device will use the native speedtest for that platform, the dongles will be running on USB power during the test. The speedtest results for the iPhone running direct & as a hotspot on the Telstra network will be included for reference. The devices were placed on the same desk, beside each other. Speedtest Beta was used in Chrome on the MacBook.


LTE: 1800, 2600 MHz with up to 40Mbps data
UMTS: 850, 900, 2100 MHz with up to 21Mbps data
WiFi: 802.11 b/g/n

This has been my “go to” device for a few years now. It’s been exceptionally reliable (even if the admin portal is terrible) with excellent battery life for a full day of sporadic usage. It’s also the lightest of the 3 dongles.

Test DevicePingDownloadUpload
MacBook (CLI)71 ms6.4 Mbps8.4 Mbps
MacBook (Web)25 ms24.01 Mbps26.51 Mbps
iPhone 6+36 ms14.80 Mbps30.85 Mbps
Nexus 628 ms28.32 Mbps36.01 Mbps

Netgear AirCard 760S

LTE: 1800/2100/2600 MHz up to 100 Mbps download, 
     up to 50 Mbps upload (LTE Catagory 3)
UMTS: Dual-Carrier HSPA+ 850/900/2100 MHz 
WiFi: 802.11 b/g/n
Test DevicePingDownloadUpload
MacBook (CLI)61 ms2.60 Mbps7.30 Mbps
MacBook (Web)31 ms3.56 Mbps6.19 Mbps
iPhone 6+27 ms6.82 Mbps17.10 Mbps
Nexus 626 ms28.60 Mbps32.06 Mbps

GLocalMe G2

UMTS Band 1/2/4/5/8 
LTE-FDD Band 1/3/5/7/8/17/20 
LTE-TDD Band 39/40/41 
GSM 850/900/1800/1900MHz
WiFi: 802.11 b/g/n

This is quite an interesting device, it includes a built in sim card (a “cloud sim”) which is used for the GLocalMe global roaming service and two additional micro-sim slots. The 6000 mAH battery is a nice plus.

Test DevicePingDownloadUpload
MacBook (CLI)58 ms13.00 Mbps10.00 Mbps
MacBook (Web)28 ms28.59 Mbps31.33 Mbps
iPhone 6+34 ms24.77 Mbps34.08 Mbps
Nexus 618 ms38.07 Mbps37.14 Mbps

iPhone 6 Plus

Test DevicePingDownloadUpload
MacBook (CLI)66 ms16.00 Mbps12.00 Mbps
MacBook (Web)27 ms27.28 Mbps24.58 Mbps
iPhone 6+28 ms91.01 Mbps37.91 Mbps
Nexus 628 ms24.48 Mbps34.99 Mbps


For woeful comparison.

Test DevicePingDownloadUpload
MacBook (CLI)45 ms11.00 Mbps1.20 Mbps
MacBook (Web)21 ms12.10 Mbps1.26 Mbps
iPhone 6+23 ms13.32 Mbps1.43 Mbps
Nexus 622 ms13.39 Mbps1.35 Mbps

Interpret how you like.

NDC Oslo 2015


Thanks to the generosity of my fantastic employer, Connect Develop, I was fortunate to be able to attend NDC Oslo this year. It was a massive conference with 1900 delegates, 9 tracks of talks over 3 days, much larger than any other I’ve been to.

Functional Programming

There was a good balance of .net,, functional, microservices, REST, agile, peopleware & other topics. The conference was very well run. I initially had some concerns that it was held in a stadium, but they made use of the space well. The stadium floor was used as the general exhibition area, keynote stage & dining area. The stadium seating around the main floor was divided up into rooms with black curtains, which worked remarkably well with almost no noise leakage into other talks (except for maybe the laughter from some of Troy Hunt’s sessions). To cater to full rooms, an overflow area was provided which displayed the presentations from all the running tracks. You could choose which session to listen to with a supplied headset.

Keynote: Bruce Schneier from NDC Conferences on Vimeo.

Breakfast, lunch & dinner was provided at various sponsor food stands, catering to a wide variety of dietary needs. A number of sponsors were also providing drinks stands, one even offering fruit smoothies. Of course, plenty of coffee was on offer as well.

Not Even Close: The State of Computer Security - James Mickens from NDC Conferences on Vimeo.

The vast majority of talks I attended were of a very high quality, being able to take away much from each talk. Out of all of the talks I attended I was only disappointed with two. One of which was the security panel, hosted by the .net rocks podcast. While having excellent panellists, it was let down by the .net rocks guys not being ready to start at the allocated time. They spent about 10 minutes setting up their own gear during the session, rather than being ready to go. I may be nitpicking, but it started the session off on the wrong note.

Anyway, it was a fantastic well-organised conference, with high quality speakers, so check out the videos.

Also good to see so many Aussie speakers at the conference taking home some pretty good ratings too. It was also announced that NDC will be in Australia in 2016. No extra information was provided.

Aussie Top Speakers

Trying out KnowRoaming in Singapore, Frankfurt & Oslo


On a recent trip to Frankfurt, Oslo & Singapore, rather than trying to buy local pre-paid SIM cards and working out what might be the best provider & pre-paid plan for each region, I thought my wife and I would try out KnowRoaming.

I was first made aware of KnowRoaming last year, and signed up for their public access wait list. Once it was publicly launched however I had no immediate use for it and promptly forgot until about 3 weeks before my trip. I ordered a Couples Package (2 KnowRoaming SIM stickers, including applicators). I was heading overseas in less than 3 weeks from when I ordered, and the site warns that it can take up to 3 weeks for the stickers to arrive (I don’t trust AusPost) I emailed their support to see if there was anyway to expedite the shipping. There was, and after paying for the additional express postage costs, the stickers were on their way. They arrived in a couple of days.

The application of the SIM sticker is as easy as the marketing & video examples make it out to be. The applicator is well designed, making it hard to get wrong.

The KnowRoaming Applicator

Once the SIM sticker was installed, getting up and running was as simple as firing up the KnowRoaming app on my iPhone and following the steps. Each KnowRoaming account includes two “global” numbers that you can be reached on, a US one and a UK one. The UK one is, by default, the number needed to send and receive sms (text) messages, so this was the one I gave out to most people that needed to contact me.

I also signed up for the “ReachMe” service, which provisions a number in your home country and automatically configures call forwarding of your home number to that “ReachMe” number. This was the one thing that didn’t work for me, at no fault of KnowRoaming. The number that KnowRoaming provisioned worked perfectly (tested from another VoIP account & my wife’s mobile) but for some reason call forwarding wouldn’t work with my telco.

The rest of KnowRoaming worked flawlessly after some initial issues when I arrived in Singapore. I was able to get on the network, make calls & send text, but was unable to activate the data pack I purchased. This turned out to be a backend issue that KnowRoaming support were able to address very quickly. I did have to turn to support a number of times during the trip, each time the ticket was answered within 15 minutes and the problem solved quickly after. The support staff (via email) were knowledgeable and it in no-way felt like the usual less-than-great support experience at your local telco.

Frankfurt am Main

Unfortunately there was an issue with the partner network in Norway that meant that data (3G or otherwise) was unavailable for the week we were there. This was a bummer, but not the end of the world as pretty much everywhere in Oslo has free wifi. Once it was resolved, KnowRoaming pro-actively reached out to let us know that service was restored, we just needed to perform a configuration change and reboot the phone for access to data.

Oslo Harbour

The “unlimited” per-day data plans were useful, especially being able to activate a plan in Frankfurt and have the plan continue while in Norway (in-theory). The per-day charge does seem a little expensive for a longer trip, it would be nice if an alternative per-GB plan was available, or bulk discounts for longer periods. Depending on where you’re going it might be cheaper to look at services like GlobalGig, not having to keep a dongle charged and running is certainly convenient. I also found that tethering worked in some countries (Norway & Germany) but not others (Singapore), I can only assume this is a per-network limitation or a limitation of the roaming agreement.

That said, for somewhere like Singapore the $7.99 per day is far cheaper and easier than GlobalGig’s $50 for 1GB.

Singapore Supertrees

Overall I was very happy with the product, it delivered it’s promises & the customer service from KnowRoaming was excellent. It made it very easy to keep in contact with others regardless of the country we were and without costing a fortune in roaming fees. I’ll be using it again on my next trip overseas.

Update: KnowRoaming just announced a referral program. So if you want 30% off your SIM Sticker purchase, $5 in credit & grant me $5 in credit, just follow this link then use my referral code THOJAM754 when you place the order, thanks :)

Making Ubuntu apt faster on ec2


Note, this is based on experience in ap-southeast-2 only, using Ubuntu Cloud AMIs

I’ve found the performance of the default Ubuntu AWS region based apt mirror to vary greatly. Sometimes downloading a package will occur at 6+MB/s while other times it’ll be barely 1KB/s.

This can be a problem if you’re not pre-baking you’re AMIs and you hit the grace period for instance spin-up in an autoscale group with a health check. If you’re not careful you’ll have a cycle of spin-up->unhealthy->terminate, which could end up being quite costly.

The source of this would appear to be load on the mirrors. Thankfully canonical have provided a simple solution. Switch over to the S3 backed apt mirror for that region. Why these aren’t the default, who knows.

Step 1: Throw this in your instance’s USER_DATA:

sed -i -e "s/${EC2_REGION}${EC2_REGION}" /etc/apt/sources.list
apt-get update

Step 2: Enjoy much faster apt-get.

Step 3: There is no step 3.

  • profile for Thomas James on Stack Exchange, a network of free, community-driven Q&A sites

4g android appharbor apple atrix aws barcamp beer blog brew-smith coding conferencing deployfu docpad ec2 engineering fusion-garage grid10 homebrew hp-mini information insertdatahere ipad joojoo kernel knowroaming leadership linux macbook-air moncai mono n900 ndc netduino netmf open-source opinion pcengines-apu poor-experience professional public-speaking rant ravendb reflection router singapore talks travel ubuntu unconference vagrant vps wifi windows yubikey