blog archive contact about feed

Rob's Blog - April 2006

Contents

Here are Rob's Blog entries for April 2006.

Blog entries for other months can be found in the main blog index.

PayPal And iTagg UK Mobile Payment Solutions

It's interesting to see that PayPal have launched their mobile payment platform in the UK.

Once you have registered your phone with your PayPal account, you can either pay via SMS or a voice call.

Text to 62226 with the amount and recipient's phone number.

Example: send 5 to 07950001234

Then replying to the confirmation message with your PayPal PIN.

Or you can just call the voice service on 0845 355 0000 and follow the instructions.

The US service boasts some very big names as customers of the service such as MTV, Fox and Universal.

This service is geared for offline partners to accept PayPal payments, however another development that's due from PayPal shortly is payment system for charging for mobile internet content to be called WAP billing. Again this will take the payment from the users PayPal account and not using traditional methods such as reverse premium SMS.

Another payment platform was launched this week from iTagg.

Their Content Delivery and Billing Platform allows suppliers to sell mobile content on iTaggs managed service. Payment can be by credit card, premium SMS or PayPal. iTagg make their money by taking a cut of the charges.

Disappointingly, this is only available on the web at present, though a mobile version is promised for the future.

It will be interesting to see how the mobile payment systems from both PayPall and iTagg compare when they are launched. Another established player already active in this market to keep an eye on is Bango.

Entered: 2006-04-29 10:07:01
TRACKBACK - http://www.robertprice.co.uk/cgi-bin/robblog/trackback.pl?id=723

Links for 2006-04-28

Bookmarks from del.icio.us
Entered: 2006-04-29 00:15:02
TRACKBACK - http://www.robertprice.co.uk/cgi-bin/robblog/trackback.pl?id=722

Links for 2006-04-27

Bookmarks from del.icio.us
Entered: 2006-04-28 09:48:50
TRACKBACK - http://www.robertprice.co.uk/cgi-bin/robblog/trackback.pl?id=721

Using Series 60 Python To Talk To A Webserver

I've been continuing my journey into Python by modifying my earlier location script to now post details to my website when run.

I'm using the standard urllib now and moving to slightly more advanced Python language features such as dictionaries (basically the equivalent of a Perl hash).

The code gets the location, calls a CGI script on my website and prints the returned message from that script to the console.

Here's the code...

# we need access to the location and urllib modules so have to #import them. import location import urllib # get the mmc, mnc, lac and cellid by calling the gsm_location # method from the location module. (mmc, mnc, lac, cellid) = location.gsm_location() # add the location to a python dictionary called params. params = urllib.urlencode({'mmc': mmc, 'mnc': mnc, 'lac': lac, 'cellid': cellid}) # open a filehandle to a cgi tracking script that takes # the contents of dictionary params as parameters. f = urllib.urlopen("http://www.robertprice.co.uk/cgi-bin/test/cellid.pl?%s" % params) # get the results, hopefully a message saying OK. print f.read()

All the CGI script on my website does is to record the parameters passed to it and return a simple text string saying it ran OK.

As you can see it's really simple to Series 60 Python to communicate over the phone's network connection. I have to say, this language is turning out to be better than I had expected, and far easier than J2ME.

Entered: 2006-04-27 20:36:52
TRACKBACK - http://www.robertprice.co.uk/cgi-bin/robblog/trackback.pl?id=720

No More Vanilla Coke?

This could well be my last can of Vanilla Coke in the UK.

The newsagent in Eastcastle Street who normally keeps me stocked up, said that it's on longer being distributed and he can't get hold of it anymore.

Oh well, guess it was time i cut back on it.

Thu 27/04/2006 11:37 Image(052) - vanilla coke
Lifeblog Entry - Posted via Lifeblog from a Nokia smart phone
Entered: 2006-04-27 19:09:05
TRACKBACK - http://www.robertprice.co.uk/cgi-bin/robblog/trackback.pl?id=719

Links for 2006-04-26

Bookmarks from del.icio.us
Entered: 2006-04-27 00:15:01
TRACKBACK - http://www.robertprice.co.uk/cgi-bin/robblog/trackback.pl?id=718

Links for 2006-04-25

Bookmarks from del.icio.us
Entered: 2006-04-26 00:15:01
TRACKBACK - http://www.robertprice.co.uk/cgi-bin/robblog/trackback.pl?id=717

My First Python Script

It's a full day since I started to try to teach myself Python for my Nokia 3230 phone.

My first script is running, and though it isn't anything impressive, I'm still very pleased with the results.

