Category Archives: Tech

Technology related.

Journal of a Nokia Lumia 1520 User

I bought a Nokia Lumia 1520 to explore Windows Phone.

27 December 2014

I dropped my Samsung Galaxy Note 3 and cracked the screen. Bummer. I play Ingress. There is no Windows Phone version of the game so I still need the Note 3 to play the game.

28 December 2014

  • There’s an irritating bug: You swipe the screen and the phone treats it as a tap. It happens randomly and there seems to be no solution.
  • Teamviewer client is available.
  • Successful pairing with Bluetooth car kit.
  • No official Dropbox clientUpdate: Now available.

29 December 2014

3G video calling is not supported. This sucks. The Nokia 6680 is my first phone that supported this feature. Now my latest Nokia doesn’t while the Samsung Galaxy phones that we have in our family do support it.

3 January 2015

Using the stock software on the phone I could find no way to add a description to the pictures I took. There are several apps that will allow you view/edit the EXIF data of images. The problem is they only pick up the 5 MP version of the pictures. The trick is to copy the 16 MP version of the image to another directory.

7 January 2015

  • Bluetooth keyboards are not supported.
  • USB on the go not supported. Ironically my very first phone that supports this feature, the Nokia N9, is a Nokia. Go figure.

12 January 2015

  • Google calender sync bug: Multi day events entered using Google Calender web interface day are shifted by two hours. This is probably a timezone issue.
  • My calender doesn’t show events after 8 June. An event I added to 30 June shows up on Google Calender but disappears seconds after being added to the phone. This is a known issue.
    Update: Google Calender events up to six months in the future are synced. This was probably hard coded into the calendar app. Shame on you Microsoft.
    Update: From this:

    Synchronising Google and iCloud accounts

    To see the calendar for a Google or iCloud account on your phone, just set up the account. The calendars will automatically show up along with your contacts and emails, and your phone will sync the following events (these settings can’t be changed):

    • Two weeks of past single-instance (non-recurring) events.
    • Six months of future single-instance events.
    • All recurring events that have occurrences within the last two weeks or in the next six months.

14 January 2015

  • I can find no calendar app that can work around the “six month” bug mentioned above.
  • The Lumia supports wireless charging out of the box. I’m having some issues with the Avantree Mobile Wireless Charger. The charger charges the phone to 100% and then stops but doesn’t resume charging if the battery charge level drops.
  • I can find only one way to make an offline backup of my SMS’s. Use “Transfer my Data”, tap on ellipsis, “export to sd card”. Now I only have to figure out how data is stored in those files.

16 January 2015

Using a combination of a python script, see below,  and VMG Converter I was able to import by SMS’s into an Android device.

tel = ""
lines = []
counter = 1

def create_file():
  global lines
  global counter
  file_name = "vmg\\sms%05d.vmg" % counter
  counter += 1
  with open(file_name,"wt") as f:
    for l in lines:
      f.write("%s\n" % l)
  lines = []

def decode(s):
  cde = ""
  idx = 0
  while idx < len(s):
    ch = s[idx]
    if(ch == "="):
      hex = s[idx + 1] + s[idx + 2]
      cde += chr(int(hex,16))
      idx = idx + 3
      cde = cde + ch
      idx = idx + 1
  return cde    

def process(line):
  global lines
  idx = line.find(":")
  token = line[:idx]
  data = line[idx + 1:]

  if(token[0:7] == "Subject"):
    data = decode(data)

  if(line == "VERSION: 1.1"):

  if(line == "BEGIN:VCARD"):

  if(line == "BEGIN:VBODY"):

  if(line == "END:VBODY"):

  fVerbatim = False
  if(line == "BEGIN:VMSG"):
    fVerbatim = True
  if(line == "END:VCARD"):
    fVerbatim = True
  if(token == "TEL"):
    fVerbatim = True

  if(line == "END:VMSG"):

  if(line == "X-BOX:SENDBOX"):

  if(token == "X-BOX"):
    lines.append("X-IRMC-BOX:" + data)
  elif(token == "X-READ"):
    lines.append("X-IRMC-STATUS:" + data)
  elif(token == "Date"):
    a_date = data[8:10] + "." + data[5:7] + "." + data[0:4]
    a_time = data[11:13] + ":" + data[14:16] + ":" + data[17:19]
    lines.append("Date:" + a_date + " " + a_time) 

