Wednesday, May 24, 2006

WizBit's history

Whoah! So I have this idea of creating a BitTorrent client for my phone, as none exist at the moment. I start doing this for my final year university project. It's a lot of work but I'm learning lots and it's quite fun, although quite difficult.

Suddenly the final report deadline gets really close. I need to write thousands of words for a write-up, including the testing for the program. To test the program it has to at least work a bit. I code like a monkey (google for that song, it's good). I code some more. Then I think: hmmmmm.

During that thought I decide to create a small page about my program (now called "WizBit", as I couldn't think of a better name) on my GooglePages page. This is for "distribution" as my report puts it. Even though the code isn't finished I decide to advertise the site in an IRC channel.

People tell friends, some friends have lots of friends, friends tell friends, people google for "s60 bittorrent", people blog: WizBit becomes almost famous. It's exciting but almost scary. So many people now know about WizBit!

I have to give a demonstration the day after my last exam (7th June, silly timetabling), which means by then it should have basic functionality. That's quite a lot of coding in not a lot of time.

After the 7th I'll probably chillax for a bit, then try to get WizBit working really well over the Summer. I'll release what I've done under the GPL so after the 7th people will be able to help if they want. It's really amazing to create something that lots of people really want. I really hope I can get it working all properly.

Wednesday, May 17, 2006

How popular is WizBit?

In just a few days the popularity of WizBit has increased like a super-popular thing. There are now many sites linking to WizBit, even though it's currently unfinished!

You can see the stats for this blog or view it on delicious, technorati, or google. You can also see the stats for the Official WizBit Website or view it on on delicious, technorati or google. Google News is also a good place to look.

Some sites which link to WizBit:
Thanks to everyone who's linked to WizBit. What's next? Maybe I'll get on the front page of Digg or Slashdott. Maybe the BBC will want to interview me...

Project WizBit

The code is comming along and is now available here. Note that is is an unfinished version and will not fully work yet. The report, which needs to be finished by tomorrow is currently about 5000 words.

Unfortunately the code will (probably) not be fully working tomorrow. It should hopefully be done by the presentation on July 7th. Wish me luck.

The BitTorrent client has been named WizBit.

Sunday, May 14, 2006

Final week status

Less than a week to go! The write up has to be done by Friday. The code doesn't have to be complete by then. I don't think it will. Hopefully it'll be working though.

I have got the front end just about done! I'll make screen shots at some point. Today I'm going to try to get the .torrent file processed and hopefully connec to the tracker.

PyS60 doesn't have a SHA module but there is one here, which I've just got working.

Also, when testing in Windows HyperTerminal, by scrollback buffer was getting corrupted, which made it really hard to debug errors. I changed the font (to Fixedsys) and now it works fine!

If anyone's reading this, what specific features do you think I should try to implement? What's most important in a Bit Torrent client?

Also, if anyone would be willing to test the code then please either email dave1010 at gmail dot com or leve a comment. All you need is a Nokia smartphone (slight knowledge of Python on Nokia may be useful but is notrequired).

Monday, April 24, 2006

Articles and websites of note

There's not a lot on mobile p2p but there is some. Here's some articles
And some software:
  • Symella is a Gnutella client for S60 Symbian phones (same target devices as my bittorrent client)
  • MobileDC is a Direct Connect client for UIQ (Sony Ericsson, P800, P900 etc) phones.
  • Simeda had a program called Pocketster which was a webserver and content discoverer for Windows Mobile.
  • Melodeo were thinking about software which users pay for then download songs from a server then can Bluetooth 30 second clips to friends.
There are more mobiles (cell phones) than desktop computers. There is more BitTorrent traffic than HTTP or email. I'm planning on putting (some) mobile phones with BitTorrent. In a few years there may be more data transfered through software like mine than any other software. That's insane!

Tuesday, April 11, 2006

Feature pack and Edition confusion

Symbian phones come in S60 (series 60), S80, S90 and UIQ. UIQ is touchscreen (e.g. Sony Ericsson P900), S80 is the Nokia Communicator range and S90 is the Nokia 7710 touchscreen TV phone. The most common is S60, which is what I'm going to be programming in.

As new technologies arrived new editions of S60 were released. Feature packs were also added. Here's a list of most S60 phones released as of April 2006. I'm working on a Nokia 7610 but I'm hopeing to get a Nokia N80 later.

Most Python libraries work on all editions and feature packs.

2nd edition FP 3
Nokia N70
Nokia N90

2nd edition FP2
Nokia 6682
Nokia 6681
Nokia 6680
Nokia 6630
Lenovo P930

2nd Edition FP1
Nokia 3230
Nokia 6670
Nokia 6260
Nokia 7610
Nokia 6620

2nd edition
Nokia 6600
Panasonic X800
Panasonic X700
Samsung SGH-D730
Samsung SGH-D720

1st edition FP1
Nokia 3660
Nokia 3620
Nokia 3600
Nokia N-Gage QD
Nokia N-Gage
Nokia 3650
Sendo X
Siemens SX1

1st edition
Nokia 7650

Info from here.

Tuesday, March 07, 2006

Code snippets

The site code snippets is a good code sharing site for all programming languages. There's lots of python and s60 stuff. Here's the snippets I've written.

Tuesday, February 28, 2006

FAQ

This is the Frequently Asked Questions. Just comment if you have another question.

Who are you?
My name is David Hulbert. I'm a final year undergraduate at Exeter University in the UK.

Why are you doing this?
I have to do an individual project as part of my degree (Internet Computing). I wanted to learn more about network protocols and I wanted to learn more about programming for mobile devices.

What is BitTorrent?
A method of distributing files which is more economical than HTTP (the usual web). Just like the web and email, it can be used for legal or illegal purposes.

Why S60?
S60 (previously Series 60) is a series of phones made by Nokia which run on the Symbian operating system. It's a very open platform and my current phone is S60.

Why Python?
Python is an open source language and is easy to learn. Nokia have ported it to S60 and it is well integrated into the phone.

Is there anything similar?
There are BitTorrent clients for many platforms but (as far as I am aware) none for Symbian. There is a working implementation of the Gnutella protocol on S60 called Symella. This has a similar use but is technologially very different.

When did you start and when will it be finished?
I started semester 2 of 2006. That's about the beginning of February. It should all be finished (if all goes to plan) by the 15th of May this year.

Introduction

This blog / journal / logbook / diary is for me to show my continual development progress on my final year individual project at Exeter University. I am creating a BitTorrent client for S60 (Nokia Symbian) smartphones in Python, which Nokia has kindly ported to S60.

Please leave comments or email dave1010 at gmail dot com if you would like to contact me.