So what is this amazing script? Well it just gets the current location of the phone by CellID, using the location module supplied with Python, and displays it on the console.

Here's the code...

# we need access to the location module so have to import it. import location # get the mmc, mnc, lac and cellid by calling the gsm_location # method from the location module. (mmc, mnc, lac, cellid) = location.gsm_location() # print out the retrieved details to the console. print "mmc %s\n" % mmc print "mnc %s\n" % mnc print "lac %s\n" % lac print "cellid %s\n" % cellid

screenshot of the python location script results As you can see it's not going to win any prizes at PyCon, but it does provide some very practical information for me, namely my location.

But what are those 4 variables returned?

  • MCC = Mobile Country Code
  • MNC = Mobile Network Code
  • LAC = Location Area Code
  • Cell ID = The Cell's ID :-)

Stay tuned for more Python adventures over the coming weeks.

Entered: 2006-04-25 21:43:52
TRACKBACK - http://www.robertprice.co.uk/cgi-bin/robblog/trackback.pl?id=716

New Nokia N72, N73 And N93 Mobiles

Nokia N93 Every mobile blog out there is carrying news about Nokia's three new NSeries phones, the N72, the N73 and the N93.

The N72 has a 2 megapixel camera, integrated digital music player, integrated browser, FM radio and Visual Radio. It runs on the S60 2nd Edition Operating System.

The N73 has a 3.2 megapixel camera, auto focus, FM radio, integrated stereo speakers with 3D sound. It runs on the S60 3rd Edition Operating System.

The N93 has a 3.2 megapixel camera with 3x optical zoom, DVD quality video capture, TV connection, integrated WLAN connection and FM Radio. It runs on the S60 3rd Edition Operating System.

The new devices support direct uploading of photos to Flickr from the phone.

One interesting thing I picked on from Charlie's post on the new phones, is that the Flickr uploader can also be repointed to other services like Typepad. Now this is something that really interests me. I wonder how this works? I would suspect it's an Atom based uploader like the Nokia Lifeblog if it is integrating with Flickr and Typepad. If it runs on the 2nd edition S60 platform (i.e. the N72), it may be back portable to the current 2nd edition phones out there. Time to keep an eye on the Nokia download sites incase it sneaks out there.

I really want an N93 to play with now. Time to delay my phone upgrade (again) until these are out in general release (July).

Entered: 2006-04-25 14:37:59
TRACKBACK - http://www.robertprice.co.uk/cgi-bin/robblog/trackback.pl?id=715

Links for 2006-04-24

Bookmarks from del.icio.us
Entered: 2006-04-25 00:15:06
TRACKBACK - http://www.robertprice.co.uk/cgi-bin/robblog/trackback.pl?id=714

It's Time To Learn Python

Learning Python No one would have believed, in the first years of the twenty first centry, that mobile affairs were being watched across many timeless RSS feeds. No one could have dreamed that they were being scrutinized as someone studies creatures that swarm and multiply in a drop of water. Few Perl coders even considered the possibility of life with other programming languages. And yet, across the gulf of the blogosphere, a mind immeasurably superior to theirs regarded a certain language with envious eyes, and slowly and surely, he drew his plans to use it.

Yes, I'm fed up waiting for to mature and fed up of J2ME's long development times and restrictive programming model. I've been watching Python enviously for a while, and I've decided it's time I added another language to my developers toolbelt.

I've gone out and bought O'Reilly's Learning Python 2nd Edition, and installed Series 60 Python on my Nokia smartphone.

I'm about a quarter of the way through the book, and it all seems fairly simple so far.

Once I've got myself up to speed with the standard language, I'm going to move to the Symbian specific stuff. I may then treat myself to Programming Python and the Python Cookbook to get my skills up to a decent level.

Series 60 Python looks to be really full featured offering...

  • 2D Graphics, Images and Full-screen applications
  • Camera and Screenshot API
  • Contacts and Calendar API
  • Sound recording and playback
  • Access to system info such as IMEI number, disk space, free memory etc
  • Rich text display (fonts, colours, styles)
  • Support for Scabale UI
  • Expanded key events
  • Telephone dialing
  • Zip compression
  • Networking support for GPRS and Bluetooth
  • Native GUI widget
  • SMS

In other words, the ability to do nearly anything you want quickly and easily on the phone once you've installed the Python sis file.

Another benefit of learning Python, will be the ability to script in Civilization IV. ;-)

Entered: 2006-04-24 21:15:15
TRACKBACK - http://www.robertprice.co.uk/cgi-bin/robblog/trackback.pl?id=713