lf = chr(10)
longline = ""
with open("sms.vmsg") as f:
  for line in f:
    lastchar = line[-1]
    if(lastchar == lf):
      line = line[0:-1]
    lastchar = line[-1]
    if(lastchar != "="):
      longline = longline + line
      longline = ""
      longline = longline + line[0:-1]

 19 January 2015

  • My main SIM goes back into the Lumia while trying to find out why my loan unit Samsung Galaxy Note 3 is so power hungry.

20 January 2015

  • 12:54: Installing a phone update. What could it be?
  • 13:00: Windows Phone 8.1 (8.10.14219.341)

22 January 2015

Dropbox client finally available.

23 January 2015

    • That was the Denim update. I’m disappointed. None of the issues I’ve mentioned have been addressed.
      The “tap registered when swiping” bug, in particular, hasn’t been fixed.
      Bluetooth keyboard still doesn’t work.
    • Cannot get Cortana to work with my regional settings (South African English).

6 July 2015

Played around with the Windows 10 preview for a while. And then restored WP 8.1. Couldn’t really see the point of playing with the preview version. Darn that silly tap/swipe bug it’s driving me mad.

Check back regularly for updates to this blog entry.


Hasta La Vista Bitcasa

By current plan, $99 per year i.e. “Infinite Annual” , is being phased out. No “infinite drive” anymore:

Changes to Paid Plans

I therefore have no need of this service anymore. I’m moving my stuff over to dropbox and will be terminating my Bitcasa account.


I got a refund after deleting my account.

Refund from Bitcasa

LTE issues after sim swap

I decided to change to a nano sim as it can be used in any device with the correct adapter. So I did a sim swap and didn’t notice any immediate issues. I did notice some irritating data issues while playing Ingress. I would get frequent “No data connection” errors or some actions would take a long time. I then noticed that my phone wasn’t switching to LTE anymore. I have a contract with several data sims linked to it and my tablet with a data sim had no issues switching to LTE. So I tried a prepaid nano sim in my Galaxy Note 3. It had no trouble switching to LTE. I put the nano sim in an Alcatel L100V modem which showed me that Vodacom LTE was available but when I tried to select it I was told that it was unsuccessful. I contacted Vodacom data support on 155. I was guided through a fruitless attempt to resolve the issue. The guy then said something nonsensical about the frequencies on my sim card and advised my to go to Vodacom store. Undaunted I tweeted about by issue

and was phoned by another support person who started going through the same “the settings on your phone are probably screwed” routine. Luckily I was able to convince him that this was a more complicated issue, probably due to some settings mismatch somewhere in a database. It seemed to me that the network was rejecting requests by my phone to connect to LTE. He promised to phone me back. My LTE service was disabled and then enabled again. I noticed the data icon on my phone and tablet disappear. “Oh no! They have disabled my service!”, I thought. I got a tweet that stated I needed to restart my phone,

which I did. Initially only HSDPA but the data connection changed to 4G a minute later. It seems my issue has been resolved.

Fast and Expensive or Slow and Cheap?

Fast and expensive


or slow and cheap(er)


Now that my ADSL line is up again I’m not sure if I should switch back from LTE to ADSL. Every time they repair the phone line, don’t they add extra attenuation to the line?

I’ve attached the external antenna to the Huawei B593 but haven’t experienced any perceived increase in signal quality. I suppose I should mount it to the outside of the wall. At least I can now move the modem to a more convenient spot and put the antenna in an optimal spot.

ADSL down again

On February 28 2014 around 14:25 my phone line and therefor ADSL connection went down again. This happened in broad daylight so I assume it wasn’t cable theft. There are also a lot of road works going in our area so maybe our phone lines were severed that way. Anyway that left me once again without Internet access.

So i decided to explore the wireless option once again. Ironically I went with Telkom LTE. At first it seemed that their LTE connection was no better than their ADSL line. In all fairness the consultant warned me that I would get no LTE signal although their coverage map did show that my house lay on the border of LTE coverage. I moved the modem to the study and even had the two antennas pointing in different directions. This seems to have improved my throughput, especially upload speed.

