PlayBook Internals: Part 1

Posted:   |  More posts about PPS Python qconn PlayBook

As mentioned in an earlier post I've been perusing the PlayBook simulator's filesystem in an effort to learn more about its architecture so I can improve my ability to build good apps for it.

PPS Service

I didn't know anything about QNX before getting into PlayBook development, but one very interesting looking technology from that side is the Persistent Publish/Subscribe (PPS) mechanism that was added fairly recently to QNX. Paul Leroux has written a nice overview on PPS.

I can see signs this may be used in numerous interesting ways in the PlayBook, though possibly it will all end up being under the covers, hidden behind API calls that make it look like something else.

For now, my main use of it has been to toggle development mode (which you can just do through the UI anyway) and to change my wallpaper (which will obviously be supported later but which I'm happy to be able to do now).

I think I'll ask someone at RIM whether they'd consider documenting a number of the PPS objects and attributes for developers to use. It would likely let us get more things working for the initial release date than it currently appears we will be able. Maybe it would also let RIM focus their efforts on more critical things than, say, exposing an API for changing the wallpaper.

Python 2.7

Wow... I didn't expect to see this here. I have no idea if it will survive into the release version, but it looks like someone had the excellent idea of using Python (2.7) to manage firmware updates (or maybe it's something else...) in the PlayBook. Python has proven highly effective (and robust) in such roles thousands of times over, and I consider this another sign of strong technical merits in the product, even if they never expose Python to third-party developers.

On the other hand, if they did provide some API support for Python (or just let others build one), I think it would be great. ActionScript3 is fun and all, and especially effective for UIs (duh), but for the business logic in a complex app it's hard to beat Python for productivity and simplicity.


The qconn service provides an interface used by the QNX Momentics IDE for remote debugging. Since this is listening on port 8000 and announces itself rather clearly, I figured it's safe for me to mention it:

$ telnet pbsim 8000

Try the "info" command for output that largely duplicates what you can see in the PlayBook Settings "About" page in the simulator.

This isn't much use right now to most of us, but will obviously be a huge boon for those using the native (C/C++) SDK when it's released, as it should provide support for (among many other things) profiling, memory analysis, tracing and other debugging goodies.

Comments powered by Disqus