Russell Beattie Closes His Notebook

It's sad to see that Russell Beattie has finally closed his infamous notebook.

This site has been a required daily read for me, with my RSS reader checking for updates every few hours to see the latest news and read his opinions on mobile technology.

The good news is that Russell says he may be back blogging soon, just on a new site, and far less frequently.

Entered: 2006-04-24 09:24:10
TRACKBACK - http://www.robertprice.co.uk/cgi-bin/robblog/trackback.pl?id=712

Notes On Nokia Lifeblog 2.0

Nokia Lifeblog 2.0 is available for Nokia's NSeries range of handsets.

The guys over at S60 Multimedia Blog cover the new Lifeblog 2.0 features briefly.

These are...

  • Free of charge and exclusive
  • New flexible sync approach
  • Windows-style user interface
  • Audio annotation (from phone only)
  • Search by calendar entry, location or contact detail
  • Configurable automatic delete
  • Undo/redo commands
  • Local printing capability
  • Editing via external applications
  • 4 new languages

Unfortunately I don't yet have a suitable NSeries mobile phone to test out the new version, but Charlie does and has some comments on Lifeblog 2.0.

One of the most interesting upgrades is the ability to track Lifeblog entries using the cellID of when the entry was made. Charlie points out that you can select an item by cellID then change all the meta data (tags, date, location etc) associated with that item, or you can even extend the selection to all other items with the same cellID. That sounds really cool.

I wonder if the Lifeblog posting specification has changed to incorporate this new information and move to Atom 1.0. The spec I've just linked to still uses Atom 0.3 and doesn't seem to include cellID yet.

As you may know, I'm a big fan of the Nokia Lifeblog product and use it on my own website for moblogging. When I finally get a new NSeries handset, this upgrade will be one of the first things I'm going to try out.

Entered: 2006-04-21 23:47:17
TRACKBACK - http://www.robertprice.co.uk/cgi-bin/robblog/trackback.pl?id=711

Emap To Sell Mobile Advertising For 3

Some interesting news from work today relating to mobile advertising.

Our sales team at Emap have come to an arrangement with phone operator 3 to sell ad inventory across their portal, starting with the games area.

It's just a trail at present, but it's interesting to see how mobile advertising will work out.

Mark Joseph at 3 had this to say about the deal...

We're waiting for the market to evolve and for a partner to demonstrate it has the capabilities. Emap has a new media sales team, so we've given it the opportunity to demonstrate whether it has the skills to sell this inventory.

There's a bit more on this over at New Media Age, 3 opens up to advertisers and offers media space to Emap.

Entered: 2006-04-20 22:49:47
TRACKBACK - http://www.robertprice.co.uk/cgi-bin/robblog/trackback.pl?id=710

Nokia Launch M-Blog

Darla Mack points out that Nokia India have just launced a new mobile blogging solution call Nokia M-Blog.

It's currently only for Nokia NSeries phones, and the good news is that it's a free download.

The system only lets you post to the nokiamblog.in site, so it's not as flexible as the Nokia Lifeblog, but it's designed make blogging your photos as easy as possible.

For an example site, have a look at Gagan Kaul's M-Blog.

Entered: 2006-04-20 10:39:57
TRACKBACK - http://www.robertprice.co.uk/cgi-bin/robblog/trackback.pl?id=709

Updated Heathrow Arrivals WAP Service

I had an email from Pete Gross asking about updating the old BAA Heathrow Flight arrivals WAP service I wrote to work with the current BAA heathrow arrivals website.

I've not used the site for a while so thought it would be complex to get working again, but it turned out to be just a quick change of regular expressions for the data extraction.

For the benefit of others I'll quickly go over the regular expression used in the main while loop to explain what's going on.