The modem/router offered by Telkom is the Huawei 593s-601 which seems to handle the LTE side of things well. I have major headaches with ssh though. My ssh sessions hang for no apparent reason. Or simply do not get initiated at all with an “operation timed out” error. I haven’t had these issues with ADSL.

By the way this means Telkom LTE allows incoming connections. Exactly how diserable that is if you pay for outgoing and incoming data I’m not sure.

I’ve ordered an antenna and I’ll report on how well it works. 

Raspberry PI


I thought it would be cool to install SMS support on my Raspberry Pi. It would give me some kind of control of my network if there was some issue with my ADSL line. I had some unused 3G modems that I wanted to use. I decided to go for Gammu.

To install Gammu:

sudo apt-get install gammu
sudo apt-get install gammu-smsd

Messages can be stored in various formats. I decided to go for sqlite. Messages are stored in a database instead of text files. You will have to install the libdbi driver for sqlite as I discovered the hard way. 

To install sqlite support:

sudo apt-get install libdbd-sqlite3

I ran into a bizarre issue: it seems that both the database file and the directory it is in need rw permission for user, group and all. You need to create the database yourself. There is a compressed SQL script for doing this in /usr/share/doc/gammu/examples/sql. So:

sudo gunzip /usr/share/doc/gammu/examples/sql/sqlite.sql.gz
cp /usr/share/doc/gammu/examples/sql/sqlite.sql sms.sql
cat sms.sql | sqlite3 sms.db

Then change the privileges of sms.db and its parent directory to rw for user, group and all. This may be a security concern for you but this seems to be the simplest solution to access errors. Switch to another database or text files if this bothers you.

One issue I haven’t been able to resolve yet: Delivery reports. I don’t get any and I don’t know why.


I ordered a DFR0094 “Digital IR Receiver Module(Arduino)”. Then I discovered that the Pi’s GPIO works on 3.3V and not 5V. I couldn’t find any info on whether the DFR0094 would work with a 3.3V supply instead of 5V. I took a chance and it seems that the DFR0094 is quite happy running on a 3.3V supply instead of 5V. I basically followed the instructions here.

First Entry Using MarsEdit

I usually take a long time to write new blog entries. “The spirit is willing, but the body is weak”. When I do sit down to write a new entry I end up staring at the flashing cursor not knowing where to start. Hopefully preparing my posts offline will also help in that I will not put as much pressure on myself to complete a post.

My Book Live revisited.

WD mentions that they only support Mac OSX and Windows for remote access. They don’t seem to mention explicitly that they don’t support Linux. I intended to find out. First of all you have to ensure that you have the Java plugin installed. Then you may have to get past the infuriating security messages. The latest version of the JRE (1.7.0_51) responds with this

CacheEntry[]:updateAvailable=false,lastModified=Mon Sep 16 20:46:28 SAST 2013,length=117733
Missing Permissions manifest attribute in main jar:
CacheEntry[]: updateAvailable=false,lastModified=Fri Aug 26 03:59:41 SAST 2011,length=750

(I have replaced my device id with “nnnnnn”). I messed around with various versions of the JRE but really got nowhere. JRE 1.6.0_34 produced this lovely report

ava.lang.RuntimeException: java.lang.ExceptionInInitializerError
	at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source)
	at sun.plugin2.applet.Plugin2Manager$ Source)
	at Source)
Caused by: java.lang.ExceptionInInitializerError
	at com.wd.nas4g.mapdrive.MapDrive.<init>(
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
	at java.lang.reflect.Constructor.newInstance(Unknown Source)
	at java.lang.Class.newInstance(Unknown Source)
	at sun.plugin2.applet.Plugin2Manager$ Source)
	at java.awt.event.InvocationEvent.dispatch(Unknown Source)
	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.awt.EventQueue.access$200(Unknown Source)
	at java.awt.EventQueue$ Source)
	at java.awt.EventQueue$ Source)
	at Method)
	at$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at Source)
