April 08th 2013

Korean Technology

Tags: thoughts Written by Dave Barker

I was in South Korea recently with work and I managed to get some time to explore before I flew home. I noticed that the average Korean interacts with technology differently from than the average Brit. My observations are mostly generalisations by nature but I thought they’d perhaps be of interest.

  1. Koreans don’t generally use Google maps, they use a Korean map website I didn’t manage to write down the URL though. Google maps does work but a lot of the shops and things aren’t listed like they are in the UK.
  2. Almost everyone has a smart phone here, even the “little old lady” you might meet in some random corner shop has no problem firing up a translation app. Young people especially are glued to them on the subway, you’d be better off counting the people not staring at one. It’s very rare to see anyone reading a paper book.
  3. TV still seems fairly popular here unlike in the UK. You can watch it in some cars on your sat nav and even on some smart phones that have pull out antenna.
  4. I rarely see people use tablet computers, I think they’re actually more popular in England.
  5. iPhones seem pretty rare here, I suppose because Samsung is based in Korea. I would say Samsung/LG Android phones are by far the most common. I don’t think I’ve ever seen a Blackberry being used here.
  6. Phone screens are much larger here, my phone (Samsung Galaxy Nexus) is considered pretty huge by UK standards but is actually probably smaller than average here. You couldn’t easily buy much smaller a phone than mine here. I’ve literally seen a 2 year old playing with a Galaxy Note 2. Some of the phones here (LG I think) have a more square aspect ratio, not all of them are long and thin.
  7. Korean internet seems to be pretty good but not much different from ours. My colleagues got 100mb to their house, same as me. I found some of the connections I used surprisingly unreliable but I suppose that’s not much different in the UK.
  8. Touchscreen interfaces to enter Korean characters seem very clunky. Tech-savvy taxi drivers almost always fumble trying to enter an address.
  9. The Korean people seem to on average be much more open to embrace technology here. The technology itself doesn’t seem much different.
  10. Facebook seems popular here like in UK.
  11. Several Koreans I have met consider Korea number #1 worldwide in technology, internet, smartphones etc.
  12. It’s quite common to smoke here but I’ve not once seen an electronic cigarette, in the UK they are becoming quite popular.
  13. With online payments still tied to Active X things are seriously being hindered. A lot of people here seem to use an Android smart phone all day long but until things are opened up they would still need a PC running Windows, Internet explorer and ActiveX to perform online transactions… crazy!

Cheers, Dave.

January 06th 2012

Telit GM862-GPS hex() bug

Tags: code news python embedded Written by Dave Barker

My SHA1 code was returning a different hex digest when run on my Telit GM862 GPS. I eventually tracked the problem down to the hex() function. Simply put hex(3181490320L) does not return the right result!

Run this test script and post your results below.

import sys, SER, MDM

# Set up printing to serial
SER.set_speed('115200', '8N1')
class SerWriter:
  def write(self, s):
    SER.send(s + "\r")
sys.stdout = sys.stderr = SerWriter()

# Simplistic AT command function
def at_command(command):
  # Clear the command interface buffer
  MDM.read()
  # Send the command
  MDM.send(command + '\r', 0)
  # Create a buffer
  buffer = ''
  while 1:
    # Listen to serial port for click
    incoming = MDM.receive(1)
    # If we got some data handle it
    if incoming:
      buffer = buffer + incoming
      if buffer.find("OK") > -1:
        return buffer
      elif buffer.find("ERROR") > -1:
        return ''

# Run the tests
print at_command("AT+CGMM")
print at_command("AT+CGMR")
i = 3181490320L
print i
print long(hex(i), 16)

# Restore standard out
sys.stdout = sys.stderr = sys.__stdout__

My output was:

OK

GM862-GPS

OK


07.03.402

OK

3181490320
2376183952

Cheers, Dave.

Edit: In case anyone’s interested here’s my hex() replacement. It’s probably much slower but it works and can pad the hex string to x bytes.

def write_hex(x, bytes=1):
  h = ['0'] * bytes * 2
  i = 0
  while x > 0:
    if i < bytes * 2:
      h[i] = '0123456789abcdef'[x & 0xf]
    else:
      h.append('0123456789abcdef'[x & 0xf])
    x = x >> 4
    i = i + 1
  h.reverse()
  return ''.join(h)

December 08th 2011

SEO contact form spammers

Tags: news Written by Dave Barker

I get loads of emails from SEO peddlers via my contact form, it’s irritating! Anyway I’ve decided to do something about it, each time they mail I’ll fain interest and then post the details of those responsible online.

So without further ado I present the SEO contact form spammers gist of shame, first up is Bibin Alexander from Clearpath Technology.

I’ll keep updating the gist as the spam comes in, if you want to avoid being shamed please stop spamming me!

Cheers, Dave.

November 28th 2011

Privilege request explanations

Tags: idea Written by Dave Barker

With a lot of “app stores” applications are sandboxed, requiring the user to allow various privileges. I think it’s a great idea but there are two flaws:

  • There’s no option to pick and choose the permissions given, it’s all or nothing.
  • There are no explanations given for the required permissions, often you can’t make an informed choice.

My suggestion is that Facebook, Google and the likes update their APIs to require an additional parameter when requesting permissions - a reason or explanation. “I need full access to your phone because …. When you think about it, it’s incredible that it’s not already a requirement! I suggest empowering users to say no if the reason isn’t strong enough, give them the option to say no to permissions they’re not comfortable with.

Oh, one thing worth mentioning; there’s an interesting looking Chrome app to reduce given Facebook permissions. I’ve not tried it but I think the author’s on to something.

Cheers, Dave.

August 22nd 2011

bit-ratchet, easier binary parsing in PHP

Tags: php project code Written by Dave Barker

Recently I needed to write some code to parse a binary protocol in PHP. Given a ASCII hex string representation of the message I needed to pull off bits and bytes, using them in lots of different ways.

Problem was that you have to read a byte at a time from the hex string, then manually shift bits each time to get what you want. This gets old and confusing very quickly! To solve this I’ve written bit-ratchet, a small class that lets you read bits and bytes from a hex string very simply.

The idea is you create a bit-ratchet object of your hex string. You then ask for bits and bytes, signed or not and bit-ratchet provides them whilst keeping track of your current position in the data. Additionally I added a few useful methods allowing you to skip, jump and pull off hex.

Things like scaling numbers are mostly left to the user, the one exception being signed numbers which are handled by bit-ratchet. I wanted to avoid creating a complex library like bindata, in my opinion although it’s great the DSL it provides is constraining. Better to let the user use the host language and as far as possible stay out of the way!

It scratched my itch but let me know if you’ve got any ideas about how to expand on the abstraction.

Cheers, Dave

Edit: I’ve since written a much more powerful Javascript version of this library.

Older posts Newer posts Atom Feed atom-feed