jl.blog()

Whatever crosses my mind.

2004-12-27

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.

18 Comments:

At December 28, 2004 at 12:42 AM, Anonymous Anonymous said...

Hello,

Some of Nokia's employees know me by ShareMe with a blog with the same Name..

PyGame and ES GL renders woudl be very cool...

Frommyperspective I am developing game gines specifically for Series60 as I belive that power full games and apps on Series60 will send Sales of Sereis60 towards the stratosphere..

Having PyGame API and the ability to do ES GL rendering thorugh Python would allow me to put some of my planned game engines onthe same footing via Python, J2ME and C++ to see how well the engine works being ported into those languages..


Now, if only I could get 18 months of day work via contracts to ease the process in certain ways..


Very good efforts so far on Nokia's part..keep up the good work..

ShareMe...the only way mobile should work :)

 
At December 28, 2004 at 8:16 PM, Anonymous Anonymous said...

Concerning releasing code, have you decided how much of the code will be released to the public? Enough to "just port" to other Symbian UIs, such as UIQ? I looked at Python's license but it didn't seem to enforce much...

/Jonas

 
At December 29, 2004 at 2:06 PM, Anonymous Anonymous said...

you should put a RSS feed for this blog - it sounds interesting!

Luke Barker

 
At December 29, 2004 at 2:31 PM, Blogger Jukka Laurila said...

Unfortunately I don't have any definite information on the source release yet. When final decisions are made, I'll probably post about it.

 
At December 29, 2004 at 2:36 PM, Blogger Jukka Laurila said...

There is an Atom feed already, but I didn't find any option in the Blogger settings that would enable an RSS feed. Am I blind or is Blogger just lacking that feature?

 
At December 29, 2004 at 3:11 PM, Anonymous Anonymous said...

Looking forward to more information about source code release.

Blogger doesn't provide RSS support. If you absolutely want a RSS feed (Atom is sufficient in most cases) you can use a service such as http://www.feedburner.com/

/Jonas

 
At December 29, 2004 at 9:09 PM, Anonymous Anonymous said...

I noticed the extra Ao_lock in the rssreader, and
also the "#%s#" bit in the SQL for timestamps in
the Sports_diary example. What is that? it doesn't
look anything like standard SQL.

-Taj (working on some dev tools with this and currently reverse engineering APIs :)

 
At December 30, 2004 at 1:10 AM, Blogger Jukka Laurila said...

That #%s# is not standard SQL, it's the notation for a time literal in the Symbian RDBMS SQL syntax.

 
At December 30, 2004 at 11:05 PM, Anonymous Anonymous said...

Is S80 port planned?

 
At December 31, 2004 at 3:22 PM, Blogger Jukka Laurila said...

Unfortunately I cannot comment on that.

 
At January 3, 2005 at 12:23 PM, Anonymous Anonymous said...

The file-server sounded cool. That would be really helpfull with regular C++ applications too, automating file distribution to phones.

 
At January 11, 2005 at 4:11 PM, Anonymous Anonymous said...

Hi,

Just a small note to let you know that we've ported our concurrency system (Axon) based on communicating python generators (http://kamaelia.sourceforge.net/Docs/Axon.html) to python on series 60 (very nice work on the python port! :). Axon forms the core of a system designed for developing and testing network protocols, so the comments above regarding non-blocking sockets and a select module are awaited with anticipation! If you need alpha/beta testers, please get in contact!

Best Regards,


Michael Sparks (michaels at rd.bbc.co.uk)

 
At January 17, 2005 at 11:34 AM, Anonymous Anonymous said...

The PDIS people have their own socket implementation, so you could contact Ken Rimey about beta-testing their version. See http://pdis.hiit.fi.

-Tapio

 
At January 17, 2005 at 3:18 PM, Anonymous Anonymous said...

As Tapio mentioned, we did a limited implementation of thread-safe blocking sockets supporting full-duplex operation. See pdis/net/abstract_socket.py and symbian/ao-socket/python-lib/aosocket/symbian/tcp.py (or bt.py) in the source tree available on our web site as of today (at http://pdis.hiit.fi/pdis/download/). This was just something we did for our own purposes, and there is no documentation, so anybody who decides to try to do something with it should seriously consider getting in touch with me instead of trying to figure it out on their own.

-Ken Rimey, rimey at hiit.fi

 
At January 24, 2005 at 4:19 PM, Anonymous Anonymous said...

How to use forms correct?

When I use a form like in sports_diary, it is not closed on "save". I even have to select cancel to close the form.

I already changed my code, so the saving happens in the "save_hook" and not after executing the form. So it saves only if the user selected "save".

But I would like to close the form, after he selected "save". How do I do so?

 
At July 7, 2005 at 11:09 AM, Blogger MHjerpe said...

The PyGame api on S60 python would be wery nice...

 
At August 2, 2006 at 9:33 AM, Blogger invalid user said...

If I have a Series 60 phone with Wifi, can I write a socket program that will use the wifi connection?

 
At April 19, 2007 at 7:42 PM, Anonymous Anonymous said...

I use Python on my mobile and works great.

I have donde several aplications:
http://www.personal.able.es/orbital/Python/python.htm

 

Post a Comment

<< Home