1 while ($page =~ m[ 2 <tr .*?> # opening tr 3 \s+<td>(\d{2}:\d{2})</td> # scheduled time 4 \s+<td>(.*?)</td> # flight number 5 \s+<td>\s*(.*?)\s*</td> # from 6 \s+<td>\s*(.*?)\s*</td> # status 7 \s+<td>(.*?)</td> # terminal 8 \s+</tr> # closing tr 9 ]xsg) {
  1. The main while loop saying we're repeating the following regular expression on $page
  2. Find a <tr with a space and option characters before the closing >. This is because the BAA's site alternates with an optional class of liveFlightGrey.
  3. Ignore any space before <td>Extract and memorise to $1 the contents if they are in the format dd:dd.
  4. Ignore any space before <td>Extract and memorise to $2 the contents of the tag.
  5. Ignore any space before <td>Ignore any starting or tailing space and extract the contents of the tag to $3.
  6. Ignore any space before <td>Ignore any starting or tailing space and extract the contents of the tag to $4.
  7. Ignore any space before <td>Extract and memorise to $5 the contents of the tag.
  8. Ignore any space before the tr tag.
  9. We're using x so we can break up the regular expression, s so we can match newlines with ., and g to work over the whole content of the variable.

The whole code follows, just cut and paste it to your webserver to use it. You'll need Perl with LWP::Simple installed to get the page live from the BAA's website.

Ideally we should all be using XHTML MP now instead of WML, but this still does the job.

#!/usr/bin/perl -w ## Script to screen scrape Heathrow arrivals from ## the BAA website, and show them on a WAP page. ## Updated - Robert Price - 15/04/2006 ## Originally - Robert Price - 26/01/2004 use strict; use CGI; use LWP::Simple; ## default flight number use constant DEFAULT_FLIGHT => 'BA010'; ## url of the heathrow arrivals, seems to be the ## same format for other airports. my $url = 'http://www.heathrowairport.com/portal/site/default/menuitem.e1f47266574138bae8890127c02865a0/'; ## get the flight we're interested in. my $CGI = new CGI; my $flight = $CGI->param('flight') || DEFAULT_FLIGHT; ## uppercase the flight to make it easier to search. $flight = uc($flight); ## send the header and start of the WML page. print<<HEADER; Content-type: text/vnd.wap.wml <?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"> <wml> <card id="main" title="Flights"> <p>Arrivals at Heathrow</p> HEADER ## if we're looking for a flight... if ($flight) { ## get the arrivals page. my $page = get $url; ## holding hash for flights. my %arrivals = (); ## iterate over the page extracting information. while ($page =~ m[ <tr .*?> # opening tr \s+<td>(\d{2}:\d{2})</td> # scheduled time \s+<td>(.*?)</td> # flight number \s+<td>\s*(.*?)\s*</td> # from \s+<td>\s*(.*?)\s*</td> # status \s+<td>(.*?)</td> # terminal \s+</tr> # closing tr ]xsg) { ## skip if we have no flight number next unless ($2); ## store the information in the hash. $arrivals{$2} = { 'scheduled_time' => $1, 'flight_number' => $2, 'from' => $3, 'status' => $4, 'terminal' => $5, }; } ## get the page modification time. my ($modified) = ($page =~ m[Current Update:</span> (.+)\r\n]g); ## if we have found the flight, print ## out it's information to the WML page. if (exists $arrivals{$flight}) { my $details = $arrivals{$flight}; print "<p>\n"; print 'Flight: ' . $details->{'flight_number'} . "<br/>\n"; print 'From: ' . $details->{'from'} . "<br/>\n"; print 'Scheduled:' . $details->{'scheduled_time'} . "<br/>\n"; print 'Status: ' . $details->{'status'} . "<br/>\n"; print 'Terminal: ' . $details->{'terminal'} . "<br/>\n"; print "</p>\n"; } else { print "<p>Flight $flight doesn't seem to be listed</p>\n"; } print "<p>Updated: $modified</p>\n"; } ## print the end of the page and the query ## form if we want to search again. print<<FOOTER; <p> Flight:<br/> <input name="flight" emptyok="false"/> <br/> </p> <p> <anchor title="search"> <go href="/cgi-bin/mobile/arrivals.pl" method="post"> <postfield name="flight" value="\$flight"/> </go> Find Arrivals </anchor> </p> </card> </wml> FOOTER
Entered: 2006-04-15 16:14:31
Modified: 2006-04-18 15:30:35
TRACKBACK - http://www.robertprice.co.uk/cgi-bin/robblog/trackback.pl?id=708

Dealing With Trackback Spam

With all the trackback spam I'm currently receiving, I've reworked the trackback code on this site again.

Each trackback is stored in a MySQL database, which I periodically clean out. This database tracks the senders IP address and if the trackback is shown or not, as well as the normal links and copy associated with a trackback.

The new code now looks at the incoming IP address and if it has more than 3 no show flags then it automatically treats the incoming trackback as spam instead of going off and doing more exhaustive checks.

This is working very successfully, and though I'm still getting several hundred spams a day, yesterday only 18 were from new IP addresses that aren't blacklisted, and they still didn't make it live as the trackback code detected they didn't link back to this site.

All trackbacks are emailed to me, along with their status, and GMail is doing a good job in grouping it all together for easy checking.

So far, it's got nothing wrong.

Entered: 2006-04-15 10:17:47
Modified: 2007-06-08 16:35:02
TRACKBACK - http://www.robertprice.co.uk/cgi-bin/robblog/trackback.pl?id=707

Over 1000 Trackback Spams Today

Trackback spam is becoming a major problem for me.

In the past 24 hours I've had over 1,000 attempts to place trackback spam on this site that have been detected by my trackback software and blocked.

The latest trick seems to be for the spammers to refer to Google, Yahoo.com, and MSN.

I suppose this is because these are genuine sites and they want their spamming IP's to be whitelisted as real trackback senders.

My homebrew trackback software works by visiting the trackbacking URL to see if they really do reference this site. If they don't they are classed as spam. If this carries on they'll chew up all my bandwidth.

Entered: 2006-04-07 22:09:21
Modified: 2006-04-15 10:18:42
TRACKBACK - http://www.robertprice.co.uk/cgi-bin/robblog/trackback.pl?id=706

Developer Priorities

Sarah has published a list of her top 10 developer priorities on her blog.

  1. Solving the technical problems (solutions creation)
  2. Ensuring quality (including reliability and security)
  3. Having the skills to work efficiently and effectively
  4. Design for re-usability
  5. User centric software designs (HCI)
  6. Deliver software on time (where humanly possible)
  7. Using the best language to do the job
  8. Having the right tools available to do the job
  9. Avoid internal orgainsational politics as much as possible
  10. Working with intelligent & intellectual people
  11. Bonus priority! Tea (lots of... ) & good food (dairy free!)

That's a very good list, but I'd add one more to it.

  • Working on a product you care about

It's very important to care about the products you are working on else why bother? If you don't have "buy in" (i hate that term) then it just becomes something to get out of the way, corners could well be cut to achieve that, and job satisfaction is low. You could well end up with a substandard product.

Finally, make sure that bonus priority is herbal tea (preferably Lemon and Ginger).

Entered: 2006-04-07 09:22:46
TRACKBACK - http://www.robertprice.co.uk/cgi-bin/robblog/trackback.pl?id=705

Links for 2006-04-06

Bookmarks from del.icio.us
Entered: 2006-04-07 00:15:02
TRACKBACK - http://www.robertprice.co.uk/cgi-bin/robblog/trackback.pl?id=704

Links for 2006-04-05

Bookmarks from del.icio.us
Entered: 2006-04-06 00:15:01
TRACKBACK - http://www.robertprice.co.uk/cgi-bin/robblog/trackback.pl?id=703

Sunset 5th April 2006 - part 2

Another shot of this evening's beautiful sunset.

Wed 05/04/2006 19:17 Image(047)
Lifeblog Entry - Posted via Lifeblog from a Nokia smart phone
Entered: 2006-04-05 19:20:55
TRACKBACK - http://www.robertprice.co.uk/cgi-bin/robblog/trackback.pl?id=702

Sunset 5th April 2006

There's a lovely sunset this evening. This snap was taken from the window of the London to Eastbourne 17.53 train just after leaving Lewes.

Wed 05/04/2006 19:04 Image(046)
Lifeblog Entry - Posted via Lifeblog from a Nokia smart phone
Entered: 2006-04-05 19:10:06
TRACKBACK - http://www.robertprice.co.uk/cgi-bin/robblog/trackback.pl?id=701

Wickes Loft Storage Panels

Have you ever found yourself looking at loft storage panels and thinking, "they look great, but where can i use them"?

Thankfully the packaging design people at Wickes have thought of that and provide the answer on the packs themselves.

"Ideal for lofts".

So next time you're looking at loft storage panels and wondering where you can use them, just follow wickes advice, they could be ideal in your loft.

Wed 05/04/2006 06:47 Image(045) - wickes loft storage panels - ideal for lofts
Lifeblog Entry - Posted via Lifeblog from a Nokia smart phone
Entered: 2006-04-05 07:32:17
TRACKBACK - http://www.robertprice.co.uk/cgi-bin/robblog/trackback.pl?id=700

Cool Date Approaches

As pointed out on Boing Boing next month has a special date coming up.

A two minutes and three seconds past one in the morning on the 4th May 2006, the date will be 01:02:03 04/05/06.

Remember to set your alarm!

Entered: 2006-04-04 09:20:32
TRACKBACK - http://www.robertprice.co.uk/cgi-bin/robblog/trackback.pl?id=699

Links for 2006-04-03

Bookmarks from del.icio.us
Entered: 2006-04-04 00:15:06
TRACKBACK - http://www.robertprice.co.uk/cgi-bin/robblog/trackback.pl?id=698