Whatever crosses my mind.


Python for Series 60 Status

So, the 1.0 release is now done and in the wild, and development continues. In the near future we'll try to get the legal issues settled so that we can start releasing code without having to deal with so much red tape as for the formal releases. There's quite a bit of stuff that we've developed to a useful state, but that is not polished and tested well enough to merit a formal release. Starting a Sourceforge project for these code snippets and extensions is one viable option. We'll see how it works out.

Some of this stuff that's hopefully coming soon includes:

  • Nonblocking sockets and select() support. The native socket module shipped with 1.0 actually already contains the necessary support for asynchronous calls, and this is just a pure-Python wrapper over that functionality that provides a standard nonblocking socket/select interface. The current version already works well enough for the irclib module to work without changes.
  • A pure-Python (platform independent!) file transfer server, for transferring files to and from your phone over Bluetooth. This is a real godsend compared to the awful PC Suite - just edit your scripts on the computer, run a synchronization script and five seconds later you can run the new code in the Bluetooth console.
  • zlib. Porting this to Symbian was easy. You just had to change the static type objects to dynamically allocated ones and add some boilerplate code and that was it.
  • A concise and commented example on how to port an existing Python extension to Symbian. In the mean time you can check out the PyExpat port that the HIIT people made to see what needs to be changed while porting.
  • A screenshot module.
  • Unofficial fixes to some of the issues in the release notes. Some of the bugs are really trivial to fix, but they were found only after the final packages were signed and just a few days before the release. I'm talking about things like the get and setdefault methods of e32dbm. *puts brown paper bag on head*

    Oh, and if you are wondering what kind of magic the e32.Ao_lock() call in the rssreader.py example code RSSFeed constructor is doing: it's just leftover junk that was used in some previous version, but which is completely redundant in the current code.

Graphics support and some sort of a canvas widget is the next big thing on the agenda. The intention is to have a reasonably efficient and easy-to-use API for drawing and event handling that interoperates nicely with the native UI framework. The planning for this has only just started, and no specifics have been nailed down yet. One option is to use the PyGame API, and possibly provide access to an OpenGL ES renderer but this is just an idea. Feel free to comment if you think you have good ideas on what sort of a graphics widget you would like to see.

Tip: If you are thinking of trying out Python for Series 60, do see the Python for Series 60 wiki at postneo.com. There's a bunch of links to relevant blogs and other resources on the web. I suppose that's as good a place as any to use as the repository for related information.



Well, hello everyone and welcome to my blog. I actually created this some time ago, but I haven't had much use for it until now. Long story short: I was and am one of the developers in the Python for Series 60 project. I'm as excited about it as anyone. It's frankly quite incredible to get paid to work on a project I might even do for free, given a sufficient amount of free time :)

Anyway, since the future of this project depends to a big extent on what all the hackers do with it, I figured I should do what I can to share what I know. Hence, this blog. At this point I won't give any promises on how frequently I will post, but I will do my best to keep you up to date on what is happening in the Python for Series 60 world. I cannot comment on any matters that are company confidential, but that still leaves a lot to discuss.

If you have anything to ask, feel free to post comments here.

DISCLAIMER: This is my personal, unofficial blog. All opinions expressed here are mine, and not Nokia's.