Free Blog Themes and Blog Templates

Paroli’s Vision

Paroli’s Vision

In short, paroli, as a software, is a layer between applications and fso. The idea is to give non-programmers, or inexperienced ones, easy access to the device. So the core takes care of most of the heavy dbus fighting and fso registering etc and lets the devs worry only about the app and the UI itself. Paroli is plug-in based and requires only a single python instance to run any number of applets and services.

The extra-layer approach means signals and resources are handled collectively and allow for easy integration of different applets and services independent of their respective creators.

The Paroli Project

I recently noticed, when explaining paroli to a very good friend of mine, that there is a dramatic lack of clear explanation of what paroli is, aspires to be and how we plan to achieve this.

The most commons questions are: Is paroli written in python? Is it a scheduler? Can I make calls with it? Is it software or a greater project?

The short answer is: all of the above and more.
Not really enough to solve the immanent problem so here comes the long version ;)

In a few words one could say: paroli is a new approach to application development on the openmoko phones.

Instead of having individual applications requesting system resources, paroli will run as a python daemon, dynamically loading modules and applications saving system resources and limiting redundancy in code.

Paroli provides a library of core-classes which are adapted to paroli’s modular and flexible philosphy ( see: http://www.paroli-project.org/running-paroli/the-core/ ). This library is initialized when paroli is loaded. Starting paroli also registers and initializes all services and applications and optionally creates a dbus interface for outbound communication as well as launching a start-up application.

The services are small scripts which are made available throughout paroli’s code via simple calls. The idea is to provide a maximum amount of functionality to the applications without having to recreate them everytime. Also, once initialized the services can send signals telling all connected applications about changes or events, resulting in multiple applications responding to the same signal at virtually the same time.
In short: services are functional scripts in side paroli taking care of data handling as well as communication flow.
An important service on the Openmoko phones for example is the GSM service, which takes care of connecting to the frameworkd, registering on the network and providing the infrastructure to make and receive calls.
An application wanting to place a call, would gather all necessary contact information and send it in a call request to the GSM service. The service would connect to the framework daemon who, in turn, would initiate the call. The status of the call is then send back in simpel signal form to the service as well as the application.

Applications, in the paroli sense, are scripts that turn information retrieved from services into user presentable data. They are the bridge between paroli’s core and the GUI. They allow user interaction, creation of new data sets and visual presentation as well as loading and saving of data.

The graphical user interface which is triggered by application calls is generated from etk and edje objects. The EFL offer a wide range of graphical tools and the combination of etk and edje allows for simple GUI creation while retaining the flexibility to implement virtually any given design.

Tieing all these together you have services connecting to system resources and outside processes, applications waiting for user input and a daemon which connects all these.

If we pick up the example of the GSM

How does all this look in a more structured way including non technical details?

Paroli Project

Aims:
- make the openmoko phones and the applications running on them accessible to and for all
- create community driven applications allowing the use of the Openmoko phone as a daily phone for anyone
- provide easy way to allow everyone to “design their own phone”

Community goals:
- create comprehensive edje documentation
- create new designs
- create reference implementations
- make the Openmoko - YOUR moko

Software to be used and developed
- freesmartphone framework (fso)
- enlightenment (etk,evas,edje etc)
- paroli plugins/applications - basic phone apps
plus: whatever we come up with ;)

As everything surrounding paroli this page is work in progress and by no means complete, so if you think there is information missing and want to add something, please do not hesitate to leave a comment or ping me using your prefered mean to do so.

Free Blog Themes and Blog Templates