Caused by: java.lang.RuntimeException: Unsupported OS: LINUX
	at com.wd.nas4g.mapdrive.command.WebDAVCmdFactory.<clinit>(
	... 21 more
Exception: java.lang.RuntimeException: java.lang.ExceptionInInitializerError
Taking a look at the java code reveals this:
    String osName = CmdUtil.getOSName();

    if (osName.indexOf("MAC") != -1)
      instance = new MacCmdFactory(null);
    else if (osName.indexOf("WIN") != -1)
      instance = new WinCmdFactory(null);
      throw new RuntimeException("Unsupported OS: " + osName);

With in red. Any OS other than MAC or Windows should trigger an exception.

WD My Book Live

The My Book Live is basically a file server that also allows you to access your files from the Internet. Don’t be fooled by the “My Cloud” hype. It’s nowhere as sophisticated as Dropbox for example. I could probably have designed my own “cloud server” by using my old Raspberry PI and a hard disk. It would then basically be a question of configuring  the required software packages. But I suppose I’m too lazy for that. So I ordered a My Book Live to see what it has to offer.

When you unpack the device there a sticker covering the ethernet port which reads: “”. This leads you to an installation client download for your Mac or PC.  I installed the Mac version of the setup application. At some point I had to enter my name, surname and email address. It then complained about my surname containing spaces which I then had to remove. The registration process failed and I was told to try again later. If I remember correctly I had to try at least three times. Although the installation procedure could correctly locate my device on the network later attempts by WD My Cloud failed to locate my device.

Device not found
Device not found

Ironically WD My Cloud can successfully locate  my device if I’m not connected to the same subnet as my My Book Live. Go figure. The Windows version of the setup application hanged at some point. My second attempt was successful. The Windows version of WD My Cloud had no problem locating my device on my home network.

The next challenge was to do a firmware update. You have two options: the device can download the firmware itself or you can upload the firmware to the device using an image file that you have already downloaded from the Internet. The former option would advance to some arbitrary point and then, seemingly, stall.

Downloading Firmware ... until hell freezes over
Downloading Firmware … until hell freezes over

At this point you can hit escape which will abort the download process. Next I tried looking for the firmware images that I could download myself and found this disconcerting message


Luckily some helpful soul had put up a link to an image file that I was able to download which allowed me to update my My Book Live. Just be patient with the upgrade process: the progress bar would seem to get stuck for a long time and then suddenly jump to a high value. I was dismayed to find that the image I had installed wasn’t the most recent firmware version available.

What? Again!
What? Again!

This update stalled again. Now it’s possible to enable ssh so that you can see what the hell your device is up to. So I did that and did a “ps -ef”. If you look at the output of “ps -ef” carefully you will see the URL of the file being downloaded (I think the device uses curl), it will have a “.deb” extension.  So I downloaded the file to my Mac and uploaded it to my device. This update failed near to the end so I tried the update again. This time it seemed to work.

After the registration process you’re ready to try to access your device from the Internet. You do this by logging in to You select the device you want to access and enter a password if required. This is where things got hairy again. You should get a list of available shares however this screen requires java. The java browser plugin isn’t set up on the Mac by default. This meant I had to download  Oracle java. Hopefully this won’t break something else that currently works. Java wasn’t completely happy though.

Java unhapiness
Java unhappiness

I received two warnings that I had to dismiss. Next you should get a list of shares that you can then mount.


This creates a WebDAV mapping to your device.


KNOX goes amok.

I’ve been getting the following notification on my Samsung Galaxy Note 3 LTE:


Tapping on this notification:

Error Dialog

Tapping OK simply takes you to the Application Manager. There seems to be no way to determine which app triggered this message.

The quickest way to trigger the error is to turn WiFi on.

I don’t seem the only person experiencing this issue. There seems to be no solution short of rooting your phone and removing all traces of KNOX. Apparently some lucky owners have already received an update that resolve this issue. For the moment I checked “Do not show for 30 days”.

10 November 2013



I’ve seen people complaining of their out of box devices also displaying this issue.
I have feeling that some of the unexpected crashes I have been getting such as the phone app crashing at the end of a call may be the result of KNOX trying to close harmless apps doing normal everyday things.

Vodacom Data Network Down

So much for that then. Saturday 26 October 2013 the Vodacom data network was down here in Pretoria until early in the afternoon. According to MWeb:

Outage Num:17370
Vodacom 3G & GPRS outage affecting Pretoria
Vodacom 3G & GPRS services in the following area may be Inaccessible : Pretoria
Start Date:2013-10-26 12:09:44
End Date:2013-10-27 10:10:47

Although for me the downtime started and ended earlier.