nokia E61 and Google Docs

Who said that Google Docs and Spreadsheets is not working with a nokia mobile?
OK - it's not pleasure, but at least I can see what I wrote after some hacking.

This is the spreadsheet. Read only, the guys check the browser. At least I can see something.

This is the Docs. It is almost working! Click on the tabs is working:

Trying to login through docs.google.com results in:
Adding /?browserok=true at the end of the URL does not help too much. The document list is empty:

Stay tuned for more.

That was done using a nokia E61, SW: 3.0633.09.04, with the stock-builtin browser.


OT: updating nokia E61 software

Just bought a nokia E61 to play around.
Tried to update the firmware in it. The nokia software updater did not even start up.
The error message was: "Network connection lost. Check your network connection or wheter a firewall is prventing the application from working properly".
Nope, no firewall problem. Internet explorer was "working offline". Thanks Bill.


ZODB tracing done

Project home is now z3c.zodbtracing on svn.zope.org.
Read more here: http://svn.zope.org/z3c.zodbtracing/trunk/src/z3c/zodbtracing/
Performance can be an issue if using this storage, but that's not for production, just for debugging so don't come whining.

How to debug UnpickleableError

Sometimes happens that you put a security proxied object into a persistent object's property. Then on transaction commit you get the error:
UnpickleableError: Cannot pickle objects
Now you can search al your code and guess where you set that property.
That can be solved much simpler:
modify ZODB/serialize.py temporarly as follows:
def _dump(self, classmeta, state):
# To reuse the existing cStringIO object, we must reset
# the file position to 0 and truncate the file after the
# new pickle is written.
#your favorite debugger's break command

return self._file.getvalue()

And voila, classmeta is the class concerned, state is a dict holding the state. From these values it's piece of cake.


Restart Z3 with a single click

Put a bookmark into your browser's toolbar that points to http://localhost:8080/++etc++process/servercontrol.html?restart=1
That simple it is.

ZODB debugger

The questions "how-to check the structure of ZODB", "what is stored in the ZODB" pops up here and there.
The answer is: http://svn.zope.org/z3c.zodbbrowser/
This is a wxPython package running independently of the Z3 app server. In fact shut it down before trying to start the ZODB debugger.


ZODB tracing

Just run into a problem, that my app loads too many objects. That was easily determined by IConnection.getTransferCounts. But from this point on I need to know from which part of the app the load comes.
Solution will be to write a storage that proxies any storage and sends events on all object load/save event.
Project home will be z3c.tracingstorage on svn.zope.org.
Stay tuned for more.