<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://maemo.octonezd.me/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=192.100.124.218</id>
	<title>Maemo Wiki Mirror - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://maemo.octonezd.me/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=192.100.124.218"/>
	<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php/Special:Contributions/192.100.124.218"/>
	<updated>2026-04-22T09:48:48Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=Talk:Swappolube&amp;diff=46425</id>
		<title>Talk:Swappolube</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=Talk:Swappolube&amp;diff=46425"/>
		<updated>2010-10-18T15:29:00Z</updated>

		<summary type="html">&lt;p&gt;192.100.124.218: New page: &amp;lt;code&amp;gt;echo &amp;quot;1&amp;quot; &amp;gt; /proc/sys/vm/oom_kill_allocating_task&amp;lt;/code&amp;gt;  Doesn&amp;#039;t this mean that OOM-badness heuristics are ignored and things like X, D-BUS can get killed?  If yes, that means you&amp;#039;ve...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;code&amp;gt;echo &amp;quot;1&amp;quot; &amp;gt; /proc/sys/vm/oom_kill_allocating_task&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Doesn&#039;t this mean that OOM-badness heuristics are ignored and things like X, D-BUS can get killed?  If yes, that means you&#039;ve just radically increased the likelyhood of device reboots...&lt;/div&gt;</summary>
		<author><name>192.100.124.218</name></author>
	</entry>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=Documentation/devtools/maemo5/oprofile&amp;diff=8367</id>
		<title>Documentation/devtools/maemo5/oprofile</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=Documentation/devtools/maemo5/oprofile&amp;diff=8367"/>
		<updated>2010-06-16T10:47:12Z</updated>

		<summary type="html">&lt;p&gt;192.100.124.218: /* Profiling with callgraphs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Devtools}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Oprofile is a low overhead system-wide profiler for linux. It can be used to find CPU usage bottlenecks in the whole system and within processes.&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;source&#039;&#039;&#039;: oprofile&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;binary&#039;&#039;&#039;: oprofile&lt;br /&gt;
&lt;br /&gt;
== Installing Oprofile ==&lt;br /&gt;
&lt;br /&gt;
=== Configuring the device ===&lt;br /&gt;
&lt;br /&gt;
In order to run oprofile on your device an extra module will need to be installed. The oprofile kernel module is found in the kernel-modules-debug package, that can be installed from the tools repository.&lt;br /&gt;
&lt;br /&gt;
=== Installing oprofile to the device ===&lt;br /&gt;
&lt;br /&gt;
Provided that you have the Fremantle tools repository in your APT sources.list, the easiest way to install oprofile and the required kernel module is using apt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Nokia-N900-40-12:~# apt-get install oprofile kernel-modules-debug&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will also install binutils.&lt;br /&gt;
&lt;br /&gt;
=== Installing debug symbols ===&lt;br /&gt;
&lt;br /&gt;
In order to view any useful profiling information at functions level, you will have to install debugging symbols. Debugging symbols normallycome with debugging (-dbg) packages. The easiest way to install all dbg packages required for a given binary is to use debug-dep-install script which comes with the maemo-debug-scripts package:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Nokia-N900-40-12:~# apt-get install maemo-debug-scripts&lt;br /&gt;
Nokia-N900-40-12:~# debug-dep-install /usr/bin/osso-xterm.launch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
1. On the device, type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Nokia-N900-40-12:~# insmod /lib/modules/current/oprofile.ko&lt;br /&gt;
Nokia-N900-40-12:~# opcontrol --no-vmlinux&lt;br /&gt;
Nokia-N900-40-12:~# opcontrol --separate=kernel&lt;br /&gt;
Nokia-N900-40-12:~# opcontrol -c 8&lt;br /&gt;
Nokia-N900-40-12:~# opcontrol --init&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Like with the &#039;&#039;--separate=library&#039;&#039; option, the &#039;&#039;--separate=kernel&#039;&#039; option separates the collected statistics per process and their components. In most use-cases cases processes (implicitly) request other processes like X server and hildon-desktop to do work for them. To optimize the CPU usage, you need to see which processes need to use most CPU and in which of its components (binary/libraries) in the whole system. The &#039;&#039;--separate=kernel&#039;&#039; option will additionally assign CPU usage within kernel under the processes that caused it. The vmlinux binary name is used for this part. The &#039;&#039;-c 8&#039;&#039; option will make oprofile collect information about the call graph, till the depth of 8 function calls.&lt;br /&gt;
&lt;br /&gt;
2. Start the usecase you are interested in and type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Nokia-N900-40-12:~# opcontrol --reset&lt;br /&gt;
Nokia-N900-40-12:~# opcontrol --start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. When you&#039;ve finished, type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Nokia-N900-40-12:~# opcontrol --stop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you&#039;ve collected the data.&lt;br /&gt;
&lt;br /&gt;
=== Viewing profile reports ===&lt;br /&gt;
&lt;br /&gt;
To see basic per-process picture, type opreport:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Nokia-N900-40-12:~# opreport&lt;br /&gt;
CPU: OMAP GPTIMER, speed 0 MHz (estimated)&lt;br /&gt;
Counted GPTIMER_CYCLES events (32KiHz timer clock cycles between interrupts) with a unit mask of 0x00 (No unit mask) count 16&lt;br /&gt;
GPTIMER_CYCLES:16|&lt;br /&gt;
  samples|      %|&lt;br /&gt;
------------------&lt;br /&gt;
    43666 88.5972 no-vmlinux&lt;br /&gt;
     2636  5.3484 maemo-launcher&lt;br /&gt;
        GPTIMER_CYCLES:16|&lt;br /&gt;
          samples|      %|&lt;br /&gt;
        ------------------&lt;br /&gt;
              491 18.6267 no-vmlinux&lt;br /&gt;
              450 17.0713 libclutter-eglx-0.8.so.0.800.2&lt;br /&gt;
              410 15.5539 libgobject-2.0.so.0.2000.3&lt;br /&gt;
              342 12.9742 libGLESv2.so&lt;br /&gt;
              275 10.4325 libglib-2.0.so.0.2000.3&lt;br /&gt;
              138  5.2352 libpthread-2.5.so&lt;br /&gt;
              134  5.0835 libc-2.5.so&lt;br /&gt;
               55  2.0865 libdbus-1.so.3.4.0&lt;br /&gt;
               50  1.8968 hildon-desktop.launch&lt;br /&gt;
               45  1.7071 libpango-1.0.so.0.2400.2&lt;br /&gt;
               42  1.5933 libgdk-x11-2.0.so.0.1400.7&lt;br /&gt;
               32  1.2140 libX11.so.6.2.0&lt;br /&gt;
               32  1.2140 libpulsecommon-0.9.15.so&lt;br /&gt;
               28  1.0622 libgtk-x11-2.0.so.0.1400.7&lt;br /&gt;
               27  1.0243 libgio-2.0.so.0.2000.3&lt;br /&gt;
               ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After you know which processes and components are taking most of CPU, you need to find out the bottleneck functions/functionality in them. For this you need to install debug symbols for them. &lt;br /&gt;
&lt;br /&gt;
Note: If with the &#039;&#039;--separate=kernel&#039;&#039; option there&#039;s a lot of CPU activity for kernel that&#039;s not assigned under any process, it means that the system/kernel is idle. If your use-case is (unexpectedly) slow despite system idling a lot, usually these kind of issues are related to locking and other inter-process interaction issues that cannot be analyzed by looking at the CPU usage.&lt;br /&gt;
&lt;br /&gt;
To see more detailed symbol analysis use opreport -l:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Nokia-N900-40-12:~# opreport -l /usr/bin/Xorg | more&lt;br /&gt;
warning: /no-vmlinux could not be found.&lt;br /&gt;
CPU: OMAP GPTIMER, speed 0 MHz (estimated)&lt;br /&gt;
Counted GPTIMER_CYCLES events (32KiHz timer clock cycles between interrupts) with a unit mask of 0x00 (No unit mask) count 16&lt;br /&gt;
samples  %        image name               symbol name&lt;br /&gt;
313      51.7355  no-vmlinux               /no-vmlinux&lt;br /&gt;
153      25.2893  Xorg                     /usr/bin/Xorg&lt;br /&gt;
36        5.9504  libpixman-1.so.0.15.3    /usr/lib/libpixman-1.so.0.15.3&lt;br /&gt;
31        5.1240  libc-2.5.so              /lib/libc-2.5.so&lt;br /&gt;
11        1.8182  libexa.so                /usr/lib/xorg/modules/libexa.so&lt;br /&gt;
10        1.6529  fbdev_drv.so             /usr/lib/xorg/modules/drivers/fbdev_drv.so&lt;br /&gt;
10        1.6529  librecord.so             /usr/lib/xorg/modules/extensions/librecord.so&lt;br /&gt;
8         1.3223  libsrv_um.so             /usr/lib/libsrv_um.so&lt;br /&gt;
7         1.1570  libdbus-1.so.3.4.0       /usr/lib/libdbus-1.so.3.4.0&lt;br /&gt;
7         1.1570  libpthread-2.5.so        /lib/libpthread-2.5.so&lt;br /&gt;
6         0.9917  libfb.so                 /usr/lib/xorg/modules/libfb.so&lt;br /&gt;
5         0.8264  libdri2.so               /usr/lib/xorg/modules/extensions/libdri2.so&lt;br /&gt;
5         0.8264  librt-2.5.so             /lib/librt-2.5.so&lt;br /&gt;
2         0.3306  libpvr2d.so              /usr/lib/libpvr2d.so&lt;br /&gt;
1         0.1653  evdev_drv.so             /usr/lib/xorg/modules/input/evdev_drv.so&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once you know what functionality is a bottleneck, you need to find out whether your process should be (indirectly) causing the use of that functionality in the first place, is it using it too much/often or should the bottleneck functionality itself be optimized. Analysis of this falls to the corresponding process developers as only they know what their application is trying to achieve, why &amp;amp; how and before this kind analysis it&#039;s too early to assign/report bugs for lower level components.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Profiling with callgraphs ===&lt;br /&gt;
&lt;br /&gt;
If you have initialized opcontrol with the &#039;&#039;-c&#039;&#039; option as described before, you should now be able to get call graphs for your applications. The textual information reported by opreport in these cases is a bit difficult to read, but there are ways to generate nice graphs out of them:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Nokia-N900-40-12:~# opreport -l /usr/bin/Xorg -c &amp;gt; oprofile.log&lt;br /&gt;
#...copy the oprofile.log to your PC...&lt;br /&gt;
myPC$ cat oprofile.log | python gprof2dot.py -f oprofile | dot -Tpng -o callgraph.png&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You need the [http://jrfonseca.googlecode.com/svn/trunk/gprof2dot/gprof2dot.py gprof2dot.py] script and the &#039;&#039;dot&#039;&#039; tool, which is part of the [http://www.graphviz.org/ Graphviz] software (which is in Ubuntu&#039;s &#039;&#039;graphviz&#039;&#039; package).&lt;br /&gt;
&lt;br /&gt;
=== Viewing reports from a PC ===&lt;br /&gt;
&lt;br /&gt;
opreport -l, and especially opreport -c -l can take quite a long time when fired up on the devices. Therefore, it often makes sense to run opreport in scratchbox.&lt;br /&gt;
&lt;br /&gt;
# Configure scratchbox target in a way that its binaries and libraries 100% match the target&#039;s.&lt;br /&gt;
# Collect profiling data as usual&lt;br /&gt;
# Copy contents of /var/lib/oprofile from the device to the corresponding directory in scratchbox target.&lt;br /&gt;
# in scratchbox, apt-get install maemo-debug-scripts (this may not be omitted)&lt;br /&gt;
# install debug packages either with debug-dep-install or by hand&lt;br /&gt;
&lt;br /&gt;
Note: the binaries and libraries in the scratchbox target must match what&#039;s in the device, otherwise you will get bogus results.&lt;br /&gt;
&lt;br /&gt;
=== Oprofile with kcachegrind ===&lt;br /&gt;
&lt;br /&gt;
kcachegrind is a useful GUI tool for viewing performance data interactively. It comes with many modern linux distros.&lt;br /&gt;
&lt;br /&gt;
To use it:&lt;br /&gt;
&lt;br /&gt;
# Get the callgraph oprofile data (see above) and install the same packages also to scratchbox.&lt;br /&gt;
# Copy the profile data to scratchbox session as described above.&lt;br /&gt;
# install kcachegrind-converters package on HOST (debian, ubuntu)&lt;br /&gt;
# in scratchbox: opreport -gdf | op2calltree (you might want to copy op2calltree script somewhere on target)&lt;br /&gt;
# the resulting files can now be opened with kcachegrind on host, provided you set it to display ALL files (extensions are wrong)&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* [oprofile man page](/development/documentation/man_pages/oprofile.html)&lt;br /&gt;
* http://oprofile.sourceforge.net/about/&lt;br /&gt;
* http://oprofile.sourceforge.net/doc/controlling.html&lt;br /&gt;
* http://kcachegrind.sourceforge.net/cgi-bin/show.cgi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
[[Documentation/devtools/maemo5/oprofileui|oprofileui]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Fremantle]]&lt;/div&gt;</summary>
		<author><name>192.100.124.218</name></author>
	</entry>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=Documentation/Maemo_5_Final_SDK_Installation&amp;diff=7885</id>
		<title>Documentation/Maemo 5 Final SDK Installation</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=Documentation/Maemo_5_Final_SDK_Installation&amp;diff=7885"/>
		<updated>2010-05-27T13:08:44Z</updated>

		<summary type="html">&lt;p&gt;192.100.124.218: /* Modified mmap related instructions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
&lt;br /&gt;
The following document describes the installation of the Maemo 5 Final SDK. Maemo SDK uses Scratchbox as the cross compilation environment into which Maemo specific development files are installed.&lt;br /&gt;
&lt;br /&gt;
Before we begin with the installation, have a look at the minimum system requirements. We officially support x86-32 Debian based distributions, mainly Debian and Ubuntu though it is possible to install the SDK on other flavours of Linux too.&lt;br /&gt;
&lt;br /&gt;
Once you are sure that your development machine fulfils these requirements, you can proceed with the following guidelines:&lt;br /&gt;
&lt;br /&gt;
Maemo 5 SDK comes with two command line installation scripts and GUI installer (beta) to ease the SDK installation.&lt;br /&gt;
*Scratchbox installer script which downloads and installs the required version of Scratchbox onto your host machine.&lt;br /&gt;
*Maemo SDK installer which sets up two targets (armel and x86) inside Scratchbox,  downloads the minimal rootstraps for both targets, and installs the open source development files based on the user selection during the installation process.&lt;br /&gt;
*GUI installer  which combines both Scratchbox and SDK installation.&lt;br /&gt;
&lt;br /&gt;
Maemo 5 SDK also provides the essential Nokia proprietary binary packages needed for Maemo development and additional Nokia applications in an authenticated repository. In order to have access to this repository, you will need to accept the End User License Agreement (EULA).    For the complete functionality and usability of the Maemo SDK, it is required to install Nokia proprietary binary packages in addition to the open source packages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is not included in the Maemo SDK?==&lt;br /&gt;
Xephyr X11 server software is needed on your host machine before you can run any applications in the Maemo SDK. It is an X11 server that provides a device screen for the developer so that you can see all the Maemo application windows and visuals on your host machine. This software is not included in the SDK mainly because it is available on most linux distributions. &lt;br /&gt;
&lt;br /&gt;
If you choose to install Maemo SDK using the GUI installer on Debian based systems, it will provide an option to install Xephyr for you. &lt;br /&gt;
&lt;br /&gt;
If not, you can manually install Xephyr as follows:&lt;br /&gt;
&lt;br /&gt;
On Debian based linux systems, Xephyr can be installed outside Scratchbox environment using apt with root permission:&lt;br /&gt;
&lt;br /&gt;
 $ sudo apt-get install xserver-xephyr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On a Gentoo system you need to install xorg-server with the kdrive useflag. This builds the Xephyr binary.&lt;br /&gt;
&lt;br /&gt;
=Installing Maemo 5 SDK using GUI Installer=&lt;br /&gt;
&lt;br /&gt;
Maemo 5 SDK installation is now made easy with GUI installer. This&lt;br /&gt;
installer will install Scratchbox and Maemo 5 SDK on Debian based&lt;br /&gt;
systems. This installer will allow installation of nokia closed packages and&lt;br /&gt;
applications provided that EULA at [http://tablets-dev.nokia.com/eula/index.php this webpage] is accepted. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;GUI Installer has following features:&#039;&#039;&#039;&lt;br /&gt;
* Install/Upgrade Scratchbox&lt;br /&gt;
* Installation of Maemo 5 SDK&lt;br /&gt;
* Installation of nokia-binaries&lt;br /&gt;
* Installation of nokia-apps&lt;br /&gt;
* Installation of Xephyr, if missing&lt;br /&gt;
* Can create a launcher for Xephyr on Desktop&lt;br /&gt;
* Can create a shortcut to Scratchbox home folder on Desktop&lt;br /&gt;
* Can create Maemo 5 info page on Desktop that contains useful links for developers &lt;br /&gt;
* Uninstallation of scratchbox &amp;amp; targets (debian-based distros only)&lt;br /&gt;
&lt;br /&gt;
GUI installer offers standard and custom installation modes in a wizard. Standard installation will use default settings, while custom offers more choices. Please note that standard mode will overwrite any of the standard targets (FREMANTLE_X86, FREMANTLE_ARMEL) if present, but contents of Scratchbox home will be preserved. Please use the custom mode if you don&#039;t want to overwrite your targets.&lt;br /&gt;
&lt;br /&gt;
The GUI installer Qt application requires python bindings for Qt. GUI installer can install the required packages if not already installed.&lt;br /&gt;
&lt;br /&gt;
The installer will use http_proxy environment variable if available. If&lt;br /&gt;
your connection doesn&#039;t seem to work, you will be asked to manually&lt;br /&gt;
enter proxy settings.&lt;br /&gt;
&lt;br /&gt;
GUI installer has been tested on Ubuntu Karmic and Debian Lenny, both 32bit and 64bit versions. The GUI installer needs to download Maemo SDK so it requires a working Internet connection. On 64bit kernel, you need to disable VDSO for 32bit applications manually.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Starting installation with GUI installer:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
There is some missing options in this python script if you run from non-debian linux systems you got errors, because it will not automatically define the installation path of scratchbox, to correct this errors you must patch this script.&lt;br /&gt;
&lt;br /&gt;
Also you must uncheck Xephyr checkbox and install it manually.&lt;br /&gt;
&lt;br /&gt;
  129c129&lt;br /&gt;
  &amp;lt; SB_PATH = &amp;quot;/scratchbox&amp;quot;&lt;br /&gt;
  ---&lt;br /&gt;
  &amp;gt; SB_PATH = &amp;quot;/opt/scratchbox&amp;quot;&lt;br /&gt;
  2297a2298&lt;br /&gt;
  &amp;gt;       opt = opt + &amp;quot;-s /opt/scratchbox&amp;quot;&lt;br /&gt;
  2351a2353&lt;br /&gt;
  &amp;gt;       cmd = cmd +&amp;quot; -s /opt/scratchbox&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 wget http://repository.maemo.org/stable/5.0/maemo-sdk-install-wizard_5.0.py&lt;br /&gt;
 chmod a+x maemo-sdk-install-wizard_5.0.py&lt;br /&gt;
&lt;br /&gt;
 $ Installer requires root privileges&lt;br /&gt;
   Ubuntu&lt;br /&gt;
    sudo ./maemo-sdk-install-wizard_5.0.py&lt;br /&gt;
   Debian&lt;br /&gt;
    su -c ./maemo-sdk-install-wizard_5.0.py&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Limitations:&#039;&#039;&#039;&lt;br /&gt;
*As the installer will do package installation, you should quit all package managers before running it.&lt;br /&gt;
*Please note that detecting scratchbox is not perfect and it will detect only if it is installed in /scratchbox path.&lt;br /&gt;
*Please note that python-qt features used in this installer might not be available in older ubuntu and debian distros.&lt;br /&gt;
*Due to differences in versions of Python Qt bindings, certain parts of installation can work differently on different systems.&lt;br /&gt;
*Installer only shows required settings on 64-bit machines but does not add them automatically.&lt;br /&gt;
*Installer will always use DISPLAY :2, if you want to use a different value, you need to change it manually.&lt;br /&gt;
*GUI installer doesn&#039;t work on SUSE Linux. You can use command line installers instead.&lt;br /&gt;
&lt;br /&gt;
=Installing Maemo 5 SDK on x86-32 Debian based distribution=&lt;br /&gt;
&lt;br /&gt;
1. Download the scratchbox installer and the Maemo SDK installer scripts. These are the same scripts as are available through Forum Nokia: [http://www.forum.nokia.com/Tools_Docs_and_Code/Tools/Platforms/Maemo/ Maemo SDK at Forum Nokia].&lt;br /&gt;
&lt;br /&gt;
 $ wget http://repository.maemo.org/stable/5.0/maemo-scratchbox-install_5.0.sh http://repository.maemo.org/stable/5.0/maemo-sdk-install_5.0.sh &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Set the permissions to execute the scripts.&lt;br /&gt;
&lt;br /&gt;
 $ chmod a+x ./maemo-scratchbox-install_5.0.sh  ./maemo-sdk-install_5.0.sh&lt;br /&gt;
&lt;br /&gt;
Users of Ubuntu 10.04 LTS will need to do the following to fix the installation, note that this may reduce system security! [http://talk.maemo.org/showpost.php?p=636394&amp;amp;postcount=8]&lt;br /&gt;
&lt;br /&gt;
 $ sudo su&lt;br /&gt;
 $ echo &amp;quot;vm.mmap_min_addr = 0&amp;quot; &amp;gt;&amp;gt; /etc/sysctl.conf&lt;br /&gt;
 $ sysctl -p&lt;br /&gt;
 $ exit #to go back to user&lt;br /&gt;
&lt;br /&gt;
3. Run the scratchbox installer with root permission specifying the username to be added to scratchbox users group and sbox group. The username should be an existing user name from the host linux system. This will download about 420 MB of material from the web, which is not resumeable if interrupted.&lt;br /&gt;
&lt;br /&gt;
 $ sudo ./maemo-scratchbox-install_5.0.sh -u $USER&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. The installation script adds the specified user to ‘sbox’ user group. For the group membership to be effective in the current terminal session, run the following command:&lt;br /&gt;
&lt;br /&gt;
Note: This command will change the existing group ID during the current login session to ‘sbox’. If you do not want this change, just logout and log back in again for the group membership to be effective.&lt;br /&gt;
&lt;br /&gt;
 $ newgrp sbox&lt;br /&gt;
&lt;br /&gt;
At this step, you should have a working Scratchbox environment ready.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5. Proceed further to run the Maemo SDK installer script. This script is run as &#039;user&#039; outside the scratchbox environment. Set permission for &#039;user&#039;before runing script.&lt;br /&gt;
&lt;br /&gt;
  $ sudo chmod +x ./maemo-sdk-install_5.0.sh  &lt;br /&gt;
  $ ./maemo-sdk-install_5.0.sh&lt;br /&gt;
&lt;br /&gt;
If you have installed Scratchbox in a path alternative to /scratchbox, you will need to specify the path with ‘-s PATH’ option.  More information on available command line options can be found with --help option&lt;br /&gt;
Follow the instructions on the go.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6. Once the script has successfully completed its execution, you can login into Scratchbox.&lt;br /&gt;
&lt;br /&gt;
 $ /scratchbox/login&lt;br /&gt;
&lt;br /&gt;
If you are not able to login, take a look at the [[#Limitations of Scratchbox|limitations of Scratchbox]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7. Proceed further to accept the EULA in order to obtain the Nokia proprietary binary packages. These Nokia binaries are essential for the complete functionality of the Maemo SDK.&lt;br /&gt;
&lt;br /&gt;
7.1. Accept the EULA on [http://tablets-dev.nokia.com/eula/index.php this webpage] &amp;lt;br&amp;gt;&lt;br /&gt;
7.2. Copy the sources.list entry given to you after the license acceptance to your Scratchbox x86 and armel target’s /etc/apt/sources.list file.  Execute the commands below on the _ARMEL and _X86 targets.&lt;br /&gt;
&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;gt; sb-conf select FREMANTLE_ARMEL&lt;br /&gt;
 [sbox-FREMANTLE_ARMEL: ~] &amp;gt; nano /etc/apt/sources.list  # add deb line &lt;br /&gt;
 [sbox-FREMANTLE_ARMEL: ~] &amp;gt; apt-get update&lt;br /&gt;
 [sbox-FREMANTLE_ARMEL: ~] &amp;gt; fakeroot apt-get install nokia-binaries nokia-apps&lt;br /&gt;
&lt;br /&gt;
 [sbox-FREMANTLE_ARMEL: ~] &amp;gt; sb-conf select FREMANTLE_X86&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;gt; nano /etc/apt/sources.list  # add deb line &lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;gt; apt-get update&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;gt; fakeroot apt-get install nokia-binaries nokia-apps&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The above step installs all needed Nokia proprietary binary packages along with the open source binaries that have dependencies to Nokia proprietary binary packages.&lt;br /&gt;
With this, your Maemo 5 SDK environment is set up completely and ready for development.&lt;br /&gt;
&lt;br /&gt;
=Installing Maemo 5 SDK on openSUSE=&lt;br /&gt;
There are instructions at [http://en.opensuse.org/Maemo5 opensuse.org].&lt;br /&gt;
&lt;br /&gt;
=Installing Maemo 5 SDK on non-Linux operating systems=&lt;br /&gt;
&lt;br /&gt;
If you do not have a Linux environment (Windows or Mac OS X), you can install a [[Documentation/Maemo_5_Developer_Guide/Development_Environment/Maemo_SDK_Virtual_Images|Maemo SDK virtual machine image]]&lt;br /&gt;
from [http://tablets-dev.nokia.com/maemo-dev-env-downloads.php tablets-dev.nokia.com].&lt;br /&gt;
[http://www.vmware.com/products/player/ VMPlayer is required].&lt;br /&gt;
&lt;br /&gt;
=Starting/Shutting down the SDK UI=&lt;br /&gt;
&lt;br /&gt;
Before starting the UI framework, ensure that you have installed the following:&lt;br /&gt;
*Xephyr X11 server on the host machine outside the Scratchbox environment&lt;br /&gt;
*The SDK as described above&lt;br /&gt;
*The Nokia proprietary binary packages&lt;br /&gt;
&lt;br /&gt;
1. Now, run Xephyr outside the scratchbox environment:&lt;br /&gt;
&lt;br /&gt;
 $ Xephyr :2 -host-cursor -screen 800x480x16 -dpi 96 -ac -kb &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Ubuntu 10.04 users using the package in the repositories will have to run the same command without the -host-cursor and -kb, however the terminal window will have to stay open.&lt;br /&gt;
&lt;br /&gt;
2. Login to Scratchbox X86 target&lt;br /&gt;
&lt;br /&gt;
 $ /scratchbox/login&lt;br /&gt;
 &lt;br /&gt;
 Welcome to Scratchbox, the cross-compilation toolkit!&lt;br /&gt;
 &lt;br /&gt;
 Use &#039;sb-menu&#039; to change your compilation target.&lt;br /&gt;
 &lt;br /&gt;
 See /scratchbox/doc/ for documentation.&lt;br /&gt;
 &lt;br /&gt;
 [sbox-FREMANTLE_X86: ~]&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Set the DISPLAY variable to match the display setting given for the Xephyr server.&lt;br /&gt;
&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;gt;export DISPLAY=:2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. Start the UI framework .&lt;br /&gt;
&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;gt;af-sb-init.sh start&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5. You will now see the UI framework up and running on the Xephyr window.&lt;br /&gt;
&lt;br /&gt;
6. You can shut down the UI framework as follows:&lt;br /&gt;
&lt;br /&gt;
  [sbox-FREMANTLE_X86: ~] &amp;gt;af-sb-init.sh stop&lt;br /&gt;
&lt;br /&gt;
=Installation of x86-64 Debian based distributions=&lt;br /&gt;
Since Scratchbox only supports x86-32 bit Linux host systems, we need to force the installation of x86-32 Scratchbox packages on the x86-64 bit machines. Using the -F option with the Scratchbox installation script can do this.&lt;br /&gt;
&lt;br /&gt;
==Installation procedure==&lt;br /&gt;
&lt;br /&gt;
*Download the Scratchbox installer and the Maemo SDK installer scripts.&lt;br /&gt;
&lt;br /&gt;
 $ wget -c http://repository.maemo.org/stable/5.0/maemo-scratchbox-install_5.0.sh http://repository.maemo.org/stable/5.0/maemo-sdk-install_5.0.sh &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Set permissions to execute the scripts.&lt;br /&gt;
&lt;br /&gt;
 $ chmod a+x ./maemo-scratchbox-install_5.0.sh  ./maemo-sdk-install_5.0.sh&lt;br /&gt;
&lt;br /&gt;
Users of Ubuntu 10.04 LTS will need to do the following to fix the installation, note that this may reduce system security! [http://talk.maemo.org/showpost.php?p=636394&amp;amp;postcount=8]&lt;br /&gt;
&lt;br /&gt;
 $ sudo su&lt;br /&gt;
 $ echo &amp;quot;vm.mmap_min_addr = 0&amp;quot; &amp;gt;&amp;gt; /etc/sysctl.conf&lt;br /&gt;
 $ sysctl -p&lt;br /&gt;
 $ exit #to go back to user&lt;br /&gt;
&lt;br /&gt;
*Run the Scratchbox installer script as &#039;root user&#039; with -F option, specifying the username to be added to Scratchbox users group sbox group as follows:&lt;br /&gt;
&lt;br /&gt;
 $ sudo ./maemo-scratchbox-install_5.0.sh -F -u $USER&lt;br /&gt;
&lt;br /&gt;
*If you are running squeeze or intrepid or later, read [[#Limitations_of_Scratchbox]] before continuing.&lt;br /&gt;
&lt;br /&gt;
Upon successful installation of Scratchbox, continue to run the Maemo 5 Final SDK Installer as instructed in the x86-32 installation.&lt;br /&gt;
&lt;br /&gt;
=Starting Scratchbox on non-Debian based systems=&lt;br /&gt;
If Scratchbox was installed from Debian packages, the /etc/init.d/scratchbox-core init script is installed and Scratchbox should start automatically when the system is rebooted. However, if you have installed Scratchbox from tarballs, then rebooting your machine will clear away all the mounts and binfmt_misc registrations that Scratchbox requires to work. To get your Scratchbox working again after reboot, you have to run the following command as root:&lt;br /&gt;
&lt;br /&gt;
 $ sudo /scratchbox/sbin/sbox_ctl start&lt;br /&gt;
&lt;br /&gt;
Alternatively you can add sbox_ctl as an init script to the /etc/init.d directory and create the appropriate links at your system&#039;s runlevel directories. This procedure works on some systems:&lt;br /&gt;
&lt;br /&gt;
 $ ln -s /scratchbox/sbin/sbox_ctl /etc/init.d/scratchbox-core&lt;br /&gt;
 $ /usr/sbin/update-rc.d scratchbox-core defaults&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Refer to your system&#039;s documentation for the correct instructions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Upgrading from Maemo 5 Beta2 SDK=&lt;br /&gt;
&lt;br /&gt;
A smooth upgrade from beta2 to Final SDK is unfortunately not possible. Hence it is advised to freshly install the Final SDK. Before you do so, read through the instructions below.&lt;br /&gt;
&lt;br /&gt;
Some of the Nokia applications shipped with the final SDK use a hard coded path for user home directory which presents a problem since the default username on the device differs from the username on the developer’s machine. To make these applications work, it is required to create a home directory that matches the hard coded value.  This needs to be done outside scratchbox using root privileges. The -u  option in the Scratchbox installer has been updated to create the necessary symlinks.  Running the installer with -u option when the Scratchbox has been already installed will just add the user and create symlinks.  Running it for already existing user will check for the symlink and create it if needed.&lt;br /&gt;
&lt;br /&gt;
Run the command below to create the symlink for existing Scratchbox user:&lt;br /&gt;
&lt;br /&gt;
 $ sudo ./maemo-scratchbox-install_5.0.sh -u &amp;lt;EXISTING_USER&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can create the symlinks manually as follows, if Scratchbox is installed in the default location:&lt;br /&gt;
&lt;br /&gt;
 $ sudo ln -s /scratchbox/users/&amp;lt;username&amp;gt;/home/&amp;lt;username&amp;gt; /scratchbox/users/&amp;lt;username&amp;gt;/home/user&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Final SDK installer additionally creates a directory /opt under /target/&amp;lt;target_name&amp;gt;/.&lt;br /&gt;
&#039;&#039;&#039;Reason:&#039;&#039;&#039; In order to facilitate installing applications under /opt on the device, a symlink  /opt has been created pointing to /home/opt. The SDK inherits this feature. Under Scratchbox, /opt points to /target/links/opt which in turn points to /targets/&amp;lt;target_name&amp;gt;/opt. Installing the rootstraps makes this point to /home/opt, which is not what we want, since we need /opt to be target specific.  In order to resolve this situation, we have to manually check whether /targets/&amp;lt;target_name&amp;gt;/opt is a symlink and if it is, remove it and create a directory with the same name.&lt;br /&gt;
&lt;br /&gt;
=Upgrading from Maemo 4.x/Diablo SDK=&lt;br /&gt;
Due to the fact that there are API breaks in Fremantle, we cannot upgrade Diablo SDK to Fremantle. We can however have Fremantle Scratchbox targets co-exist with Diablo targets.&lt;br /&gt;
&lt;br /&gt;
For this, we need to first upgrade the Scratchbox installation on our host machine.&lt;br /&gt;
&lt;br /&gt;
*Download the Maemo5 scratchbox installer.&lt;br /&gt;
&lt;br /&gt;
*Set executable permissions and run it as follows:&lt;br /&gt;
&lt;br /&gt;
 $ chmod a+x ./maemo-scratchbox-install_5.0.sh&lt;br /&gt;
 $ sudo  ./maemo-scratchbox-install_5.0.sh -U -u &amp;lt;EXISTING_USER&amp;gt; -s /scratchbox&lt;br /&gt;
&lt;br /&gt;
Once the Scratchbox installation is done, run the Maemo 5 Final SDK installer.&lt;br /&gt;
&lt;br /&gt;
=Manual Installation=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;On x86-32 Debian based systems:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*You can add the following line into your host machine&#039;s /etc/apt/sources.list file.&lt;br /&gt;
&lt;br /&gt;
 deb http://scratchbox.org/debian/ maemo5-sdk main&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Install the needed Scratchbox packages with root permission&lt;br /&gt;
&lt;br /&gt;
 $ sudo apt-get update&lt;br /&gt;
 $ sudo apt-get install scratchbox-core scratchbox-libs scratchbox-devkit-qemu scratchbox-devkit-debian scratchbox-devkit-doctools scratchbox-devkit-perl scratchbox-toolchain-host-gcc scratchbox-toolchain-cs2007q3-glibc2.5-arm7 scratchbox-toolchain-cs2007q3-glibc2.5-i486  scratchbox-devkit-svn scratchbox-devkit-git scratchbox-devkit-apt-https&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;On x86-64 Debian based systems:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Download the Scratchbox packages from [http://scratchbox.org/download/files/sbox-releases/branches/apophis/r4/deb/ here].&lt;br /&gt;
&lt;br /&gt;
*Force the installation of the x86-32 packages with root permission as follows:&lt;br /&gt;
&lt;br /&gt;
 $ sudo dpkg -i --force-architecture scratchbox-core scratchbox-libs scratchbox-devkit-qemu scratchbox-devkit-debian scratchbox-devkit-doctools scratchbox-devkit-perl scratchbox-toolchain-host-gcc scratchbox-toolchain-cs2007q3-glibc2.5-arm7 scratchbox-toolchain-cs2007q3-glibc2.5-i486  scratchbox-devkit-svn scratchbox-devkit-git scratchbox-devkit-apt-https&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Scratchbox packages will be unpacked to /scratchbox directory and the installation procedure will ask you some questions about the group and user accounts. Default group to Scratchbox is &#039;sbox&#039;.&lt;br /&gt;
&lt;br /&gt;
*Users who will be using Scratchbox should be added using the following command with root permission:&lt;br /&gt;
&lt;br /&gt;
 $ sudo /scratchbox/sbin/sbox_adduser USER yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It will automatically include the user to the Scratchbox group, create user directories under /scratchbox/users and mount several directories (/dev, /proc, /tmp) under the user directory.&lt;br /&gt;
&lt;br /&gt;
*Some of the Nokia applications shipped with the final SDK use a hard coded path for user home directory which presents a problem since the default username on the device differs from the username on the developer’s machine. To make these applications work, it is required to create a home directory that matches the hard coded value.  This needs to be done outside scratchbox using root privileges.&lt;br /&gt;
&lt;br /&gt;
 $ sudo ln -s /scratchbox/users/&amp;lt;username&amp;gt;/home/&amp;lt;username&amp;gt; /scratchbox/users/&amp;lt;username&amp;gt;/home/user&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*For the group membership to be effective in the current terminal session, run the following command:&lt;br /&gt;
&lt;br /&gt;
 $ newgrp sbox&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; This command will change the existing group ID during the current login session to &#039;sbox&#039;. If you do not want to change, simply logout and log back in for the group membership to be effective.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Log-in to Scratchbox.&lt;br /&gt;
&lt;br /&gt;
 $ /scratchbox/login&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Configure the scratchbox x86 and armel targets as follows:&lt;br /&gt;
&lt;br /&gt;
 [sbox-&amp;gt;:~]&amp;gt;sb-conf st FREMANTLE_X86 -c cs2007q3-glibc2.5-i486 -d perl:debian-etch:doctools:svn:git -t none&lt;br /&gt;
 [sbox-&amp;gt;:~]&amp;gt;sb-conf st FREMANTLE_ARMEL -c cs2007q3-glibc2.5-arm7 -d qemu:perl:debian-etch:doctools:svn:git -t qemu-arm-sb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Download the minimal rootstraps.&lt;br /&gt;
&lt;br /&gt;
 [sbox-&amp;gt;:~]&amp;gt; wget http://repository.maemo.org/stable/5.0/armel/maemo-sdk-rootstrap_5.0_armel.tgz http://repository.maemo.org/stable/5.0/i386/maemo-sdk-rootstrap_5.0_i386.tgz&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Switch to x86 target, install the devkits, etc and fakeroot into the target, install the minimal rootstrap and finally the Maemo development files.&lt;br /&gt;
&lt;br /&gt;
 [sbox-&amp;gt;:~]&amp;gt; sb-conf se FREMANTLE_X86&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;gt; sb-conf rs maemo-sdk-rootstrap_5.0_i386.tgz&lt;br /&gt;
&lt;br /&gt;
*Some users seem to have problems downloading all files with apt http pipelining enabled. If you want to make sure or you get download errors like &amp;quot;104 connection reset by peer&amp;quot; at the fakeroot steps below, then disable http pipelining with the next command:&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;gt; echo &#039;Acquire::http::Pipeline-Depth &amp;quot;0&amp;quot;;&#039; &amp;gt;&amp;gt; /etc/apt/apt.conf.d/00maemo&lt;br /&gt;
&lt;br /&gt;
*either way, continue here:&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;gt; sb-conf in -edFL&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;gt; apt-get update&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;gt; fakeroot apt-get install maemo-sdk-debug&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The meta-package &#039;maemo-sdk-debug&#039; installs all needed open source runtime, development and debug pakcages into the target. Use maemo-sdk-runtime if you want only runtime packages to be installed or user maemo-sdk-dev if you want only the runtime + development packages to be installed.&lt;br /&gt;
&lt;br /&gt;
*Accept the EULA from [http://tablets-dev.nokia.com/eula/index.php here]  to obtain the URL to access the Nokia binaries repository.&lt;br /&gt;
&lt;br /&gt;
*Add the URL thus obtained to the Scratchbox target&#039;s /etc/apt/sources.list and do the following:&lt;br /&gt;
&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;gt;apt-get update&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;gt;fakeroot apt-get install nokia-binaries nokia-apps&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*In order to facilitate installing applications under /opt on the device, a symlink  /opt has been created pointing to /home/opt. The SDK inherits this feature. Under Scratchbox, /opt points to /target/links/opt which in turn points to /targets/&amp;lt;target_name&amp;gt;/opt. Installing the rootstraps makes this point to /home/opt, which is not what we want, since we need /opt to be target specific.  In order to resolve this situation,&lt;br /&gt;
&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;gt;rm /targets/FREMANTLE_X86/opt&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;gt;mkdir /targets/FREMANTLE_X86/opt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Execute similar steps on the armel target too to set it up:&lt;br /&gt;
&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~]&amp;gt; sb-conf se FREMANTLE_ARMEL&lt;br /&gt;
 [sbox-FREMANTLE_ARMEL: ~] &amp;gt; sb-conf rs maemo-sdk-rootstrap_5.0_armel.tgz&lt;br /&gt;
&lt;br /&gt;
*again,the next command disables http pipelining, if you like:&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;gt; echo &#039;Acquire::http::Pipeline-Depth &amp;quot;0&amp;quot;;&#039; &amp;gt;&amp;gt; /etc/apt/apt.conf.d/00maemo&lt;br /&gt;
&lt;br /&gt;
*pipelining disabled or not, here we go again...&lt;br /&gt;
 [sbox-FREMANTLE_ARMEL: ~] &amp;gt; sb-conf in -edFL&lt;br /&gt;
 [sbox-FREMANTLE_ARMEL: ~] &amp;gt; apt-get update&lt;br /&gt;
 [sbox-FREMANTLE_ARMEL: ~] &amp;gt; fakeroot apt-get install maemo-sdk-debug&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Add the same URL obtained above to access the Nokia binaries repository under /etc/apt/sources.list file of the Scratchbox armel target.&lt;br /&gt;
&lt;br /&gt;
 [sbox-FREMANTLE_ARMEL: ~] &amp;gt;apt-get update&lt;br /&gt;
 [sbox-FREMANTLE_ARMEL: ~] &amp;gt;fakeroot apt-get install nokia-binaries nokia-apps&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Create the /opt directory.&lt;br /&gt;
&lt;br /&gt;
 [sbox-FREMANTLE_ARMEL: ~] &amp;gt;rm /targets/FREMANTLE_ARMEL/opt&lt;br /&gt;
 [sbox-FREMANTLE_ARMEL: ~] &amp;gt;mkdir /targets/FREMANTLE_ARMEL/opt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With this, you must now have both the targets setup and ready to use.&lt;br /&gt;
&lt;br /&gt;
[[#Starting/Shutting down the SDK UI|Start the UI framework]].&lt;br /&gt;
&lt;br /&gt;
=Un-installation=&lt;br /&gt;
&lt;br /&gt;
Make sure that you have no process running inside Scratchbox. Uninstalling Scratchbox will remove everything that is installed and saved inside Scratchbox. Please take a backup of your files from Scratchbox user home directory if needed.&lt;br /&gt;
&lt;br /&gt;
On Debian based systems, do the following with root permissions:&lt;br /&gt;
&lt;br /&gt;
 $ sudo apt-get remove scratchbox-* --purge&lt;br /&gt;
 $ sudo rm -rf /scratchbox&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On non-Debian based systems, you need to stop scratchbox as follows before removing it.&lt;br /&gt;
&lt;br /&gt;
 $ sudo /scratchbox/sbin/sbox_ctl stop&lt;br /&gt;
 $ sudo rm -rf /scratchbox&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Limitations of Scratchbox=&lt;br /&gt;
&lt;br /&gt;
The following limitations have been noted in the usage of Scratchbox:&lt;br /&gt;
&lt;br /&gt;
==VDSO support==&lt;br /&gt;
Scratchbox does not work when VDSO32 support is enabled in the host&#039;s kernel. We&#039;re working on making it possible, but at the moment there are some workarounds, which are presented here.&lt;br /&gt;
&lt;br /&gt;
If your host has VDSO32 turned on you will get an error like this when trying to login to Scratchbox.&lt;br /&gt;
&lt;br /&gt;
 No directory, logging in with HOME=/&lt;br /&gt;
 Inconsistency detected by ld.so: rtld.c: 1192: dl_main: Assertion `(void *) &lt;br /&gt;
 ph-&amp;gt;p_vaddr == _rtld_local._dl_sysinfo_dso&#039; failed!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==x86-64 kernel==&lt;br /&gt;
&lt;br /&gt;
x86-64 Linux kernels starting from version 2.6.25 enable VDSO32 by default. To temporarily disable VDSO32 execute &lt;br /&gt;
&lt;br /&gt;
 sysctl abi.vsyscall32=0&lt;br /&gt;
&lt;br /&gt;
On Linux kernel 2.6.24 &amp;lt;= you can disable VDSO32 by executing&lt;br /&gt;
&lt;br /&gt;
 sysctl vm.vdso_enabled=0&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
 sysctl kernel.vdso=0&lt;br /&gt;
&lt;br /&gt;
The current setting of VDSO32 can be verified by using sysctl. Only values 0 and 2 are compatible with Scratchbox. In our examples we use 0 (disable). 2 enables compat mode.&lt;br /&gt;
&lt;br /&gt;
You can set all of these permanently by adding the following lines to /etc/sysctl.conf&lt;br /&gt;
&lt;br /&gt;
 vm.vdso_enabled = 0&lt;br /&gt;
 abi.vsyscall32 = 0&lt;br /&gt;
 kernel.vdso = 0&lt;br /&gt;
&lt;br /&gt;
Save the file and run the command:&lt;br /&gt;
&lt;br /&gt;
 $ sudo sysctl -p&lt;br /&gt;
&lt;br /&gt;
Please note the correct line depends on your Linux kernel version. When you execute sysctl -p you may get a warning about unknown keys. You can safely ignore those warnings as long as one of the 3 settings works.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING :&#039;&#039;&#039; You should try setting these values by echoing them to the given locations before adding them to sysctl.conf to see if they cause any problems. For example, in some Ubuntu Gutsy installations, it has been observed that changing the VDSO settings will hang the system and thus making permanent changes in sysctl.conf may, in these cases, make your system unbootable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Known Issues in the SDK=&lt;br /&gt;
&lt;br /&gt;
*A list of issues and their solutions can be found in the [[Developer_FAQ#Maemo_SDK_and_Scratchbox|Developer FAQ]] article&lt;br /&gt;
&lt;br /&gt;
*Unnecessary warnings and debugging messages are printed out when the hildon application framework is started.&lt;br /&gt;
&lt;br /&gt;
*Armel target does not bring up the UI framework&lt;br /&gt;
&lt;br /&gt;
*It has been noted that Xephyr dies with the application framework at times. The crash in question might even be Xephyr related since the application framework behaves differently with different versions/builds of Xephyr. The case seems to be worst on Xephyr that comes with Ubuntu Jaunty, there Xephyr will die when running any application that contains an input field and clicking on that field with a mouse to invoke the input method. On Fedora Code 10 the Xephyr does not mind the mouse clicks but dies when shutting down the application framework. On the other hand Xephyr on Ubuntu Intrepid or even the Intrepid version recompiled for Jaunty does not experience crashing in these situations.&lt;br /&gt;
&lt;br /&gt;
A patch is already available for the Xephyr on Ubuntu Jaunty and can be found at http://bugs.freedesktop.org/show_bug.cgi?id=21591. Binaries packages for [http://launchpadlibrarian.net/30330126/xserver-xephyr_1.6.3-1ubuntu2_i386.deb xserver-xephyr] package and its dependencies ([http://launchpadlibrarian.net/27533744/libgpg-error0_1.6-1ubuntu1_i386.deb libgpg-error0] and [http://launchpadlibrarian.net/28623981/libgcrypt11_1.4.4-2ubuntu2_i386.deb libcrypt11]) can be download from Ubuntu Jaunty repositories.&lt;br /&gt;
&lt;br /&gt;
*The performance of clutter can be improved by enabling hardware acceleration if not enabled already. In some cases, it would require installing restricted/proprietary drivers (Eg: on host machines with ATI or NVidia graphics card). Refer to [[Maemo5 clutter performance]] for more details.&lt;br /&gt;
&lt;br /&gt;
*Running Xephyr with -kb option disables entry of “@” symbol. However, removing -kb option disables cursor keys.&lt;br /&gt;
&lt;br /&gt;
*Running Xephyr with -host-cursor is causing Xephyr to crash in Ubuntu Lucid and Debian Squeeze when the Hildon Application Framework is closed.&lt;br /&gt;
&lt;br /&gt;
*Xephyr in Ubuntu Lucid does not support the -kb option anymore. https://bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/531872&lt;br /&gt;
  &lt;br /&gt;
*In order to run ARMEL binaries in scratchbox the mmap_min_address needs to be set to 4096 or lower. Normally the SDK installer warns about that, but in Ubuntu Lucid the /proc entry is visible only to root, so the SDK installer can not see it. https://bugs.launchpad.net/ubuntu/+source/linux/+bug/568844 This also prevents qemu from checking the value, in which case it&#039;s assumed to be 0. Because of this, until the bug is fixed, the value should be set to 0 on Lucid.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Scratchbox]]&lt;/div&gt;</summary>
		<author><name>192.100.124.218</name></author>
	</entry>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=Documentation/Maemo_5_Final_SDK_Installation&amp;diff=7887</id>
		<title>Documentation/Maemo 5 Final SDK Installation</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=Documentation/Maemo_5_Final_SDK_Installation&amp;diff=7887"/>
		<updated>2010-05-27T11:47:32Z</updated>

		<summary type="html">&lt;p&gt;192.100.124.218: /* Few corrections to Installing Maemo 5 SDK using GUI Installer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
&lt;br /&gt;
The following document describes the installation of the Maemo 5 Final SDK. Maemo SDK uses Scratchbox as the cross compilation environment into which Maemo specific development files are installed.&lt;br /&gt;
&lt;br /&gt;
Before we begin with the installation, have a look at the minimum system requirements. We officially support x86-32 Debian based distributions, mainly Debian and Ubuntu though it is possible to install the SDK on other flavours of Linux too.&lt;br /&gt;
&lt;br /&gt;
Once you are sure that your development machine fulfils these requirements, you can proceed with the following guidelines:&lt;br /&gt;
&lt;br /&gt;
Maemo 5 SDK comes with two command line installation scripts and GUI installer (beta) to ease the SDK installation.&lt;br /&gt;
*Scratchbox installer script which downloads and installs the required version of Scratchbox onto your host machine.&lt;br /&gt;
*Maemo SDK installer which sets up two targets (armel and x86) inside Scratchbox,  downloads the minimal rootstraps for both targets, and installs the open source development files based on the user selection during the installation process.&lt;br /&gt;
*GUI installer  which combines both Scratchbox and SDK installation.&lt;br /&gt;
&lt;br /&gt;
Maemo 5 SDK also provides the essential Nokia proprietary binary packages needed for Maemo development and additional Nokia applications in an authenticated repository. In order to have access to this repository, you will need to accept the End User License Agreement (EULA).    For the complete functionality and usability of the Maemo SDK, it is required to install Nokia proprietary binary packages in addition to the open source packages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is not included in the Maemo SDK?==&lt;br /&gt;
Xephyr X11 server software is needed on your host machine before you can run any applications in the Maemo SDK. It is an X11 server that provides a device screen for the developer so that you can see all the Maemo application windows and visuals on your host machine. This software is not included in the SDK mainly because it is available on most linux distributions. &lt;br /&gt;
&lt;br /&gt;
If you choose to install Maemo SDK using the GUI installer on Debian based systems, it will provide an option to install Xephyr for you. &lt;br /&gt;
&lt;br /&gt;
If not, you can manually install Xephyr as follows:&lt;br /&gt;
&lt;br /&gt;
On Debian based linux systems, Xephyr can be installed outside Scratchbox environment using apt with root permission:&lt;br /&gt;
&lt;br /&gt;
 $ sudo apt-get install xserver-xephyr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On a Gentoo system you need to install xorg-server with the kdrive useflag. This builds the Xephyr binary.&lt;br /&gt;
&lt;br /&gt;
=Installing Maemo 5 SDK using GUI Installer=&lt;br /&gt;
&lt;br /&gt;
Maemo 5 SDK installation is now made easy with GUI installer. This&lt;br /&gt;
installer will install Scratchbox and Maemo 5 SDK on Debian based&lt;br /&gt;
systems. This installer will allow installation of nokia closed packages and&lt;br /&gt;
applications provided that EULA at [http://tablets-dev.nokia.com/eula/index.php this webpage] is accepted. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;GUI Installer has following features:&#039;&#039;&#039;&lt;br /&gt;
* Install/Upgrade Scratchbox&lt;br /&gt;
* Installation of Maemo 5 SDK&lt;br /&gt;
* Installation of nokia-binaries&lt;br /&gt;
* Installation of nokia-apps&lt;br /&gt;
* Installation of Xephyr&lt;br /&gt;
* Can create a launcher for Xephyr on Desktop&lt;br /&gt;
* Can create a shortcut to Scratchbox home folder on Desktop&lt;br /&gt;
* Can create Maemo 5 info page on Desktop that contains useful links for developers &lt;br /&gt;
* Uninstallation of scratchbox &amp;amp; targets (debian-based distros only)&lt;br /&gt;
&lt;br /&gt;
GUI installer offers standard and custom installation modes in a wizard. Standard installation will use default settings, while custom offers more choices. Please note that standard mode will overwrite any of the standard targets (FREMANTLE_X86, FREMANTLE_ARMEL) if present, but contents of Scratchbox home will be preserved. Please use the custom mode if you don&#039;t want to overwrite your targets.&lt;br /&gt;
&lt;br /&gt;
The GUI installer Qt application requires python bindings for Qt. GUI installer can install the required packages if not already installed.&lt;br /&gt;
&lt;br /&gt;
The installer will use http_proxy environment variable if available. If&lt;br /&gt;
your connection doesn&#039;t seem to work, you will be asked to manually&lt;br /&gt;
enter proxy settings.&lt;br /&gt;
&lt;br /&gt;
GUI installer has been tested on Ubuntu Karmic and Debian Lenny, both 32bit and 64bit versions. The GUI installer needs to download Maemo SDK so it requires a working Internet connection. On 64bit kernel, you need to disable VDSO for 32bit applications manually.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Starting installation with GUI installer:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
There is some missing options in this python script if you run from non-debian linux systems you got errors, because it will not automatically define the installation path of scratchbox, to correct this errors you must patch this script.&lt;br /&gt;
&lt;br /&gt;
Also you must uncheck Xephyr checkbox and install it manually.&lt;br /&gt;
&lt;br /&gt;
  129c129&lt;br /&gt;
  &amp;lt; SB_PATH = &amp;quot;/scratchbox&amp;quot;&lt;br /&gt;
  ---&lt;br /&gt;
  &amp;gt; SB_PATH = &amp;quot;/opt/scratchbox&amp;quot;&lt;br /&gt;
  2297a2298&lt;br /&gt;
  &amp;gt;       opt = opt + &amp;quot;-s /opt/scratchbox&amp;quot;&lt;br /&gt;
  2351a2353&lt;br /&gt;
  &amp;gt;       cmd = cmd +&amp;quot; -s /opt/scratchbox&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 wget http://repository.maemo.org/stable/5.0/maemo-sdk-install-wizard_5.0.py&lt;br /&gt;
 chmod a+x maemo-sdk-install-wizard_5.0.py&lt;br /&gt;
&lt;br /&gt;
 $ Installer requires root preveliges&lt;br /&gt;
   Ubuntu&lt;br /&gt;
    sudo ./maemo-sdk-install-wizard_5.0.py&lt;br /&gt;
   Debian&lt;br /&gt;
    su -c ./maemo-sdk-install-wizard_5.0.py&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Limitations:&#039;&#039;&#039;&lt;br /&gt;
*As the installer will do package installation, you should quit all package managers before running it.&lt;br /&gt;
*Please note that detecting scratchbox is not perfect and it will detect only if it is installed in /scratchbox path.&lt;br /&gt;
*Please note that python-qt features used in this installer might not be available in older ubuntu and debian distros.&lt;br /&gt;
*Due to differences in versions of Python Qt bindings, certain parts of installation can work differently on different systems.&lt;br /&gt;
*Installer only shows required settings on 64-bit machines but does not add them automatically.&lt;br /&gt;
*Installer will always use DISPLAY :2, if you want to use a different value, you need to change it manually.&lt;br /&gt;
&lt;br /&gt;
=Installing Maemo 5 SDK on x86-32 Debian based distribution=&lt;br /&gt;
&lt;br /&gt;
1. Download the scratchbox installer and the Maemo SDK installer scripts. These are the same scripts as are available through Forum Nokia: [http://www.forum.nokia.com/Tools_Docs_and_Code/Tools/Platforms/Maemo/ Maemo SDK at Forum Nokia].&lt;br /&gt;
&lt;br /&gt;
 $ wget http://repository.maemo.org/stable/5.0/maemo-scratchbox-install_5.0.sh http://repository.maemo.org/stable/5.0/maemo-sdk-install_5.0.sh &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Set the permissions to execute the scripts.&lt;br /&gt;
&lt;br /&gt;
 $ chmod a+x ./maemo-scratchbox-install_5.0.sh  ./maemo-sdk-install_5.0.sh&lt;br /&gt;
&lt;br /&gt;
Users of Ubuntu 10.04 LTS will need to do the following to fix the installation, note that this may reduce system security! [http://talk.maemo.org/showpost.php?p=636394&amp;amp;postcount=8]&lt;br /&gt;
&lt;br /&gt;
 $ sudo su&lt;br /&gt;
 $ echo &amp;quot;vm.mmap_min_addr = 0&amp;quot; &amp;gt;&amp;gt; /etc/sysctl.conf&lt;br /&gt;
 $ sysctl -p&lt;br /&gt;
 $ exit #to go back to user&lt;br /&gt;
&lt;br /&gt;
3. Run the scratchbox installer with root permission specifying the username to be added to scratchbox users group and sbox group. The username should be an existing user name from the host linux system. This will download about 420 MB of material from the web, which is not resumeable if interrupted.&lt;br /&gt;
&lt;br /&gt;
 $ sudo ./maemo-scratchbox-install_5.0.sh -u $USER&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. The installation script adds the specified user to ‘sbox’ user group. For the group membership to be effective in the current terminal session, run the following command:&lt;br /&gt;
&lt;br /&gt;
Note: This command will change the existing group ID during the current login session to ‘sbox’. If you do not want this change, just logout and log back in again for the group membership to be effective.&lt;br /&gt;
&lt;br /&gt;
 $ newgrp sbox&lt;br /&gt;
&lt;br /&gt;
At this step, you should have a working Scratchbox environment ready.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5. Proceed further to run the Maemo SDK installer script. This script is run as &#039;user&#039; outside the scratchbox environment. Set permission for &#039;user&#039;before runing script.&lt;br /&gt;
&lt;br /&gt;
  $ sudo chmod +x ./maemo-sdk-install_5.0.sh  &lt;br /&gt;
  $ ./maemo-sdk-install_5.0.sh&lt;br /&gt;
&lt;br /&gt;
If you have installed Scratchbox in a path alternative to /scratchbox, you will need to specify the path with ‘-s PATH’ option.  More information on available command line options can be found with --help option&lt;br /&gt;
Follow the instructions on the go.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6. Once the script has successfully completed its execution, you can login into Scratchbox.&lt;br /&gt;
&lt;br /&gt;
 $ /scratchbox/login&lt;br /&gt;
&lt;br /&gt;
If you are not able to login, take a look at the [[#Limitations of Scratchbox|limitations of Scratchbox]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7. Proceed further to accept the EULA in order to obtain the Nokia proprietary binary packages. These Nokia binaries are essential for the complete functionality of the Maemo SDK.&lt;br /&gt;
&lt;br /&gt;
7.1. Accept the EULA on [http://tablets-dev.nokia.com/eula/index.php this webpage] &amp;lt;br&amp;gt;&lt;br /&gt;
7.2. Copy the sources.list entry given to you after the license acceptance to your Scratchbox x86 and armel target’s /etc/apt/sources.list file.  Execute the commands below on the _ARMEL and _X86 targets.&lt;br /&gt;
&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;gt; sb-conf select FREMANTLE_ARMEL&lt;br /&gt;
 [sbox-FREMANTLE_ARMEL: ~] &amp;gt; nano /etc/apt/sources.list  # add deb line &lt;br /&gt;
 [sbox-FREMANTLE_ARMEL: ~] &amp;gt; apt-get update&lt;br /&gt;
 [sbox-FREMANTLE_ARMEL: ~] &amp;gt; fakeroot apt-get install nokia-binaries nokia-apps&lt;br /&gt;
&lt;br /&gt;
 [sbox-FREMANTLE_ARMEL: ~] &amp;gt; sb-conf select FREMANTLE_X86&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;gt; nano /etc/apt/sources.list  # add deb line &lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;gt; apt-get update&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;gt; fakeroot apt-get install nokia-binaries nokia-apps&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The above step installs all needed Nokia proprietary binary packages along with the open source binaries that have dependencies to Nokia proprietary binary packages.&lt;br /&gt;
With this, your Maemo 5 SDK environment is set up completely and ready for development.&lt;br /&gt;
&lt;br /&gt;
=Installing Maemo 5 SDK on openSUSE=&lt;br /&gt;
There are instructions at [http://en.opensuse.org/Maemo5 opensuse.org].&lt;br /&gt;
&lt;br /&gt;
=Installing Maemo 5 SDK on non-Linux operating systems=&lt;br /&gt;
&lt;br /&gt;
If you do not have a Linux environment (Windows or Mac OS X), you can install a [[Documentation/Maemo_5_Developer_Guide/Development_Environment/Maemo_SDK_Virtual_Images|Maemo SDK virtual machine image]]&lt;br /&gt;
from [http://tablets-dev.nokia.com/maemo-dev-env-downloads.php tablets-dev.nokia.com].&lt;br /&gt;
[http://www.vmware.com/products/player/ VMPlayer is required].&lt;br /&gt;
&lt;br /&gt;
=Starting/Shutting down the SDK UI=&lt;br /&gt;
&lt;br /&gt;
Before starting the UI framework, ensure that you have installed the following:&lt;br /&gt;
*Xephyr X11 server on the host machine outside the Scratchbox environment&lt;br /&gt;
*The SDK as described above&lt;br /&gt;
*The Nokia proprietary binary packages&lt;br /&gt;
&lt;br /&gt;
1. Now, run Xephyr outside the scratchbox environment:&lt;br /&gt;
&lt;br /&gt;
 $ Xephyr :2 -host-cursor -screen 800x480x16 -dpi 96 -ac -kb &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Ubuntu 10.04 users using the package in the repositories will have to run the same command without the -host-cursor and -kb, however the terminal window will have to stay open.&lt;br /&gt;
&lt;br /&gt;
2. Login to Scratchbox X86 target&lt;br /&gt;
&lt;br /&gt;
 $ /scratchbox/login&lt;br /&gt;
 &lt;br /&gt;
 Welcome to Scratchbox, the cross-compilation toolkit!&lt;br /&gt;
 &lt;br /&gt;
 Use &#039;sb-menu&#039; to change your compilation target.&lt;br /&gt;
 &lt;br /&gt;
 See /scratchbox/doc/ for documentation.&lt;br /&gt;
 &lt;br /&gt;
 [sbox-FREMANTLE_X86: ~]&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Set the DISPLAY variable to match the display setting given for the Xephyr server.&lt;br /&gt;
&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;gt;export DISPLAY=:2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. Start the UI framework .&lt;br /&gt;
&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;gt;af-sb-init.sh start&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5. You will now see the UI framework up and running on the Xephyr window.&lt;br /&gt;
&lt;br /&gt;
6. You can shut down the UI framework as follows:&lt;br /&gt;
&lt;br /&gt;
  [sbox-FREMANTLE_X86: ~] &amp;gt;af-sb-init.sh stop&lt;br /&gt;
&lt;br /&gt;
=Installation of x86-64 Debian based distributions=&lt;br /&gt;
Since Scratchbox only supports x86-32 bit Linux host systems, we need to force the installation of x86-32 Scratchbox packages on the x86-64 bit machines. Using the -F option with the Scratchbox installation script can do this.&lt;br /&gt;
&lt;br /&gt;
==Installation procedure==&lt;br /&gt;
&lt;br /&gt;
*Download the Scratchbox installer and the Maemo SDK installer scripts.&lt;br /&gt;
&lt;br /&gt;
 $ wget -c http://repository.maemo.org/stable/5.0/maemo-scratchbox-install_5.0.sh http://repository.maemo.org/stable/5.0/maemo-sdk-install_5.0.sh &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Set permissions to execute the scripts.&lt;br /&gt;
&lt;br /&gt;
 $ chmod a+x ./maemo-scratchbox-install_5.0.sh  ./maemo-sdk-install_5.0.sh&lt;br /&gt;
&lt;br /&gt;
Users of Ubuntu 10.04 LTS will need to do the following to fix the installation, note that this may reduce system security! [http://talk.maemo.org/showpost.php?p=636394&amp;amp;postcount=8]&lt;br /&gt;
&lt;br /&gt;
 $ sudo su&lt;br /&gt;
 $ echo &amp;quot;vm.mmap_min_addr = 0&amp;quot; &amp;gt;&amp;gt; /etc/sysctl.conf&lt;br /&gt;
 $ sysctl -p&lt;br /&gt;
 $ exit #to go back to user&lt;br /&gt;
&lt;br /&gt;
*Run the Scratchbox installer script as &#039;root user&#039; with -F option, specifying the username to be added to Scratchbox users group sbox group as follows:&lt;br /&gt;
&lt;br /&gt;
 $ sudo ./maemo-scratchbox-install_5.0.sh -F -u $USER&lt;br /&gt;
&lt;br /&gt;
*If you are running squeeze or intrepid or later, read [[#Limitations_of_Scratchbox]] before continuing.&lt;br /&gt;
&lt;br /&gt;
Upon successful installation of Scratchbox, continue to run the Maemo 5 Final SDK Installer as instructed in the x86-32 installation.&lt;br /&gt;
&lt;br /&gt;
=Starting Scratchbox on non-Debian based systems=&lt;br /&gt;
If Scratchbox was installed from Debian packages, the /etc/init.d/scratchbox-core init script is installed and Scratchbox should start automatically when the system is rebooted. However, if you have installed Scratchbox from tarballs, then rebooting your machine will clear away all the mounts and binfmt_misc registrations that Scratchbox requires to work. To get your Scratchbox working again after reboot, you have to run the following command as root:&lt;br /&gt;
&lt;br /&gt;
 $ sudo /scratchbox/sbin/sbox_ctl start&lt;br /&gt;
&lt;br /&gt;
Alternatively you can add sbox_ctl as an init script to the /etc/init.d directory and create the appropriate links at your system&#039;s runlevel directories. This procedure works on some systems:&lt;br /&gt;
&lt;br /&gt;
 $ ln -s /scratchbox/sbin/sbox_ctl /etc/init.d/scratchbox-core&lt;br /&gt;
 $ /usr/sbin/update-rc.d scratchbox-core defaults&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Refer to your system&#039;s documentation for the correct instructions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Upgrading from Maemo 5 Beta2 SDK=&lt;br /&gt;
&lt;br /&gt;
A smooth upgrade from beta2 to Final SDK is unfortunately not possible. Hence it is advised to freshly install the Final SDK. Before you do so, read through the instructions below.&lt;br /&gt;
&lt;br /&gt;
Some of the Nokia applications shipped with the final SDK use a hard coded path for user home directory which presents a problem since the default username on the device differs from the username on the developer’s machine. To make these applications work, it is required to create a home directory that matches the hard coded value.  This needs to be done outside scratchbox using root privileges. The -u  option in the Scratchbox installer has been updated to create the necessary symlinks.  Running the installer with -u option when the Scratchbox has been already installed will just add the user and create symlinks.  Running it for already existing user will check for the symlink and create it if needed.&lt;br /&gt;
&lt;br /&gt;
Run the command below to create the symlink for existing Scratchbox user:&lt;br /&gt;
&lt;br /&gt;
 $ sudo ./maemo-scratchbox-install_5.0.sh -u &amp;lt;EXISTING_USER&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can create the symlinks manually as follows, if Scratchbox is installed in the default location:&lt;br /&gt;
&lt;br /&gt;
 $ sudo ln -s /scratchbox/users/&amp;lt;username&amp;gt;/home/&amp;lt;username&amp;gt; /scratchbox/users/&amp;lt;username&amp;gt;/home/user&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Final SDK installer additionally creates a directory /opt under /target/&amp;lt;target_name&amp;gt;/.&lt;br /&gt;
&#039;&#039;&#039;Reason:&#039;&#039;&#039; In order to facilitate installing applications under /opt on the device, a symlink  /opt has been created pointing to /home/opt. The SDK inherits this feature. Under Scratchbox, /opt points to /target/links/opt which in turn points to /targets/&amp;lt;target_name&amp;gt;/opt. Installing the rootstraps makes this point to /home/opt, which is not what we want, since we need /opt to be target specific.  In order to resolve this situation, we have to manually check whether /targets/&amp;lt;target_name&amp;gt;/opt is a symlink and if it is, remove it and create a directory with the same name.&lt;br /&gt;
&lt;br /&gt;
=Upgrading from Maemo 4.x/Diablo SDK=&lt;br /&gt;
Due to the fact that there are API breaks in Fremantle, we cannot upgrade Diablo SDK to Fremantle. We can however have Fremantle Scratchbox targets co-exist with Diablo targets.&lt;br /&gt;
&lt;br /&gt;
For this, we need to first upgrade the Scratchbox installation on our host machine.&lt;br /&gt;
&lt;br /&gt;
*Download the Maemo5 scratchbox installer.&lt;br /&gt;
&lt;br /&gt;
*Set executable permissions and run it as follows:&lt;br /&gt;
&lt;br /&gt;
 $ chmod a+x ./maemo-scratchbox-install_5.0.sh&lt;br /&gt;
 $ sudo  ./maemo-scratchbox-install_5.0.sh -U -u &amp;lt;EXISTING_USER&amp;gt; -s /scratchbox&lt;br /&gt;
&lt;br /&gt;
Once the Scratchbox installation is done, run the Maemo 5 Final SDK installer.&lt;br /&gt;
&lt;br /&gt;
=Manual Installation=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;On x86-32 Debian based systems:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*You can add the following line into your host machine&#039;s /etc/apt/sources.list file.&lt;br /&gt;
&lt;br /&gt;
 deb http://scratchbox.org/debian/ maemo5-sdk main&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Install the needed Scratchbox packages with root permission&lt;br /&gt;
&lt;br /&gt;
 $ sudo apt-get update&lt;br /&gt;
 $ sudo apt-get install scratchbox-core scratchbox-libs scratchbox-devkit-qemu scratchbox-devkit-debian scratchbox-devkit-doctools scratchbox-devkit-perl scratchbox-toolchain-host-gcc scratchbox-toolchain-cs2007q3-glibc2.5-arm7 scratchbox-toolchain-cs2007q3-glibc2.5-i486  scratchbox-devkit-svn scratchbox-devkit-git scratchbox-devkit-apt-https&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;On x86-64 Debian based systems:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Download the Scratchbox packages from [http://scratchbox.org/download/files/sbox-releases/branches/apophis/r4/deb/ here].&lt;br /&gt;
&lt;br /&gt;
*Force the installation of the x86-32 packages with root permission as follows:&lt;br /&gt;
&lt;br /&gt;
 $ sudo dpkg -i --force-architecture scratchbox-core scratchbox-libs scratchbox-devkit-qemu scratchbox-devkit-debian scratchbox-devkit-doctools scratchbox-devkit-perl scratchbox-toolchain-host-gcc scratchbox-toolchain-cs2007q3-glibc2.5-arm7 scratchbox-toolchain-cs2007q3-glibc2.5-i486  scratchbox-devkit-svn scratchbox-devkit-git scratchbox-devkit-apt-https&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Scratchbox packages will be unpacked to /scratchbox directory and the installation procedure will ask you some questions about the group and user accounts. Default group to Scratchbox is &#039;sbox&#039;.&lt;br /&gt;
&lt;br /&gt;
*Users who will be using Scratchbox should be added using the following command with root permission:&lt;br /&gt;
&lt;br /&gt;
 $ sudo /scratchbox/sbin/sbox_adduser USER yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It will automatically include the user to the Scratchbox group, create user directories under /scratchbox/users and mount several directories (/dev, /proc, /tmp) under the user directory.&lt;br /&gt;
&lt;br /&gt;
*Some of the Nokia applications shipped with the final SDK use a hard coded path for user home directory which presents a problem since the default username on the device differs from the username on the developer’s machine. To make these applications work, it is required to create a home directory that matches the hard coded value.  This needs to be done outside scratchbox using root privileges.&lt;br /&gt;
&lt;br /&gt;
 $ sudo ln -s /scratchbox/users/&amp;lt;username&amp;gt;/home/&amp;lt;username&amp;gt; /scratchbox/users/&amp;lt;username&amp;gt;/home/user&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*For the group membership to be effective in the current terminal session, run the following command:&lt;br /&gt;
&lt;br /&gt;
 $ newgrp sbox&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; This command will change the existing group ID during the current login session to &#039;sbox&#039;. If you do not want to change, simply logout and log back in for the group membership to be effective.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Log-in to Scratchbox.&lt;br /&gt;
&lt;br /&gt;
 $ /scratchbox/login&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Configure the scratchbox x86 and armel targets as follows:&lt;br /&gt;
&lt;br /&gt;
 [sbox-&amp;gt;:~]&amp;gt;sb-conf st FREMANTLE_X86 -c cs2007q3-glibc2.5-i486 -d perl:debian-etch:doctools:svn:git -t none&lt;br /&gt;
 [sbox-&amp;gt;:~]&amp;gt;sb-conf st FREMANTLE_ARMEL -c cs2007q3-glibc2.5-arm7 -d qemu:perl:debian-etch:doctools:svn:git -t qemu-arm-sb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Download the minimal rootstraps.&lt;br /&gt;
&lt;br /&gt;
 [sbox-&amp;gt;:~]&amp;gt; wget http://repository.maemo.org/stable/5.0/armel/maemo-sdk-rootstrap_5.0_armel.tgz http://repository.maemo.org/stable/5.0/i386/maemo-sdk-rootstrap_5.0_i386.tgz&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Switch to x86 target, install the devkits, etc and fakeroot into the target, install the minimal rootstrap and finally the Maemo development files.&lt;br /&gt;
&lt;br /&gt;
 [sbox-&amp;gt;:~]&amp;gt; sb-conf se FREMANTLE_X86&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;gt; sb-conf rs maemo-sdk-rootstrap_5.0_i386.tgz&lt;br /&gt;
&lt;br /&gt;
*Some users seem to have problems downloading all files with apt http pipelining enabled. If you want to make sure or you get download errors like &amp;quot;104 connection reset by peer&amp;quot; at the fakeroot steps below, then disable http pipelining with the next command:&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;gt; echo &#039;Acquire::http::Pipeline-Depth &amp;quot;0&amp;quot;;&#039; &amp;gt;&amp;gt; /etc/apt/apt.conf.d/00maemo&lt;br /&gt;
&lt;br /&gt;
*either way, continue here:&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;gt; sb-conf in -edFL&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;gt; apt-get update&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;gt; fakeroot apt-get install maemo-sdk-debug&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The meta-package &#039;maemo-sdk-debug&#039; installs all needed open source runtime, development and debug pakcages into the target. Use maemo-sdk-runtime if you want only runtime packages to be installed or user maemo-sdk-dev if you want only the runtime + development packages to be installed.&lt;br /&gt;
&lt;br /&gt;
*Accept the EULA from [http://tablets-dev.nokia.com/eula/index.php here]  to obtain the URL to access the Nokia binaries repository.&lt;br /&gt;
&lt;br /&gt;
*Add the URL thus obtained to the Scratchbox target&#039;s /etc/apt/sources.list and do the following:&lt;br /&gt;
&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;gt;apt-get update&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;gt;fakeroot apt-get install nokia-binaries nokia-apps&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*In order to facilitate installing applications under /opt on the device, a symlink  /opt has been created pointing to /home/opt. The SDK inherits this feature. Under Scratchbox, /opt points to /target/links/opt which in turn points to /targets/&amp;lt;target_name&amp;gt;/opt. Installing the rootstraps makes this point to /home/opt, which is not what we want, since we need /opt to be target specific.  In order to resolve this situation,&lt;br /&gt;
&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;gt;rm /targets/FREMANTLE_X86/opt&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;gt;mkdir /targets/FREMANTLE_X86/opt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Execute similar steps on the armel target too to set it up:&lt;br /&gt;
&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~]&amp;gt; sb-conf se FREMANTLE_ARMEL&lt;br /&gt;
 [sbox-FREMANTLE_ARMEL: ~] &amp;gt; sb-conf rs maemo-sdk-rootstrap_5.0_armel.tgz&lt;br /&gt;
&lt;br /&gt;
*again,the next command disables http pipelining, if you like:&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;gt; echo &#039;Acquire::http::Pipeline-Depth &amp;quot;0&amp;quot;;&#039; &amp;gt;&amp;gt; /etc/apt/apt.conf.d/00maemo&lt;br /&gt;
&lt;br /&gt;
*pipelining disabled or not, here we go again...&lt;br /&gt;
 [sbox-FREMANTLE_ARMEL: ~] &amp;gt; sb-conf in -edFL&lt;br /&gt;
 [sbox-FREMANTLE_ARMEL: ~] &amp;gt; apt-get update&lt;br /&gt;
 [sbox-FREMANTLE_ARMEL: ~] &amp;gt; fakeroot apt-get install maemo-sdk-debug&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Add the same URL obtained above to access the Nokia binaries repository under /etc/apt/sources.list file of the Scratchbox armel target.&lt;br /&gt;
&lt;br /&gt;
 [sbox-FREMANTLE_ARMEL: ~] &amp;gt;apt-get update&lt;br /&gt;
 [sbox-FREMANTLE_ARMEL: ~] &amp;gt;fakeroot apt-get install nokia-binaries nokia-apps&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Create the /opt directory.&lt;br /&gt;
&lt;br /&gt;
 [sbox-FREMANTLE_ARMEL: ~] &amp;gt;rm /targets/FREMANTLE_ARMEL/opt&lt;br /&gt;
 [sbox-FREMANTLE_ARMEL: ~] &amp;gt;mkdir /targets/FREMANTLE_ARMEL/opt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With this, you must now have both the targets setup and ready to use.&lt;br /&gt;
&lt;br /&gt;
[[#Starting/Shutting down the SDK UI|Start the UI framework]].&lt;br /&gt;
&lt;br /&gt;
=Un-installation=&lt;br /&gt;
&lt;br /&gt;
Make sure that you have no process running inside Scratchbox. Uninstalling Scratchbox will remove everything that is installed and saved inside Scratchbox. Please take a backup of your files from Scratchbox user home directory if needed.&lt;br /&gt;
&lt;br /&gt;
On Debian based systems, do the following with root permissions:&lt;br /&gt;
&lt;br /&gt;
 $ sudo apt-get remove scratchbox-* --purge&lt;br /&gt;
 $ sudo rm -rf /scratchbox&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On non-Debian based systems, you need to stop scratchbox as follows before removing it.&lt;br /&gt;
&lt;br /&gt;
 $ sudo /scratchbox/sbin/sbox_ctl stop&lt;br /&gt;
 $ sudo rm -rf /scratchbox&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Limitations of Scratchbox=&lt;br /&gt;
&lt;br /&gt;
The following limitations have been noted in the usage of Scratchbox:&lt;br /&gt;
&lt;br /&gt;
==VDSO support==&lt;br /&gt;
Scratchbox does not work when VDSO32 support is enabled in the host&#039;s kernel. We&#039;re working on making it possible, but at the moment there are some workarounds, which are presented here.&lt;br /&gt;
&lt;br /&gt;
If your host has VDSO32 turned on you will get an error like this when trying to login to Scratchbox.&lt;br /&gt;
&lt;br /&gt;
 No directory, logging in with HOME=/&lt;br /&gt;
 Inconsistency detected by ld.so: rtld.c: 1192: dl_main: Assertion `(void *) &lt;br /&gt;
 ph-&amp;gt;p_vaddr == _rtld_local._dl_sysinfo_dso&#039; failed!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==x86-64 kernel==&lt;br /&gt;
&lt;br /&gt;
x86-64 Linux kernels starting from version 2.6.25 enable VDSO32 by default. To temporarily disable VDSO32 execute &lt;br /&gt;
&lt;br /&gt;
 sysctl abi.vsyscall32=0&lt;br /&gt;
&lt;br /&gt;
On Linux kernel 2.6.24 &amp;lt;= you can disable VDSO32 by executing&lt;br /&gt;
&lt;br /&gt;
 sysctl vm.vdso_enabled=0&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
 sysctl kernel.vdso=0&lt;br /&gt;
&lt;br /&gt;
The current setting of VDSO32 can be verified by using sysctl. Only values 0 and 2 are compatible with Scratchbox. In our examples we use 0 (disable). 2 enables compat mode.&lt;br /&gt;
&lt;br /&gt;
You can set all of these permanently by adding the following lines to /etc/sysctl.conf&lt;br /&gt;
&lt;br /&gt;
 vm.vdso_enabled = 0&lt;br /&gt;
 abi.vsyscall32 = 0&lt;br /&gt;
 kernel.vdso = 0&lt;br /&gt;
&lt;br /&gt;
Save the file and run the command:&lt;br /&gt;
&lt;br /&gt;
 $ sudo sysctl -p&lt;br /&gt;
&lt;br /&gt;
Please note the correct line depends on your Linux kernel version. When you execute sysctl -p you may get a warning about unknown keys. You can safely ignore those warnings as long as one of the 3 settings works.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING :&#039;&#039;&#039; You should try setting these values by echoing them to the given locations before adding them to sysctl.conf to see if they cause any problems. For example, in some Ubuntu Gutsy installations, it has been observed that changing the VDSO settings will hang the system and thus making permanent changes in sysctl.conf may, in these cases, make your system unbootable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Known Issues in the SDK=&lt;br /&gt;
&lt;br /&gt;
*A list of issues and their solutions can be found in the [[Developer_FAQ#Maemo_SDK_and_Scratchbox|Developer FAQ]] article&lt;br /&gt;
&lt;br /&gt;
*Unnecessary warnings and debugging messages are printed out when the hildon application framework is started.&lt;br /&gt;
&lt;br /&gt;
*Armel target does not bring up the UI framework&lt;br /&gt;
&lt;br /&gt;
*It has been noted that Xephyr dies with the application framework at times. The crash in question might even be Xephyr related since the application framework behaves differently with different versions/builds of Xephyr. The case seems to be worst on Xephyr that comes with Ubuntu Jaunty, there Xephyr will die when running any application that contains an input field and clicking on that field with a mouse to invoke the input method. On Fedora Code 10 the Xephyr does not mind the mouse clicks but dies when shutting down the application framework. On the other hand Xephyr on Ubuntu Intrepid or even the Intrepid version recompiled for Jaunty does not experience crashing in these situations.&lt;br /&gt;
&lt;br /&gt;
A patch is already available for the Xephyr on Ubuntu Jaunty and can be found at http://bugs.freedesktop.org/show_bug.cgi?id=21591. Binaries packages for [http://launchpadlibrarian.net/30330126/xserver-xephyr_1.6.3-1ubuntu2_i386.deb xserver-xephyr] package and its dependencies ([http://launchpadlibrarian.net/27533744/libgpg-error0_1.6-1ubuntu1_i386.deb libgpg-error0] and [http://launchpadlibrarian.net/28623981/libgcrypt11_1.4.4-2ubuntu2_i386.deb libcrypt11]) can be download from Ubuntu Jaunty repositories.&lt;br /&gt;
&lt;br /&gt;
*The performance of clutter can be improved by enabling hardware acceleration if not enabled already. In some cases, it would require installing restricted/proprietary drivers (Eg: on host machines with ATI or NVidia graphics card). Refer to [[Maemo5 clutter performance]] for more details.&lt;br /&gt;
&lt;br /&gt;
*Running Xephyr with -kb option disables entry of “@” symbol. However, removing -kb option disables cursor keys.&lt;br /&gt;
&lt;br /&gt;
*Running Xephyr with -host-cursor is causing Xephyr to crash in Ubuntu Lucid and Debian Squeeze when the Hildon Application Framework is closed.&lt;br /&gt;
&lt;br /&gt;
*Xephyr in Ubuntu Lucid does not support the -kb option anymore. https://bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/531872&lt;br /&gt;
  &lt;br /&gt;
*In order to run ARMEL binaries in scratchbox the mmap_min_address needs to be set to 4096. Normally the SDK installer warns about that,  but in Ubuntu Lucid the /proc entry is visible only to root, so the SDK   installer can not see it. https://bugs.launchpad.net/ubuntu/+source/linux/+bug/568844&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Scratchbox]]&lt;/div&gt;</summary>
		<author><name>192.100.124.218</name></author>
	</entry>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=Easy_Debian&amp;diff=8725</id>
		<title>Easy Debian</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=Easy_Debian&amp;diff=8725"/>
		<updated>2010-05-19T11:58:49Z</updated>

		<summary type="html">&lt;p&gt;192.100.124.218: /* Install instructions: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This package, when installed, will give you OpenOffice.org, Gimp, the LXDE Desktop Environment, Evince, Firefox (called Iceweasel in Debian) with Java and Flash support, printing support, and access to thousands of precompiled applications from [http://www.debian.org Debian] that can be easily browsed and downloaded. All these applications will be installed in an image file containing the Debian operation system without interfering with Maemo, but taking advantage of its infrastructure and connectivity.&lt;br /&gt;
&lt;br /&gt;
This package will give you all of these applications without any need for installing dependencies or other applications, and it should work on all of the tablets.&lt;br /&gt;
&lt;br /&gt;
== What you need: ==&lt;br /&gt;
&lt;br /&gt;
* You need 2.5 GB free on one of your memory cards, although after installing, you will only need 2 GB.&lt;br /&gt;
* You need to keep your expectations reasonable. Big desktop applications like OpenOffice and Firefox run slowly on the tablet. They are power-hungry and designed for big, powerful CPUs. The [[Nokia N810|N8x0&#039;s]] processor is comparable to a Pentium II processor. Just imagine running these apps on your computer from the mid-90s (remember Windows 95?), and you&#039;ll get the idea. But sometimes, you really need something on the tablet that only these apps can provide, like MS Word compatibility or Java applets. On the [[Nokia N900|N900]], almost all applications run reasonably fast once loaded, but they often take somewhat long to launch.&lt;br /&gt;
&lt;br /&gt;
== Install instructions: ==&lt;br /&gt;
&lt;br /&gt;
* You need to install the easy-deb-chroot package. It can be found in the [[Extras]] repository. There may be a newer version in the &amp;quot;Extras-devel&amp;quot; repository. (Enabling Extras-devel is a dangerous area and you should disable it as soon as you are done installing Easy Debian, but Easy Debian is rather safe and it is optified.)&lt;br /&gt;
&lt;br /&gt;
* Once installed several new shortcut icons will be available on the applications menu. You will need to first run the one called &amp;quot;Debian Image Installer&amp;quot;. A terminal program will open and ask you where to place the image file (after decompression it will be a 2 GB file), either on the [[Nokia N900|N900&#039;s]] built in storage (under MyDocs), or on an external MicroSD card (if available). That will start the download of the compressed image (about 300 MB) and eventual extraction of the image file. It may take more than 15 minutes to download if you have fast Internet connection, and another 30 minutes  or more to extract it on your tablet. Make sure that there are no other processes running and that the extraction is not interrupted.&lt;br /&gt;
: You can check for a successful download and extraction by typing &amp;quot;ls -l MyDocs/debian*&amp;quot; in XTerminal. The compressed image name has the ending .img.ext2.lmza; when decompressed the file name ends in .img.ext2 and it should have a file size of exactly 2147483648 bytes.&lt;br /&gt;
&lt;br /&gt;
* This step is an alternate way to do the previous step: You can manually download the image file from [http://qole.org/files//debian-m5-v3d.img.ext2.lzma here]. Afterward you will have to copy it into &amp;lt;code&amp;gt;/home/user/MyDocs/&amp;lt;/code&amp;gt; or into &amp;lt;code&amp;gt;/media/mmc1/&amp;lt;/code&amp;gt; depending on whether you want it installed on the internal storage or on a removable storage.  Then, when you run &amp;quot;Debian Image Installer&amp;quot; it will detect that you already have the file and proceed to extract it and set it up for you. If you have a faster computer with programs to unpack [http://en.wikipedia.org/wiki/Lzma lzma]-compressed files, you may also skip the Debian Image Installer by copying the uncompressed file by USB to the &amp;lt;code&amp;gt;/home/user/MyDocs/&amp;lt;/code&amp;gt; folder.&lt;br /&gt;
&lt;br /&gt;
* If you have more than one image file, you should edit /home/user/.chroot to select the one you want to load. Default is first in /home/user/MyDocs/debian*.img*, /media/mmc1/debian*.img*&lt;br /&gt;
&lt;br /&gt;
* Finally, when you get the &amp;quot;Congratulations!&amp;quot; message, REBOOT.&lt;br /&gt;
&lt;br /&gt;
== Easy Debian application icons ==&lt;br /&gt;
&lt;br /&gt;
Easy Debian installs the following shortcuts in the Application Manager:&lt;br /&gt;
&lt;br /&gt;
; Close Debian : for unmounting the Debian image and shutting down all running Debian processes&lt;br /&gt;
&lt;br /&gt;
; Deb Img Install : for the initial download and extraction of the Debian image. For installing a new version of the Debian image from http:qole.org/files, delete the old image (or move/rename it appropriately) and rerun Deb Img Install.&lt;br /&gt;
&lt;br /&gt;
; Debian chroot : this runs &amp;quot;sudo debian&amp;quot; in XTerminal, which gives root access to the Debian image. This can be used for modifying the Debian image and installing further applications from the command line. The root file system of Maemo is not visible from within Debian chroot, except /home and /home/user/MyDocs, so you cannot ruin the Maemo firmware from here.&lt;br /&gt;
&lt;br /&gt;
; Debian LXDE : this launches the [http://lxde.org Lightweight X11 Desktop Environment] from where you can start all installed Debian application. Alternatively, you can start Debian applications from XTerminal with &amp;quot;debbie&amp;quot; (see below).&lt;br /&gt;
&lt;br /&gt;
; Fix LXDE kbd : fixing lost keyboard focus in LXDE (see below)&lt;br /&gt;
&lt;br /&gt;
; GNOME ALSA mix : for configuring sound&lt;br /&gt;
&lt;br /&gt;
; Iceweasel Web B : unbranded Debian version of the Firefox Web Browser&lt;br /&gt;
&lt;br /&gt;
; OpenOffice : for starting OpenOffice without LXDE&lt;br /&gt;
&lt;br /&gt;
; Set Deb HW Keys : additional useful keybindings (see below)&lt;br /&gt;
&lt;br /&gt;
; Synaptic Pkg Mg : graphical interface for installing additional Debian applications (in the Debian image only, not Maemo proper)&lt;br /&gt;
&lt;br /&gt;
== Using the LXDE Environment: ==&lt;br /&gt;
&lt;br /&gt;
* To launch a session of LXDE (a light weight desktop environment) whith several applications already installed in it, including OpenOffice.org, simply click on the &amp;quot;Debian LXDE&amp;quot; icon shortcut on the application menu.&lt;br /&gt;
* LXDE&#039;s application menu is found at the top left corner of the screen.&lt;br /&gt;
* To momentarily go back into the Maemo environment, simply press Ctrl Backspace.&lt;br /&gt;
* Exiting LXDE: Log out, don&#039;t just close the window. Make sure to have LXDE closed properly before powering down the device, it will not function properly when started next time before doing the next proper shutdown.&lt;br /&gt;
&lt;br /&gt;
=== Window is too big for the screen ===&lt;br /&gt;
&lt;br /&gt;
Press Ctrl and the period key simultaneously. This will make the &amp;quot;Move Window&amp;quot; cursor appear (a cross with four arrows). Use the stylus to drag the window to expose the parts that are not visible.&lt;br /&gt;
&lt;br /&gt;
=== LXDE Top Menu Disappears ===&lt;br /&gt;
&lt;br /&gt;
The newest version of the Easy Debian image (m5-v3b) has a new LXDE version.&lt;br /&gt;
&lt;br /&gt;
If you upgrade Easy Debian and your LXDE top menu disappears, you can do one of two things:&lt;br /&gt;
* Install the newest version (m5-v3d): Close Easy Debian (use the icon with the red arrow and box), delete the old image (use the File Manager to do this), and then use the &amp;quot;Deb Img Install&amp;quot; icon to download and extract the new image.&lt;br /&gt;
* Keep your old image, and fix the top menu manually. Start LXDE. Tap and hold on a blank area of the left-side bar. Choose &amp;quot;Create New Panel&amp;quot;. Choose &amp;quot;Top&amp;quot; and &amp;quot;OK&amp;quot;. Tap and hold on new top panel. In the &#039;&#039;General&#039;&#039; tab, set the following things: Alignment: Left, Width: 25, Height: 32, Properties: Uncheck &amp;quot;Reserve Space...&amp;quot; In the &#039;&#039;Panel Applets&#039;&#039; tab, Add &amp;quot;Menu&amp;quot;, &amp;quot;Digital Clock&amp;quot;, &amp;quot;System Tray&amp;quot; (check &amp;quot;Stretch&amp;quot; column), &amp;quot;Net status monitor&amp;quot; (use edit button and change eth0 to wlan0, then tap on icon and set to wlan0 there too), and &amp;quot;CPU Usage Monitor&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If after the upgrade some menu entries (e.g. Gimp) are missing, you can manually install them from the Debian chroot terminal by&lt;br /&gt;
&lt;br /&gt;
 xdg-desktop-menu install --novendor /usr/share/applications/gimp.desktop&lt;br /&gt;
&lt;br /&gt;
In order to have the document viewer Evince show up in the LXDE menu, you would have to first set &amp;quot;NoDisplay=false&amp;quot; in /usr/share/applications/evince.desktop and then run xdg-desktop-menu similar to above.&lt;br /&gt;
&lt;br /&gt;
=== Keyboard issues and tips ===&lt;br /&gt;
&lt;br /&gt;
It may happen that the hardware keyboard stops working in LXDE. It can be restored by &amp;lt;em&amp;gt;hitting the power button and then tapping outside the menu&amp;lt;/em&amp;gt; or also by using the &amp;quot;Fix LXDE keyboard&amp;quot; application icon (in the Hildon Application Manager, which can be reached - if Ctrl+Backspace still works - from the Task Manager). The power button trick is usually both quicker and more reliable.&lt;br /&gt;
&lt;br /&gt;
==== Localization ====&lt;br /&gt;
&lt;br /&gt;
The keyboard in LXDE is by default US. To get a different keyboard layout for the LXDE window manager, you have to modify the Debian image which requires root privileges.&lt;br /&gt;
For this, &lt;br /&gt;
launch the &amp;quot;Debian chroot&amp;quot; app (icon with red swirl symbol), which opens a terminal with root access to the Debian image (as well as to your home directory). The following instructions assume that you are working from that terminal and not from within the LXDE window manager.&lt;br /&gt;
&lt;br /&gt;
For the task of configuring a special keyboard layout for LXDE (German in the following example), start an editor of your choice in the Debian chroot terminal (e.g., leafpad), and insert the appropriate keymap label in the following line of /etc/xdg/lxsession/LXDE/autostart according to: &lt;br /&gt;
&lt;br /&gt;
  @setxkbmap de&lt;br /&gt;
&lt;br /&gt;
Available keymaps are: ch (Swiss), cz and cz_qwerty (Czech), dano (Danish/Norwegian), fise (Finnish/Swedish), nordic (Danish/Norwegian/Finnish/Swedish), de (German), fr (French), it (Italian), pl (Polish), ptes (Portuguese/Spanish), ru (Russian).&lt;br /&gt;
&lt;br /&gt;
You may also wish to set the language environment under Debian to a non-US one so that system messages come in your native language. This can be done by issuing the command (again from within the Debian chroot terminal)&lt;br /&gt;
&lt;br /&gt;
 dpkg-reconfigure locales&lt;br /&gt;
&lt;br /&gt;
and selecting from the list that is then displayed the UTF variant of the desired language, for example for German, de_DE.UTF-8. &lt;br /&gt;
&lt;br /&gt;
With older Easy Debian images (up to v3b) and in languages other than da, de, en, fr, and sv, this breaks the script that starts LXDE, because $CHROOT/usr/bin/xephwm5 has a line&lt;br /&gt;
&lt;br /&gt;
 export TWOWIN=`wmctrl -l | grep -i Information | awk &#039;{print $1}&#039;`&lt;br /&gt;
&lt;br /&gt;
and &amp;quot;Information&amp;quot; does not match any longer. If in your language &amp;quot;Information&amp;quot; begins with &amp;quot;Info...&amp;quot;, you can fix this by shortening &amp;quot;Information&amp;quot; to &amp;quot;Info&amp;quot; in the above line of /usr/bin/xephwm5. If not, you should modify the script to match the string that appears as title of the window saying &amp;quot;Welcome to Easy Debian LXDE...&amp;quot; (Without the above fix, clicking on the OK button will hang the program. You should instead get to the task manager and kill LXDE from there.)&lt;br /&gt;
In the new image this is fixed (for all languages).&lt;br /&gt;
&lt;br /&gt;
==== Set Deb HW Keys app and xbindkeys ====&lt;br /&gt;
&lt;br /&gt;
The newest version of Easy Debian provides also a &amp;quot;Set Deb HW Keys&amp;quot; application which runs xbindkeys, mapping &amp;lt;u&amp;gt;Fn+Shift+(upper row keys)&amp;lt;/u&amp;gt; of the hardware keyboard to function keys F1-F12. Here the Fn (blue arrow) key has to be pressed first, which is best done by pressing with the thumb and rolling down to also press the Shift key. The function keys are sometimes needed to get in and out of certain modes of programs in particular when started from the desktop (often F1 for help; F5 for presentation or navigator mode; F11 for &amp;quot;Styles and Formatting&amp;quot; in Openoffice.) Moreover, &amp;lt;u&amp;gt;Ctrl+Up&amp;lt;/u&amp;gt; and &amp;lt;u&amp;gt;Ctrl+Space&amp;lt;/u&amp;gt; provide full screen toggles.&lt;br /&gt;
&lt;br /&gt;
Under LXDE, the Enter key is actually KP_Enter, while some application only accept ordinary &amp;quot;Return&amp;quot;. For this eventuality, &amp;quot;Set Deb HW Keys&amp;quot; maps &amp;lt;u&amp;gt;Shift+Enter&amp;lt;/u&amp;gt; to Return.&lt;br /&gt;
&lt;br /&gt;
You can edit /home/user/.xbindkeysrc to include more key mappings that you might find desirable in the absence of the virtual keyboard (which on the N900 in Debian chroot is only accessible in the XTerminal). For example&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;xvkbd -xsendevent -text &#039;\e&#039;&amp;quot;&lt;br /&gt;
   Shift + BackSpace&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
maps Shift+BackSpace to Escape. (See e.g. http://linux.die.net/man/1/xbindkeys and http://linux.die.net/man/1/xvkbd for more possibilities.)&lt;br /&gt;
&lt;br /&gt;
You can have xbindkeys started also automatically by including&lt;br /&gt;
&lt;br /&gt;
 @xbindkeys -f /home/user/.xbindkeysrc&lt;br /&gt;
&lt;br /&gt;
in /etc/xdg/lxsession/LXDE/autostart.&lt;br /&gt;
&lt;br /&gt;
Note that the relevant file /home/user/.xbindkeysrc does not reside in the Debian image but in the home directory. If you upgrade to new versions of Easy Debian, and this file already exists, it will not be overwritten, but the package will install instead a newer version in /home/user/.xbindkeysrc.dist.&lt;br /&gt;
&lt;br /&gt;
It is then up to you to merge new additions to your existing /home/user/.xbindkeysrc file, or if you have not modified it to your needs, to simply take it over by typing in the XTerminal&lt;br /&gt;
 cp .xbindkeysrc .xbindkeysrc.old&lt;br /&gt;
 cp .xbindkeysrc.dist .xbindkeysrc&lt;br /&gt;
&lt;br /&gt;
Another work-around for getting additional special characters is to [[Remapping_keyboard|remap your hardware keyboard]].&lt;br /&gt;
&lt;br /&gt;
A known issue is that in national keyboards where Up and Down arrows are composed as Fn+Left/Right arrows, Up and Down do not work under LXDE. If applications cannot be used without Up and Down keys, those should better be started outside of LXDE with debbie.&lt;br /&gt;
&lt;br /&gt;
==== sticky keys hack ====&lt;br /&gt;
&lt;br /&gt;
In the v3b image, /etc/xdg/lxsession/LXDE/autostart includes a hack to have sticky Shift and Fn keys also in LXDE. You can activate this behavior also outside of LXDE by running &amp;quot;debbie stickykeys&amp;quot; (or &amp;quot;debbie stickykeys xx&amp;quot; where xx is a language code different from us). Note however that this also affects XTerminal applications in Maemo.&lt;br /&gt;
&lt;br /&gt;
The sticky keys hack also makes Ctrl sticky and may have other unexpected effects with non-US keyboards. To disable this feature in LXDE, comment out (include #&#039;s in the beginning of) the following two lines in /etc/xdg/lxsession/LXDE/autostart according to&lt;br /&gt;
&lt;br /&gt;
 #xkbset exp 60 =sticky =twokey =latchlock&lt;br /&gt;
 #xkbset sticky -twokey latchlock&lt;br /&gt;
&lt;br /&gt;
In the newest image (v3d), the sticky keys hack is not enabled by default. To enable it, remove the #&#039;s.&lt;br /&gt;
&lt;br /&gt;
== Using debbie ==&lt;br /&gt;
&lt;br /&gt;
From XTerminal the following scripts are available:&lt;br /&gt;
&lt;br /&gt;
; debbie : starts debian chroot shell as user (doesn&#039;t evaluate /home/user/.profile)&lt;br /&gt;
&lt;br /&gt;
; debbie &#039;&#039;command&#039;&#039; : runs debian command as user (if &#039;&#039;command&#039;&#039; includes file names, those need to be given with absolute path)&lt;br /&gt;
&lt;br /&gt;
; sudo debian : starts debian chroot shell as root (this is the command issued by the &amp;quot;Debian chroot&amp;quot; app)&lt;br /&gt;
&lt;br /&gt;
; sudo debian &#039;&#039;command&#039;&#039; : runs debian command as root&lt;br /&gt;
&lt;br /&gt;
The above scripts run with environment variables determined largely by those set in Maemo and with working directory / . Another option is to enforce login shell behavior as follows:&lt;br /&gt;
&lt;br /&gt;
; sudo debian su - user : starts debian chroot shell as user with $CHROOT/etc/profile and /home/user/.profile evaluated and with working directory /home/user&lt;br /&gt;
&lt;br /&gt;
; sudo debian su - user -c &#039;&#039;command&#039;&#039; : runs debian command as user with $CHROOT/etc/profile and /home/user/.profile evaluated and with working directory /home/user&lt;br /&gt;
&lt;br /&gt;
In all of the above, &#039;&#039;command&#039;&#039; can be simple command-line commands with standard output or GUI programs to be run under a window manager, such as ooffice. &lt;br /&gt;
&lt;br /&gt;
=== Creating desktop shortcuts in Maemo ===&lt;br /&gt;
&lt;br /&gt;
The above scripts are particularly useful for creating shortcuts. For example, a file oowriter.desktop with content&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Desktop Entry]&lt;br /&gt;
Version=1.0&lt;br /&gt;
Encoding=UTF-8&lt;br /&gt;
Name=oowriter&lt;br /&gt;
Icon=ooo-writer&lt;br /&gt;
Exec=debbie oowriter&lt;br /&gt;
Type=Application&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
that is put into&lt;br /&gt;
/usr/share/applications/hildon or (since fw 2009.51) /home/user/.local/share/applications/hildon allows one to start the OpenOffice writer&lt;br /&gt;
directly from the Maemo Applications Menu without having to launch LXDE first.&lt;br /&gt;
Unless you are re-using existing icon files, you can install icons files (.png) by putting them likewise either in /usr/share/icons/hicolor/scalable/hildon or /home/user/.local/share/icons/hicolor/scalable/hildon. You may need to create the .local folders first by&lt;br /&gt;
 mkdir -p /home/user/.local/share/applications/hildon&lt;br /&gt;
 mkdir -p /home/user/.local/share/icons/hicolor/scalable/hildon&lt;br /&gt;
Newly installed application icons usually need a reboot to become visible in the application manager.&lt;br /&gt;
&lt;br /&gt;
== Startup scripts ==&lt;br /&gt;
&lt;br /&gt;
If they exist, the following scripts (which need to be executable) serve as startup scripts as follows&lt;br /&gt;
&lt;br /&gt;
; $CHROOT/var/run/onfirstchroot-ext.rc : This script will run commands as root in maemo the first time you &amp;quot;open&amp;quot; a chroot. So this is where you could force the processor to &amp;quot;performance mode&amp;quot; or some such thing.&lt;br /&gt;
&lt;br /&gt;
; $CHROOT/var/run/onfirstchroot.rc : This script will run commands as root in the chroot the first time you &amp;quot;open&amp;quot; a chroot. For example, if you have installed &#039;&#039;cups&#039;&#039; within Easy Debian, this script should contain &amp;quot;/etc/init.d/cups restart&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
; $CHROOT/var/run/onchroot-ext.rc : This script will run commands as root in maemo every time you run a chroot command.&lt;br /&gt;
&lt;br /&gt;
; $CHROOT/var/run/onchroot.rc : This script will run commands as root in the chroot every time you run a chroot command.&lt;br /&gt;
&lt;br /&gt;
Here $CHROOT is the mount point of the Debian system (to be omitted when aleady in chroot).&lt;br /&gt;
&lt;br /&gt;
In order to run a command in one of these scripts as &amp;quot;user&amp;quot;, preface the command with &#039;&#039;su user -c&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installing Applications ==&lt;br /&gt;
&lt;br /&gt;
Applications can be installed using [http://www.debian.org/doc/manuals/debian-reference/ch02.en.html apt-get, aptitude] or [http://beginlinux.com/desktop_training/ubuntu/1102-synaptic-package-manager Synaptic]. Apt-get is a command-line tool, and aptitude a terminal-based frontend, both of which can be accessed from within the Debian chroot terminal app (red swirl icon in the Hildon Application Manager). Synaptic Package Manager is a graphical frontend that can be launched from another icon in the Hildon Application Manager. It cannot be started from the (misleadingly present) menu entry in the LXDE menu, because it is not in the standard path and requires root privileges. (In LXDE one can however start it from a terminal typing &amp;quot;sudo synaptic&amp;quot;.)&lt;br /&gt;
&lt;br /&gt;
Note that the image cannot be expected to have an up-to-date package list. It is important that you perform &amp;quot;apt-get update&amp;quot; or use Edit -&amp;gt; Reload Package Information within Synaptic before installing new packages. After such installs you can invoke &amp;quot;apt-get clean&amp;quot; to free your disk space from downloaded package files.&lt;br /&gt;
&lt;br /&gt;
In the current image (v3d), only the stable Debian Lenny repository is activated, although the Easy Debian image also involves a number of packages from the newer Debian Squeeze (testing) repository. If you want to install additional packages specifically from Squeeze or even from Sid (unstable), you should uncomment the corresponding line in /etc/apt/sources.list by launching an editor in the Debian chroot terminal (app with red swirl icon), i.e., remove &amp;quot;#&amp;quot; in the beginning of the lines&lt;br /&gt;
&lt;br /&gt;
 #deb http://http.us.debian.org/debian squeeze main contrib non-free&lt;br /&gt;
 #deb http://www.debian-multimedia.org squeeze main&lt;br /&gt;
&lt;br /&gt;
After updating the package information, you can then install from this newer repository. However, heed the following warning:&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Warning: Those of you familiar with Debian or other similar Linux distributions know that it is very easy to keep the distro up to date by means of the apt-get command.  However, there is currently a problem with some of the central Easy Debian apps in the Debian Squeeze repositories.  Therefore, it is recommended that for the moment you simply use the image as is.  Do not perform a full &amp;lt;em&amp;gt;upgrade&amp;lt;/em&amp;gt; (apt-get update is safe, though) when Squeeze (or even Sid) is enabled in /etc/apt/sources.list.  This warning will be removed when this issue is resolved.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== CUPS Installation Instructions ===&lt;br /&gt;
&lt;br /&gt;
If you have a network printer that can be accessed by [http://encyclopedia.thefreedictionary.com/Common+Unix+Printing+System CUPS], the Common Unix Printing System, you can do so under Easy Debian, which has &amp;lt;I&amp;gt;cups-client&amp;lt;/I&amp;gt; installed (since version v3c). &lt;br /&gt;
&lt;br /&gt;
This allows you to access one CUPS server at a time, which can be specified alternatively by &lt;br /&gt;
* the option -h hostname[:port]&lt;br /&gt;
* the file client.conf in /etc/cups or ~/.cups (see &amp;quot;man client.conf&amp;quot;)&lt;br /&gt;
* the environment variable CUPS_SERVER&lt;br /&gt;
&lt;br /&gt;
You can then check for available printers by&lt;br /&gt;
&lt;br /&gt;
 lpstat -a&lt;br /&gt;
&lt;br /&gt;
and print out files from your device by&lt;br /&gt;
&lt;br /&gt;
 lp -d printername filename&lt;br /&gt;
&lt;br /&gt;
If a full CUPS installation is desired (which allows to schedule jobs to more than one CUPS server in the network, to scan for printers, and also to [http://www.debianadmin.com/howto-install-and-customize-cups-pdf-in-debian.html install cups-pdf], a PDF writer backend):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install cups&lt;br /&gt;
apt-get clean&lt;br /&gt;
echo &amp;quot;/etc/init.d/cups restart&amp;quot; &amp;gt;&amp;gt; /var/run/onfirstchroot.rc&lt;br /&gt;
chmod a+x /var/run/onfirstchroot.rc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The last two lines ensure that the CUPS server is started when Easy Debian is launched.&lt;br /&gt;
&lt;br /&gt;
=== Other useful applications to install in addition ===&lt;br /&gt;
&lt;br /&gt;
The following packages are also not part of the current image (v3d) but may be of wider interest:&lt;br /&gt;
&lt;br /&gt;
; vpnc : The VPN client for accessing Cisco concentrators works well when started under Debian, while under Maemo vpnc is not yet available as a stable application. Install by &amp;quot;apt-get install vpnc&amp;quot; and configure through /etc/vpnc.conf .&lt;br /&gt;
:This works particularly well in WLAN connections. There even microB connects via vpn. With GPRS connections, however, a browser in Debian has to be used.&lt;br /&gt;
&lt;br /&gt;
; openssh-client : To access the Debian system by ssh, one can of course use the ssh server under Maemo (which presumably every power user will have installed), for a login followed by &amp;quot;debian&amp;quot; or &amp;quot;debian su user&amp;quot;. To initiate ssh connection from within the Debian system, installation of openssh-client is sufficient and does not conflict with ssh installations in Maemo.&lt;br /&gt;
&lt;br /&gt;
; gftp : X/GTK+ FTP client. Works well when started outside of LXDE by &amp;quot;debbie gftp&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
; djview4 : Provides a reader for djvu files&lt;br /&gt;
&lt;br /&gt;
; flpsed : WYSIWYG PostScript and PDF annotator, useful for filling forms, adding notes etc. Works well when started outside of LXDE by &amp;quot;debbie flpsed&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
; pdfchain : a graphical user interface (only in squeeze distribution) for the PDF Tool Kit (&amp;lt;b&amp;gt;pdftk&amp;lt;/b&amp;gt;, the command line tool that is already available in the stable lenny distribution)&lt;br /&gt;
 &lt;br /&gt;
; abiword : Alternative to OpenOffice Writer. However, needs to be installed from the squeeze repository and does upgrade gconf2 to the squeeze version, which could break other things.&lt;br /&gt;
&lt;br /&gt;
; kile : KDE Integrated LaTeX Environment. Works well when started outside of LXDE by &amp;quot;debbie kile&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
; gnumeric : A leaner alternative to OpenOffice Calc. Works well when started outside of LXDE by &amp;quot;debbie gnumeric&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
; xournal : GTK+ application for notetaking, sketching and keeping a journal using a stylus. It can also be used to add annotations to PDF files. Works well when started outside of LXDE by &amp;quot;debbie xournal&amp;quot;. Richer interface than in the native Maemo application and available in newer version from squeeze.&lt;br /&gt;
&lt;br /&gt;
; zim : [http://zim-wiki.org/ zim] is a desktop wiki application that is well suited for the N900 device (a Maemo version is under development, too). To get the newest version install this package from squeeze (but don&#039;t upgrade the rest of the packages). Start from XTerminal (or a self-made application icon, see above) by &lt;br /&gt;
&lt;br /&gt;
 sudo debian su - user -c zim &lt;br /&gt;
&lt;br /&gt;
: The theme provided by the v3b image does not work well with this application, but can be changed by creating the file /home/user/.gtkrc-2.0.mine with content e.g.&lt;br /&gt;
 gtk-theme-name=&amp;quot;Raleigh&amp;quot;&lt;br /&gt;
&lt;br /&gt;
; encfs : a user-space encrypted file system, which allows to encrypt entire folders, see http://www.arg0.net/encfs. Encfs requires the fuse kernel module, which is already available in the Maemo system, although normally not yet loaded. Because there is no group &amp;quot;fuse&amp;quot; under Maemo, it&#039;s best to change the group ownership of /dev/fuse to users, and have all that automated through the startup script $CHROOT/var/run/onfirstchroot-ext.rc (needs to be executable). Add the following lines to this script:&lt;br /&gt;
 modprobe fuse&lt;br /&gt;
 sleep 1&lt;br /&gt;
 chown root.users /dev/fuse&lt;br /&gt;
:Install by running the following commands in the Debian chroot terminal:&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install encfs&lt;br /&gt;
 adduser user fuse&lt;br /&gt;
 apt-get clean&lt;br /&gt;
:After that user (and not only root) can create and use encrypted file systems in Easy Debian. See http://www.arg0.net/encfs for how to use it.&lt;br /&gt;
&lt;br /&gt;
; nicotine : graphical client for the SoulSeek peer-to-peer system&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q:&#039;&#039;&#039; I have started Openoffice (evince, ...) from the desktop, entered a certain mode (presentation, navigator, formatting, full screen, ...) and cannot get out of that again.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; See [[Easy_Debian#Set_Deb_HW_Keys_app_and_xbindkeys]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q:&#039;&#039;&#039; I chose Iceweasel, but nothing happened!&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; Be patient. Iceweasel has no splash screen and a very long startup time. Use Epiphany for faster startup while retaining the ability to use Java and Flash plugins.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q:&#039;&#039;&#039; How do I get to the OK button in the huge dialog box that just popped up?&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; DIABLO/N8x0: If you choose the &amp;quot;Toggle Movable Windows&amp;quot; icon in the menu, you will switch to a patched version of the Matchbox Window Manager that lets you move the big dialog boxes used by some Debian apps so you can get to the OK button. When you want to go back to &amp;quot;Normal&amp;quot; OS2008 window behavior, select this menu item again.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; FREMANTLE/N900: You&#039;ll need to use LXDE to access the entire dialog. Use the Ctrl-. key combination to move windows with the stylus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q:&#039;&#039;&#039; How do I get the virtual keyboard to pop up in Debian Apps?&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; DIABLO/N8x0: Select the &amp;quot;Set Debian HW Keys&amp;quot; menu item; wait a bit, then you can press the minus (-) hardware key followed by the menu hardware key to toggle the Matchbox Keyboard. Press the (-) key then the (+) key to toggle between normal and mini (one-line) keyboards.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; FREMANTLE/N900: There is no virtual keyboard in Maemo for Debian apps.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q:&#039;&#039;&#039; How do I make Debian apps fullscreen?&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; Select the &amp;quot;Set Debian HW Keys&amp;quot; menu item; wait a bit, then you can press (DIABLO/N8x0) the minus (-) hardware key followed by the &amp;quot;fullscreen&amp;quot; hardware key or (FREMANTLE/N900) Ctrl-Uparrow or Ctrl-Space to toggle fullscreen for any app.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q:&#039;&#039;&#039; DIABLO/N8x0: How do I get the best turbo speed from OpenOffice, Firefox and other big apps?&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; Make sure you have the maximum amount of virtual memory enabled in your Control Panel / Memory dialog. Then select the &amp;quot;Set CPU to Performance mode&amp;quot; menu item and launch your app. Remember to set the CPU to On-Demand mode when you&#039;re done using the big app, because Performance mode sucks your battery faster. But it still isn&#039;t as bad as the battery life of your average laptop...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q:&#039;&#039;&#039; English isn&#039;t my first language. How do I change this to my language?&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; Please click on the &amp;quot;Debian chroot&amp;quot; icon and type the following command:&lt;br /&gt;
&lt;br /&gt;
 dpkg-reconfigure locales&lt;br /&gt;
&lt;br /&gt;
:Choose your language(s).&lt;br /&gt;
&lt;br /&gt;
:DIABLO/N8x0: Note that you should choose the language with no period between the language and the iso code (eg. &amp;quot;en_CA ISO-8859-1&amp;quot;), and optionally, the utf-8 version, too (eg. &amp;quot;en_CA.UTF-8&amp;quot;).&lt;br /&gt;
:FREMANTLE/N900:  Choose the UTF-8 version.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q:&#039;&#039;&#039; Under Debian the time zone is not the same as under Maemo.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; In the Debian chroot terminal run&lt;br /&gt;
&lt;br /&gt;
 dpkg-reconfigure tzdata&lt;br /&gt;
&lt;br /&gt;
and select the time zone of your choice.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q:&#039;&#039;&#039; How do I find the amount of space left for applications?&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; From the prompt in Debian Chroot menu item:&lt;br /&gt;
&lt;br /&gt;
 df -h /&lt;br /&gt;
&lt;br /&gt;
Look under AVAIL.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q:&#039;&#039;&#039; I want to install more applications! How do I do that?&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; First, you have to update the repository lists. From the prompt in Debian Chroot menu item:&lt;br /&gt;
&lt;br /&gt;
 apt-get update&lt;br /&gt;
&lt;br /&gt;
:The image for the N900 has quite some free space for installing additional Debian packages.&lt;br /&gt;
&lt;br /&gt;
:For DIABLO/N8x0, you must get some space back! There&#039;s almost no extra room in the image file.&lt;br /&gt;
&lt;br /&gt;
 apt-get install localepurge; localepurge&lt;br /&gt;
&lt;br /&gt;
:This will get you at least 80MB back. You should probably do this first, before starting to install. Running out of space during an install in Debian is ugly.&lt;br /&gt;
&lt;br /&gt;
:Also, when downloading packages, remember to frequently use &amp;quot;apt-get clean&amp;quot; to clear out old downloaded packages. That will help with free space.&lt;br /&gt;
&lt;br /&gt;
:If you&#039;re comfortable with the command line, you can use the technique listed in this post to double your install space.&lt;br /&gt;
&lt;br /&gt;
:Even with all of these tricks, you&#039;ll still run out of room fairly quickly. You&#039;ll probably have to uninstall packages in order to add new ones.&lt;br /&gt;
&lt;br /&gt;
:More advanced users can put a minimal system into an empty image and build a custom set of apps using this post. The most advanced and best way: partition your SD card and put your Debian fs there.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q:&#039;&#039;&#039; What&#039;s this &amp;quot;Iceweasel&amp;quot;?&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; Iceweasel is the Debian name for Firefox. It&#039;s a long story, but in short, Mozilla and Debian had a philosophical disagreement that ended in Debian renaming Firefox to Iceweasel.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q:&#039;&#039;&#039; I would like to have a separate /home/user directory under Debian than under Maemo. Is that possible?&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; /sbin/qchroot script does mountings; one option is to not mount /home/user at all by commenting out the corresponding line in that script, which is&lt;br /&gt;
 mount /dev/mmcblk0p2 &amp;quot;$CHROOT/home&amp;quot;&lt;br /&gt;
for FREMANTLE/N900. Then /home/user/MyDocs will still get mounted, but you can keep a Debian home directory separately, in the chroot.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q:&#039;&#039;&#039; How is this different than the [http://trac.tspre.org/projects/nit-debian Deblet project]?&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; Easy Debian uses a fully installed Debian system to run applications inside of Maemo. The Deblet project helps you install a bootable Debian system from scratch; Deblet is mainly designed for booting to an alternate OS.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q:&#039;&#039;&#039; I already have Debian in a partition, or I&#039;m running Deblet. How can I use your package with my Debian?&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; Edit the /home/user/.chroot file to point to your Debian partition or image file. Easy Debian will do the rest.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; If you are using Deblet, delete the /home/user/.synchroot file before running Easy Debian for the first time, so your Deblet config files don&#039;t get overwritten. Remember that you&#039;ll need to make a user called &amp;quot;user&amp;quot; in Deblet (with the proper ID) for things to work correctly. Also note that your maemo home directory will be used by default. This can also be changed in the .chroot file.&lt;br /&gt;
&lt;br /&gt;
== Donations ==&lt;br /&gt;
&lt;br /&gt;
If you feel overwhelmed by gratitude towards [http://talk.maemo.org/member.php?u=10410 qole] for bringing a full-fledged Debian OS to your device, consider donating at [http://qole.org qole.org]. [DISCLAIMER: This entry was inserted by a grateful user, not qole himself.]&lt;br /&gt;
&lt;br /&gt;
[[Category:Users]]&lt;br /&gt;
[[Category:Power users]]&lt;/div&gt;</summary>
		<author><name>192.100.124.218</name></author>
	</entry>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=Easy_Debian&amp;diff=8726</id>
		<title>Easy Debian</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=Easy_Debian&amp;diff=8726"/>
		<updated>2010-05-19T10:05:40Z</updated>

		<summary type="html">&lt;p&gt;192.100.124.218: /* LXDE Top Menu Disappears */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This package, when installed, will give you OpenOffice.org, Gimp, the LXDE Desktop Environment, Evince, Firefox (called Iceweasel in Debian) with Java and Flash support, printing support, and access to thousands of precompiled applications from [http://www.debian.org Debian] that can be easily browsed and downloaded. All these applications will be installed in an image file containing the Debian operation system without interfering with Maemo, but taking advantage of its infrastructure and connectivity.&lt;br /&gt;
&lt;br /&gt;
This package will give you all of these applications without any need for installing dependencies or other applications, and it should work on all of the tablets.&lt;br /&gt;
&lt;br /&gt;
== What you need: ==&lt;br /&gt;
&lt;br /&gt;
* You need 2.5 GB free on one of your memory cards, although after installing, you will only need 2 GB.&lt;br /&gt;
* You need to keep your expectations reasonable. Big desktop applications like OpenOffice and Firefox run slowly on the tablet. They are power-hungry and designed for big, powerful CPUs. The [[Nokia N810|N8x0&#039;s]] processor is comparable to a Pentium II processor. Just imagine running these apps on your computer from the mid-90s (remember Windows 95?), and you&#039;ll get the idea. But sometimes, you really need something on the tablet that only these apps can provide, like MS Word compatibility or Java applets. On the [[Nokia N900|N900]], almost all applications run reasonably fast once loaded, but they often take somewhat long to launch.&lt;br /&gt;
&lt;br /&gt;
== Install instructions: ==&lt;br /&gt;
&lt;br /&gt;
* You need to install the easy-deb-chroot package. It can be found in the [[Extras]] repository. There may be a newer version in the &amp;quot;Extras-devel&amp;quot; repository. (Enabling Extras-devel is a dangerous area and you should disable it as soon as you are done installing Easy Debian, but Easy Debian is rather safe and it is optified.)&lt;br /&gt;
&lt;br /&gt;
* Once installed several new shortcut icons will be available on the applications menu. You will need to first run the one called &amp;quot;Debian Image Installer&amp;quot;. A terminal program will open and ask you where to place the image file (after decompression it will be a 2 GB file), either on the [[Nokia N900|N900&#039;s]] built in storage (under MyDocs), or on an external MicroSD card (if available). That will start the download of the compressed image (about 300 MB) and eventual extraction of the image file. It will take more than a half hour to download if you have fast Internet connection, and another 30 minutes  or more to extract it on your tablet. Make sure that there are no other processes running and that the extraction is not interrupted.&lt;br /&gt;
: You can check for a successful download and extraction by typing &amp;quot;ls -l MyDocs/debian*&amp;quot; in XTerminal. The compressed image name has the ending .img.ext2.lmza; when decompressed the file name ends in .img.ext2 and it should have a file size of exactly 2147483648 bytes.&lt;br /&gt;
&lt;br /&gt;
* This step is an alternate way to do the previous step: You can manually download the image file from [http://qole.org/files//debian-m5-v3d.img.ext2.lzma here]. Afterward you will have to copy it into &amp;lt;code&amp;gt;/home/user/MyDocs/&amp;lt;/code&amp;gt; or into &amp;lt;code&amp;gt;/media/mmc1/&amp;lt;/code&amp;gt; depending on whether you want it installed on the internal storage or on a removable storage.  Then, when you run &amp;quot;Debian Image Installer&amp;quot; it will detect that you already have the file and proceed to extract it and set it up for you. If you have a faster computer with programs to unpack [http://en.wikipedia.org/wiki/Lzma lzma]-compressed files, you may also skip the Debian Image Installer by installing the uncompressed file by USB.&lt;br /&gt;
&lt;br /&gt;
* If you have more than one image file, you should edit /home/user/.chroot to select the one you want to load. Default is first in /home/user/MyDocs/debian*.img*, /media/mmc1/debian*.img*&lt;br /&gt;
&lt;br /&gt;
* Finally, when you get the &amp;quot;Congratulations!&amp;quot; message, REBOOT.&lt;br /&gt;
&lt;br /&gt;
== Easy Debian application icons ==&lt;br /&gt;
&lt;br /&gt;
Easy Debian installs the following shortcuts in the Application Manager:&lt;br /&gt;
&lt;br /&gt;
; Close Debian : for unmounting the Debian image and shutting down all running Debian processes&lt;br /&gt;
&lt;br /&gt;
; Deb Img Install : for the initial download and extraction of the Debian image. For installing a new version of the Debian image from http:qole.org/files, delete the old image (or move/rename it appropriately) and rerun Deb Img Install.&lt;br /&gt;
&lt;br /&gt;
; Debian chroot : this runs &amp;quot;sudo debian&amp;quot; in XTerminal, which gives root access to the Debian image. This can be used for modifying the Debian image and installing further applications from the command line. The root file system of Maemo is not visible from within Debian chroot, except /home and /home/user/MyDocs, so you cannot ruin the Maemo firmware from here.&lt;br /&gt;
&lt;br /&gt;
; Debian LXDE : this launches the [http://lxde.org Lightweight X11 Desktop Environment] from where you can start all installed Debian application. Alternatively, you can start Debian applications from XTerminal with &amp;quot;debbie&amp;quot; (see below).&lt;br /&gt;
&lt;br /&gt;
; Fix LXDE kbd : fixing lost keyboard focus in LXDE (see below)&lt;br /&gt;
&lt;br /&gt;
; GNOME ALSA mix : for configuring sound&lt;br /&gt;
&lt;br /&gt;
; Iceweasel Web B : unbranded Debian version of the Firefox Web Browser&lt;br /&gt;
&lt;br /&gt;
; OpenOffice : for starting OpenOffice without LXDE&lt;br /&gt;
&lt;br /&gt;
; Set Deb HW Keys : additional useful keybindings (see below)&lt;br /&gt;
&lt;br /&gt;
; Synaptic Pkg Mg : graphical interface for installing additional Debian applications (in the Debian image only, not Maemo proper)&lt;br /&gt;
&lt;br /&gt;
== Using the LXDE Environment: ==&lt;br /&gt;
&lt;br /&gt;
* To launch a session of LXDE (a light weight desktop environment) whith several applications already installed in it, including OpenOffice.org, simply click on the &amp;quot;Debian LXDE&amp;quot; icon shortcut on the application menu.&lt;br /&gt;
* LXDE&#039;s application menu is found at the top left corner of the screen.&lt;br /&gt;
* To momentarily go back into the Maemo environment, simply press Ctrl Backspace.&lt;br /&gt;
* Exiting LXDE: Log out, don&#039;t just close the window. Make sure to have LXDE closed properly before powering down the device, it will not function properly when started next time before doing the next proper shutdown.&lt;br /&gt;
&lt;br /&gt;
=== Window is too big for the screen ===&lt;br /&gt;
&lt;br /&gt;
Press Ctrl and the period key simultaneously. This will make the &amp;quot;Move Window&amp;quot; cursor appear (a cross with four arrows). Use the stylus to drag the window to expose the parts that are not visible.&lt;br /&gt;
&lt;br /&gt;
=== LXDE Top Menu Disappears ===&lt;br /&gt;
&lt;br /&gt;
The newest version of the Easy Debian image (m5-v3b) has a new LXDE version.&lt;br /&gt;
&lt;br /&gt;
If you upgrade Easy Debian and your LXDE top menu disappears, you can do one of two things:&lt;br /&gt;
* Install the newest version (m5-v3d): Close Easy Debian (use the icon with the red arrow and box), delete the old image (use the File Manager to do this), and then use the &amp;quot;Deb Img Install&amp;quot; icon to download and extract the new image.&lt;br /&gt;
* Keep your old image, and fix the top menu manually. Start LXDE. Tap and hold on a blank area of the left-side bar. Choose &amp;quot;Create New Panel&amp;quot;. Choose &amp;quot;Top&amp;quot; and &amp;quot;OK&amp;quot;. Tap and hold on new top panel. In the &#039;&#039;General&#039;&#039; tab, set the following things: Alignment: Left, Width: 25, Height: 32, Properties: Uncheck &amp;quot;Reserve Space...&amp;quot; In the &#039;&#039;Panel Applets&#039;&#039; tab, Add &amp;quot;Menu&amp;quot;, &amp;quot;Digital Clock&amp;quot;, &amp;quot;System Tray&amp;quot; (check &amp;quot;Stretch&amp;quot; column), &amp;quot;Net status monitor&amp;quot; (use edit button and change eth0 to wlan0, then tap on icon and set to wlan0 there too), and &amp;quot;CPU Usage Monitor&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If after the upgrade some menu entries (e.g. Gimp) are missing, you can manually install them from the Debian chroot terminal by&lt;br /&gt;
&lt;br /&gt;
 xdg-desktop-menu install --novendor /usr/share/applications/gimp.desktop&lt;br /&gt;
&lt;br /&gt;
In order to have the document viewer Evince show up in the LXDE menu, you would have to first set &amp;quot;NoDisplay=false&amp;quot; in /usr/share/applications/evince.desktop and then run xdg-desktop-menu similar to above.&lt;br /&gt;
&lt;br /&gt;
=== Keyboard issues and tips ===&lt;br /&gt;
&lt;br /&gt;
It may happen that the hardware keyboard stops working in LXDE. It can be restored by &amp;lt;em&amp;gt;hitting the power button and then tapping outside the menu&amp;lt;/em&amp;gt; or also by using the &amp;quot;Fix LXDE keyboard&amp;quot; application icon (in the Hildon Application Manager, which can be reached - if Ctrl+Backspace still works - from the Task Manager). The power button trick is usually both quicker and more reliable.&lt;br /&gt;
&lt;br /&gt;
==== Localization ====&lt;br /&gt;
&lt;br /&gt;
The keyboard in LXDE is by default US. To get a different keyboard layout for the LXDE window manager, you have to modify the Debian image which requires root privileges.&lt;br /&gt;
For this, &lt;br /&gt;
launch the &amp;quot;Debian chroot&amp;quot; app (icon with red swirl symbol), which opens a terminal with root access to the Debian image (as well as to your home directory). The following instructions assume that you are working from that terminal and not from within the LXDE window manager.&lt;br /&gt;
&lt;br /&gt;
For the task of configuring a special keyboard layout for LXDE (German in the following example), start an editor of your choice in the Debian chroot terminal (e.g., leafpad), and insert the appropriate keymap label in the following line of /etc/xdg/lxsession/LXDE/autostart according to: &lt;br /&gt;
&lt;br /&gt;
  @setxkbmap de&lt;br /&gt;
&lt;br /&gt;
Available keymaps are: ch (Swiss), cz and cz_qwerty (Czech), dano (Danish/Norwegian), fise (Finnish/Swedish), nordic (Danish/Norwegian/Finnish/Swedish), de (German), fr (French), it (Italian), pl (Polish), ptes (Portuguese/Spanish), ru (Russian).&lt;br /&gt;
&lt;br /&gt;
You may also wish to set the language environment under Debian to a non-US one so that system messages come in your native language. This can be done by issuing the command (again from within the Debian chroot terminal)&lt;br /&gt;
&lt;br /&gt;
 dpkg-reconfigure locales&lt;br /&gt;
&lt;br /&gt;
and selecting from the list that is then displayed the UTF variant of the desired language, for example for German, de_DE.UTF-8. &lt;br /&gt;
&lt;br /&gt;
With older Easy Debian images (up to v3b) and in languages other than da, de, en, fr, and sv, this breaks the script that starts LXDE, because $CHROOT/usr/bin/xephwm5 has a line&lt;br /&gt;
&lt;br /&gt;
 export TWOWIN=`wmctrl -l | grep -i Information | awk &#039;{print $1}&#039;`&lt;br /&gt;
&lt;br /&gt;
and &amp;quot;Information&amp;quot; does not match any longer. If in your language &amp;quot;Information&amp;quot; begins with &amp;quot;Info...&amp;quot;, you can fix this by shortening &amp;quot;Information&amp;quot; to &amp;quot;Info&amp;quot; in the above line of /usr/bin/xephwm5. If not, you should modify the script to match the string that appears as title of the window saying &amp;quot;Welcome to Easy Debian LXDE...&amp;quot; (Without the above fix, clicking on the OK button will hang the program. You should instead get to the task manager and kill LXDE from there.)&lt;br /&gt;
In the new image this is fixed (for all languages).&lt;br /&gt;
&lt;br /&gt;
==== Set Deb HW Keys app and xbindkeys ====&lt;br /&gt;
&lt;br /&gt;
The newest version of Easy Debian provides also a &amp;quot;Set Deb HW Keys&amp;quot; application which runs xbindkeys, mapping &amp;lt;u&amp;gt;Fn+Shift+(upper row keys)&amp;lt;/u&amp;gt; of the hardware keyboard to function keys F1-F12. Here the Fn (blue arrow) key has to be pressed first, which is best done by pressing with the thumb and rolling down to also press the Shift key. The function keys are sometimes needed to get in and out of certain modes of programs in particular when started from the desktop (often F1 for help; F5 for presentation or navigator mode; F11 for &amp;quot;Styles and Formatting&amp;quot; in Openoffice.) Moreover, &amp;lt;u&amp;gt;Ctrl+Up&amp;lt;/u&amp;gt; and &amp;lt;u&amp;gt;Ctrl+Space&amp;lt;/u&amp;gt; provide full screen toggles.&lt;br /&gt;
&lt;br /&gt;
Under LXDE, the Enter key is actually KP_Enter, while some application only accept ordinary &amp;quot;Return&amp;quot;. For this eventuality, &amp;quot;Set Deb HW Keys&amp;quot; maps &amp;lt;u&amp;gt;Shift+Enter&amp;lt;/u&amp;gt; to Return.&lt;br /&gt;
&lt;br /&gt;
You can edit /home/user/.xbindkeysrc to include more key mappings that you might find desirable in the absence of the virtual keyboard (which on the N900 in Debian chroot is only accessible in the XTerminal). For example&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;xvkbd -xsendevent -text &#039;\e&#039;&amp;quot;&lt;br /&gt;
   Shift + BackSpace&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
maps Shift+BackSpace to Escape. (See e.g. http://linux.die.net/man/1/xbindkeys and http://linux.die.net/man/1/xvkbd for more possibilities.)&lt;br /&gt;
&lt;br /&gt;
You can have xbindkeys started also automatically by including&lt;br /&gt;
&lt;br /&gt;
 @xbindkeys -f /home/user/.xbindkeysrc&lt;br /&gt;
&lt;br /&gt;
in /etc/xdg/lxsession/LXDE/autostart.&lt;br /&gt;
&lt;br /&gt;
Note that the relevant file /home/user/.xbindkeysrc does not reside in the Debian image but in the home directory. If you upgrade to new versions of Easy Debian, and this file already exists, it will not be overwritten, but the package will install instead a newer version in /home/user/.xbindkeysrc.dist.&lt;br /&gt;
&lt;br /&gt;
It is then up to you to merge new additions to your existing /home/user/.xbindkeysrc file, or if you have not modified it to your needs, to simply take it over by typing in the XTerminal&lt;br /&gt;
 cp .xbindkeysrc .xbindkeysrc.old&lt;br /&gt;
 cp .xbindkeysrc.dist .xbindkeysrc&lt;br /&gt;
&lt;br /&gt;
Another work-around for getting additional special characters is to [[Remapping_keyboard|remap your hardware keyboard]].&lt;br /&gt;
&lt;br /&gt;
A known issue is that in national keyboards where Up and Down arrows are composed as Fn+Left/Right arrows, Up and Down do not work under LXDE. If applications cannot be used without Up and Down keys, those should better be started outside of LXDE with debbie.&lt;br /&gt;
&lt;br /&gt;
==== sticky keys hack ====&lt;br /&gt;
&lt;br /&gt;
In the v3b image, /etc/xdg/lxsession/LXDE/autostart includes a hack to have sticky Shift and Fn keys also in LXDE. You can activate this behavior also outside of LXDE by running &amp;quot;debbie stickykeys&amp;quot; (or &amp;quot;debbie stickykeys xx&amp;quot; where xx is a language code different from us). Note however that this also affects XTerminal applications in Maemo.&lt;br /&gt;
&lt;br /&gt;
The sticky keys hack also makes Ctrl sticky and may have other unexpected effects with non-US keyboards. To disable this feature in LXDE, comment out (include #&#039;s in the beginning of) the following two lines in /etc/xdg/lxsession/LXDE/autostart according to&lt;br /&gt;
&lt;br /&gt;
 #xkbset exp 60 =sticky =twokey =latchlock&lt;br /&gt;
 #xkbset sticky -twokey latchlock&lt;br /&gt;
&lt;br /&gt;
In the newest image (v3d), the sticky keys hack is not enabled by default. To enable it, remove the #&#039;s.&lt;br /&gt;
&lt;br /&gt;
== Using debbie ==&lt;br /&gt;
&lt;br /&gt;
From XTerminal the following scripts are available:&lt;br /&gt;
&lt;br /&gt;
; debbie : starts debian chroot shell as user (doesn&#039;t evaluate /home/user/.profile)&lt;br /&gt;
&lt;br /&gt;
; debbie &#039;&#039;command&#039;&#039; : runs debian command as user (if &#039;&#039;command&#039;&#039; includes file names, those need to be given with absolute path)&lt;br /&gt;
&lt;br /&gt;
; sudo debian : starts debian chroot shell as root (this is the command issued by the &amp;quot;Debian chroot&amp;quot; app)&lt;br /&gt;
&lt;br /&gt;
; sudo debian &#039;&#039;command&#039;&#039; : runs debian command as root&lt;br /&gt;
&lt;br /&gt;
The above scripts run with environment variables determined largely by those set in Maemo and with working directory / . Another option is to enforce login shell behavior as follows:&lt;br /&gt;
&lt;br /&gt;
; sudo debian su - user : starts debian chroot shell as user with $CHROOT/etc/profile and /home/user/.profile evaluated and with working directory /home/user&lt;br /&gt;
&lt;br /&gt;
; sudo debian su - user -c &#039;&#039;command&#039;&#039; : runs debian command as user with $CHROOT/etc/profile and /home/user/.profile evaluated and with working directory /home/user&lt;br /&gt;
&lt;br /&gt;
In all of the above, &#039;&#039;command&#039;&#039; can be simple command-line commands with standard output or GUI programs to be run under a window manager, such as ooffice. &lt;br /&gt;
&lt;br /&gt;
=== Creating desktop shortcuts in Maemo ===&lt;br /&gt;
&lt;br /&gt;
The above scripts are particularly useful for creating shortcuts. For example, a file oowriter.desktop with content&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Desktop Entry]&lt;br /&gt;
Version=1.0&lt;br /&gt;
Encoding=UTF-8&lt;br /&gt;
Name=oowriter&lt;br /&gt;
Icon=ooo-writer&lt;br /&gt;
Exec=debbie oowriter&lt;br /&gt;
Type=Application&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
that is put into&lt;br /&gt;
/usr/share/applications/hildon or (since fw 2009.51) /home/user/.local/share/applications/hildon allows one to start the OpenOffice writer&lt;br /&gt;
directly from the Maemo Applications Menu without having to launch LXDE first.&lt;br /&gt;
Unless you are re-using existing icon files, you can install icons files (.png) by putting them likewise either in /usr/share/icons/hicolor/scalable/hildon or /home/user/.local/share/icons/hicolor/scalable/hildon. You may need to create the .local folders first by&lt;br /&gt;
 mkdir -p /home/user/.local/share/applications/hildon&lt;br /&gt;
 mkdir -p /home/user/.local/share/icons/hicolor/scalable/hildon&lt;br /&gt;
Newly installed application icons usually need a reboot to become visible in the application manager.&lt;br /&gt;
&lt;br /&gt;
== Startup scripts ==&lt;br /&gt;
&lt;br /&gt;
If they exist, the following scripts (which need to be executable) serve as startup scripts as follows&lt;br /&gt;
&lt;br /&gt;
; $CHROOT/var/run/onfirstchroot-ext.rc : This script will run commands as root in maemo the first time you &amp;quot;open&amp;quot; a chroot. So this is where you could force the processor to &amp;quot;performance mode&amp;quot; or some such thing.&lt;br /&gt;
&lt;br /&gt;
; $CHROOT/var/run/onfirstchroot.rc : This script will run commands as root in the chroot the first time you &amp;quot;open&amp;quot; a chroot. For example, if you have installed &#039;&#039;cups&#039;&#039; within Easy Debian, this script should contain &amp;quot;/etc/init.d/cups restart&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
; $CHROOT/var/run/onchroot-ext.rc : This script will run commands as root in maemo every time you run a chroot command.&lt;br /&gt;
&lt;br /&gt;
; $CHROOT/var/run/onchroot.rc : This script will run commands as root in the chroot every time you run a chroot command.&lt;br /&gt;
&lt;br /&gt;
Here $CHROOT is the mount point of the Debian system (to be omitted when aleady in chroot).&lt;br /&gt;
&lt;br /&gt;
In order to run a command in one of these scripts as &amp;quot;user&amp;quot;, preface the command with &#039;&#039;su user -c&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installing Applications ==&lt;br /&gt;
&lt;br /&gt;
Applications can be installed using [http://www.debian.org/doc/manuals/debian-reference/ch02.en.html apt-get, aptitude] or [http://beginlinux.com/desktop_training/ubuntu/1102-synaptic-package-manager Synaptic]. Apt-get is a command-line tool, and aptitude a terminal-based frontend, both of which can be accessed from within the Debian chroot terminal app (red swirl icon in the Hildon Application Manager). Synaptic Package Manager is a graphical frontend that can be launched from another icon in the Hildon Application Manager. It cannot be started from the (misleadingly present) menu entry in the LXDE menu, because it is not in the standard path and requires root privileges. (In LXDE one can however start it from a terminal typing &amp;quot;sudo synaptic&amp;quot;.)&lt;br /&gt;
&lt;br /&gt;
Note that the image cannot be expected to have an up-to-date package list. It is important that you perform &amp;quot;apt-get update&amp;quot; or use Edit -&amp;gt; Reload Package Information within Synaptic before installing new packages. After such installs you can invoke &amp;quot;apt-get clean&amp;quot; to free your disk space from downloaded package files.&lt;br /&gt;
&lt;br /&gt;
In the current image (v3d), only the stable Debian Lenny repository is activated, although the Easy Debian image also involves a number of packages from the newer Debian Squeeze (testing) repository. If you want to install additional packages specifically from Squeeze or even from Sid (unstable), you should uncomment the corresponding line in /etc/apt/sources.list by launching an editor in the Debian chroot terminal (app with red swirl icon), i.e., remove &amp;quot;#&amp;quot; in the beginning of the lines&lt;br /&gt;
&lt;br /&gt;
 #deb http://http.us.debian.org/debian squeeze main contrib non-free&lt;br /&gt;
 #deb http://www.debian-multimedia.org squeeze main&lt;br /&gt;
&lt;br /&gt;
After updating the package information, you can then install from this newer repository. However, heed the following warning:&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Warning: Those of you familiar with Debian or other similar Linux distributions know that it is very easy to keep the distro up to date by means of the apt-get command.  However, there is currently a problem with some of the central Easy Debian apps in the Debian Squeeze repositories.  Therefore, it is recommended that for the moment you simply use the image as is.  Do not perform a full &amp;lt;em&amp;gt;upgrade&amp;lt;/em&amp;gt; (apt-get update is safe, though) when Squeeze (or even Sid) is enabled in /etc/apt/sources.list.  This warning will be removed when this issue is resolved.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== CUPS Installation Instructions ===&lt;br /&gt;
&lt;br /&gt;
If you have a network printer that can be accessed by [http://encyclopedia.thefreedictionary.com/Common+Unix+Printing+System CUPS], the Common Unix Printing System, you can do so under Easy Debian, which has &amp;lt;I&amp;gt;cups-client&amp;lt;/I&amp;gt; installed (since version v3c). &lt;br /&gt;
&lt;br /&gt;
This allows you to access one CUPS server at a time, which can be specified alternatively by &lt;br /&gt;
* the option -h hostname[:port]&lt;br /&gt;
* the file client.conf in /etc/cups or ~/.cups (see &amp;quot;man client.conf&amp;quot;)&lt;br /&gt;
* the environment variable CUPS_SERVER&lt;br /&gt;
&lt;br /&gt;
You can then check for available printers by&lt;br /&gt;
&lt;br /&gt;
 lpstat -a&lt;br /&gt;
&lt;br /&gt;
and print out files from your device by&lt;br /&gt;
&lt;br /&gt;
 lp -d printername filename&lt;br /&gt;
&lt;br /&gt;
If a full CUPS installation is desired (which allows to schedule jobs to more than one CUPS server in the network, to scan for printers, and also to [http://www.debianadmin.com/howto-install-and-customize-cups-pdf-in-debian.html install cups-pdf], a PDF writer backend):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install cups&lt;br /&gt;
apt-get clean&lt;br /&gt;
echo &amp;quot;/etc/init.d/cups restart&amp;quot; &amp;gt;&amp;gt; /var/run/onfirstchroot.rc&lt;br /&gt;
chmod a+x /var/run/onfirstchroot.rc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The last two lines ensure that the CUPS server is started when Easy Debian is launched.&lt;br /&gt;
&lt;br /&gt;
=== Other useful applications to install in addition ===&lt;br /&gt;
&lt;br /&gt;
The following packages are also not part of the current image (v3d) but may be of wider interest:&lt;br /&gt;
&lt;br /&gt;
; vpnc : The VPN client for accessing Cisco concentrators works well when started under Debian, while under Maemo vpnc is not yet available as a stable application. Install by &amp;quot;apt-get install vpnc&amp;quot; and configure through /etc/vpnc.conf .&lt;br /&gt;
:This works particularly well in WLAN connections. There even microB connects via vpn. With GPRS connections, however, a browser in Debian has to be used.&lt;br /&gt;
&lt;br /&gt;
; openssh-client : To access the Debian system by ssh, one can of course use the ssh server under Maemo (which presumably every power user will have installed), for a login followed by &amp;quot;debian&amp;quot; or &amp;quot;debian su user&amp;quot;. To initiate ssh connection from within the Debian system, installation of openssh-client is sufficient and does not conflict with ssh installations in Maemo.&lt;br /&gt;
&lt;br /&gt;
; gftp : X/GTK+ FTP client. Works well when started outside of LXDE by &amp;quot;debbie gftp&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
; djview4 : Provides a reader for djvu files&lt;br /&gt;
&lt;br /&gt;
; flpsed : WYSIWYG PostScript and PDF annotator, useful for filling forms, adding notes etc. Works well when started outside of LXDE by &amp;quot;debbie flpsed&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
; pdfchain : a graphical user interface (only in squeeze distribution) for the PDF Tool Kit (&amp;lt;b&amp;gt;pdftk&amp;lt;/b&amp;gt;, the command line tool that is already available in the stable lenny distribution)&lt;br /&gt;
 &lt;br /&gt;
; abiword : Alternative to OpenOffice Writer. However, needs to be installed from the squeeze repository and does upgrade gconf2 to the squeeze version, which could break other things.&lt;br /&gt;
&lt;br /&gt;
; kile : KDE Integrated LaTeX Environment. Works well when started outside of LXDE by &amp;quot;debbie kile&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
; gnumeric : A leaner alternative to OpenOffice Calc. Works well when started outside of LXDE by &amp;quot;debbie gnumeric&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
; xournal : GTK+ application for notetaking, sketching and keeping a journal using a stylus. It can also be used to add annotations to PDF files. Works well when started outside of LXDE by &amp;quot;debbie xournal&amp;quot;. Richer interface than in the native Maemo application and available in newer version from squeeze.&lt;br /&gt;
&lt;br /&gt;
; zim : [http://zim-wiki.org/ zim] is a desktop wiki application that is well suited for the N900 device (a Maemo version is under development, too). To get the newest version install this package from squeeze (but don&#039;t upgrade the rest of the packages). Start from XTerminal (or a self-made application icon, see above) by &lt;br /&gt;
&lt;br /&gt;
 sudo debian su - user -c zim &lt;br /&gt;
&lt;br /&gt;
: The theme provided by the v3b image does not work well with this application, but can be changed by creating the file /home/user/.gtkrc-2.0.mine with content e.g.&lt;br /&gt;
 gtk-theme-name=&amp;quot;Raleigh&amp;quot;&lt;br /&gt;
&lt;br /&gt;
; encfs : a user-space encrypted file system, which allows to encrypt entire folders, see http://www.arg0.net/encfs. Encfs requires the fuse kernel module, which is already available in the Maemo system, although normally not yet loaded. Because there is no group &amp;quot;fuse&amp;quot; under Maemo, it&#039;s best to change the group ownership of /dev/fuse to users, and have all that automated through the startup script $CHROOT/var/run/onfirstchroot-ext.rc (needs to be executable). Add the following lines to this script:&lt;br /&gt;
 modprobe fuse&lt;br /&gt;
 sleep 1&lt;br /&gt;
 chown root.users /dev/fuse&lt;br /&gt;
:Install by running the following commands in the Debian chroot terminal:&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install encfs&lt;br /&gt;
 adduser user fuse&lt;br /&gt;
 apt-get clean&lt;br /&gt;
:After that user (and not only root) can create and use encrypted file systems in Easy Debian. See http://www.arg0.net/encfs for how to use it.&lt;br /&gt;
&lt;br /&gt;
; nicotine : graphical client for the SoulSeek peer-to-peer system&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q:&#039;&#039;&#039; I have started Openoffice (evince, ...) from the desktop, entered a certain mode (presentation, navigator, formatting, full screen, ...) and cannot get out of that again.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; See [[Easy_Debian#Set_Deb_HW_Keys_app_and_xbindkeys]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q:&#039;&#039;&#039; I chose Iceweasel, but nothing happened!&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; Be patient. Iceweasel has no splash screen and a very long startup time. Use Epiphany for faster startup while retaining the ability to use Java and Flash plugins.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q:&#039;&#039;&#039; How do I get to the OK button in the huge dialog box that just popped up?&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; DIABLO/N8x0: If you choose the &amp;quot;Toggle Movable Windows&amp;quot; icon in the menu, you will switch to a patched version of the Matchbox Window Manager that lets you move the big dialog boxes used by some Debian apps so you can get to the OK button. When you want to go back to &amp;quot;Normal&amp;quot; OS2008 window behavior, select this menu item again.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; FREMANTLE/N900: You&#039;ll need to use LXDE to access the entire dialog. Use the Ctrl-. key combination to move windows with the stylus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q:&#039;&#039;&#039; How do I get the virtual keyboard to pop up in Debian Apps?&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; DIABLO/N8x0: Select the &amp;quot;Set Debian HW Keys&amp;quot; menu item; wait a bit, then you can press the minus (-) hardware key followed by the menu hardware key to toggle the Matchbox Keyboard. Press the (-) key then the (+) key to toggle between normal and mini (one-line) keyboards.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; FREMANTLE/N900: There is no virtual keyboard in Maemo for Debian apps.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q:&#039;&#039;&#039; How do I make Debian apps fullscreen?&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; Select the &amp;quot;Set Debian HW Keys&amp;quot; menu item; wait a bit, then you can press (DIABLO/N8x0) the minus (-) hardware key followed by the &amp;quot;fullscreen&amp;quot; hardware key or (FREMANTLE/N900) Ctrl-Uparrow or Ctrl-Space to toggle fullscreen for any app.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q:&#039;&#039;&#039; DIABLO/N8x0: How do I get the best turbo speed from OpenOffice, Firefox and other big apps?&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; Make sure you have the maximum amount of virtual memory enabled in your Control Panel / Memory dialog. Then select the &amp;quot;Set CPU to Performance mode&amp;quot; menu item and launch your app. Remember to set the CPU to On-Demand mode when you&#039;re done using the big app, because Performance mode sucks your battery faster. But it still isn&#039;t as bad as the battery life of your average laptop...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q:&#039;&#039;&#039; English isn&#039;t my first language. How do I change this to my language?&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; Please click on the &amp;quot;Debian chroot&amp;quot; icon and type the following command:&lt;br /&gt;
&lt;br /&gt;
 dpkg-reconfigure locales&lt;br /&gt;
&lt;br /&gt;
:Choose your language(s).&lt;br /&gt;
&lt;br /&gt;
:DIABLO/N8x0: Note that you should choose the language with no period between the language and the iso code (eg. &amp;quot;en_CA ISO-8859-1&amp;quot;), and optionally, the utf-8 version, too (eg. &amp;quot;en_CA.UTF-8&amp;quot;).&lt;br /&gt;
:FREMANTLE/N900:  Choose the UTF-8 version.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q:&#039;&#039;&#039; Under Debian the time zone is not the same as under Maemo.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; In the Debian chroot terminal run&lt;br /&gt;
&lt;br /&gt;
 dpkg-reconfigure tzdata&lt;br /&gt;
&lt;br /&gt;
and select the time zone of your choice.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q:&#039;&#039;&#039; How do I find the amount of space left for applications?&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; From the prompt in Debian Chroot menu item:&lt;br /&gt;
&lt;br /&gt;
 df -h /&lt;br /&gt;
&lt;br /&gt;
Look under AVAIL.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q:&#039;&#039;&#039; I want to install more applications! How do I do that?&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; First, you have to update the repository lists. From the prompt in Debian Chroot menu item:&lt;br /&gt;
&lt;br /&gt;
 apt-get update&lt;br /&gt;
&lt;br /&gt;
:The image for the N900 has quite some free space for installing additional Debian packages.&lt;br /&gt;
&lt;br /&gt;
:For DIABLO/N8x0, you must get some space back! There&#039;s almost no extra room in the image file.&lt;br /&gt;
&lt;br /&gt;
 apt-get install localepurge; localepurge&lt;br /&gt;
&lt;br /&gt;
:This will get you at least 80MB back. You should probably do this first, before starting to install. Running out of space during an install in Debian is ugly.&lt;br /&gt;
&lt;br /&gt;
:Also, when downloading packages, remember to frequently use &amp;quot;apt-get clean&amp;quot; to clear out old downloaded packages. That will help with free space.&lt;br /&gt;
&lt;br /&gt;
:If you&#039;re comfortable with the command line, you can use the technique listed in this post to double your install space.&lt;br /&gt;
&lt;br /&gt;
:Even with all of these tricks, you&#039;ll still run out of room fairly quickly. You&#039;ll probably have to uninstall packages in order to add new ones.&lt;br /&gt;
&lt;br /&gt;
:More advanced users can put a minimal system into an empty image and build a custom set of apps using this post. The most advanced and best way: partition your SD card and put your Debian fs there.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q:&#039;&#039;&#039; What&#039;s this &amp;quot;Iceweasel&amp;quot;?&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; Iceweasel is the Debian name for Firefox. It&#039;s a long story, but in short, Mozilla and Debian had a philosophical disagreement that ended in Debian renaming Firefox to Iceweasel.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q:&#039;&#039;&#039; I would like to have a separate /home/user directory under Debian than under Maemo. Is that possible?&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; /sbin/qchroot script does mountings; one option is to not mount /home/user at all by commenting out the corresponding line in that script, which is&lt;br /&gt;
 mount /dev/mmcblk0p2 &amp;quot;$CHROOT/home&amp;quot;&lt;br /&gt;
for FREMANTLE/N900. Then /home/user/MyDocs will still get mounted, but you can keep a Debian home directory separately, in the chroot.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q:&#039;&#039;&#039; How is this different than the [http://trac.tspre.org/projects/nit-debian Deblet project]?&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; Easy Debian uses a fully installed Debian system to run applications inside of Maemo. The Deblet project helps you install a bootable Debian system from scratch; Deblet is mainly designed for booting to an alternate OS.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q:&#039;&#039;&#039; I already have Debian in a partition, or I&#039;m running Deblet. How can I use your package with my Debian?&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; Edit the /home/user/.chroot file to point to your Debian partition or image file. Easy Debian will do the rest.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; If you are using Deblet, delete the /home/user/.synchroot file before running Easy Debian for the first time, so your Deblet config files don&#039;t get overwritten. Remember that you&#039;ll need to make a user called &amp;quot;user&amp;quot; in Deblet (with the proper ID) for things to work correctly. Also note that your maemo home directory will be used by default. This can also be changed in the .chroot file.&lt;br /&gt;
&lt;br /&gt;
== Donations ==&lt;br /&gt;
&lt;br /&gt;
If you feel overwhelmed by gratitude towards [http://talk.maemo.org/member.php?u=10410 qole] for bringing a full-fledged Debian OS to your device, consider donating at [http://qole.org qole.org]. [DISCLAIMER: This entry was inserted by a grateful user, not qole himself.]&lt;br /&gt;
&lt;br /&gt;
[[Category:Users]]&lt;br /&gt;
[[Category:Power users]]&lt;/div&gt;</summary>
		<author><name>192.100.124.218</name></author>
	</entry>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=Bugs:Stock_answers&amp;diff=2173</id>
		<title>Bugs:Stock answers</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=Bugs:Stock_answers&amp;diff=2173"/>
		<updated>2010-04-23T10:22:23Z</updated>

		<summary type="html">&lt;p&gt;192.100.124.218: rewrite the CPU usage analysis instructions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A quick collection for anybody triaging bug reports in [https://bugs.maemo.org maemo.org Bugzilla]. These stock answers are meant to be copied and pasted to bug reports that could be more useful. Please keep the product specific ones alphabetically sorted as per the Products structure in Bugzilla, and feel free to edit/enhance! -[[User:Andre]]&lt;br /&gt;
&lt;br /&gt;
=General=&lt;br /&gt;
&lt;br /&gt;
==Too vague or a generally bad report==&lt;br /&gt;
&lt;br /&gt;
Hi there!&lt;br /&gt;
&lt;br /&gt;
Thanks for reporting this, but unfortunately this report isn&#039;t very useful because it doesn&#039;t describe the issue well. If you have time and can still reproduce the bug, please read https://bugs.maemo.org/page.cgi?id=bug-writing.html and add a more useful description to this bug.&lt;br /&gt;
&lt;br /&gt;
==Version number==&lt;br /&gt;
&lt;br /&gt;
Hi there!&lt;br /&gt;
&lt;br /&gt;
Thanks for reporting this. Can you please tell us exactly which version you are using (Control Panel &amp;gt; General &amp;gt; About product)? Please try to make sure that you are using the latest available release (2.2009.51-1 as of this writing). An update should be available through the Application Manager if you aren&#039;t up to date.&lt;br /&gt;
&lt;br /&gt;
==Software hangs with 100% CPU==&lt;br /&gt;
&lt;br /&gt;
To find out what is causing the issue, first check &amp;quot;top&amp;quot; (preferably from SSH console to avoid X etc CPU usage happening when doing this from Xterm) to see which process/es are using most CPU.  Provide this information in a corresponding bug with a detailed description on how to trigger the issue.&lt;br /&gt;
&lt;br /&gt;
If others aren&#039;t able to reproduce the issue, more information is need.  Depending on what is using the CPU, output from different tools may need to be added to the bug:&lt;br /&gt;
* If D-BUS server or Tracker is using noticeable amount of CPU, run &amp;quot;dbus-monitor --session&amp;quot; and &amp;quot;dbus-monitor --system&amp;quot; commands.&lt;br /&gt;
* If X server is using noticeable amount of CPU, install &amp;quot;xresponse&amp;quot;[1] and run &amp;quot;xresponse -w 0 -a &#039;*&#039;&amp;quot; (this must be done from SSH console) to see which applications are updating their windows.&lt;br /&gt;
* Otherwise install &amp;quot;strace&amp;quot;[1] and trace the syscalls from the CPU consuming process with &amp;quot;strace -f -p &amp;lt;PID&amp;gt;&amp;quot;.&lt;br /&gt;
* If even strace isn&#039;t telling enough, install &amp;quot;oprofile&amp;quot;[1] and provide Oprofile data on the issue.&lt;br /&gt;
&lt;br /&gt;
[1] You get these tools from the SDK tools repository, see: http://maemo.org/development/tools/ (Diablo) / http://wiki.maemo.org/Documentation/devtools/maemo5 (Fremantle).&lt;br /&gt;
&lt;br /&gt;
==Need a syslog==&lt;br /&gt;
 Can you please provide a syslog? See http://wiki.maemo.org/Documentation/devtools/maemo5/syslog and http://wiki.maemo.org/Documentation/devtools/maemo5#Installation for more information.&lt;br /&gt;
 If you are not used to Linux, after creating the syslog file you can copy the syslog file to those folders that are visible in the Maemo File Manager by:&lt;br /&gt;
   * Starting X Terminal&lt;br /&gt;
   * cp /var/log/syslog /home/user/MyDocs/.documents/&lt;br /&gt;
 After that you can find the file in the Maemo File Manager by going to Nokia N900 &amp;gt; Documents.&lt;br /&gt;
&lt;br /&gt;
==Need a crash coredump==&lt;br /&gt;
 Can you please install Crash Reporter from the SDK Tools repository in order to send coredumps directly to Nokia?&lt;br /&gt;
 See http://wiki.maemo.org/Extras-testing#Tools_for_testers for a how-to.&lt;br /&gt;
 If you are offered to add a comment for sending the coredump file, please mention this bug number (like &amp;quot;see bugs.maemo.org bug number xxxx&amp;quot;).&lt;br /&gt;
 Also, a filename will be displayed after uploading the coredump. Please add the name of that file here in the bug report.&lt;br /&gt;
&lt;br /&gt;
==Need a crash stacktrace (for Notes)==&lt;br /&gt;
Is there error message when it crashes?&lt;br /&gt;
&lt;br /&gt;
Can you please run Notes in a terminal window (Applications Menu -&amp;gt; Utilities &amp;gt; X Terminal, then enter the command &amp;quot;maemo-summoner /usr/bin/osso_notes.launch &amp;gt; log 2&amp;gt;&amp;amp;1&amp;quot; and hit the Enter key) and attach the resulting &amp;quot;log&amp;quot; file here after it has crashed?&lt;br /&gt;
&lt;br /&gt;
Having a core dump could be even more useful. It requires installing the &amp;quot;sp-rich-core&amp;quot; package from the tools repository[1] and creating a &amp;quot;core-dumps&amp;quot; directory to the memory card with at least few megabytes of free space. You can get core dumps also without the rich-core package, but they are much less useful (and without it pre-installed applications core dumps are then named maemo-launcher-*).&lt;br /&gt;
&lt;br /&gt;
[1] http://maemo.org/development/tools/ (Diablo) / http://wiki.maemo.org/Documentation/devtools/maemo5 (Fremantle)&lt;br /&gt;
(also features information about valgrind and strace)&lt;br /&gt;
&lt;br /&gt;
==Old Software version==&lt;br /&gt;
Hi there!&lt;br /&gt;
&lt;br /&gt;
Thanks for reporting this. Can you please test this again running the latest available release? The latest release should be available through the Application Manager.&lt;br /&gt;
&lt;br /&gt;
==Memory issues==&lt;br /&gt;
Please install &#039;&#039;sp-memusage&#039;&#039; package from the tools repository according to the instructions here: http://wiki.maemo.org/Documentation/devtools/maemo5.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;mem-smaps-private&#039;&#039; script from that package can be used to get most accurate values on process memory usage.  &#039;&#039;mem-cpu-monitor&#039;&#039; tool can be used to track system and specified processes memory and CPU usage changes (most relevant values).&lt;br /&gt;
&lt;br /&gt;
To track changes in usage of all device resources (not just memory) over longer period of time, install the &#039;&#039;sp-endurance&#039;&#039; package.  The data its &#039;&#039;save-incremental-endurance-stats&#039;&#039; script stores, can be post-processed to a HTML report (with some bar graphs) using the &#039;&#039;parse-endurance-measurements&#039;&#039; script from the sp-endurance-postproc package.&lt;br /&gt;
&lt;br /&gt;
Then attach the information provided by these tools to the corresponding bug.&lt;br /&gt;
&lt;br /&gt;
For advanced users, see http://wiki.maemo.org/Using_Valgrind_and_gdb_in_Scratchbox on how to analyze memory leaks using the x86 Scratchbox environment.&lt;br /&gt;
&lt;br /&gt;
==Duplicate==&lt;br /&gt;
Thanks for reporting this.&lt;br /&gt;
This particular issue has already been reported in our bug tracking system, but please feel free to report any further bugs you find. Also feel encouraged to vote for the original bug report if interested.&lt;br /&gt;
&lt;br /&gt;
Please feel free to search for existing reports first to avoid filing duplicates.&lt;br /&gt;
&lt;br /&gt;
==One report for each bug==&lt;br /&gt;
Hi there!&lt;br /&gt;
&lt;br /&gt;
Please remember to file a new report for each issue. Having only one issue per bug makes it much easier to track problems and makes it easier for them to be fixed.&lt;br /&gt;
&lt;br /&gt;
Thanks!&lt;br /&gt;
&lt;br /&gt;
==Incomplete (after moreinfo keyword set)==&lt;br /&gt;
Hi there!&lt;br /&gt;
&lt;br /&gt;
Unfortunately, without more information, as requested in one of the last comments, we are unable to do anything more about this report. Until more information is available, I&#039;m resolving the report as INVALID.&lt;br /&gt;
&lt;br /&gt;
Please feel free to reopen this bug if you can provide the information asked for, or if you can still reproduce this.&lt;br /&gt;
&lt;br /&gt;
Thanks!&lt;br /&gt;
&lt;br /&gt;
==Become root==&lt;br /&gt;
To do this, you have to become root first. Please see http://wiki.maemo.org/Root_access for instructions.&lt;br /&gt;
&lt;br /&gt;
==Untidy patch provided==&lt;br /&gt;
Thanks for the patch. Can you please clean it up and reattach it? See http://wiki.maemo.org/The_Good_Patch for more information.&lt;br /&gt;
&lt;br /&gt;
=Potential Product specific answers=&lt;br /&gt;
&lt;br /&gt;
==Browser==&lt;br /&gt;
===Maemo4 only===&lt;br /&gt;
* Can you please create a browser logfile? Enter about:config?prefname=browser.consolelogfile&amp;amp;prefvalue=/tmp/browserlog in the browser location bar, set that preference, reproduce the browser problem and post the content of the file /tmp/browserlog here (you can for example start the terminal application, run &amp;quot;more /tmp/browserlog&amp;quot; and copy the output to this bug report).&lt;br /&gt;
&lt;br /&gt;
==Calendar==&lt;br /&gt;
&lt;br /&gt;
==Chat &amp;amp; Call &amp;amp; SMS==&lt;br /&gt;
&lt;br /&gt;
===Chat===&lt;br /&gt;
Please see http://telepathy.freedesktop.org/wiki/Debugging for information how to debug.&lt;br /&gt;
&lt;br /&gt;
===Google Talk / XMPP===&lt;br /&gt;
 To get logs from telepathy-gabble (the XMPP connection manager) you need to open X-Terminal and then run the following commands (one per line):&lt;br /&gt;
 export GABBLE_PERSIST=1&lt;br /&gt;
 export GABBLE_DEBUG=all&lt;br /&gt;
 export LM_DEBUB=net&lt;br /&gt;
 killall telepathy-gabble; /usr/lib/telepathy/telepathy-gabble &amp;gt;gabble.log 2&amp;gt;&amp;amp;1 &amp;amp;&lt;br /&gt;
&lt;br /&gt;
===SIP/rtcom/Internet Call===&lt;br /&gt;
* Do you use NAT?&lt;br /&gt;
* If it&#039;s a SIP account, what are the account parameters? Is transport set to UDP in the Advanced settings of your SIP account?&lt;br /&gt;
* A packet capture could help to clarify what causes the problem. tcpdump can be used on the Nokia device (Wireshark/Ethereal could be used from other hosts). Please take a look at http://maemo.org/development/documentation/man_pages/tcpdump.html for more information.&lt;br /&gt;
**Short cut: In most cases this command executed as root should give enough information (after running it you can attach the file sip.pcap to the bug).&lt;br /&gt;
For WiFi/Wlan:&lt;br /&gt;
 tcpdump -n -w sip.pcap -s 1500 -i wlan0&lt;br /&gt;
For mobile data connections:&lt;br /&gt;
 tcpdump -n -w sip.pcap -s 1500 -i gprs0&lt;br /&gt;
* Could you also provide a syslog? To do so, start a terminal window. Now export TPORT_LOG=1 and export SOFIASIP_DEBUG=all in the environment (e.g. by editing /etc/osso-af-init/af-defines.sh) for telepathy-sofiasip. Exporting SOFIASIP_PERSIST=1 also prevents telepathy-sofiasip from exiting due to no connections being requested. Now SIP traffic logs get dumped into syslog. Also see http://maemo.org/development/tools/doc/diablo/syslog/ for Maemo4 or http://wiki.maemo.org/Documentation/devtools/maemo5/syslog for Maemo5.&lt;br /&gt;
&lt;br /&gt;
==Connectivity==&lt;br /&gt;
&lt;br /&gt;
===Bluetooth and car sets (only in Fremantle)===&lt;br /&gt;
There are two different logs that would be useful. The first is bluetoothd debug logs and the second is a HCI-level trace.&lt;br /&gt;
&lt;br /&gt;
For the first you&#039;d need to:&lt;br /&gt;
 1. install the klogd and sysklogd debian packages (and probably reboot the device afterwards)&lt;br /&gt;
 2. after booting and before doing anything with bluetooth do &amp;quot;killall -USR2 bluetoothd&amp;quot; (as root) to enable bluetoothd debug logs&lt;br /&gt;
 3. after reproducing the issue &amp;quot;grep bluetoothd /var/log/syslog &amp;gt; bluetoothd-log.txt&amp;quot; and attach the file here.&lt;br /&gt;
&lt;br /&gt;
For a HCI trace do:&lt;br /&gt;
 1. install the bluez-hcidump debian package&lt;br /&gt;
 2. (as root) run &amp;quot;hcidump -B -w hci-trace.log while reproducing the issue&lt;br /&gt;
 3. attach the hci-trace.log (or whatever filename you chose) here&lt;br /&gt;
&lt;br /&gt;
See http://wiki.maemo.org/Documentation/devtools/maemo5 for more information on how to install the requested packages.&lt;br /&gt;
&lt;br /&gt;
===Bluetooth DUN issues (Diablo only)===&lt;br /&gt;
Is there any error message displayed?&lt;br /&gt;
Could you provide a syslog and a hcidump (package &amp;quot;bluez-hcidump&amp;quot;, also see http://maemo.org/development/tools/doc/diablo/bluez-hcidump/ , manual download at http://repository.maemo.org/pool/diablo/free/b/bluez-hcidump/ )?&lt;br /&gt;
For general information: http://www.cellular-store.com/categorybluetooth.aspx provides a list of Bluetooth Compatible Cell Phones Models.&lt;br /&gt;
&lt;br /&gt;
===Bluetooth DUN issues (Fremantle only)===&lt;br /&gt;
This is not officially supported - see http://wiki.maemo.org/Fremantle_Unsupported_Bluetooth_profiles for more information.&lt;br /&gt;
&lt;br /&gt;
===Bluetooth OBEX PUSH issues===&lt;br /&gt;
If you have time it would be useful to also get an HCI log of the issue.&lt;br /&gt;
&lt;br /&gt;
This is done by installing the hcidump package and running &amp;quot;hcidump -XVt&amp;quot; as root when performing the transfer. Please start hcidump before making the Bluetooth connection to get proper parsing of the OBEX packets.&lt;br /&gt;
&lt;br /&gt;
To enable obexd and bluetoothd syslog output execute&lt;br /&gt;
&amp;quot;killall -USR2 obexd&amp;quot; and &amp;quot;killall -USR2 bluetoothd&amp;quot; (as root).&lt;br /&gt;
&lt;br /&gt;
===Bluetooth OBEX (File transfer) issues (Maemo4 only)===&lt;br /&gt;
Are you sure that the phone supports OBEX File Transfer and not e.g. only OBEX Object Push? Can you e.g. discover it by doing &amp;quot;sdptool search --bdaddr &amp;lt;bt address of phone&amp;gt; FTP&amp;quot;?&lt;br /&gt;
&lt;br /&gt;
===GPRS/3G issues===&lt;br /&gt;
* Do you see this with any other operator&#039;s SIM?&lt;br /&gt;
* Do you see this if you force the device to 2G? (Phone settings - you need to&lt;br /&gt;
wait until the dialog lets you to save the setting)&lt;br /&gt;
* Do you see this when tethering (Bluetooth DUN or USB cable) from a laptop, with a similar network usage pattern (web browsing, etc.)?&lt;br /&gt;
* Have you contacted the operator in question, whether they have any known&lt;br /&gt;
issues or any restrictions in place? (Like, traffic shaping of some sort)&lt;br /&gt;
&lt;br /&gt;
====Cannot access any webpage (DNS issue from bug 8339)====&lt;br /&gt;
 Is the H3G connection DNS server setting (Settings -&amp;gt; Internet connections -&amp;gt; Connections -&amp;gt; H3G -&amp;gt; Edit -&amp;gt; Next -&amp;gt; Next -&amp;gt; Advanced -&amp;gt; IP Addresses) correct?&lt;br /&gt;
 Also, try the following:&lt;br /&gt;
 1. Establish cellular IP connection.&lt;br /&gt;
 2. Open terminal.&lt;br /&gt;
 3. Run &amp;quot;cat /var/run/resolv.conf.gprs&amp;quot; and note the nameserver(s) listed there.&lt;br /&gt;
 4. Run &amp;quot;nslookup www.google.it XXX.XXX.XXX.XXX&amp;quot; where XXX.XXX.XXX.XXX is one of the nameservers from step 3.&lt;br /&gt;
 Does it resolve successfully when using the provider&#039;s servers directly?&lt;br /&gt;
&lt;br /&gt;
===Wifi/WLAN===&lt;br /&gt;
&lt;br /&gt;
====Connection problems====&lt;br /&gt;
 Could you please post the output of the command &amp;quot;dmesg&amp;quot; (in X Terminal) immediately after a connection failure?&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
&lt;br /&gt;
Does running &amp;quot;/etc/init.d/networking restart&amp;quot; update the list of networks?&lt;br /&gt;
&lt;br /&gt;
Asking for more information:&lt;br /&gt;
* What router do you have?&lt;br /&gt;
** Make and model?&lt;br /&gt;
** Firmware version?&lt;br /&gt;
** Hardware revision?&lt;br /&gt;
** What are the encryption settings? (open/WEP/WPA/WPA2)&lt;br /&gt;
* How far are you from your router?&lt;br /&gt;
* How many WiFi access points do you have?&lt;br /&gt;
&lt;br /&gt;
PSM problems:&lt;br /&gt;
* Does setting Power Saving to &amp;quot;Off&amp;quot; help? (Settings &amp;gt; Internet Connections &amp;gt; Connections &amp;gt; Edit &amp;gt; Next &amp;gt; Next &amp;gt; Next &amp;gt; Advanced &amp;gt; Other &amp;gt; Power saving)&lt;br /&gt;
* Router settings:&lt;br /&gt;
** What&#039;s the beacon interval?&lt;br /&gt;
** What&#039;s the DTIM period?&lt;br /&gt;
&lt;br /&gt;
==Contacts==&lt;br /&gt;
&lt;br /&gt;
==Core==&lt;br /&gt;
&lt;br /&gt;
===Busybox===&lt;br /&gt;
Do you have a 3rd party version of Busybox installed?&lt;br /&gt;
&lt;br /&gt;
===Charger issues===&lt;br /&gt;
 Are you using the original Nokia charger or something else?&lt;br /&gt;
 If you have another compatible charger, does the problem occur also with that? &lt;br /&gt;
 Can you please start X Terminal and provide the output of the commands:&lt;br /&gt;
 * cat /sys/devices/platform/musb_hdrc/mode &lt;br /&gt;
 * cat /sys/devices/platform/musb_hdrc/charger&lt;br /&gt;
 Can you please provide a syslog as described on&lt;br /&gt;
  http://wiki.maemo.org/Documentation/devtools/maemo5/syslog ?&lt;br /&gt;
&lt;br /&gt;
===Power management===&lt;br /&gt;
https://maemo.org/community/wiki/poweranddevicemanagement/&lt;br /&gt;
&lt;br /&gt;
Battery drain can have many potential reasons:&lt;br /&gt;
* bad 3rd party applet/application not idling when not used&lt;br /&gt;
* buggy WLAN access point (not implementing power management properly)&lt;br /&gt;
** setting device to offline mode when not in use helps&lt;br /&gt;
* Keeping device in RD mode&lt;br /&gt;
* Corrupted memory card&lt;br /&gt;
* Metalayer crawler related bugs (only currently known is about gstreamer/WMA)&lt;br /&gt;
* etc.&lt;br /&gt;
&lt;br /&gt;
===Reboot related===&lt;br /&gt;
http://wiki.maemo.org/Troubleshooting_boot_issues&lt;br /&gt;
&lt;br /&gt;
==Data==&lt;br /&gt;
&lt;br /&gt;
===Meta Tracker===&lt;br /&gt;
Please provide the output of &amp;quot;tracker-stats&amp;quot; in X Terminal. It lists the number of documents by type on your device.&lt;br /&gt;
&lt;br /&gt;
Please provide a log by setting the config verbosity (in $HOME/.config/tracker/*.cfg) or setting the verbosity when running commands with -v {0|1|2|3}&lt;br /&gt;
The logs are stored in $HOME/.local/share/tracker/ .&lt;br /&gt;
&lt;br /&gt;
==Desktop platform==&lt;br /&gt;
&lt;br /&gt;
===Application Menu===&lt;br /&gt;
Please check http://wiki.maemo.org/Troubleshooting_menu_issues and report back.&lt;br /&gt;
&lt;br /&gt;
===Input Methods===&lt;br /&gt;
Virtual keyboard: When this happens please start X Terminal and provide the output of&lt;br /&gt;
 gconftool-2 -g /system/osso/af/slide-open&lt;br /&gt;
&lt;br /&gt;
==Desktop Widgets==&lt;br /&gt;
===Widgets/Applets (debugging)===&lt;br /&gt;
The easiest way to debug your applets is to run the hildon-desktop on scratchbox currently: &lt;br /&gt;
&amp;lt;code&amp;gt;run-standalone.sh /usr/bin/hildon-desktop&amp;lt;/code&amp;gt;&lt;br /&gt;
From [[Terminal|console]] you can see then the printouts. Debugging on the device is a bit harder.&lt;br /&gt;
For Python applets you might want to check pyphantom.&lt;br /&gt;
&lt;br /&gt;
With Valgrind on x86-scratchbox one can debug applet problems (e.g. memory leaks):&lt;br /&gt;
  af-sb-init.sh start&lt;br /&gt;
&amp;lt;wait until desktop starts&amp;gt;&lt;br /&gt;
  kill $(pidof maemo_af_desktop)&lt;br /&gt;
  export G_SLICE=&amp;quot;always-malloc&amp;quot;&lt;br /&gt;
  run-standalone.sh valgrind --tool=memcheck --num-callers=60 --leak-check=yes /usr/bin/maemo-summoner /usr/bin/maemo_af_desktop.launch&lt;br /&gt;
&lt;br /&gt;
===Restarting the Desktop (in Fremantle)===&lt;br /&gt;
Run &amp;quot;killall hildon-home&amp;quot; if for example the device becomes unresponsive (high memory usage) and you suspect some Desktop widgets to be the root cause of this.&lt;br /&gt;
&lt;br /&gt;
==Development Platform==&lt;br /&gt;
&lt;br /&gt;
==Email==&lt;br /&gt;
Does starting&lt;br /&gt;
  /usr/bin/maemo-summoner /usr/bin/modest.launch -s (in Maemo5) or&lt;br /&gt;
  /usr/bin/maemo-summoner /usr/bin/modest.launch showui (in Maemo4)&lt;br /&gt;
provide some output?&lt;br /&gt;
===Debugging the connection to the mail server===&lt;br /&gt;
Can you please start an X Terminal window and enter&lt;br /&gt;
    export &amp;quot;CAMEL_DEBUG&amp;quot;=&amp;quot;all&amp;quot;&lt;br /&gt;
to enable the debug mode of the mail library, and after that&lt;br /&gt;
* Diablo:&lt;br /&gt;
    /usr/bin/maemo-summoner /usr/bin/modest.launch showui &amp;gt; /home/user/MyDocs/.documents/log 2&amp;gt;&amp;amp;1&lt;br /&gt;
&lt;br /&gt;
* Fremantle:&lt;br /&gt;
    /usr/bin/maemo-summoner /usr/bin/modest.launch -s &amp;gt; /home/user/MyDocs/.documents/log 2&amp;gt;&amp;amp;1&lt;br /&gt;
to start the email application. Then try to connect to the mailserver.&lt;br /&gt;
Attach the logfile named &amp;quot;log&amp;quot; here which will be in your Home directory (please check for confidential data before attaching).&lt;br /&gt;
&lt;br /&gt;
===Modest getting stuck (strace)===&lt;br /&gt;
Is Modest using any CPU?&lt;br /&gt;
What is the output if you strace it?&lt;br /&gt;
  strace -p $(pidof modest|cut -d&#039; &#039; -f1)&lt;br /&gt;
See http://maemo.org/development/tools/ and http://maemo.org/development/tools/doc/diablo/strace/ (Diablo) or http://wiki.maemo.org/Documentation/devtools/maemo5 and http://wiki.maemo.org/Documentation/devtools/maemo5/strace (Fremantle) for more information.&lt;br /&gt;
&lt;br /&gt;
===Modest not exiting but eating CPU===&lt;br /&gt;
I assume you waited for 10 minutes to make sure that this wasn&#039;t any time taking resource freeing? Does this also happen if you are not using SSL?&lt;br /&gt;
A packet capture could help to clarify what causes the problem. tcpdump can be used on the Nokia device (Wireshark/Ethereal could be used from another host. Please take a look at http://maemo.org/development/documentation/man_pages/tcpdump.html for more information. &lt;br /&gt;
Can you kill the hanging process with signal=11 to provide us with a core dump?&lt;br /&gt;
&lt;br /&gt;
==Flasher==&lt;br /&gt;
===Windows===&lt;br /&gt;
What are current versions (Control Panel/Add or Remove Programs) of WinFlasher+ (Nokia Internet Tablet Update Wizard) and Nokia Connectivity Cable Driver? What OS (XP, Windows 2000)? What is the exact error message you get? Is .NET 2.0 framework installed (Control Panel -&amp;gt; Add or Remove Programs)?&lt;br /&gt;
&lt;br /&gt;
==Games==&lt;br /&gt;
&lt;br /&gt;
==Images and Camera==&lt;br /&gt;
&lt;br /&gt;
==Location==&lt;br /&gt;
&lt;br /&gt;
==Map==&lt;br /&gt;
&lt;br /&gt;
==Media player==&lt;br /&gt;
&lt;br /&gt;
==Multimedia==&lt;br /&gt;
&lt;br /&gt;
==Office Viewers==&lt;br /&gt;
&lt;br /&gt;
==RSS feed reader==&lt;br /&gt;
* Can you please attach the contents of your device &amp;quot;/home/user/.osso_rss_feed_reader/&amp;quot; directory.&lt;br /&gt;
* Can you please install &amp;quot;strace&amp;quot; according to instructions here at http://maemo.org/development/tools/ (Diablo) / http://wiki.maemo.org/Documentation/devtools/maemo5 (Fremantle). Check with that what RSS feed reader does when/after it gets stuck and provide the output here: &amp;quot;strace -p $(pidof osso_rss_feed_reader|cut -d&#039; &#039; -f1)&amp;quot; if it is already running, or &amp;quot;strace -f maemo-summoner /usr/bin/osso_rss_feed_reader.launch&amp;quot; to start it in strace.&lt;br /&gt;
&lt;br /&gt;
==Settings and Maintenance==&lt;br /&gt;
&lt;br /&gt;
===Application manager / Installing===&lt;br /&gt;
Hopefully some information will be in &amp;quot;Tools &amp;gt; Log&amp;quot; in the Application manager.&lt;br /&gt;
If you are familiar with apt you can also get a detailed error message by trying to install any package using &amp;quot;apt-get install&amp;quot; in the terminal window.&lt;br /&gt;
&lt;br /&gt;
==Sharing==&lt;br /&gt;
&lt;br /&gt;
==Statusbar Widgets==&lt;br /&gt;
&lt;br /&gt;
==Synchronization==&lt;br /&gt;
&lt;br /&gt;
===Mail for Exchange===&lt;br /&gt;
 Can you please:&lt;br /&gt;
 1) Check the &amp;quot;Known issues&amp;quot; section in http://wiki.maemo.org/Mail_for_Exchange&lt;br /&gt;
 If this does not help:&lt;br /&gt;
 2) Install syslog (see http://wiki.maemo.org/Documentation/devtools/maemo5/syslog ) and reboot&lt;br /&gt;
 3) Open X Terminal&lt;br /&gt;
 [optional steps begin]&lt;br /&gt;
 3A. Enter &amp;quot;sudo gainroot&amp;quot; (to do that make sure that you have installed &amp;quot;rootfs&amp;quot; from the Application Manager)&lt;br /&gt;
 3B. cat /dev/null &amp;gt; /var/log/syslog&lt;br /&gt;
 [optional steps end]&lt;br /&gt;
 4) Provide the output the following commands:&lt;br /&gt;
    gconftool-2 -s --type=int /apps/activesync/AsDaemon/Syslog/MinLogLevel 0&lt;br /&gt;
    gconftool-2 -s --type=int /apps/activesync/modest/Syslog/MinLogLevel 0&lt;br /&gt;
    gconftool-2 -s --type=int /apps/activesync/AsProvider/Syslog/MinLogLevel 0&lt;br /&gt;
    gconftool-2 -s --type=int /apps/activesync/AsBackup/Syslog/MinLogLevel 0&lt;br /&gt;
    gconftool-2 -s --type=int /apps/activesync/asapplet/Syslog/MinLogLevel 0&lt;br /&gt;
    gconftool-2 -s --type=int /apps/activesync/AsStatusApplet/Syslog/MinLogLevel 0&lt;br /&gt;
 5) Attach the file /var/log/syslog from the device to this bug (if needed, copy it first to the section that is visible in the File Manager: cp /var/log/syslog /home/user/MyDocs/.documents/  )&lt;br /&gt;
&lt;br /&gt;
==System Analysis==&lt;br /&gt;
&lt;br /&gt;
==System software==&lt;br /&gt;
===MMC/SD card related (Product &amp;quot;System software/mmc-and-usb&amp;quot;)===&lt;br /&gt;
Has this happened with any other card? What is your card manufacturer, model and size?&lt;br /&gt;
&lt;br /&gt;
==Telephony==&lt;br /&gt;
&lt;br /&gt;
==Translations==&lt;br /&gt;
&lt;br /&gt;
==UI Specification==&lt;br /&gt;
&lt;br /&gt;
==User guide &amp;amp; Help content==&lt;br /&gt;
&lt;br /&gt;
==Utilities==&lt;br /&gt;
&lt;br /&gt;
==X-Graveyard (discontinued==&lt;br /&gt;
===Internet Tablet Video Converter===&lt;br /&gt;
AVI is just a container format, what matters is the codec. Can you please find out which codec your camera uses? You might want to check the camera manual. Thanks!&lt;br /&gt;
Are there any error messages when the crash happens?&lt;br /&gt;
Did the application install cleanly with no problems? Could you try to uninstall and reinstall again from a clean download please?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Community]]&lt;br /&gt;
[[Category:maemo.org]]&lt;br /&gt;
[[Category:Bugzilla]]&lt;br /&gt;
[[Category:Quality Assurance]]&lt;/div&gt;</summary>
		<author><name>192.100.124.218</name></author>
	</entry>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=Documentation/devtools/maemo5/syslog&amp;diff=8447</id>
		<title>Documentation/devtools/maemo5/syslog</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=Documentation/devtools/maemo5/syslog&amp;diff=8447"/>
		<updated>2010-04-22T15:11:09Z</updated>

		<summary type="html">&lt;p&gt;192.100.124.218: /* Usage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Devtools}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
The syslogd daemon is responsible for providing logging of messages&lt;br /&gt;
received from programs and facilities on the local host as well as&lt;br /&gt;
from remote hosts.&lt;br /&gt;
&lt;br /&gt;
The klogd daemon listens to kernel message sources and is responsible&lt;br /&gt;
for prioritizing and processing operating system messages.  The klogd&lt;br /&gt;
daemon can run as a client of syslogd or optionally as a standalone&lt;br /&gt;
program.&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;source&#039;&#039;&#039;: sysklogd&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;binary&#039;&#039;&#039;: sysklogd, klogd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To install these, run:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo gainroot&lt;br /&gt;
apt-get install sysklogd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
To start the klogd and syslog daemons:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# start sysklogd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that with time syslog can fill the root filesystem completely.  When that&#039;s done by a root process like syslog, it can become so full that the device fails to boot. Several days or even couple of weeks shouldn&#039;t be a problem, but it depends on the device usage. So, &#039;&#039;&#039;after you don&#039;t anymore need syslog, remove it and &amp;lt;tt&amp;gt;rm /var/log/syslog*&amp;lt;/tt&amp;gt;.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
[http://maemo.org/development/documentation/man_pages/sysklogd/ sysklogd man page]&lt;br /&gt;
&lt;br /&gt;
[http://maemo.org/development/documentation/man_pages/klogd/ klogd man page]&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
[[Category:Fremantle]]&lt;/div&gt;</summary>
		<author><name>192.100.124.218</name></author>
	</entry>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=User:Tuminoid&amp;diff=50641</id>
		<title>User:Tuminoid</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=User:Tuminoid&amp;diff=50641"/>
		<updated>2010-04-13T05:34:19Z</updated>

		<summary type="html">&lt;p&gt;192.100.124.218: pr1.2 disclaimer&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Who am I?=&lt;br /&gt;
&lt;br /&gt;
Known in web as [http://www.tumi.fi/ Tumi] or [http://maemo.org/profile/view/tuminoid/ Tuminoid]. In the real world I&#039;m known as [http://www.tuomotanskanen.fi/ Tuomo Tanskanen], nice to meet you!&lt;br /&gt;
&lt;br /&gt;
Employed by: [http://www.nomovok.com/ Nomovok Ltd] as Team Manager &amp;amp; Sr. Software Developer&lt;br /&gt;
&lt;br /&gt;
Visit me: [http://www.tumi.fi/ Home], [http://maemo.org/profile/view/tuminoid/ Maemo.org], [https://garage.maemo.org/users/tuminoid/ Garage], [http://www.linkedin.com/in/tuomotanskanen LinkedIn], [http://www.facebook.com/tuomo.tanskanen Facebook], [http://stackoverflow.com/users/40657/tuminoid StackOverflow], [http://meego.com/users/tumi MeeGo]&lt;br /&gt;
&lt;br /&gt;
=Maemo Projects=&lt;br /&gt;
My Maemo projects residing at Garage: &lt;br /&gt;
&lt;br /&gt;
==CPU/Mem Applet==&lt;br /&gt;
&lt;br /&gt;
CPU/Mem Applet, aka cpumem-applet, is a strip down of popular app load-applet by Jakub Paveled. Load-applet shows your the cpu/mem load as well, but also includes large, bulky and non-working screencapture and screenshot features. It was requested by many that CPU/Mem Load feature packaged alone and Screencasting would be another one, but it never happened by Jakub. So, I made a fork of Load applet and create CPU/Mem Applet, which is tiny (10kB) implementation of the most useful feature.&lt;br /&gt;
&lt;br /&gt;
[http://maemo.org/downloads/product/Maemo5/cpumem-applet/ CPU/Mem Applet @ Extras]&lt;br /&gt;
&lt;br /&gt;
[https://garage.maemo.org/projects/cpumem-applet/ CPU/Mem Applet @ Garage]&lt;br /&gt;
&lt;br /&gt;
[http://maemo.org/packages/view/cpumem-applet/ cpumem-applet @ Package interface]&lt;br /&gt;
&lt;br /&gt;
==Cellular Modem Control Buttons==&lt;br /&gt;
&lt;br /&gt;
Cellular Modem Control Buttons, aka cell-modem-ui, is a toggle button interface residing in powerkeymenu allowing you to disable the cellular modem in your N900. To save battery and to allow you using Wifi connectivity but no cellular in certain places (hospitals, planes).&lt;br /&gt;
&lt;br /&gt;
Currently in its third release to Extras, version 0.5-1 introduced full translation of application UI PLUS translated descriptions for the package, so you can find information about the app in AppMgr &#039;&#039;in your own language&#039;&#039;!&lt;br /&gt;
&lt;br /&gt;
[http://maemo.org/downloads/product/Maemo5/cell-modem-ui/ Cellular Modem Control Buttons @ Extras]&lt;br /&gt;
&lt;br /&gt;
[https://garage.maemo.org/projects/cell-modem-ui/ Cellular Modem Control buttons @ Garage]&lt;br /&gt;
&lt;br /&gt;
[http://maemo.org/packages/view/cell-modem-ui/ cell-modem-ui @ Package interface]&lt;br /&gt;
&lt;br /&gt;
[http://www.transifex.net/projects/p/cell-modem-control/ Cellular Modem Control translation project @ Transifex.net]&lt;br /&gt;
&lt;br /&gt;
==Now Playing Notifications==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;In development - beta quality&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Displays notifications similar to &amp;quot;new email&amp;quot; messages when currently playing song changes. See more information in Garage and/or Talk thread.&lt;br /&gt;
&lt;br /&gt;
[https://garage.maemo.org/projects/nowplayingd/ Now Playing Notifications @ Garage], see [http://talk.maemo.org/showthread.php?p=548242#post548242 &amp;quot;brainstorm&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
[http://maemo.org/packages/view/nowplayingd/ nowplayingd @ Package Interface]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Development has been delayed due PR1.2 issues&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Custom Powerkeymenu==&lt;br /&gt;
&lt;br /&gt;
My newest, pre-alpha stage project that will allow you to customize powerkeymenu.&lt;br /&gt;
&lt;br /&gt;
[https://garage.maemo.org/projects/custom-pwkmenu/ Custom Powerkeymenu @ Garage]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=Events=&lt;br /&gt;
&lt;br /&gt;
==MobileDevCamp Helsinki 2010==&lt;br /&gt;
I attended [http://mobiledevcamp.fi/ MobileDevCamp 2010] Feb 27th 2010 at Arcada, Helsinki, and had fun! Made some nice contacts and heard a lot of nice talks from folks by [http://www.forum.nokia.com Forum Nokia] / [http://mobiledevcamp.fi/speakers#SamiViitanen Sami Viitanen], [http://www.microsoft.fi Microsoft] / [http://mobiledevcamp.fi/speakers#Vesku Vesku Paananen] and [http://labs.ericsson.com/ Ericsson Labs] / http://mobiledevcamp.fi/speakers#Eriksson Vladimir Katardiev]. All those guys have an excellent taste of humour and self-irony, kudos to all!&lt;br /&gt;
&lt;br /&gt;
Definitely gonna attend the event next year too, maybe I&#039;d have time to attend the 48h coding competition as well and take one of the prize-phones home with me!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TechDays Helsinki 2010==&lt;br /&gt;
&lt;br /&gt;
I&#039;ll be attending [http://www.microsoft.com/finland/techdays/techdays2010/default.htm TechDays Helsinki 2010] at Messukeskus, Helsinki at 9-10.3.2010, as I won a ticket to there from MobileDevCamp!&lt;br /&gt;
&lt;br /&gt;
Give me a holler if you&#039;ll be there too!&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=Job offers=&lt;br /&gt;
&lt;br /&gt;
==Jobs at Nomovok Ltd==&lt;br /&gt;
&lt;br /&gt;
If you need more details about a position, please don&#039;t hesitate to contact me.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Linux Kernel Developer&#039;&#039;&#039; - urgent! The person can be located anywhere in the world, although Helsinki/Finland area is preferred. We can hire you directly to our staff, or even subcontract you if you have a company, or hire you as a freelancer. &#039;&#039;Offer expires at the end of March 2010.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Linux Developer&#039;&#039;&#039; - good guys are always wanted! Send an open application to Nomovok, more details from me. &#039;&#039;This offer does not expire.&#039;&#039;&lt;/div&gt;</summary>
		<author><name>192.100.124.218</name></author>
	</entry>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=Bugs:Stock_answers&amp;diff=2184</id>
		<title>Bugs:Stock answers</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=Bugs:Stock_answers&amp;diff=2184"/>
		<updated>2010-03-02T10:42:41Z</updated>

		<summary type="html">&lt;p&gt;192.100.124.218: /* Memory issues */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A quick collection for anybody triaging bug reports in [https://bugs.maemo.org maemo.org Bugzilla]. These stock answers are meant to be copied and pasted to bug reports that could be more useful. Please keep the product specific ones alphabetically sorted as per the Products structure in Bugzilla, and feel free to edit/enhance! -[[User:Andre]]&lt;br /&gt;
&lt;br /&gt;
=General=&lt;br /&gt;
&lt;br /&gt;
==Too vague or a generally bad report==&lt;br /&gt;
&lt;br /&gt;
Hi there!&lt;br /&gt;
&lt;br /&gt;
Thanks for reporting this, but unfortunately this report isn&#039;t very useful because it doesn&#039;t describe the issue well. If you have time and can still reproduce the bug, please read https://bugs.maemo.org/page.cgi?id=bug-writing.html and add a more useful description to this bug.&lt;br /&gt;
&lt;br /&gt;
==Version number==&lt;br /&gt;
&lt;br /&gt;
Hi there!&lt;br /&gt;
&lt;br /&gt;
Thanks for reporting this. Can you please tell us exactly which version you are using (Control Panel &amp;gt; General &amp;gt; About product)? Please try to make sure that you are using the latest available release (2.2009.51-1 as of this writing). An update should be available through the Application Manager if you aren&#039;t up to date.&lt;br /&gt;
&lt;br /&gt;
==Software hangs with 100% CPU==&lt;br /&gt;
Can you please:&lt;br /&gt;
&lt;br /&gt;
* Either install &amp;quot;strace&amp;quot; from the tools repository[1] and &amp;quot;strace&amp;quot; the CPU consuming process, or&lt;br /&gt;
* install the &amp;quot;sp-rich-core&amp;quot; package from the tools repository[1] and creating a &amp;quot;core-dumps&amp;quot; directory to the memory card with at least few megabytes of free space.&lt;br /&gt;
* do &amp;quot;kill -6 &amp;lt;PID&amp;gt;&amp;quot; for the process that takes the CPU, and&lt;br /&gt;
* attach the resulting .rcore.lzo file from the core-dumps directory here?&lt;br /&gt;
&lt;br /&gt;
[1] http://maemo.org/development/tools/ (Diablo) / http://wiki.maemo.org/Documentation/devtools/maemo5 (Fremantle)&lt;br /&gt;
&lt;br /&gt;
==Need a syslog==&lt;br /&gt;
 Can you please provide a syslog? See http://wiki.maemo.org/Documentation/devtools/maemo5/syslog and http://wiki.maemo.org/Documentation/devtools/maemo5#Installation for more information.&lt;br /&gt;
 If you are not used to Linux, after creating the syslog file you can copy the syslog file to those folders that are visible in the Maemo File Manager by:&lt;br /&gt;
   * Starting X Terminal&lt;br /&gt;
   * cp /var/log/syslog /home/user/MyDocs/.documents/&lt;br /&gt;
 After that you can find the file in the Maemo File Manager by going to Nokia N900 &amp;gt; Documents.&lt;br /&gt;
&lt;br /&gt;
==Need a crash coredump==&lt;br /&gt;
 Can you please install Crash Reporter from the SDK Tools repository in order to send coredumps directly to Nokia?&lt;br /&gt;
 See http://wiki.maemo.org/Extras-testing#Tools_for_testers for a how-to.&lt;br /&gt;
 If you are offered to add a comment for sending the coredump file, please mention this bug number (like &amp;quot;see bugs.maemo.org bug number xxxx&amp;quot;).&lt;br /&gt;
 Also, a filename will be displayed after uploading the coredump. Please add the name of that file here in the bug report.&lt;br /&gt;
&lt;br /&gt;
==Need a crash stacktrace (for Notes)==&lt;br /&gt;
Is there error message when it crashes?&lt;br /&gt;
&lt;br /&gt;
Can you please run Notes in a terminal window (Applications Menu -&amp;gt; Utilities &amp;gt; X Terminal, then enter the command &amp;quot;maemo-summoner /usr/bin/osso_notes.launch &amp;gt; log 2&amp;gt;&amp;amp;1&amp;quot; and hit the Enter key) and attach the resulting &amp;quot;log&amp;quot; file here after it has crashed?&lt;br /&gt;
&lt;br /&gt;
Having a core dump could be even more useful. It requires installing the &amp;quot;sp-rich-core&amp;quot; package from the tools repository[1] and creating a &amp;quot;core-dumps&amp;quot; directory to the memory card with at least few megabytes of free space. You can get core dumps also without the rich-core package, but they are much less useful (and without it pre-installed applications core dumps are then named maemo-launcher-*).&lt;br /&gt;
&lt;br /&gt;
[1] http://maemo.org/development/tools/ (Diablo) / http://wiki.maemo.org/Documentation/devtools/maemo5 (Fremantle)&lt;br /&gt;
(also features information about valgrind and strace)&lt;br /&gt;
&lt;br /&gt;
==Old Software version==&lt;br /&gt;
Hi there!&lt;br /&gt;
&lt;br /&gt;
Thanks for reporting this. Can you please test this again running the latest available release? The latest release should be available through the Application Manager.&lt;br /&gt;
&lt;br /&gt;
==Memory issues==&lt;br /&gt;
Please install &#039;&#039;sp-memusage&#039;&#039; package from the tools repository according to the instructions here: http://wiki.maemo.org/Documentation/devtools/maemo5.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;mem-smaps-private&#039;&#039; script from that package can be used to get most accurate values on process memory usage.  &#039;&#039;mem-cpu-monitor&#039;&#039; tool can be used to track system and specified processes memory and CPU usage changes (most relevant values).&lt;br /&gt;
&lt;br /&gt;
To track changes in usage of all device resources (not just memory) over longer period of time, install the &#039;&#039;sp-endurance&#039;&#039; package.  The data its &#039;&#039;save-incremental-endurance-stats&#039;&#039; script stores, can be post-processed to a HTML report (with some bar graphs) using the &#039;&#039;parse-endurance-measurements&#039;&#039; script from the sp-endurance-postproc package.&lt;br /&gt;
&lt;br /&gt;
Then attach the information provided by these tools to the corresponding bug.&lt;br /&gt;
&lt;br /&gt;
For advanced users, see http://wiki.maemo.org/Using_Valgrind_and_gdb_in_Scratchbox on how to analyze memory leaks using the x86 Scratchbox environment.&lt;br /&gt;
&lt;br /&gt;
==Duplicate==&lt;br /&gt;
Hi there!&lt;br /&gt;
&lt;br /&gt;
Thanks for the bug report. This particular issue has already been reported in our bug tracking system, but please feel free to report any further bugs you find.&lt;br /&gt;
&lt;br /&gt;
Thanks!&lt;br /&gt;
&lt;br /&gt;
==One report for each bug==&lt;br /&gt;
Hi there!&lt;br /&gt;
&lt;br /&gt;
Please remember to file a new report for each issue. Having only one issue per bug makes it much easier to track problems and makes it easier for them to be fixed.&lt;br /&gt;
&lt;br /&gt;
Thanks!&lt;br /&gt;
&lt;br /&gt;
==Incomplete (after moreinfo keyword set)==&lt;br /&gt;
Hi there!&lt;br /&gt;
&lt;br /&gt;
Unfortunately, without more information, as requested in one of the last comments, we are unable to do anything more about this report. Until more information is available, I&#039;m resolving the report as INVALID.&lt;br /&gt;
&lt;br /&gt;
Please feel free to reopen this bug if you can provide the information asked for, or if you can still reproduce this.&lt;br /&gt;
&lt;br /&gt;
Thanks!&lt;br /&gt;
&lt;br /&gt;
==Become root==&lt;br /&gt;
To do this, you have to become root first. Please see http://wiki.maemo.org/Root_access for instructions.&lt;br /&gt;
&lt;br /&gt;
==Untidy patch provided==&lt;br /&gt;
Thanks for the patch. Can you please clean it up and reattach it? See http://wiki.maemo.org/The_Good_Patch for more information.&lt;br /&gt;
&lt;br /&gt;
=Potential Product specific answers=&lt;br /&gt;
&lt;br /&gt;
==Browser==&lt;br /&gt;
===Maemo4 only===&lt;br /&gt;
* Can you please create a browser logfile? Enter about:config?prefname=browser.consolelogfile&amp;amp;prefvalue=/tmp/browserlog in the browser location bar, set that preference, reproduce the browser problem and post the content of the file /tmp/browserlog here (you can for example start the terminal application, run &amp;quot;more /tmp/browserlog&amp;quot; and copy the output to this bug report).&lt;br /&gt;
&lt;br /&gt;
==Calendar==&lt;br /&gt;
&lt;br /&gt;
==Chat &amp;amp; Call &amp;amp; SMS==&lt;br /&gt;
&lt;br /&gt;
===Chat===&lt;br /&gt;
Please see http://telepathy.freedesktop.org/wiki/Debugging for information how to debug.&lt;br /&gt;
&lt;br /&gt;
===Google Talk / XMPP===&lt;br /&gt;
 To get logs from telepathy-gabble (the XMPP connection manager) you need to open X-Terminal and then run the following commands (one per line):&lt;br /&gt;
 export GABBLE_PERSIST=1&lt;br /&gt;
 export GABBLE_DEBUG=all&lt;br /&gt;
 export LM_DEBUB=net&lt;br /&gt;
 killall telepathy-gabble; /usr/lib/telepathy/telepathy-gabble &amp;gt;gabble.log 2&amp;gt;&amp;amp;1 &amp;amp;&lt;br /&gt;
&lt;br /&gt;
===SIP/rtcom/Internet Call===&lt;br /&gt;
* Do you use NAT?&lt;br /&gt;
* If it&#039;s a SIP account, what are the account parameters? Is transport set to UDP in the Advanced settings of your SIP account?&lt;br /&gt;
* A packet capture could help to clarify what causes the problem. tcpdump can be used on the Nokia device (Wireshark/Ethereal could be used from other hosts). Please take a look at http://maemo.org/development/documentation/man_pages/tcpdump.html for more information.&lt;br /&gt;
**Short cut: In most cases this command executed as root should give enough information (after running it you can attach the file sip.pcap to the bug):&lt;br /&gt;
 tcpdump -n -w sip.pcap -s 1500 -i wlan0&lt;br /&gt;
* Could you also provide a syslog? To do so, start a terminal window. Now export TPORT_LOG=1 and export SOFIASIP_DEBUG=all in the environment (e.g. by editing /etc/osso-af-init/af-defines.sh) for telepathy-sofiasip. Exporting SOFIASIP_PERSIST=1 also prevents telepathy-sofiasip from exiting due to no connections being requested. Now SIP traffic logs get dumped into syslog. Also see http://maemo.org/development/tools/doc/diablo/syslog/ for Maemo4 or http://wiki.maemo.org/Documentation/devtools/maemo5/syslog for Maemo5.&lt;br /&gt;
&lt;br /&gt;
==Connectivity==&lt;br /&gt;
&lt;br /&gt;
===Bluetooth and car sets (only in Fremantle)===&lt;br /&gt;
There are two different logs that would be useful. The first is bluetoothd debug logs and the second is a HCI-level trace.&lt;br /&gt;
&lt;br /&gt;
For the first you&#039;d need to:&lt;br /&gt;
 1. install the klogd and sysklogd debian packages (and probably reboot the device afterwards)&lt;br /&gt;
 2. after booting and before doing anything with bluetooth do &amp;quot;killall -USR2 bluetoothd&amp;quot; (as root) to enable bluetoothd debug logs&lt;br /&gt;
 3. after reproducing the issue &amp;quot;grep bluetoothd /var/log/syslog &amp;gt; bluetoothd-log.txt&amp;quot; and attach the file here.&lt;br /&gt;
&lt;br /&gt;
For a HCI trace do:&lt;br /&gt;
 1. install the bluez-hcidump debian package&lt;br /&gt;
 2. (as root) run &amp;quot;hcidump -B -w hci-trace.log while reproducing the issue&lt;br /&gt;
 3. attach the hci-trace.log (or whatever filename you chose) here&lt;br /&gt;
&lt;br /&gt;
See http://wiki.maemo.org/Documentation/devtools/maemo5 for more information on how to install the requested packages.&lt;br /&gt;
&lt;br /&gt;
===Bluetooth DUN issues (Diablo only)===&lt;br /&gt;
Is there any error message displayed?&lt;br /&gt;
Could you provide a syslog and a hcidump (package &amp;quot;bluez-hcidump&amp;quot;, also see http://maemo.org/development/tools/doc/diablo/bluez-hcidump/ , manual download at http://repository.maemo.org/pool/diablo/free/b/bluez-hcidump/ )?&lt;br /&gt;
For general information: http://www.cellular-store.com/categorybluetooth.aspx provides a list of Bluetooth Compatible Cell Phones Models.&lt;br /&gt;
&lt;br /&gt;
===Bluetooth DUN issues (Fremantle only)===&lt;br /&gt;
This is not officially supported - see http://wiki.maemo.org/Fremantle_Unsupported_Bluetooth_profiles for more information.&lt;br /&gt;
&lt;br /&gt;
===Bluetooth OBEX (File transfer) issues (Maemo4 only)===&lt;br /&gt;
Are you sure that the phone supports OBEX File Transfer and not e.g. only OBEX Object Push? Can you e.g. discover it by doing &amp;quot;sdptool search --bdaddr &amp;lt;bt address of phone&amp;gt; FTP&amp;quot;?&lt;br /&gt;
&lt;br /&gt;
===GPRS/3G issues===&lt;br /&gt;
* Do you see this with any other operator&#039;s SIM?&lt;br /&gt;
* Do you see this if you force the device to 2G? (Phone settings - you need to&lt;br /&gt;
wait until the dialog lets you to save the setting)&lt;br /&gt;
* Do you see this when tethering (Bluetooth DUN or USB cable) from a laptop, with a similar network usage pattern (web browsing, etc.)?&lt;br /&gt;
* Have you contacted the operator in question, whether they have any known&lt;br /&gt;
issues or any restrictions in place? (Like, traffic shaping of some sort)&lt;br /&gt;
&lt;br /&gt;
====Cannot access any webpage (DNS issue from bug 8339)====&lt;br /&gt;
 Is the H3G connection DNS server setting (Settings -&amp;gt; Internet connections -&amp;gt; Connections -&amp;gt; H3G -&amp;gt; Edit -&amp;gt; Next -&amp;gt; Next -&amp;gt; Advanced -&amp;gt; IP Addresses) correct?&lt;br /&gt;
 Also, try the following:&lt;br /&gt;
 1. Establish cellular IP connection.&lt;br /&gt;
 2. Open terminal.&lt;br /&gt;
 3. Run &amp;quot;cat /var/run/resolv.conf.gprs&amp;quot; and note the nameserver(s) listed there.&lt;br /&gt;
 4. Run &amp;quot;nslookup www.google.it XXX.XXX.XXX.XXX&amp;quot; where XXX.XXX.XXX.XXX is one of the nameservers from step 3.&lt;br /&gt;
 Does it resolve successfully when using the provider&#039;s servers directly?&lt;br /&gt;
&lt;br /&gt;
===Wifi/WLAN===&lt;br /&gt;
&lt;br /&gt;
====Connection problems====&lt;br /&gt;
 Could you please post the output of the command &amp;quot;dmesg&amp;quot; (in X Terminal) immediately after a connection failure?&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
&lt;br /&gt;
Does running &amp;quot;/etc/init.d/networking restart&amp;quot; update the list of networks?&lt;br /&gt;
&lt;br /&gt;
Asking for more information:&lt;br /&gt;
* What router do you have?&lt;br /&gt;
** Make and model?&lt;br /&gt;
** Firmware version?&lt;br /&gt;
** Hardware revision?&lt;br /&gt;
** What are the encryption settings? (open/WEP/WPA/WPA2)&lt;br /&gt;
* How far are you from your router?&lt;br /&gt;
* How many WiFi access points do you have?&lt;br /&gt;
&lt;br /&gt;
PSM problems:&lt;br /&gt;
* Does setting Power Saving to &amp;quot;Off&amp;quot; help? (Settings &amp;gt; Internet Connections &amp;gt; Connections &amp;gt; Edit &amp;gt; Next &amp;gt; Next &amp;gt; Next &amp;gt; Advanced &amp;gt; Other &amp;gt; Power saving)&lt;br /&gt;
* Router settings:&lt;br /&gt;
** What&#039;s the beacon interval?&lt;br /&gt;
** What&#039;s the DTIM period?&lt;br /&gt;
&lt;br /&gt;
==Contacts==&lt;br /&gt;
&lt;br /&gt;
==Core==&lt;br /&gt;
&lt;br /&gt;
===Busybox===&lt;br /&gt;
Do you have a 3rd party version of Busybox installed?&lt;br /&gt;
&lt;br /&gt;
===Charger issues===&lt;br /&gt;
 Are you using the original Nokia charger or something else?&lt;br /&gt;
 If you have another compatible charger, does the problem occur also with that? &lt;br /&gt;
 Can you please start X Terminal and provide the output of the commands:&lt;br /&gt;
 * cat /sys/devices/platform/musb_hdrc/mode &lt;br /&gt;
 * cat /sys/devices/platform/musb_hdrc/charger&lt;br /&gt;
 Can you please provide a syslog as described on&lt;br /&gt;
  http://wiki.maemo.org/Documentation/devtools/maemo5/syslog ?&lt;br /&gt;
&lt;br /&gt;
===Power management===&lt;br /&gt;
https://maemo.org/community/wiki/poweranddevicemanagement/&lt;br /&gt;
&lt;br /&gt;
Battery drain can have many potential reasons:&lt;br /&gt;
* bad 3rd party applet/application not idling when not used&lt;br /&gt;
* buggy WLAN access point (not implementing power management properly)&lt;br /&gt;
** setting device to offline mode when not in use helps&lt;br /&gt;
* Keeping device in RD mode&lt;br /&gt;
* Corrupted memory card&lt;br /&gt;
* Metalayer crawler related bugs (only currently known is about gstreamer/WMA)&lt;br /&gt;
* etc.&lt;br /&gt;
&lt;br /&gt;
===Reboot related===&lt;br /&gt;
http://wiki.maemo.org/Troubleshooting_boot_issues&lt;br /&gt;
&lt;br /&gt;
==Data==&lt;br /&gt;
&lt;br /&gt;
===Meta Tracker===&lt;br /&gt;
Please provide the output of &amp;quot;tracker-stats&amp;quot; in X Terminal. It lists the number of documents by type on your device.&lt;br /&gt;
&lt;br /&gt;
Please provide a log by setting the config verbosity (in $HOME/.config/tracker/*.cfg) or setting the verbosity when running commands with -v {0|1|2|3}&lt;br /&gt;
The logs are stored in $HOME/.local/share/tracker/ .&lt;br /&gt;
&lt;br /&gt;
==Desktop platform==&lt;br /&gt;
&lt;br /&gt;
===Application Menu===&lt;br /&gt;
Please check http://wiki.maemo.org/Troubleshooting_menu_issues and report back.&lt;br /&gt;
&lt;br /&gt;
===Input Methods===&lt;br /&gt;
http://maemo.org/development/documentation/how-tos/4-x/extending_hildon_input_methods.html&lt;br /&gt;
&lt;br /&gt;
==Desktop Widgets==&lt;br /&gt;
===Widgets/Applets (debugging)===&lt;br /&gt;
The easiest way to debug your applets is to run the hildon-desktop on scratchbox currently: &lt;br /&gt;
run-standalone.sh /usr/bin/hildon-desktop&lt;br /&gt;
From console you can see then the printouts. Debugging on the device is a bit harder.&lt;br /&gt;
For Python applets you might want to check pyphantom.&lt;br /&gt;
&lt;br /&gt;
With Valgrind on x86-scratchbox one can debug applet problems (e.g. memory leaks):&lt;br /&gt;
  af-sb-init.sh start&lt;br /&gt;
&amp;lt;wait until desktop starts&amp;gt;&lt;br /&gt;
  kill $(pidof maemo_af_desktop)&lt;br /&gt;
  export G_SLICE=&amp;quot;always-malloc&amp;quot;&lt;br /&gt;
  run-standalone.sh valgrind --tool=memcheck --num-callers=60 --leak-check=yes /usr/bin/maemo-summoner /usr/bin/maemo_af_desktop.launch&lt;br /&gt;
&lt;br /&gt;
===Restarting the Desktop (in Fremantle)===&lt;br /&gt;
Run &amp;quot;killall hildon-home&amp;quot; if for example the device becomes unresponsive (high memory usage) and you suspect some Desktop widgets to be the root cause of this.&lt;br /&gt;
&lt;br /&gt;
==Development Platform==&lt;br /&gt;
&lt;br /&gt;
==Email==&lt;br /&gt;
Does starting&lt;br /&gt;
  /usr/bin/maemo-summoner /usr/bin/modest.launch showui&lt;br /&gt;
provide some output?&lt;br /&gt;
===Debugging the connection to the mail server===&lt;br /&gt;
Can you please start an X Terminal window and enter&lt;br /&gt;
    export &amp;quot;CAMEL_DEBUG&amp;quot;=&amp;quot;all&amp;quot;&lt;br /&gt;
to enable the debug mode of the mail library, and after that&lt;br /&gt;
* Diablo:&lt;br /&gt;
    /usr/bin/maemo-summoner /usr/bin/modest.launch showui &amp;gt; /home/user/MyDocs/.documents/log 2&amp;gt;&amp;amp;1&lt;br /&gt;
&lt;br /&gt;
* Fremantle:&lt;br /&gt;
    /usr/bin/maemo-summoner /usr/bin/modest.launch -s &amp;gt; /home/user/MyDocs/.documents/log 2&amp;gt;&amp;amp;1&lt;br /&gt;
to start the email application. Then try to connect to the mailserver.&lt;br /&gt;
Attach the logfile named &amp;quot;log&amp;quot; here which will be in your Home directory (please check for confidential data before attaching).&lt;br /&gt;
&lt;br /&gt;
===Modest getting stuck (strace)===&lt;br /&gt;
Is Modest using any CPU?&lt;br /&gt;
What is the output if you strace it?&lt;br /&gt;
  strace -p $(pidof modest|cut -d&#039; &#039; -f1)&lt;br /&gt;
See http://maemo.org/development/tools/ and http://maemo.org/development/tools/doc/diablo/strace/ (Diablo) or http://wiki.maemo.org/Documentation/devtools/maemo5 and http://wiki.maemo.org/Documentation/devtools/maemo5/strace (Fremantle) for more information.&lt;br /&gt;
&lt;br /&gt;
===Modest not exiting but eating CPU===&lt;br /&gt;
I assume you waited for 10 minutes to make sure that this wasn&#039;t any time taking resource freeing? Does this also happen if you are not using SSL?&lt;br /&gt;
A packet capture could help to clarify what causes the problem. tcpdump can be used on the Nokia device (Wireshark/Ethereal could be used from another host. Please take a look at http://maemo.org/development/documentation/man_pages/tcpdump.html for more information. &lt;br /&gt;
Can you kill the hanging process with signal=11 to provide us with a core dump?&lt;br /&gt;
&lt;br /&gt;
==Flasher==&lt;br /&gt;
===Windows===&lt;br /&gt;
What are current versions (Control Panel/Add or Remove Programs) of WinFlasher+ (Nokia Internet Tablet Update Wizard) and Nokia Connectivity Cable Driver? What OS (XP, Windows 2000)? What is the exact error message you get? Is .NET 2.0 framework installed (Control Panel -&amp;gt; Add or Remove Programs)?&lt;br /&gt;
&lt;br /&gt;
==Games==&lt;br /&gt;
&lt;br /&gt;
==Images and Camera==&lt;br /&gt;
&lt;br /&gt;
==Location==&lt;br /&gt;
&lt;br /&gt;
==Map==&lt;br /&gt;
&lt;br /&gt;
==Media player==&lt;br /&gt;
&lt;br /&gt;
==Multimedia==&lt;br /&gt;
&lt;br /&gt;
==Office Viewers==&lt;br /&gt;
&lt;br /&gt;
==RSS feed reader==&lt;br /&gt;
* Can you please attach the contents of your device &amp;quot;/home/user/.osso_rss_feed_reader/&amp;quot; directory.&lt;br /&gt;
* Can you please install &amp;quot;strace&amp;quot; according to instructions here at http://maemo.org/development/tools/ (Diablo) / http://wiki.maemo.org/Documentation/devtools/maemo5 (Fremantle). Check with that what RSS feed reader does when/after it gets stuck and provide the output here: &amp;quot;strace -p $(pidof osso_rss_feed_reader|cut -d&#039; &#039; -f1)&amp;quot; if it is already running, or &amp;quot;strace -f maemo-summoner /usr/bin/osso_rss_feed_reader.launch&amp;quot; to start it in strace.&lt;br /&gt;
&lt;br /&gt;
==Settings and Maintenance==&lt;br /&gt;
&lt;br /&gt;
===Application manager / Installing===&lt;br /&gt;
Hopefully some information will be in &amp;quot;Tools &amp;gt; Log&amp;quot; in the Application manager.&lt;br /&gt;
If you are familiar with apt you can also get a detailed error message by trying to install any package using &amp;quot;apt-get install&amp;quot; in the terminal window.&lt;br /&gt;
&lt;br /&gt;
==Sharing==&lt;br /&gt;
&lt;br /&gt;
==Statusbar Widgets==&lt;br /&gt;
&lt;br /&gt;
==Synchronization==&lt;br /&gt;
&lt;br /&gt;
===Mail for Exchange===&lt;br /&gt;
 Can you please:&lt;br /&gt;
 1) Check the &amp;quot;Known issues&amp;quot; section in http://wiki.maemo.org/Mail_for_Exchange&lt;br /&gt;
 If this does not help:&lt;br /&gt;
 2) Install syslog (see http://wiki.maemo.org/Documentation/devtools/maemo5/syslog ) and reboot&lt;br /&gt;
 3) Open X Terminal&lt;br /&gt;
 [optional steps begin]&lt;br /&gt;
 3A. Enter &amp;quot;sudo gainroot&amp;quot; (to do that make sure that you have installed &amp;quot;rootfs&amp;quot; from the Application Manager)&lt;br /&gt;
 3B. cat /dev/null &amp;gt; /var/log/syslog&lt;br /&gt;
 [optional steps end]&lt;br /&gt;
 4) Provide the output the following commands:&lt;br /&gt;
    gconftool-2 -s --type=int /apps/activesync/AsDaemon/Syslog/MinLogLevel 0&lt;br /&gt;
    gconftool-2 -s --type=int /apps/activesync/modest/Syslog/MinLogLevel 0&lt;br /&gt;
    gconftool-2 -s --type=int /apps/activesync/AsProvider/Syslog/MinLogLevel 0&lt;br /&gt;
    gconftool-2 -s --type=int /apps/activesync/AsBackup/Syslog/MinLogLevel 0&lt;br /&gt;
    gconftool-2 -s --type=int /apps/activesync/asapplet/Syslog/MinLogLevel 0&lt;br /&gt;
    gconftool-2 -s --type=int /apps/activesync/AsStatusApplet/Syslog/MinLogLevel 0&lt;br /&gt;
 5) Attach the file /var/log/syslog from the device to this bug (if needed, copy it first to the section that is visible in the File Manager: cp /var/log/syslog /home/user/MyDocs/.documents/  )&lt;br /&gt;
&lt;br /&gt;
==System Analysis==&lt;br /&gt;
&lt;br /&gt;
==System software==&lt;br /&gt;
===MMC/SD card related (Product &amp;quot;System software/mmc-and-usb&amp;quot;)===&lt;br /&gt;
Has this happened with any other card? What is your card manufacturer, model and size?&lt;br /&gt;
&lt;br /&gt;
==Telephony==&lt;br /&gt;
&lt;br /&gt;
==Translations==&lt;br /&gt;
&lt;br /&gt;
==UI Specification==&lt;br /&gt;
&lt;br /&gt;
==User guide &amp;amp; Help content==&lt;br /&gt;
&lt;br /&gt;
==Utilities==&lt;br /&gt;
&lt;br /&gt;
==X-Graveyard (discontinued==&lt;br /&gt;
===Internet Tablet Video Converter===&lt;br /&gt;
AVI is just a container format, what matters is the codec. Can you please find out which codec your camera uses? You might want to check the camera manual. Thanks!&lt;br /&gt;
Are there any error messages when the crash happens?&lt;br /&gt;
Did the application install cleanly with no problems? Could you try to uninstall and reinstall again from a clean download please?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Community]]&lt;br /&gt;
[[Category:maemo.org]]&lt;br /&gt;
[[Category:Bugzilla]]&lt;/div&gt;</summary>
		<author><name>192.100.124.218</name></author>
	</entry>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=Mail_for_Exchange&amp;diff=21925</id>
		<title>Mail for Exchange</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=Mail_for_Exchange&amp;diff=21925"/>
		<updated>2010-02-25T08:43:52Z</updated>

		<summary type="html">&lt;p&gt;192.100.124.218: /* How can I use my corporate address book (GAL) ? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Mail For Exchange (MfE) =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;For general informatipon on synchronising your N900 with a mail or calendar server, please see the [[sync]] page&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This page answers questions which are commonly asked by new N900 MfE users.&lt;br /&gt;
It is mostly based on the analysis of the [http://talk.maemo.org/showthread.php?t=35136 MfE support thread.]     &lt;br /&gt;
&lt;br /&gt;
The current version of the page addresses two versions of MfE:&lt;br /&gt;
&lt;br /&gt;
* PR1.0, also known as &amp;quot;Sales release&amp;quot; (1.2009.42-11)&lt;br /&gt;
* PR1.1 (2.2009.51-1).  [http://conversations.nokia.com/2010/01/14/nokia-n900-software-update-part-2/ Latest firmware update available from Nokia.]&lt;br /&gt;
&lt;br /&gt;
See [[#How can I check what version of the software is installed in my N900?|How can I check what version of the software is installed in my N900?]] for steps to check what version of the software is installed in your device.&lt;br /&gt;
&lt;br /&gt;
If you use PR1.0 (sales release) it is strongly advised to update to PR1.1. &lt;br /&gt;
See [http://wiki.maemo.org/Maemo_5/PR1.1 PR1.1 summary] for additional details and update instructions. &lt;br /&gt;
&lt;br /&gt;
== Compatibility ==&lt;br /&gt;
&lt;br /&gt;
=== What server versions are supported by N900 MfE client? ===&lt;br /&gt;
&lt;br /&gt;
==== PR 1.0 ====&lt;br /&gt;
&lt;br /&gt;
Microsoft Exchange 2007 with service packs on top. MS Exchange 2010 also works fine according to [http://talk.maemo.org/showthread.php?t=34981 users reports.]&lt;br /&gt;
&lt;br /&gt;
In more technical terms, only EAS protocol 12.1 is supported and implementation is tested against MS Exchange 2007 servers. See [[#How can I check what versions of EAS protocol are supported by my server? |How can I check what versions of EAS protocol are supported by my server? ]] to check what EAS protocols are supported by your server.&lt;br /&gt;
&lt;br /&gt;
==== PR 1.1 ==== &lt;br /&gt;
&lt;br /&gt;
* Microsoft Exchange 2007 with and without service packs on top. MS Exchange 2010 also works fine according to [http://talk.maemo.org/showthread.php?t=34981 users reports.]&lt;br /&gt;
* Microsoft Exchange 2003.&lt;br /&gt;
&lt;br /&gt;
In more technical terms, EAS protocols 2.5, 12.0 and 12.1 are supported and implementation is tested against MS Exchange 2003 and 2007 servers.  See [[#How can I check what versions of EAS protocol are supported by my server? |How can I check what versions of EAS protocol are supported by my server? ]] to check what EAS protocols are supported by your server.&lt;br /&gt;
&lt;br /&gt;
=== What server versions are NOT supported by N900 MfE client? ===&lt;br /&gt;
&lt;br /&gt;
==== PR 1.0 ====&lt;br /&gt;
* Microsoft Exchange 2003 is not supported.&lt;br /&gt;
* Microsoft Exchange 2007 without service packs is not supported.&lt;br /&gt;
&lt;br /&gt;
The only way to get MfE working with these servers is to install PR.1.1 update which is [[#How can I check what version of the software is installed in my N900?|highly recommended.]]&lt;br /&gt;
&lt;br /&gt;
==== PR 1.1 ==== &lt;br /&gt;
* All non-MS services, although there has been [[Sync#Synchronising with Google | reported success]] synchronizing with Google and other non-MS services.&lt;br /&gt;
&lt;br /&gt;
=== Why is feature XXX present in MfE for S60 but not for the N900? ===&lt;br /&gt;
&lt;br /&gt;
S60 and Maemo MfE are different implementations.&lt;br /&gt;
&lt;br /&gt;
The table below tries to summarize the most important differences between S60 and Maemo MfE implementations.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Feature&lt;br /&gt;
!  S60 status&lt;br /&gt;
!  Maemo status&lt;br /&gt;
|-&lt;br /&gt;
|  &#039;&#039;E-Mail&#039;&#039;&lt;br /&gt;
|  YES, subfolders are not synced &lt;br /&gt;
|  YES, subfolders are synced&lt;br /&gt;
|-&lt;br /&gt;
|  &#039;&#039;Calendar&#039;&#039;&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;Tasks&#039;&#039;&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;Notes&#039;&#039;&lt;br /&gt;
|  ?&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;Meeting invitations replying&#039;&#039;&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;Private appointments&#039;&#039;&lt;br /&gt;
|  YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;Corporate address book (GAL)&#039;&#039;&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES (*)&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;Exchange servers support&#039;&#039;&lt;br /&gt;
|  2003, 2007&lt;br /&gt;
|  2003, 2007&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;Autodiscover&#039;&#039;&lt;br /&gt;
|  YES&lt;br /&gt;
|  YES&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;Provisioning support&#039;&#039;&lt;br /&gt;
|  Partly YES&lt;br /&gt;
|  NO&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
(*) This feature is supported in PR1.1 release but not in PR1.0 (sales release).&lt;br /&gt;
&lt;br /&gt;
Lack of provisioning support in MfE for the N900 is the most common cause of problems with corporate Exchange servers in North America.  See [[#Provisioning|Provisioning]] for additional details.&lt;br /&gt;
&lt;br /&gt;
== Known issues ==&lt;br /&gt;
&lt;br /&gt;
=== Provisioning ===&lt;br /&gt;
&lt;br /&gt;
N900 is considered to be &amp;quot;non provisioning device&amp;quot; from Exchange server point of view. It basically means that it can not be managed from Exchange server - administrator can not wipe your device, request you to use autolock and so on. Basically, all the provisioning data received from the server is ignored and the server is informed that N900 MfE does not support this feature.&lt;br /&gt;
&lt;br /&gt;
Exchange administrator can configure the server in 2 ways - he/she can allow to use non-provisioning devices or disallow. In the second case N900 MfE will not work as server will reject the connection.&lt;br /&gt;
&lt;br /&gt;
[http://talk.maemo.org/showpost.php?p=350081&amp;amp;postcount=33  Post with Exchange server 2003 management console]&lt;br /&gt;
&lt;br /&gt;
=== GAL support for Exchange 2003 ===&lt;br /&gt;
&lt;br /&gt;
==== PR 1.1 ====&lt;br /&gt;
Corporate phone book support is broken for PR 1.1 release.  Wait for the next MfE software update to fix it.  It is broken only for Exchange 2003 servers (in more technical terms, for the EAS protocol 2.5).&lt;br /&gt;
&lt;br /&gt;
=== SSL-related errors ===&lt;br /&gt;
&lt;br /&gt;
The error message is displayed &amp;quot;Exchange server requires secure connection or account is disabled&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This infamous error message is caused by the fact that server certificate is untrusted from Maemo MfE client PoV.&lt;br /&gt;
&lt;br /&gt;
Possible root causes and workarounds:&lt;br /&gt;
&lt;br /&gt;
==== Server certificate is either self-signed or signed by the non-trusted authority (root certificate is not visible in N900 &amp;quot;Certificates&amp;quot; application).====&lt;br /&gt;
&lt;br /&gt;
In this case, the server certificate shall be added to N900 certificate storage.  Check [http://talk.maemo.org/showpost.php?p=401238&amp;amp;postcount=171  this message] and the thread after it for additional details.&lt;br /&gt;
&lt;br /&gt;
Keep in mind - self-signed certificate shall have &amp;quot;CA&amp;quot; field.  Otherwise, N900 certificate manager will not allow to install it.  [http://talk.maemo.org/showpost.php?p=474320&amp;amp;postcount=871 This message] tells how to check does certificate has &amp;quot;CA&amp;quot; field or not.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, there is no way to disable certificates check at the client side in the current MfE releases (both PR1.0 and PR1.1).&lt;br /&gt;
&lt;br /&gt;
==== PR1.0 ====&lt;br /&gt;
&lt;br /&gt;
Disclaimer: &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The content of this section is applicable only for sales release (PR1.0). If you use this release, it is [[#How can I check what version of the software is installed in my N900?|highly recommended]] to upgrade the software to PR1.1 instead of following the advices below.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://talk.maemo.org/showpost.php?p=422732&amp;amp;postcount=312 Another important hint about importing certificates.]&lt;br /&gt;
* Server certificate is valid and trusted but MfE fails to sync. Check [https://bugs.maemo.org/show_bug.cgi?id=7357 this bug.]&lt;br /&gt;
&lt;br /&gt;
=== HTML Messages ===&lt;br /&gt;
&lt;br /&gt;
If you are using Exchange 2003 HTML messages will show as plain text.  This is due to limitations of the ActiveSync protocol in this version of Exchange.  The only way to get HTML support is to upgrade your server to Exchange 2007.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== How can I check what version of the software is installed in my N900? ===&lt;br /&gt;
&lt;br /&gt;
* Open &amp;quot;Settings&amp;quot; view&lt;br /&gt;
* Scroll to the &amp;quot;General&amp;quot; section&lt;br /&gt;
* Open &amp;quot;About product&amp;quot; applet&lt;br /&gt;
* Check the &amp;quot;Version&amp;quot; string&lt;br /&gt;
&lt;br /&gt;
Versions strings versus releases: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Version&lt;br /&gt;
!  Release&lt;br /&gt;
|-&lt;br /&gt;
|  1.2009.42-11&lt;br /&gt;
|  PR 1.0 (sales) &lt;br /&gt;
|-&lt;br /&gt;
|  2.2009.51-1&lt;br /&gt;
|  PR 1.1 &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you use PR1.0 (sales release) it is strongly advised to update to PR1.1. &lt;br /&gt;
See [http://wiki.maemo.org/Maemo_5/PR1.1 PR1.1 summary] for additional details and update instructions.&lt;br /&gt;
&lt;br /&gt;
===  How can I check what versions of EAS protocol are supported by my server? ===   &lt;br /&gt;
&lt;br /&gt;
#  Take the logs following the steps described in the section [[#How can I turn the logging ON or OFF?|How can I turn the logging ON or OFF?]]&lt;br /&gt;
#  Grep (search) for &amp;quot;MS-ASProtocolVersions:&amp;quot; in the logs. It will contain the EAS protocol versions supported by your server.&lt;br /&gt;
&lt;br /&gt;
=== How can I turn the logging ON or OFF? ===&lt;br /&gt;
Warning:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Before sending the logs to somebody (including Nokia) or publishing them, check that the log files do not contain any data which you treat as private or confidentional!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Turning the logging ON ==== &lt;br /&gt;
&lt;br /&gt;
# [http://wiki.maemo.org/Documentation/devtools/maemo5/syslog Install syslog] and reboot the device&lt;br /&gt;
# open terminal&lt;br /&gt;
# Execute the command: &#039;&#039;&#039;sudo gainroot&#039;&#039;&#039;&lt;br /&gt;
# Execute the command: &#039;&#039;&#039;cat /dev/null &amp;gt; /var/log/syslog&#039;&#039;&#039;&lt;br /&gt;
# Execute the following commands:&lt;br /&gt;
      gconftool-2 -s --type=int /apps/activesync/AsDaemon/Syslog/MinLogLevel 0&lt;br /&gt;
      gconftool-2 -s --type=int /apps/activesync/modest/Syslog/MinLogLevel 0&lt;br /&gt;
      gconftool-2 -s --type=int /apps/activesync/AsProvider/Syslog/MinLogLevel 0&lt;br /&gt;
      gconftool-2 -s --type=int /apps/activesync/AsBackup/Syslog/MinLogLevel 0&lt;br /&gt;
      gconftool-2 -s --type=int /apps/activesync/asapplet/Syslog/MinLogLevel 0&lt;br /&gt;
      gconftool-2 -s --type=int /apps/activesync/AsStatusApplet/Syslog/MinLogLevel 0&lt;br /&gt;
# Reboot the device&lt;br /&gt;
# Initiate the synchronization session&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;/var/log/syslog&#039;&#039;&#039; will contain the logs.  In order to filter only activesync-specific logs the following command can be used:&lt;br /&gt;
&lt;br /&gt;
      grep activesync /var/log/syslog&lt;br /&gt;
&lt;br /&gt;
In order to copy the activesync log to your computer follow the steps below:&lt;br /&gt;
&lt;br /&gt;
# Make sure your N900 is not connected to any other device (including your desktop computer) through USB&lt;br /&gt;
# Open xterm (if it is not opened yet)&lt;br /&gt;
# Issue the command &#039;&#039;&#039;sudo gainroot&#039;&#039;&#039; (if it was not issued yet)&lt;br /&gt;
# Issue the command: &#039;&#039;&#039;grep activesync /var/log/syslog &amp;gt;  /home/user/MyDocs/activesync.log&#039;&#039;&#039; &lt;br /&gt;
# Close xterm&lt;br /&gt;
# Connect your N900 to the computer through USB&lt;br /&gt;
# Wait while flash drive(s) will appear in your computer&lt;br /&gt;
# Find activesync.log in one of the disk drives&lt;br /&gt;
# Copy it to your computer&lt;br /&gt;
# Remove the file from N900&lt;br /&gt;
# (Safely) disconnect N900 from the computer&lt;br /&gt;
&lt;br /&gt;
==== Turning the logging OFF ==== &lt;br /&gt;
 &lt;br /&gt;
In order to turn the logs OFF, execute the following commands from xterm:&lt;br /&gt;
&lt;br /&gt;
     gconftool-2 -u /apps/activesync/AsDaemon/Syslog/MinLogLevel&lt;br /&gt;
     gconftool-2 -u /apps/activesync/modest/Syslog/MinLogLevel&lt;br /&gt;
     gconftool-2 -u /apps/activesync/AsProvider/Syslog/MinLogLevel&lt;br /&gt;
     gconftool-2 -u /apps/activesync/AsBackup/Syslog/MinLogLevel&lt;br /&gt;
     gconftool-2 -u /apps/activesync/asapplet/Syslog/MinLogLevel&lt;br /&gt;
     gconftool-2 -u /apps/activesync/AsStatusApplet/Syslog/MinLogLevel&lt;br /&gt;
&lt;br /&gt;
After device reboot the logs will not be collected.&lt;br /&gt;
&lt;br /&gt;
==== Extended logging ==== &lt;br /&gt;
&lt;br /&gt;
There is the extended logging option for getting logged all data which are transmitted and received by ActiveSync protocol. This option requires as-daemon logging to be turned on as described above.  Then, as-daemon process needs to receive USR2 signal. This also can be done from a device console:&lt;br /&gt;
&lt;br /&gt;
     $ ps ax | grep as-daemon&lt;br /&gt;
&lt;br /&gt;
This command will produce output like this:&lt;br /&gt;
&lt;br /&gt;
    1503 user 25756 S /usr/sbin/as-daemon -D --pidfile=/var/lock/as-daemon&lt;br /&gt;
&lt;br /&gt;
where 1503 is the &amp;lt;pid&amp;gt; value needed for the next command. The next command is kill -USR2 &amp;lt;pid&amp;gt;, so for this case, it is:&lt;br /&gt;
&lt;br /&gt;
     $ kill -USR2 1503&lt;br /&gt;
&lt;br /&gt;
After that, extended logging is turned on and ready to be used. This option does not survive over reboots. It can be turned off by sending the same kill -USR2 &amp;lt;pid&amp;gt; command again. &lt;br /&gt;
&lt;br /&gt;
Warning:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Before sending the logs to somebody (including Nokia) or publishing them, check that the log files do not contain any data which you treat as private or confidentional!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Pre-setting EAS protocol to be used on sync/ disable auto-negotiation ===&lt;br /&gt;
&lt;br /&gt;
In certain scenarios it might be useful to disable MfE&#039;s built in auto-negotiation function on what sync protocol (EAS 2.5, 12.0 or 12.1) to be used during syncs and use a pre-defined default one instead. Some users report error messages/ fails in sync when trying to establish a connection with e.g. a Scalix Groupware server. For the time being (until solved on either side) a workaround has been established by presetting the sync protocol to EAS 2.5 manually. Scalix Groupware Server with Scalix-AS-1.0.2-addon has been reported working with EAS 2.5 on basic sync (calendar, contacts and email).&lt;br /&gt;
Before forcing MfE to use a specific protocol version make sure it is supported on the server-side.&lt;br /&gt;
&lt;br /&gt;
To force MfE to use a particular protocol follow these steps:&lt;br /&gt;
&lt;br /&gt;
# Start MfE configuration wizard entering the credentials on the first page and press &amp;quot;next&amp;quot;. Do not enter the server address on page 2 yet!&lt;br /&gt;
# Open xterm and execute: &#039;&#039;&#039;sudo gainroot&#039;&#039;&#039;&lt;br /&gt;
# Execute the following commands:&lt;br /&gt;
##&#039;&#039;&#039;gconftool-2 -s --type=string /apps/activesync/ActiveSyncAccount1/use_version 2.5&#039;&#039;&#039;&lt;br /&gt;
##&#039;&#039;&#039;gconftool-2 -s --type=string /apps/activesync/ActiveSyncAccount1Temp/use_version 2.5&#039;&#039;&#039;&lt;br /&gt;
# Now continue MfE setup wizard and enter server address. Click next and follow the procedure to finish the wizard.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To check whether your changes have succesfully been submitted make sure you have [http://wiki.maemo.org/Documentation/devtools/maemo5/syslog  syslog] installed and type in xterm:&lt;br /&gt;
&lt;br /&gt;
     sudo gainroot tail -f /var/log/syslog | grep &amp;quot;Created factory&amp;quot;&lt;br /&gt;
&lt;br /&gt;
There won&#039;t be a output right away but when&lt;br /&gt;
&lt;br /&gt;
* credentials are verified&lt;br /&gt;
* first sync started&lt;br /&gt;
* Wizard setup completed&lt;br /&gt;
&lt;br /&gt;
you should be able to see *Created factory for version 2.5* on the terminal.&lt;br /&gt;
Pressing Ctrl+C will bring you back to the shell.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To disable the preset/ return to auto-negotiation it is recommended to delete the MfE-account and create a new one with the wizard from scratch.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Of course the above described way will also let you set EAS 12.0 or 12.1 as default protocols. Simply change the values on use_version in the respective gconftool commands.&lt;br /&gt;
&lt;br /&gt;
=== Debugging possible certificate errors on self-signed certificates ===&lt;br /&gt;
&lt;br /&gt;
You might experience an error message like &amp;quot;Either exchange server requires a secure connection or your account is disabled&amp;quot;. This mostly occurs when syncing on secure connections by using a self-signed certificate and/or missing certificate authority (CA) tag in the respective field.&lt;br /&gt;
&lt;br /&gt;
A quick way to check whether your certificate info gets rosolved properly by the maemo OS is a cli-tool called &amp;quot;cmcli&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Note: This is a system-wide certificate check - not a MfE-specific issue!&lt;br /&gt;
&lt;br /&gt;
Please open terminal and type:&lt;br /&gt;
&lt;br /&gt;
     cmcli -T common-ca -v &amp;lt;your-server-dns-name-or-ip-address&amp;gt;:&amp;lt;port-number&amp;gt;&lt;br /&gt;
to check with one of the 118 pre-installed certificate authorities&lt;br /&gt;
or &lt;br /&gt;
     cmcli -t ssl-ca -v &amp;lt;your-server-dns-name-or-ip-address&amp;gt;:&amp;lt;port-number&amp;gt;&lt;br /&gt;
when the chain of trust ends with a user-installed certificate. To be on the safe side, you can actually use both at the same time:&lt;br /&gt;
     cmcli -T common-ca -t ssl-ca -v &amp;lt;your-server-dns-name-or-ip-address&amp;gt;:&amp;lt;port-number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The missing tags have to be replaced with your personal server-address and respective port number (mostly 443 on SSL connections).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For instance: cmcli -T common-ca -v localhost:443&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The output should read something like this:&lt;br /&gt;
     0115e5345e4dd64855ed1e3d44060be25f26c2e6 nixu-jum&lt;br /&gt;
 trust chain(1):&lt;br /&gt;
   b5567d6c9eef05f07966d98eb2a85716bff4e80d Maemosec test CA&lt;br /&gt;
     Verified OK&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
     0115e5345e4dd64855ed1e3d44060be25f26c2e6 nixu-jum&lt;br /&gt;
 Verification failed: self signed certificate&lt;br /&gt;
&lt;br /&gt;
depending whether the verification succeeds or not.&lt;br /&gt;
&lt;br /&gt;
If the verification fails and you want to see why, you can save the certificates the server sends by giving also the -s switch at the command line. Like this:&lt;br /&gt;
&lt;br /&gt;
     cmcli -T common-ca -sv &amp;lt;your-servers-dns-name-or-ip-address&amp;gt;:&amp;lt;port-number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will make the command to write the server certificates and possibly sent intermediate CA certificates into file(s) with the .pem-extension, where the name of each file is the SHA1 hash of the public key in hexadecimal. You can then study these file for instance with the command&lt;br /&gt;
&lt;br /&gt;
     openssl x509 -text -in &amp;lt;certificate-file&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous ==&lt;br /&gt;
&lt;br /&gt;
=== How can I use my corporate address book (GAL) ? ===&lt;br /&gt;
&lt;br /&gt;
At first, [[#How can I check what version of the software is installed in my N900?|check that you use PR1.1 or later release of the software.]] If you use the release prior to PR1.1.1 check also [[#PR_1.1_3|the known problem of pre-PR1.1.1. Exchange 2003]] implementation.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
It is possible to search for a contact in your corporate address book using &amp;quot;Contacts&amp;quot; application.&lt;br /&gt;
&lt;br /&gt;
Follow these steps to add the contact from your corporate address book to the N900 address book:&lt;br /&gt;
&lt;br /&gt;
* Open &amp;quot;Contacts&amp;quot; application&lt;br /&gt;
* Select &amp;quot;Get Contacts&amp;quot; option from the menu&lt;br /&gt;
* Choose &amp;quot;Import Mail Exch. contacts&amp;quot; &lt;br /&gt;
* Enjoy!&lt;br /&gt;
&lt;br /&gt;
[[Category:HowTo]]&lt;br /&gt;
[[Category:Software]]&lt;br /&gt;
[[Category:Power users]]&lt;/div&gt;</summary>
		<author><name>192.100.124.218</name></author>
	</entry>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=Mobile_Dev_Camp_2010&amp;diff=26618</id>
		<title>Mobile Dev Camp 2010</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=Mobile_Dev_Camp_2010&amp;diff=26618"/>
		<updated>2010-02-23T08:49:29Z</updated>

		<summary type="html">&lt;p&gt;192.100.124.218: /* Participants list */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Mobile Dev Camp 2010 =&lt;br /&gt;
&lt;br /&gt;
[[Image: mdc.png]]&lt;br /&gt;
&lt;br /&gt;
Nokia is one of the sponsors of this years&#039; [http://mobiledevcamp.fi/ Mobile Dev-Camp] in Helsinki. Part of the engagement there is a developer competition. For the details please follow up on this page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Competition ==&lt;br /&gt;
&lt;br /&gt;
Around the event there will be a competition and Nokia will organise one Category. Follow up in the Q&amp;amp;A what to expect and how you can participate:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== What do I have to do? ===&lt;br /&gt;
&lt;br /&gt;
Sign up, wait until the rules are out, have a brilliant idea, start coding, and present the application on the event. One thing, which we can say already:&lt;br /&gt;
&lt;br /&gt;
* the application has to be written in Qt&lt;br /&gt;
* it has to work either on a Symbian device or the N900.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== What can I win? ===&lt;br /&gt;
&lt;br /&gt;
The winner-team of the competition gets:&lt;br /&gt;
&lt;br /&gt;
* 1xN900 if your application runs on Maemo&lt;br /&gt;
* 1xN97 mini, if your application runs on Symbian&lt;br /&gt;
* 1xN900 &#039;&#039;&#039;AND&#039;&#039;&#039; 1xN97 mini if the application runs on both systems.&lt;br /&gt;
&lt;br /&gt;
You can win if your application is implemented according to the rules, we release 48 hours before the event, and if it is selected as the best application by a jury.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== What are the rules? ===&lt;br /&gt;
&lt;br /&gt;
* You have &#039;&#039;&#039;48 hours&#039;&#039;&#039; to write an application!&lt;br /&gt;
* You will get basic support at the event itself and in the maemo MDC irc channel!&lt;br /&gt;
* We will publish the topic on Thursday before the event at 17:00 (UTC).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== How can I prepare? ===&lt;br /&gt;
&lt;br /&gt;
Check the information in the getting started section of this page. Further join the IRC channel on freenode (#nokia_MDC) to get support with the set-up.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== How can I participate? ===&lt;br /&gt;
&lt;br /&gt;
You can participate alone or as a group. Sign up by adding your data on the [[MDC#Participants_list | participants list]] or sending it to daniel[dot]wilms[at]nokia[dot]com! Check the topic out, when it will be published on Thursday. Start coding and present your idea at the event.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Workshop at the event ==&lt;br /&gt;
&lt;br /&gt;
People from Maemo Devices and Forum Nokia will be present in the Nokia workshop room during the entire event. Come around to ask questions, chat, ask for demonstrations and discuss about topics around the development environment. There won’t be a fixed schedule, but everything around your questions. Showing how to set-up the environment, small code-snippets, how to start developing for Nokia devices etc. The goal is to get the hands on Qt-development for mobile devices and have some fun. For the people who are working on applications for the competition, there will be support for all your questions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Getting Started ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;QtSDK&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[http://qt.nokia.com/products/developer-tools QtCreator] is an easy to use cross-platform IDE. It includes QtDesigner, a powerful tool to create the UI. Further the QtSDK contains the libraries, which are necessary to compile and run your application in your native environment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[http://qt.nokia.com/downloads Download the QtSDK for your system]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After downloading follow the installation instructions of the installer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Special notes for Linux and Mac:&lt;br /&gt;
* Mac OS X: [http://developer.apple.com/tools/xcode/ XCode] required.&lt;br /&gt;
* Linux: GCC required.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MADDE&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[MADDE | MADDE]] is a command-line cross-compilation tool for Maemo 5. It offers a smooth way to compile your Qt application for the device. It is available for Windows, OS X and Linux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[http://tablets-dev.nokia.com/MADDE.php Download MADDE]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Qt&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[http://doc.trolltech.com/4.5/index.html Qt documentation starting point]&lt;br /&gt;
&lt;br /&gt;
[http://www.forum.nokia.com/Tools_Docs_and_Code/Documentation/Maemo.xhtml Qt on Maemo 5 - Examples]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.maemo.org/Qt Qt on Maemo 5 - General information]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MADDE&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[http://wiki.maemo.org/MADDE/Qt_Example Simple Qt example with MADDE]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.maemo.org/MADDE/Device_runtime How to test an application on Device]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.maemo.org/MADDE/FAQ MADDE FAQ]&lt;br /&gt;
&lt;br /&gt;
[http://labs.trolltech.com/blogs/2010/02/15/qt-462-for-maemo-5-released/ Maemo, MADDE and Qt 4.6]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maemo 5&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[http://wiki.maemo.org/Documentation Maemo 5 documentation]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.maemo.org/Category:Development Development topics]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== IRC ===&lt;br /&gt;
&lt;br /&gt;
Join the channels on freenode:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#nokia_mdc&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#qt-maemo&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#maemo&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Mobile Dev Camp 2010]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Participants list ==&lt;br /&gt;
&lt;br /&gt;
{| border=1 style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;width:300px;&amp;quot; | Name&lt;br /&gt;
!style=&amp;quot;width:200px;&amp;quot; | Country&lt;br /&gt;
!style=&amp;quot;width:300px;&amp;quot; | Number of team members&lt;br /&gt;
|-&lt;br /&gt;
|Team Tower&lt;br /&gt;
|Finland&lt;br /&gt;
|2&lt;br /&gt;
|-&lt;br /&gt;
|...&lt;br /&gt;
|...&lt;br /&gt;
|...&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>192.100.124.218</name></author>
	</entry>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=Getting_started_with_Maemo_Garage&amp;diff=12509</id>
		<title>Getting started with Maemo Garage</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=Getting_started_with_Maemo_Garage&amp;diff=12509"/>
		<updated>2010-02-02T10:42:23Z</updated>

		<summary type="html">&lt;p&gt;192.100.124.218: fix typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See [[Task:Using_garage.maemo.org]]&lt;br /&gt;
&lt;br /&gt;
== About Garage ==&lt;br /&gt;
&lt;br /&gt;
Garage is a software hosting platform for Maemo-related projects.&lt;br /&gt;
&lt;br /&gt;
=== Services provided by Garage ===&lt;br /&gt;
&lt;br /&gt;
* Website hosting&lt;br /&gt;
* Bugtracker&lt;br /&gt;
** Also includes a patch tracker, support tracker and feature request tracker&lt;br /&gt;
* Subversion hosting ([[Git_For_Garage|Git]] available on request)&lt;br /&gt;
** Web-based repository browsing&lt;br /&gt;
* Project file hosting (binary and source release archives)&lt;br /&gt;
** Ability to track number of downloads&lt;br /&gt;
&lt;br /&gt;
== Creating a Garage project ==&lt;br /&gt;
&lt;br /&gt;
=== Registering a Garage account ===&lt;br /&gt;
&lt;br /&gt;
To create a Garage project you must have a Garage user account. The [https://garage.maemo.org/account/register.php Garage user registration page] can be found at the top of the [https://garage.maemo.org/ Garage home page].&lt;br /&gt;
&lt;br /&gt;
=== Registering a project ===&lt;br /&gt;
&lt;br /&gt;
The second step, after logging in, is to [https://garage.maemo.org/register/ register a project]. You will find this link at the [https://garage.maemo.org/my/ top of your developer&#039;s home page].&lt;br /&gt;
&lt;br /&gt;
The list below shows requirements of a Garage project. You may be sucessful in acquiring project space if you remember the text on the [https://garage.maemo.org/ Garage home page], ‘This site is meant for hosting various software projects related to the maemo developer platform.’  Each project must determine these settings for themselves.&lt;br /&gt;
&amp;lt;!-- this list is unhelpful and should be removed, or moved to a sub-page (amigadave) --&amp;gt;&lt;br /&gt;
==== Project purpose and summary ====&lt;br /&gt;
&lt;br /&gt;
The project purpose is perhaps one of the most important items on the list of requirements. The site administrator will approve your project primarily based on this statement.&lt;br /&gt;
&lt;br /&gt;
==== License ====&lt;br /&gt;
&lt;br /&gt;
Your project must have an open source license. Some suitable licenses are [http://opensource.org/licenses/category listed by the Open Source Initiative].&lt;br /&gt;
&lt;br /&gt;
==== Project Public Description ====&lt;br /&gt;
&lt;br /&gt;
Your project public description is your first communication with users, and so it is important to offer a concise outline of the project. However, the description can be revised at a later time.&lt;br /&gt;
&lt;br /&gt;
==== Project Unix Name ====&lt;br /&gt;
&lt;br /&gt;
The final requirement is the name that will be used for your project on the Garage servers. This name will be used in many tools and URLs, such as the project information page at &amp;lt;nowiki&amp;gt;https://garage.maemo.org/projects/unixprojectname&amp;lt;/nowiki&amp;gt;, where &#039;&#039;unixprojectname&#039;&#039; is replaced with the selected name.&lt;br /&gt;
&lt;br /&gt;
== Working with Subversion ==&lt;br /&gt;
&lt;br /&gt;
{{main|Subversion}}&lt;br /&gt;
&amp;lt;!-- More to come --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Creating a website ==&lt;br /&gt;
&lt;br /&gt;
To use Garage’s website hosting, a &amp;lt;code&amp;gt;www&amp;lt;/code&amp;gt; directory containing a static website must be added as a toplevel directory in the Subversion (or Git) repository of the project. The index page should be named &amp;lt;code&amp;gt;index.html&amp;lt;/code&amp;gt;, and be placed in the &amp;lt;code&amp;gt;www&amp;lt;/code&amp;gt; directory. Changes to a project website must be made to the source code repository, like any source code changes, but are only visible on the project website after a delay of several minutes. A project website can be accessed from the project information page.&lt;br /&gt;
&lt;br /&gt;
== Trackers and tasks ==&lt;br /&gt;
&lt;br /&gt;
Trackers are provided for management of bugs, feature requests, patches and support discussion. A ‘Tracker’ link is available from the project information page if the tracker is enabled for a project. As an alternative to the Garage tracker, it is possible for a Garage project that has been uploaded to [[Extras]] to [[Bugs:Adding_Extra_products|request a component]] in [https://bugs.maemo.org/ maemo.org Bugzilla].&lt;br /&gt;
&lt;br /&gt;
== Making releases ==&lt;br /&gt;
&lt;br /&gt;
Source code and binary releases can be distributed with Garage with the ‘File’ link from the project information page. A release can be made with a changelog and release notes, so that users may read this information without having to download a release in full. A download count is provided for each release. Rather than distributing binary packages through Garage, it is recomended to upload packages to [[Extras]] to get the widest exposure and to make installation easier for users.&lt;br /&gt;
&lt;br /&gt;
== External resources ==&lt;br /&gt;
&lt;br /&gt;
* [http://gforge.org/ gForge] the project hosting software use by Garage&lt;br /&gt;
* [http://svnbook.red-bean.com/ Version control with Subversion book] a free online Subversion book, also available in print&lt;br /&gt;
* [http://tortoisesvn.tigris.org/ TortoiseSVN] a Windows SVN client&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>192.100.124.218</name></author>
	</entry>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=N900_FAQ&amp;diff=27423</id>
		<title>N900 FAQ</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=N900_FAQ&amp;diff=27423"/>
		<updated>2010-01-19T09:43:01Z</updated>

		<summary type="html">&lt;p&gt;192.100.124.218: /* Other Applications */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==This page is deprecated, don&#039;t add to it!==&lt;br /&gt;
The new [[FAQ|FAQ]] page is now live and incorporates a lot of what&#039;s in here, and will incorporate more as time goes on. Please add to that if you would like!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== Hardware ====&lt;br /&gt;
The N900 is a pocketable computer with plenty of power (speed and memory) for running many demanding applications. The Nokia N900 hardware page can be found [[Nokia_N900|here]]&lt;br /&gt;
&lt;br /&gt;
==== Operating System ====&lt;br /&gt;
The N900 runs the Maemo 5 Operating System. Maemo 5 is often referred to by its release name &amp;quot;Fremantle&amp;quot;. You might be interested in gaming, or office applications, scientific applications, social media, movies or tunes. There will be specific Fremantle versions of your favorite applications.&lt;br /&gt;
&lt;br /&gt;
If there&#039;s not an app yet, there almost certainly will be one at some point (you could also [http://maemo.org/development/ write it or port it yourself...]). Of course the N900 comes with a collection of built in applications that handle most mobile computing needs.&lt;br /&gt;
&lt;br /&gt;
If you want an easy intro to many of Maemo5&#039;s features you might enjoy the videos on the [[Maemo5_101|Maemo5 101 page]]&lt;br /&gt;
&lt;br /&gt;
====Applications====&lt;br /&gt;
Internet Tablets use the concept of software repositories, a concept carried over from Linux. You can tell your N900 where these repositories are via the Application Manager. The Application Manager automatically then presents you a list of available applications that can be installed on your device, and takes care of any dependancies that may be required.&lt;br /&gt;
&lt;br /&gt;
There are multiple repositories available for the N900:&lt;br /&gt;
&lt;br /&gt;
1.[http://maemo.nokia.com/maemo-select/applications/ovi-store/ Nokia&#039;s Ovi Store]&lt;br /&gt;
&lt;br /&gt;
2. Commercial Application Vendors&lt;br /&gt;
&lt;br /&gt;
3. [http://wiki.maemo.org/Installing_applications Community Applications]&lt;br /&gt;
&lt;br /&gt;
The Application Manager also allows you to uninstall applications as well as keep you notified of updates to your installed applications.&lt;br /&gt;
&lt;br /&gt;
You will also find One Click Install Applications on the web for instance in the [http://maemo.org/downloads/Maemo5/ Downloads] section of this web site.&lt;br /&gt;
&lt;br /&gt;
If dont find the applciation that you want you can register you interest in [[Applications you wish were ported from other platforms]] on the wiki&lt;br /&gt;
&lt;br /&gt;
====Emulators====&lt;br /&gt;
As well as native applications via the repositories Maemo also supports applications from a range of Emulators.&lt;br /&gt;
&lt;br /&gt;
-Flash Games. As the N900 supports Flash 9 and has a hardware keyboard, many flash games should just work&lt;br /&gt;
&lt;br /&gt;
-Garnet the Palm Emulator&lt;br /&gt;
&lt;br /&gt;
-SNES Nintendo Emulation. nice video [http://www.youtube.com/watch?v=E0wbLaMXeu4 here]&lt;br /&gt;
&lt;br /&gt;
====Other Applications====&lt;br /&gt;
&lt;br /&gt;
How can I monitor my disk usage and how much space I have left?&lt;br /&gt;
&lt;br /&gt;
Does n900 run Office files?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;N900 comes with datavz&#039;s Office &#039;Office to Go&#039; reader, so you can read office files. It&#039;s not clear yet whether they will release a paid-for upgrade with editing facility. KOffice is available here&#039;&#039; (need link!) &#039;&#039; and will view Office files.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Can I edit Office files?&lt;br /&gt;
&lt;br /&gt;
&#039;Editing has been disabled at least in the first release of KOffice for N900 due to round trip issues. However the source code for the UI is available for download and someone could easily it to allow editing.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Does n900 view pdf files?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Yes&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Does n900 have a book reader? Will it run Kindle?&lt;br /&gt;
&lt;br /&gt;
Where do I find other applications and widgets for n900?&lt;br /&gt;
&lt;br /&gt;
What do I do if the app I want isn’t there?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;First follow instructions from [[Downloading apps]] page. If not found, sign up to [http://talk.maemo.org/forumdisplay.php?f=44 Maemo Talk] and ask. If a few people are interested, or if a particular developer sees value in your idea, it&#039;s likely someone will write you an application to do what you want. And yes, that really does work.Or you can learn to program in Maemo or Qt yourself. There&#039;s a good set of tutorials [http://www.forum.nokia.com/Tools_Docs_and_Code/Documentation/Maemo.xhtml here, with a Hello world app too...]&lt;br /&gt;
&lt;br /&gt;
====Battery====&lt;br /&gt;
&lt;br /&gt;
Do I have to charge it fully before first use?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;No. It will come with some battery charge so you can play.&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Do I have to discharge it fully each time?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;No, n900 has a LIon battery, which doesn&#039;t need this. Older NiCad batteries did.&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Can I use the device while it’s charging?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Yes.&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Is it safe to leave it charging overnight? Will it stop charging itself when it’s full?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Yes&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====EMail====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;See the page on [[N900 Email Options]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Games====&lt;br /&gt;
&lt;br /&gt;
What games run on n900?&lt;br /&gt;
&lt;br /&gt;
I’ve heard it can be used as a wiimote: how do I do that?&lt;br /&gt;
&lt;br /&gt;
Will n900 play games from big companies?&lt;br /&gt;
&lt;br /&gt;
What if I want a game not yet available?&lt;br /&gt;
&lt;br /&gt;
All my previous phones have run java games: why can’t I play them on n900?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Java is not currently available for the N900. You can follow the discussion [http://talk.maemo.org/showthread.php?t=31678  here]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====GPS====&lt;br /&gt;
&lt;br /&gt;
How good is the GPS on n900?&lt;br /&gt;
&lt;br /&gt;
What’s the difference between GPS and a-GPS?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;GPS uses the Global Positioning Satellites to fix your devices location. A-GPS uses your network operators transmission towers to Assist the satellite signals to fix your devices location.A-GPS is coarse grained typically 100s of meters vs GPS sub Meter.&lt;br /&gt;
&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If I only use GPS (not a-GPS) will I still burn my data plan?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Only if you have to download Map information&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
What map programmes can I use?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The N900 comes with Ovi Maps. Other map programs from third party developers will be available for download later. Nokia bought Navteq in 2007 and is the basis of OVi Maps &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;As of October 2009, none of the &amp;quot;big names&amp;quot;--Garmin, Google, TomTom, etc.--have announced any plans to release software for the N900.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Does n900 support google maps?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;You can use google maps directly from the browser, or you can try [http://talk.maemo.org/showthread.php?t=33645 MaeMaps]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Can I download Ovi-maps when I’m on wifi, and store them for use so as not to burn my data plan? If so, how much space do they need?&lt;br /&gt;
&lt;br /&gt;
See also...&lt;br /&gt;
&#039;&#039;[http://talk.maemo.org/showthread.php?t=31273 here] and [http://talk.maemo.org/showthread.php?p=359714 here] and [http://talk.maemo.org/showthread.php?t=31897 here].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Internet====&lt;br /&gt;
&lt;br /&gt;
Does n900 need a firewall?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;No.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Does n900 need an anti-virus?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;No. The N900 runs Linux, an operating system for which few to no viruses exist. Beyond that, the N900 uses a processor (CPU) not used by desktop and notebook Linux machines. This means it&#039;s unlikely a (mostly theoretical) virus for desktop Linux could infect the N900.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Can I block adverts?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Adblock Plus is being developed for the Maemo browser on the N900 and will be available as a free download.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Does n900 play YouTube?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Yes.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Does n900 play video from places other than YouTube?&lt;br /&gt;
&lt;br /&gt;
Does n900 run BBC iplayer?&lt;br /&gt;
&lt;br /&gt;
Does n900 have any ‘parental control’ settings?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Media player====&lt;br /&gt;
&lt;br /&gt;
Does n900 support itunes?&lt;br /&gt;
&lt;br /&gt;
Will n900 play all my downloaded music? What if it has DRM?&lt;br /&gt;
&lt;br /&gt;
How does n900 get the album art?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The N900 Media Player supports ID3 Album art embedded in the MP3. Use your favourite Media Tagger application such as Media Monkey or our Own Maemo based [http://dz015.wordpress.com/2009/09/15/mussorgsky-0-3/ Mussorgsky]&lt;br /&gt;
&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
What video codec does n900 support?&lt;br /&gt;
&lt;br /&gt;
How do I rip a dvd for playing on n900? &lt;br /&gt;
&lt;br /&gt;
How big a file would an hour of dvd be?&lt;br /&gt;
&lt;br /&gt;
Can I download other video to play?&lt;br /&gt;
&lt;br /&gt;
Are there ways of securing the video I’ve downloaded, so I can still give my n900 to others?&lt;br /&gt;
&lt;br /&gt;
What connectors do I need to connect to a TV? What if my TV doesn’t have the right connections?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The N900 comes with a cable to connect it to a composite input on a television. This connection is sometimes called an &amp;quot;RCA&amp;quot; connection and uses a yellow connector for video and a pair of connectors (red and white) for stereo audio.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The video out on the N900 may be switched between NTSC and PAL via &amp;quot;TV out&amp;quot; in the Settings application.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;For televisions without a composite input, an adapter will be required. The specific adapter required for a given television will vary according to the input or inputs it accepts.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
What can I play over TV out? Will it only play video, or can I view whatever is on screen?&lt;br /&gt;
&lt;br /&gt;
====MSN Messenger====&lt;br /&gt;
&lt;br /&gt;
Please see [[MSN messenger]] -article.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Phone use====&lt;br /&gt;
&lt;br /&gt;
Does n900 have speed dial?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;You can put contact shortcuts on the desktop...&lt;br /&gt;
&lt;br /&gt;
Does n900 have voice dialing?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;No.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
How do I access my carrier’s answering service - it used to be speed dial set in my old phone?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;If it is in the simcard, it should be imported in the abook, if it is not, then you probably want to copy it from your old phone manually.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Does n900 log calls for length?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Yes.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Can I sort calls by received/sent/missed?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;No.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I can use the phone in portrait mode: why can’t I use that for other things?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;N900 doesn&#039;t &#039;&#039;&#039;currently&#039;&#039;&#039; support portrait mode beyond the phone use. It is expected this will arrive in an update before the end of 2009, and some developers are working on applications that use portrait mode. &#039;&#039;&#039;Watch this space&#039;&#039;&#039;.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Texts====&lt;br /&gt;
&lt;br /&gt;
I hear n900 doesn’t have MMS: is this true?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;N900 doesn&#039;t support MMS at release. This is because MMS uses the old &#039;WAP&#039; form of connection, which n900 doesn&#039;t do. It only has GPRS internet connection. There are developers working on finding a work-around right now. &#039;&#039;&#039;Watch this space&#039;&#039;&#039;.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Does n900 have message receipt?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Conversations, the SMS and IM application, can optionally &amp;quot;Receive text message delivery reports&amp;quot;. This option is disabled by default, but may be enabled in the Settings area of Conversations.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Can I use an onscreen keyboard?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;An on-screen keyboard is available. It is disabled by default, but may enabled via &amp;quot;Text input&amp;quot; in the Settings application.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The on-screen keyboard is landscape in orientation and alphanumeric. Its layout is QWERTY, QWERTZ, etc. as is regionally appropriate.&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Is there a portrait mode keyboard?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;There is a portrait mode dialing pad for making calls. Beyond that no, there is no portrait mode keyboard. One or more third party developers may make add-on portrait mode keyboards available for download later.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Is there T9 entry?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;No, though this could be added by a third party developer later.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Troubleshooting====&lt;br /&gt;
&lt;br /&gt;
I installed something and now my n900 isn’t working right.&lt;br /&gt;
&lt;br /&gt;
I installed something and now my n900 isn’t working at all.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;In case of trouble, you should start by reading article [[Troubleshooting]] through. It has both cases &amp;lt;bove covered. &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
There’s a light flashing on my n900&lt;br /&gt;
&#039;&#039;Look at [[Maemo5 101]] for further info about what different colour and blinking means&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
How often do I need to update? And why?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;N900 is &#039;updatable software&#039;, so it will go on getting better. Your device will check for updates once a day, and tell you when it needs to update by putting a little yellow icon on the screen. Then it will walk you through the update process. You can wait to update when you are somewhere where it&#039;s beter to download - for example your using your home netwrk rather than your data plan.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:N900]]&lt;/div&gt;</summary>
		<author><name>192.100.124.218</name></author>
	</entry>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=Eclipse_integration/Known_issues&amp;diff=9163</id>
		<title>Eclipse integration/Known issues</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=Eclipse_integration/Known_issues&amp;diff=9163"/>
		<updated>2010-01-04T14:11:36Z</updated>

		<summary type="html">&lt;p&gt;192.100.124.218: /* Maemo PC Connectivity */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Known Issues for Maemo Eclipse Integration Edition 2 Final release (R2.0.0) =&lt;br /&gt;
&lt;br /&gt;
More detailed known issues lists can be found from Garage projects for each product https://garage.maemo.org/.&lt;br /&gt;
&lt;br /&gt;
Detailed list of new features implemented to Maemo Eclipse Integration since previous PreFinal release together with feature plan for final release is here http://wiki.maemo.org/Eclipse_integration.&lt;br /&gt;
&lt;br /&gt;
Release Notes are here http://wiki.maemo.org/Eclipse_integration/ReleaseNotes_final.&lt;br /&gt;
&lt;br /&gt;
== Product baselines ==&lt;br /&gt;
&lt;br /&gt;
* N900 device with Maemo Fremantle 5.x platform releases&lt;br /&gt;
* Fremantle 5.0 SDK, the latest final release&lt;br /&gt;
* N8x0 devices with Maemo Diablo 4.1.x platform releases&lt;br /&gt;
* Diablo 4.1.2 SDK, the latest maintenance release&lt;br /&gt;
&lt;br /&gt;
== Product configuration ==&lt;br /&gt;
&lt;br /&gt;
* Maemo SDK ARMEL rootstrap is meant to be used only for cross-compiling and it does not support running or debugging applications&lt;br /&gt;
&lt;br /&gt;
* Diablo 4.1.2 device requires kernel patch from here http://tablets-dev.nokia.com/maemo-dev-env-downloads.php to be flashed to the Tablet for USB Networking to work with Windows host PC&lt;br /&gt;
&lt;br /&gt;
* Diablo 4.1.2 device requires hildon-desktop patch to be installed to the Maemo device from pc-connectivity Garage repository (see instructions from here http://pc-connectivity.garage.maemo.org/2nd_edition/) for VNC client to work on host PC&lt;br /&gt;
&lt;br /&gt;
== Maemo Mica plugin framework for Eclipse ==&lt;br /&gt;
* none (so far :)&lt;br /&gt;
&lt;br /&gt;
== Maemo ESbox for Eclipse ==&lt;br /&gt;
&lt;br /&gt;
* Hover help for Python does not work on ESBox because documentation has not been integrated.&lt;br /&gt;
&lt;br /&gt;
* Installing Nokia binaries may sometimes fail with exit code 100 when Maemo SDK gets installed. &lt;br /&gt;
** workaround is to restart the Maemo SDK binary installation until it goes through without errors.&lt;br /&gt;
&lt;br /&gt;
* If during Maemo SDK installation to other than Debian based Linux operating systems the default options for Maemo SDK Virtual image installation wizard are chosen and Nokia binaries installation fails, wizard proceeds normally to end (installing Development Environments for C/C++, Python and Qt). If you choose to cancel the installation because failed Nokia binaries Development Environments are not installed properly to the Maemo SDK and Maemo device.&lt;br /&gt;
** workaround is to select &#039;&#039;&#039;Project -&amp;gt; Validate Installed Packages&#039;&#039;&#039; from Eclipse IDE which verifies the integrity of installed development environments and re-installs missing packages for C/C++, Python and Qt to the Maemo SDK and Maemo device.&lt;br /&gt;
&lt;br /&gt;
* Maemo Diablo SDK has ARMEL debugging problems when using Ubuntu Karmic host PC. If Maemo Diablo SDK is installed to Ubuntu Karmic environment native-gdb script will not work but gives segment fault which prevents debugging operations on Maemo SDK ARMEL rootstrap. &lt;br /&gt;
** see more details from this bug report https://bugs.maemo.org/show_bug.cgi?id=7106&lt;br /&gt;
&lt;br /&gt;
== Maemo PluThon for Eclipse ==&lt;br /&gt;
&lt;br /&gt;
* Hover help for Python for Maemo API documents does not work on Pluthon because documentation is not integrated&lt;br /&gt;
&lt;br /&gt;
== Maemo PC Connectivity ==&lt;br /&gt;
&lt;br /&gt;
* Maemo PC Connectivity functionality with N900 device and Fremantle is more limited than with N800/N810 device with Diablo&lt;br /&gt;
** N900 will not support USB host mode&lt;br /&gt;
*** no workaround (N900 HW issue)&lt;br /&gt;
** N900 will not support IP Forwarding (iptable NAT kernel modules)&lt;br /&gt;
*** workaround is to rebuild Fremantle kernel with NAT enabled and hack kernel symbols for NAT kernel modules&lt;br /&gt;
** N900 will not support BlueTooth connections simultaneously with WLAN connections&lt;br /&gt;
*** no known workaround&lt;br /&gt;
** N900 will not support &amp;quot;USB Networking&amp;quot; with platform default USB applet but only &amp;quot;PC Suite&amp;quot; and &amp;quot;Mass Storage&amp;quot; mode (applet provided by PC Connectivity supports also USB Networking)&lt;br /&gt;
*** workaround is to use ONLY configuration applet provided by PC Connectivity instead of default applet&lt;br /&gt;
*** Notice that USB mode changes are possible only if USB cable is plugged-out and plugged-in between mode changes with both applets&lt;br /&gt;
*** Notice that if both applets (platform default USB applet and PC Connectivity applet) are used for mode changes device may fail to change mode after first change&lt;br /&gt;
** Samba does not work with Fremantle platform and N900 causing disk mounts between N900 and Windows host PC to fail&lt;br /&gt;
*** workaround is to use only SSHFS mounts with Cygwin&lt;br /&gt;
** Fremantle platform and SDK support ONLY 16-bit color depth for X Server&lt;br /&gt;
*** workaround is to configure host PC X Server (in Windows and Mac OS X) to use 16-bit depth instead of default one (if default does not happen to be 16-bit)&lt;br /&gt;
** Fremantle SDK does not support CPU Transparency&lt;br /&gt;
*** workaround is to build and install new SBRSH client manually inside Scratchbox&lt;br /&gt;
&lt;br /&gt;
* Configuring connectivity to work between Maemo device and host PC after installation is still partly manual work on host PC side for all supported operating systems&lt;br /&gt;
&lt;br /&gt;
* When creating a project and setting SBRSH as download method errors like &amp;quot;sbrsh server: fuse: bad mount point&amp;quot; and &amp;quot;sbrsh server: Can&#039;t mount to point:&amp;quot; may happen when SBRSH is used first time with Maemo device (for example after device flashing when SSH keys need to be reset).&lt;br /&gt;
** workaround is to restart Maemo device.&lt;br /&gt;
&lt;br /&gt;
* WLAN connection may get broken if WLAN and USB Networking are used simultaneously. Connection problems may occur after some time (can take hours or days) when device is (re)started and WLAN tries to connect.&lt;br /&gt;
** when the problem occurs user gets &amp;quot;Internet connection failed. Unable to retrieve IP address from server&amp;quot; error&lt;br /&gt;
** workaround is to re-flash Maemo device or manually assign IP number to the connection (which may cause problems with DHCP)&lt;br /&gt;
&lt;br /&gt;
* Windows 7 (and Vista) support is only beta level because Cygwin 1.7 (first Cygwin release to support Windows 7 and Vista) is on beta level (Windows XP with Cygwin 1.5 is fully supported)&lt;br /&gt;
** Cygwin 1.7 beta installation may require manual configuration for Maemo&lt;br /&gt;
** Cygwin 1.7 beta X11 may crash when Maemo applications are run with it&lt;br /&gt;
** Host PC Connectivity does not install if Vista or Windows 7 machine is part of Windows Domain because it fails to create new user for Cygwin 1.7 SSHD service&lt;br /&gt;
*** workaround (but not recommended) is to try manual installation and configuration of Cygwin 1.5 also for Windows 7 (and Vista). Notice that Cygwin project does not support Windows 7 or Vista with Cygwin 1.5 version.&lt;br /&gt;
* SSHFS may not be usable for &amp;quot;normal&amp;quot; user account. This is because /dev/fuse is not writable by default for &amp;quot;normal&amp;quot; users. /dev/fuse is usually writable only for group &amp;quot;fuse&amp;quot; &lt;br /&gt;
** workaround is to add user account used to &amp;quot;fuse&amp;quot; group&lt;br /&gt;
&lt;br /&gt;
== Maemo SDK Virtual Images ==&lt;br /&gt;
&lt;br /&gt;
* By default NetworkManager is being started after Scratchbox, so the resolv.conf file used by Scratchbox may be invalid which causes network problems&lt;br /&gt;
** workaround is to update resolv.conf file for Scratchbox manually after Maemo SDK installation and/or after network changes&lt;br /&gt;
&lt;br /&gt;
* VMWare Player version 3.0 may have problems to keep ssh connection live in NAT mode (notice that VMWare Player 2.5 or Bridged mode works fine)&lt;br /&gt;
** workround is to use VMWare Player version 2.5.x or use only Bridged network mode for Maemo SDK Virtual Image&lt;br /&gt;
&lt;br /&gt;
* Changing network configuration after installation of VMWare, VirtualBox or QEMU and Maemo SDK Virtual Image may require reconfiguration of network also for the virtualisation environment and Maemo SDK.  &lt;br /&gt;
** workaround is to manually reconfigure network changes to the Virtualisation Environment and Maemo SDK. Log in to the Maemo SDK Virtual Image and invoke DHCP client with &amp;quot;sudo dhclient&amp;quot; to see network configuration or reconfigure network interfaces after network changes&lt;br /&gt;
&lt;br /&gt;
== Maemo Flasher-3.5 Tool ==&lt;br /&gt;
&lt;br /&gt;
* none (so far)&lt;br /&gt;
&lt;br /&gt;
== Integration testing ==&lt;br /&gt;
&lt;br /&gt;
* Some publicly available test suites (for Eclipse components and NFS mounts, for example) are run on Linux, Windows and Mac OS X during integration testing but frameworks and test sets are not yet ready to be published&lt;br /&gt;
&lt;br /&gt;
* Test results (for unit tests and integration tests) for official releases are not yet ready to be published together with products&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Feedback can be sent to eclipse-integration@maemo.org&lt;br /&gt;
&lt;br /&gt;
[[Category:Eclipse]]&lt;/div&gt;</summary>
		<author><name>192.100.124.218</name></author>
	</entry>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=Eclipse_integration/Known_issues&amp;diff=9164</id>
		<title>Eclipse integration/Known issues</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=Eclipse_integration/Known_issues&amp;diff=9164"/>
		<updated>2010-01-04T14:10:46Z</updated>

		<summary type="html">&lt;p&gt;192.100.124.218: /* Maemo PC Connectivity */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Known Issues for Maemo Eclipse Integration Edition 2 Final release (R2.0.0) =&lt;br /&gt;
&lt;br /&gt;
More detailed known issues lists can be found from Garage projects for each product https://garage.maemo.org/.&lt;br /&gt;
&lt;br /&gt;
Detailed list of new features implemented to Maemo Eclipse Integration since previous PreFinal release together with feature plan for final release is here http://wiki.maemo.org/Eclipse_integration.&lt;br /&gt;
&lt;br /&gt;
Release Notes are here http://wiki.maemo.org/Eclipse_integration/ReleaseNotes_final.&lt;br /&gt;
&lt;br /&gt;
== Product baselines ==&lt;br /&gt;
&lt;br /&gt;
* N900 device with Maemo Fremantle 5.x platform releases&lt;br /&gt;
* Fremantle 5.0 SDK, the latest final release&lt;br /&gt;
* N8x0 devices with Maemo Diablo 4.1.x platform releases&lt;br /&gt;
* Diablo 4.1.2 SDK, the latest maintenance release&lt;br /&gt;
&lt;br /&gt;
== Product configuration ==&lt;br /&gt;
&lt;br /&gt;
* Maemo SDK ARMEL rootstrap is meant to be used only for cross-compiling and it does not support running or debugging applications&lt;br /&gt;
&lt;br /&gt;
* Diablo 4.1.2 device requires kernel patch from here http://tablets-dev.nokia.com/maemo-dev-env-downloads.php to be flashed to the Tablet for USB Networking to work with Windows host PC&lt;br /&gt;
&lt;br /&gt;
* Diablo 4.1.2 device requires hildon-desktop patch to be installed to the Maemo device from pc-connectivity Garage repository (see instructions from here http://pc-connectivity.garage.maemo.org/2nd_edition/) for VNC client to work on host PC&lt;br /&gt;
&lt;br /&gt;
== Maemo Mica plugin framework for Eclipse ==&lt;br /&gt;
* none (so far :)&lt;br /&gt;
&lt;br /&gt;
== Maemo ESbox for Eclipse ==&lt;br /&gt;
&lt;br /&gt;
* Hover help for Python does not work on ESBox because documentation has not been integrated.&lt;br /&gt;
&lt;br /&gt;
* Installing Nokia binaries may sometimes fail with exit code 100 when Maemo SDK gets installed. &lt;br /&gt;
** workaround is to restart the Maemo SDK binary installation until it goes through without errors.&lt;br /&gt;
&lt;br /&gt;
* If during Maemo SDK installation to other than Debian based Linux operating systems the default options for Maemo SDK Virtual image installation wizard are chosen and Nokia binaries installation fails, wizard proceeds normally to end (installing Development Environments for C/C++, Python and Qt). If you choose to cancel the installation because failed Nokia binaries Development Environments are not installed properly to the Maemo SDK and Maemo device.&lt;br /&gt;
** workaround is to select &#039;&#039;&#039;Project -&amp;gt; Validate Installed Packages&#039;&#039;&#039; from Eclipse IDE which verifies the integrity of installed development environments and re-installs missing packages for C/C++, Python and Qt to the Maemo SDK and Maemo device.&lt;br /&gt;
&lt;br /&gt;
* Maemo Diablo SDK has ARMEL debugging problems when using Ubuntu Karmic host PC. If Maemo Diablo SDK is installed to Ubuntu Karmic environment native-gdb script will not work but gives segment fault which prevents debugging operations on Maemo SDK ARMEL rootstrap. &lt;br /&gt;
** see more details from this bug report https://bugs.maemo.org/show_bug.cgi?id=7106&lt;br /&gt;
&lt;br /&gt;
== Maemo PluThon for Eclipse ==&lt;br /&gt;
&lt;br /&gt;
* Hover help for Python for Maemo API documents does not work on Pluthon because documentation is not integrated&lt;br /&gt;
&lt;br /&gt;
== Maemo PC Connectivity ==&lt;br /&gt;
&lt;br /&gt;
* Maemo PC Connectivity functionality with N900 device and Fremantle is more limited than with N800/N810 device with Diablo&lt;br /&gt;
** N900 will not support USB host mode&lt;br /&gt;
*** no workaround (N900 HW issue)&lt;br /&gt;
** N900 will not support IP Forwarding (iptable NAT kernel modules)&lt;br /&gt;
*** workaround is to rebuild Fremantle kernel with NAT enabled and hack kernel symbols for NAT kernel modules&lt;br /&gt;
** N900 will not support BlueTooth connections simultaneously with WLAN connections&lt;br /&gt;
*** no known workaround&lt;br /&gt;
** N900 will not support &amp;quot;USB Networking&amp;quot; with platform default USB applet but only &amp;quot;PC Suite&amp;quot; and &amp;quot;Mass Storage&amp;quot; mode (applet provided by PC Connectivity supports also USB Networking)&lt;br /&gt;
*** workaround is to use ONLY configuration applet provided by PC Connectivity instead of default applet&lt;br /&gt;
*** Notice that USB mode changes are possible only if USB cable is plugged-out and plugged-in between mode changes with both applets&lt;br /&gt;
*** Notice that if both applets (platform default USB applet and PC Connectivity applet) are used for mode changes device may fail to change mode after first change&lt;br /&gt;
** Samba does not work with Fremantle platform and N900 causing disk mounts between N900 and Windows host PC to fail&lt;br /&gt;
*** workaround is to use only SSHFS mounts with Cygwin&lt;br /&gt;
** Fremantle platform and SDK support ONLY 16-bit color depth for X Server&lt;br /&gt;
*** workaround is to configure host PC X Server (in Windows and Mac OS X) to use 16-bit depth instead of default one (if default does not happen to be 16-bit)&lt;br /&gt;
** Fremantle SDK does not support CPU Transparency&lt;br /&gt;
*** workaround is to build and install new SBRSH client manually inside Scratchbox&lt;br /&gt;
&lt;br /&gt;
* Configuring connectivity to work between Maemo device and host PC after installation is still partly manual work on host PC side for all supported operating systems&lt;br /&gt;
&lt;br /&gt;
* When creating a project and setting SBRSH as download method errors like &amp;quot;sbrsh server: fuse: bad mount point&amp;quot; and &amp;quot;sbrsh server: Can&#039;t mount to point:&amp;quot; may happen when SBRSH is used first time with Maemo device (for example after device flashing when SSH keys need to be reset).&lt;br /&gt;
** workaround is to restart Maemo device.&lt;br /&gt;
&lt;br /&gt;
* WLAN connection may get broken if WLAN and USB Networking are used simultaneously. Connection problems may occur after some time (can take hours or days) when device is (re)started and WLAN tries to connect.&lt;br /&gt;
** when the problem occurs user gets &amp;quot;Internet connection failed. Unable to retrieve IP address from server&amp;quot; error&lt;br /&gt;
** workaround is to re-flash Maemo device or manually assign IP number to the connection (which may cause problems with DHCP)&lt;br /&gt;
&lt;br /&gt;
* Windows 7 (and Vista) support is only beta level because Cygwin 1.7 (first Cygwin release to support Windows 7 and Vista) is on beta level (Windows XP with Cygwin 1.5 is fully supported)&lt;br /&gt;
** Cygwin 1.7 beta installation may require manual configuration for Maemo&lt;br /&gt;
** Cygwin 1.7 beta X11 may crash when Maemo applications are run with it&lt;br /&gt;
** Host PC Connectivity does not install if Vista or Windows 7 machine is part of Windows Domain because it fails to create new user for Cygwin 1.7 SSHD service&lt;br /&gt;
*** workaround (but not recommended) is to try manual installation and configuration of Cygwin 1.5 also for Windows 7 (and Vista). Notice that Cygwin project does not support Windows 7 or Vista with Cygwin 1.5 version.&lt;br /&gt;
** SSHFS may not be usable for &amp;quot;normal&amp;quot; user account. This is because /dev/fuse is not writable by default for &amp;quot;normal&amp;quot; users. /dev/fuse is usually writable only for group &amp;quot;fuse&amp;quot; &lt;br /&gt;
*** workaround is to add user account used to &amp;quot;fuse&amp;quot; group&lt;br /&gt;
&lt;br /&gt;
== Maemo SDK Virtual Images ==&lt;br /&gt;
&lt;br /&gt;
* By default NetworkManager is being started after Scratchbox, so the resolv.conf file used by Scratchbox may be invalid which causes network problems&lt;br /&gt;
** workaround is to update resolv.conf file for Scratchbox manually after Maemo SDK installation and/or after network changes&lt;br /&gt;
&lt;br /&gt;
* VMWare Player version 3.0 may have problems to keep ssh connection live in NAT mode (notice that VMWare Player 2.5 or Bridged mode works fine)&lt;br /&gt;
** workround is to use VMWare Player version 2.5.x or use only Bridged network mode for Maemo SDK Virtual Image&lt;br /&gt;
&lt;br /&gt;
* Changing network configuration after installation of VMWare, VirtualBox or QEMU and Maemo SDK Virtual Image may require reconfiguration of network also for the virtualisation environment and Maemo SDK.  &lt;br /&gt;
** workaround is to manually reconfigure network changes to the Virtualisation Environment and Maemo SDK. Log in to the Maemo SDK Virtual Image and invoke DHCP client with &amp;quot;sudo dhclient&amp;quot; to see network configuration or reconfigure network interfaces after network changes&lt;br /&gt;
&lt;br /&gt;
== Maemo Flasher-3.5 Tool ==&lt;br /&gt;
&lt;br /&gt;
* none (so far)&lt;br /&gt;
&lt;br /&gt;
== Integration testing ==&lt;br /&gt;
&lt;br /&gt;
* Some publicly available test suites (for Eclipse components and NFS mounts, for example) are run on Linux, Windows and Mac OS X during integration testing but frameworks and test sets are not yet ready to be published&lt;br /&gt;
&lt;br /&gt;
* Test results (for unit tests and integration tests) for official releases are not yet ready to be published together with products&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Feedback can be sent to eclipse-integration@maemo.org&lt;br /&gt;
&lt;br /&gt;
[[Category:Eclipse]]&lt;/div&gt;</summary>
		<author><name>192.100.124.218</name></author>
	</entry>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=Eclipse_integration/Known_issues&amp;diff=9165</id>
		<title>Eclipse integration/Known issues</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=Eclipse_integration/Known_issues&amp;diff=9165"/>
		<updated>2010-01-04T10:39:25Z</updated>

		<summary type="html">&lt;p&gt;192.100.124.218: /* Maemo PC Connectivity */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Known Issues for Maemo Eclipse Integration Edition 2 Final release (R2.0.0) =&lt;br /&gt;
&lt;br /&gt;
More detailed known issues lists can be found from Garage projects for each product https://garage.maemo.org/.&lt;br /&gt;
&lt;br /&gt;
Detailed list of new features implemented to Maemo Eclipse Integration since previous PreFinal release together with feature plan for final release is here http://wiki.maemo.org/Eclipse_integration.&lt;br /&gt;
&lt;br /&gt;
Release Notes are here http://wiki.maemo.org/Eclipse_integration/ReleaseNotes_final.&lt;br /&gt;
&lt;br /&gt;
== Product baselines ==&lt;br /&gt;
&lt;br /&gt;
* N900 device with Maemo Fremantle 5.x platform releases&lt;br /&gt;
* Fremantle 5.0 SDK, the latest final release&lt;br /&gt;
* N8x0 devices with Maemo Diablo 4.1.x platform releases&lt;br /&gt;
* Diablo 4.1.2 SDK, the latest maintenance release&lt;br /&gt;
&lt;br /&gt;
== Product configuration ==&lt;br /&gt;
&lt;br /&gt;
* Maemo SDK ARMEL rootstrap is meant to be used only for cross-compiling and it does not support running or debugging applications&lt;br /&gt;
&lt;br /&gt;
* Diablo 4.1.2 device requires kernel patch from here http://tablets-dev.nokia.com/maemo-dev-env-downloads.php to be flashed to the Tablet for USB Networking to work with Windows host PC&lt;br /&gt;
&lt;br /&gt;
* Diablo 4.1.2 device requires hildon-desktop patch to be installed to the Maemo device from pc-connectivity Garage repository (see instructions from here http://pc-connectivity.garage.maemo.org/2nd_edition/) for VNC client to work on host PC&lt;br /&gt;
&lt;br /&gt;
== Maemo Mica plugin framework for Eclipse ==&lt;br /&gt;
* none (so far :)&lt;br /&gt;
&lt;br /&gt;
== Maemo ESbox for Eclipse ==&lt;br /&gt;
&lt;br /&gt;
* Hover help for Python does not work on ESBox because documentation has not been integrated.&lt;br /&gt;
&lt;br /&gt;
* Installing Nokia binaries may sometimes fail with exit code 100 when Maemo SDK gets installed. &lt;br /&gt;
** workaround is to restart the Maemo SDK binary installation until it goes through without errors.&lt;br /&gt;
&lt;br /&gt;
* If during Maemo SDK installation to other than Debian based Linux operating systems the default options for Maemo SDK Virtual image installation wizard are chosen and Nokia binaries installation fails, wizard proceeds normally to end (installing Development Environments for C/C++, Python and Qt). If you choose to cancel the installation because failed Nokia binaries Development Environments are not installed properly to the Maemo SDK and Maemo device.&lt;br /&gt;
** workaround is to select &#039;&#039;&#039;Project -&amp;gt; Validate Installed Packages&#039;&#039;&#039; from Eclipse IDE which verifies the integrity of installed development environments and re-installs missing packages for C/C++, Python and Qt to the Maemo SDK and Maemo device.&lt;br /&gt;
&lt;br /&gt;
* Maemo Diablo SDK has ARMEL debugging problems when using Ubuntu Karmic host PC. If Maemo Diablo SDK is installed to Ubuntu Karmic environment native-gdb script will not work but gives segment fault which prevents debugging operations on Maemo SDK ARMEL rootstrap. &lt;br /&gt;
** see more details from this bug report https://bugs.maemo.org/show_bug.cgi?id=7106&lt;br /&gt;
&lt;br /&gt;
== Maemo PluThon for Eclipse ==&lt;br /&gt;
&lt;br /&gt;
* Hover help for Python for Maemo API documents does not work on Pluthon because documentation is not integrated&lt;br /&gt;
&lt;br /&gt;
== Maemo PC Connectivity ==&lt;br /&gt;
&lt;br /&gt;
* Maemo PC Connectivity functionality with N900 device and Fremantle is more limited than with N800/N810 device with Diablo&lt;br /&gt;
** N900 will not support USB host mode&lt;br /&gt;
*** no workaround (N900 HW issue)&lt;br /&gt;
** N900 will not support IP Forwarding (iptable NAT kernel modules)&lt;br /&gt;
*** workaround is to rebuild Fremantle kernel with NAT enabled and hack kernel symbols for NAT kernel modules&lt;br /&gt;
** N900 will not support BlueTooth connections simultaneously with WLAN connections&lt;br /&gt;
*** no known workaround&lt;br /&gt;
** N900 will not support &amp;quot;USB Networking&amp;quot; with platform default USB applet but only &amp;quot;PC Suite&amp;quot; and &amp;quot;Mass Storage&amp;quot; mode (applet provided by PC Connectivity supports also USB Networking)&lt;br /&gt;
*** workaround is to use ONLY configuration applet provided by PC Connectivity instead of default applet&lt;br /&gt;
*** Notice that USB mode changes are possible only if USB cable is plugged-out and plugged-in between mode changes with both applets&lt;br /&gt;
*** Notice that if both applets (platform default USB applet and PC Connectivity applet) are used for mode changes device may fail to change mode after first change&lt;br /&gt;
** Samba does not work with Fremantle platform and N900 causing disk mounts between N900 and Windows host PC to fail&lt;br /&gt;
*** workaround is to use only SSHFS mounts with Cygwin&lt;br /&gt;
** Fremantle platform and SDK support ONLY 16-bit color depth for X Server&lt;br /&gt;
*** workaround is to configure host PC X Server (in Windows and Mac OS X) to use 16-bit depth instead of default one (if default does not happen to be 16-bit)&lt;br /&gt;
** Fremantle SDK does not support CPU Transparency&lt;br /&gt;
*** workaround is to build and install new SBRSH client manually inside Scratchbox&lt;br /&gt;
&lt;br /&gt;
* Configuring connectivity to work between Maemo device and host PC after installation is still partly manual work on host PC side for all supported operating systems&lt;br /&gt;
&lt;br /&gt;
* When creating a project and setting SBRSH as download method errors like &amp;quot;sbrsh server: fuse: bad mount point&amp;quot; and &amp;quot;sbrsh server: Can&#039;t mount to point:&amp;quot; may happen when SBRSH is used first time with Maemo device (for example after device flashing when SSH keys need to be reset).&lt;br /&gt;
** workaround is to restart Maemo device.&lt;br /&gt;
&lt;br /&gt;
* WLAN connection may get broken if WLAN and USB Networking are used simultaneously. Connection problems may occur after some time (can take hours or days) when device is (re)started and WLAN tries to connect.&lt;br /&gt;
** when the problem occurs user gets &amp;quot;Internet connection failed. Unable to retrieve IP address from server&amp;quot; error&lt;br /&gt;
** workaround is to re-flash Maemo device or manually assign IP number to the connection (which may cause problems with DHCP)&lt;br /&gt;
&lt;br /&gt;
* Windows 7 (and Vista) support is only beta level because Cygwin 1.7 (first Cygwin release to support Windows 7 and Vista) is on beta level (Windows XP with Cygwin 1.5 is fully supported)&lt;br /&gt;
** Cygwin 1.7 beta installation may require manual configuration for Maemo&lt;br /&gt;
** Cygwin 1.7 beta X11 may crash when Maemo applications are run with it&lt;br /&gt;
** Host PC Connectivity does not install if Vista or Windows 7 machine is part of Windows Domain because it fails to create new user for Cygwin 1.7 SSHD service&lt;br /&gt;
*** workaround (but not recommended) is to try manual installation and configuration of Cygwin 1.5 also for Windows 7 (and Vista). Notice that Cygwin project does not support Windows 7 or Vista with Cygwin 1.5 version.&lt;br /&gt;
&lt;br /&gt;
== Maemo SDK Virtual Images ==&lt;br /&gt;
&lt;br /&gt;
* By default NetworkManager is being started after Scratchbox, so the resolv.conf file used by Scratchbox may be invalid which causes network problems&lt;br /&gt;
** workaround is to update resolv.conf file for Scratchbox manually after Maemo SDK installation and/or after network changes&lt;br /&gt;
&lt;br /&gt;
* VMWare Player version 3.0 may have problems to keep ssh connection live in NAT mode (notice that VMWare Player 2.5 or Bridged mode works fine)&lt;br /&gt;
** workround is to use VMWare Player version 2.5.x or use only Bridged network mode for Maemo SDK Virtual Image&lt;br /&gt;
&lt;br /&gt;
* Changing network configuration after installation of VMWare, VirtualBox or QEMU and Maemo SDK Virtual Image may require reconfiguration of network also for the virtualisation environment and Maemo SDK.  &lt;br /&gt;
** workaround is to manually reconfigure network changes to the Virtualisation Environment and Maemo SDK. Log in to the Maemo SDK Virtual Image and invoke DHCP client with &amp;quot;sudo dhclient&amp;quot; to see network configuration or reconfigure network interfaces after network changes&lt;br /&gt;
&lt;br /&gt;
== Maemo Flasher-3.5 Tool ==&lt;br /&gt;
&lt;br /&gt;
* none (so far)&lt;br /&gt;
&lt;br /&gt;
== Integration testing ==&lt;br /&gt;
&lt;br /&gt;
* Some publicly available test suites (for Eclipse components and NFS mounts, for example) are run on Linux, Windows and Mac OS X during integration testing but frameworks and test sets are not yet ready to be published&lt;br /&gt;
&lt;br /&gt;
* Test results (for unit tests and integration tests) for official releases are not yet ready to be published together with products&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Feedback can be sent to eclipse-integration@maemo.org&lt;br /&gt;
&lt;br /&gt;
[[Category:Eclipse]]&lt;/div&gt;</summary>
		<author><name>192.100.124.218</name></author>
	</entry>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=Talk:Opt_Problem/Non-Optified_packages&amp;diff=46168</id>
		<title>Talk:Opt Problem/Non-Optified packages</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=Talk:Opt_Problem/Non-Optified_packages&amp;diff=46168"/>
		<updated>2009-12-29T14:46:44Z</updated>

		<summary type="html">&lt;p&gt;192.100.124.218: what to optify and measure&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I don&#039;t think it makes sense to optify SSH.  SSH could be used to debug problem bootup problems and one of them may be /home (with opt) not getting mounted.&lt;br /&gt;
&lt;br /&gt;
I would also recommend using LZO packed sizes of the package contents as the rootfs is compressed.  Non-compressed package size, or the size reported by dpkg are bogus in regards to disk usage.  Script attach to https://bugs.maemo.org/show_bug.cgi?id=5795 bug might help in estimating the compressed size.&lt;/div&gt;</summary>
		<author><name>192.100.124.218</name></author>
	</entry>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=Eclipse_integration/Known_issues&amp;diff=9192</id>
		<title>Eclipse integration/Known issues</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=Eclipse_integration/Known_issues&amp;diff=9192"/>
		<updated>2009-12-14T11:39:34Z</updated>

		<summary type="html">&lt;p&gt;192.100.124.218: /* Maemo ESbox plugin for Eclipse */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Known Issues for Maemo Eclipse Integration Edition 2 Final release =&lt;br /&gt;
&lt;br /&gt;
More detailed known issues lists can be found from Garage projects for each product https://garage.maemo.org/.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Product baselines ==&lt;br /&gt;
&lt;br /&gt;
* N900 device with Maemo Fremantle 5.x platform releases&lt;br /&gt;
* Fremantle 5.0 SDK, the latest final release&lt;br /&gt;
* N8x0 devices with Maemo Diablo 4.1.x platform releases&lt;br /&gt;
* Diablo 4.1.2 SDK, the latest maintenance release&lt;br /&gt;
&lt;br /&gt;
== Product configuration ==&lt;br /&gt;
&lt;br /&gt;
* Maemo SDK ARMEL rootstrap is meant to be used only for cross-compiling and it does not support running or debugging applications&lt;br /&gt;
* Diablo 4.1.2 device requires kernel patch from here http://tablets-dev.nokia.com/maemo-dev-env-downloads.php to be flashed to the Tablet for USB Networking to work with Windows host PC&lt;br /&gt;
* Diablo 4.1.2 device requires hildon-desktop patch to be installed to the Tablet from pc-connectivity Garage repository (see instructions from here http://pc-connectivity.garage.maemo.org/2nd_edition/main.html#SECTION00030000000000000000) for VNC client to work on host PC&lt;br /&gt;
&lt;br /&gt;
== Maemo Mica plugin framework for Eclipse ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Maemo ESbox plugin for Eclipse ==&lt;br /&gt;
&lt;br /&gt;
* When running or debugging SBRSH applications using sandbox mode, applications cannot be terminated from the UI.&lt;br /&gt;
* Hover help for Python does not work on ESBox because documentation has not been integrated.&lt;br /&gt;
* Maemo Qt 4.5 support for Fremantle is only for Fremantle SDK but not for N900 device because N900 device does not have development environment available (Qt 4.5 works fine with Dibalo SDK and N8x0 devices).&lt;br /&gt;
&lt;br /&gt;
== Maemo PluThon plugin for Eclipse ==&lt;br /&gt;
&lt;br /&gt;
* Hover help for Python for Maemo API documents does not work on Pluthon because documentation is not integrated&lt;br /&gt;
* Python installation package creation with N900 device does not work because Python for Maemo Fremantle does not install python-distutil package to the device. N8x0 devices work fine. See https://bugs.maemo.org/show_bug.cgi?id=6161&lt;br /&gt;
&lt;br /&gt;
== Maemo PC Connectivity ==&lt;br /&gt;
&lt;br /&gt;
* Maemo PC Connectivity functionality with N900 device and Fremantle is more limited than with N800/N810 device with Diablo&lt;br /&gt;
** N900 will not support USB host mode&lt;br /&gt;
*** no workaround (N900 HW issue)&lt;br /&gt;
** N900 will not support IP Forwarding (iptable NAT kernel modules)&lt;br /&gt;
*** workaround is to rebuild Fremantle kernel with NAT enabled and hack kernel symbols for NAT kernel modules&lt;br /&gt;
** N900 will not support BlueTooth connections simultaneously with WLAN connections&lt;br /&gt;
*** no known workaround&lt;br /&gt;
** N900 will not support &amp;quot;USB Networking&amp;quot; with platform default USB applet but only &amp;quot;PC Suite&amp;quot; and &amp;quot;Mass Storage&amp;quot; mode (applet provided by PC Connectivity supports also USB Networking)&lt;br /&gt;
*** workaround is to use ONLY configuration applet provided by PC Connectivity instead of default applet&lt;br /&gt;
*** Notice that USB mode changes are possible only if USB cable is plugged-out and plugged-in between mode changes with both applets&lt;br /&gt;
*** Notice that if both applets (platform default USB applet and PC Connectivity applet) are used for mode changes device may fail to change mode after first change&lt;br /&gt;
** Fremantle platform does not have libicd-dummy package available until final release and thus user cannot navigate to Internet through the browser using USB and BlueTooth. He/she will be able to navigate only using WLAN (standard behavior)&lt;br /&gt;
*** final PC Connectivity release will have libicd-dummy package&lt;br /&gt;
** Samba does not work with Fremantle platform and N900 causing disk mounts between N900 and Windows host PC to fail&lt;br /&gt;
*** will be (hopefully) fixed for final release&lt;br /&gt;
** Fremantle platform and SDK support ONLY 16-bit color depth for X Server&lt;br /&gt;
*** workaround is to configure host PC X Server (in Windows and Mac OS X) to use 16-bit depth instead of default one (if default does not happen to be 16-bit)&lt;br /&gt;
* Configuring connectivity to work between Maemo device and host PC after installation is still partly manual work on host PC side for all supported operating systems&lt;br /&gt;
* When creating a project and setting SBRSH as download method quite often errors like &amp;quot;sbrsh server: fuse: bad mount point&amp;quot; and &amp;quot;sbrsh server: Can&#039;t mount to point:&amp;quot; happens. As a workaround you need to restart SBRSHD (on Maemo device side) and restart ESBox (on host PC side)&lt;br /&gt;
* WLAN connection may get broken if using WLAN and USB Networking simultaneously. Connection problems may occur after some time (can take hours or days) when device is (re)started and WLAN tries to connect.&lt;br /&gt;
** when the problem occurs user gets &amp;quot;Internet connection failed. Unable to retrieve IP address from server&amp;quot; error&lt;br /&gt;
** workaround is to reflash Maemo device or manually assign IP number to the connection (which may cause problems with DHCP)&lt;br /&gt;
* If FileZilla has already been installed to the Mac OS X host PC, installation of Host PC Connectivity with default settings fails&lt;br /&gt;
** workaround is to move FileZilla first to trash and then reinstall Host PC Connectivity or select not to install FileZilla with Host PC Connectivity&lt;br /&gt;
&lt;br /&gt;
== Maemo SDK Virtual Image ==&lt;br /&gt;
&lt;br /&gt;
* NetworkManager is being started after Scratchbox, so the resolv.conf file used by Scratchbox may be invalid which causes network problems&lt;br /&gt;
* VMWare Player version 3.0 may have problems to keep ssh connection live in NAT mode (notice that VMWare Player 2.5 or Bridged mode works fine)&lt;br /&gt;
* Changing network configuration after installation of VMWare, VirtualBox or QEMu and Maemo SDK VIrtual Image may require reconfiguration of network also for the virtualisation environment and Maemo SDK.  Usually, log in to the image and invoke &amp;quot;sudo dhclient&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Maemo Flasher-3.5 Tool ==&lt;br /&gt;
&lt;br /&gt;
* Flasher-3.5 for Mac OS X supports only Mac OS X 10.6 Snow Leopard. Flasher-3.5 binary built for 10.6 does not work with Mac OS X 10.5 Leopard but requires new build and new 10.5 binary to be added to the Mac installation package.&lt;br /&gt;
** will be fixed to the final release&lt;br /&gt;
&lt;br /&gt;
== Integration testing ==&lt;br /&gt;
&lt;br /&gt;
* Some publically available test suites (for Eclipse components and NFS mounts, for example) are run on Linux, Windows and Mac OS X during integration testing but frameworks and test sets are not yet ready to be published&lt;br /&gt;
&lt;br /&gt;
* Test results (for unit tests and integration tests) for official releases are not yet ready to be published together with products&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Feedback can be sent to eclipse-integration@maemo.org&lt;br /&gt;
&lt;br /&gt;
[[Category:Eclipse]]&lt;/div&gt;</summary>
		<author><name>192.100.124.218</name></author>
	</entry>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=Documentation/devtools/maemo5&amp;diff=8288</id>
		<title>Documentation/devtools/maemo5</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=Documentation/devtools/maemo5&amp;diff=8288"/>
		<updated>2009-12-09T15:36:25Z</updated>

		<summary type="html">&lt;p&gt;192.100.124.218: Diablo-&amp;gt;Fremantle&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These tools are available in the official maemo 5 Fremantle tools repository at repository.maemo.org. Some of them may have already been available unofficially, but these versions are tested for functionality.&lt;br /&gt;
&lt;br /&gt;
You can propose new tools by filing an enhancement request in Bugzilla.&lt;br /&gt;
&lt;br /&gt;
Installation instructions are available [[#Installation | below]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Categories ==&lt;br /&gt;
&lt;br /&gt;
The tools are arranged into different categories so that you can easily see what tools are available for specific kinds of tasks. The same tool can be present in multiple categories.&lt;br /&gt;
&lt;br /&gt;
=== Code Analysis ===&lt;br /&gt;
{| style=&amp;quot;width:75%&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|[[Documentation/devtools/maemo5/doxygen | doxygen]] || a source code documentation generator tool&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
| [[Documentation/devtools/maemo5/gtk-doc | gtk-doc]] || an API documentation generator&lt;br /&gt;
|}&lt;br /&gt;
=== Debugging ===&lt;br /&gt;
{| style=&amp;quot;width:75%&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|[[Documentation/devtools/maemo5/gdb | gdb]] || GDB is the GNU debugger&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
| [[Documentation/devtools/maemo5/functracer | functracer]] || an allocation backtrace tool&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|[[Documentation/devtools/maemo5/functracer-postproc | functracer-postproc]] || a post-processing tool for functracer output data&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
| [[Documentation/devtools/maemo5/latrace | latrace]] || display a program&#039;s dynamic library calls&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|[[Documentation/devtools/maemo5/ltrace | ltrace]] || a library call tracer&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
| [[Documentation/devtools/maemo5/maemo-debug-scripts | maemo-debug-scripts]] || a set of scripts to help with debugging tasks&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|[[Documentation/devtools/maemo5/sp-error-visualizer | sp-error-visualizer]] || displays log messages as banners&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
| [[Documentation/devtools/maemo5/sp-rich-core | sp-rich-core]] || a core dump data saver&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|[[Documentation/devtools/maemo5/sp-response-time | sp-response-time]] || a library for monitoring UI response times&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|[[Documentation/devtools/maemo5/sp-startup-time | sp-startup-time]] || a library for calculating application startup times&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
| [[Documentation/devtools/maemo5/strace | strace]] || a system call tracer&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|[[Documentation/devtools/maemo5/syslog | syslog]] || a log message collecting service&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
| [[Documentation/devtools/maemo5/valgrind | valgrind]] || a suite of tools for debugging and profiling programs&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|[[Documentation/devtools/maemo5/x11-utils | x11-utils]] || a collection of X Window System debugging tools; xev, xwininfo, xprop, xlsatoms and xlsclients.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Miscellaneous ===&lt;br /&gt;
{| style=&amp;quot;width:75%&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|[[Documentation/devtools/maemo5/less | less]] || a text file viewer/pager&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
| [[Documentation/devtools/maemo5/osso-xterm | osso-xterm]] || a terminal emulator&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|[[Documentation/devtools/maemo5/man-db | man-db]] || manual page infrastructure&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
| [[Documentation/devtools/maemo5/screen | screen]] || provides access to detachable console sessions&lt;br /&gt;
|}&lt;br /&gt;
=== Editors ===&lt;br /&gt;
{| style=&amp;quot;width:75%&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|[[Documentation/devtools/maemo5/nano | nano]] || a friendly text editor&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
| [[Documentation/devtools/maemo5/vi | vi]] || a text editor&lt;br /&gt;
|}&lt;br /&gt;
=== Graphics ===&lt;br /&gt;
{| style=&amp;quot;width:75%&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|[[Documentation/devtools/maemo5/screenshot-tool | screenshot-tool]] || a command line utility to take screenshots&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
| [[Documentation/devtools/maemo5/xresponse | xresponse]] || measures the time taken to update the screen after user action&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|[[Documentation/devtools/maemo5/xresponse-visualize | xresponse-visualize]] || scripts for visualizing xresponse logs&lt;br /&gt;
|}&lt;br /&gt;
=== Networking ===&lt;br /&gt;
{| style=&amp;quot;width:75%&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|[[Documentation/devtools/maemo5/iputils | iputils]] || a collection of TCP/IP related utilities&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
| [[Documentation/devtools/maemo5/netcat | netcat]] || a utility to read and write data across network connections&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|[[Documentation/devtools/maemo5/tcpdump | tcpdump]] || a network traffic capturing utility&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
| [[Documentation/devtools/maemo5/traceroute | traceroute]] || print the route packets take to a network host&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|[[Documentation/devtools/maemo5/wget | wget]] || a utility to non-interactively download files from the Web&lt;br /&gt;
|}&lt;br /&gt;
=== Performance ===&lt;br /&gt;
{| style=&amp;quot;width:75%&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|[[Documentation/devtools/maemo5/oprofile | oprofile]] || a low overhead system wide profiler&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
| [[Documentation/devtools/maemo5/oprofileui | oprofileui]] || a user interface to oprofile&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|[[Documentation/devtools/maemo5/sp-startup-time | sp-startup-time]] || a library for calculating application startup times&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|[[Documentation/devtools/maemo5/valgrind | valgrind]] || a suite of tools for debugging and profiling programs&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
| [[Documentation/devtools/maemo5/xresponse | xresponse]] || measures the time taken to update the screen after user action&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|[[Documentation/devtools/maemo5/xresponse-visualize | xresponse-visualize]] || scripts for visualizing xresponse logs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Resource Usage ===&lt;br /&gt;
{| style=&amp;quot;width:75%&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|[[Documentation/devtools/maemo5/functracer | functracer]] || an allocation backtrace tool&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
| [[Documentation/devtools/maemo5/functracer-postproc | functracer-postproc]] || a post-processing tool for functracer output data&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|[[Documentation/devtools/maemo5/htop | htop]] || an interactive process viewer&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
| [[Documentation/devtools/maemo5/sp-endurance | sp-endurance]] || tools to collect system endurance related information&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|[[Documentation/devtools/maemo5/sp-endurance-postproc | sp-endurance-postproc]] || postprocessing scripts to parse and generate a report from endurance measurement data&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
| [[Documentation/devtools/maemo5/sp-memusage | sp-memusage]] || a collection of memory usage monitoring tools and scripts&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|[[Documentation/devtools/maemo5/sp-smaps-measure | sp-smaps-measure]] || utilities for taking snapshots of smaps memory information&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
| [[Documentation/devtools/maemo5/sp-smaps-visualize | sp-smaps-visualize]] || utilities for analyzing smaps memory information&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|[[Documentation/devtools/maemo5/sysstat | sysstat]] || tools for collecting and reporting system activity information&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
| [[Documentation/devtools/maemo5/valgrind | valgrind]] || a suite of tools for debugging and profiling programs&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|[[Documentation/devtools/maemo5/xrestop | xrestop]] || shows X clients&#039; X resource usage&lt;br /&gt;
|}&lt;br /&gt;
=== Test Automation ===&lt;br /&gt;
{| style=&amp;quot;width:75%&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|[[Documentation/devtools/maemo5/check | check]] || a unit test framework for C&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
| [[Documentation/devtools/maemo5/sp-stress | sp-stress]] || tools to create artificial system load&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|[[Documentation/devtools/maemo5/xnee | xnee]] || automate user actions under X11&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
| [[Documentation/devtools/maemo5/xresponse | xresponse]] || measures the time taken to update the screen after user action&lt;br /&gt;
|}&lt;br /&gt;
=== Wireless Tools ===&lt;br /&gt;
{| style=&amp;quot;width:75%&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|[[Documentation/devtools/maemo5/bluez-hcidump | bluez-hcidump]] || a tool to monitor Bluetooth activity&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
| [[Documentation/devtools/maemo5/wireless-tools | wireless-tools]] || tools for manipulating Linux Wireless Extensions&lt;br /&gt;
|}&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
These tools can be installed in the device by activating the Fremantle tools repository in the Application manager. Developers can also install them to the device or in Scratchbox using the command line interface.&lt;br /&gt;
&lt;br /&gt;
To activate the tools repository with the Application manager, &lt;br /&gt;
[http://mg.pov.lt/770/tools-repository.install open this single-click install file], or manually create a new catalogue like this:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|Catalogue name: || fremantle tools&lt;br /&gt;
|-&lt;br /&gt;
|Web address: || http://repository.maemo.org&lt;br /&gt;
|-&lt;br /&gt;
|Distribution: || fremantle/tools&lt;br /&gt;
|-&lt;br /&gt;
|Components: || free non-free&lt;br /&gt;
|-&lt;br /&gt;
|Disabled: || leave unchecked&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you prefer to edit configuration files yourself instead of using the Application manager, add these lines to your &#039;&#039;/etc/apt/sources.list&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# fremantle tools&lt;br /&gt;
deb http://repository.maemo.org fremantle/tools free non-free&lt;br /&gt;
# fremantle tools sources&lt;br /&gt;
deb-src http://repository.maemo.org fremantle/tools free non-free&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To install a binary package in Scratchbox:                 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ fakeroot apt-get install &amp;amp;lt;bin pkg name&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To install a binary package to the device (as root):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ apt-get install &amp;amp;lt;bin pkg name&amp;amp;gt;   &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To install a source package in Scratchbox or to the device:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ apt-get source &amp;amp;lt;src pkg name&amp;amp;gt;                        &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>192.100.124.218</name></author>
	</entry>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=Documentation/Maemo_5_Final_SDK_Installation&amp;diff=7917</id>
		<title>Documentation/Maemo 5 Final SDK Installation</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=Documentation/Maemo_5_Final_SDK_Installation&amp;diff=7917"/>
		<updated>2009-12-04T12:25:33Z</updated>

		<summary type="html">&lt;p&gt;192.100.124.218: /* Installation procedure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
&lt;br /&gt;
The following document describes the installation of the Maemo 5 Final SDK. Maemo SDK uses Scratchbox as the cross compilation environment into which Maemo specific development files are installed.&lt;br /&gt;
&lt;br /&gt;
Before we begin with the installation, have a look at the minimum system requirements. We officially support x86-32 Debian based distributions, mainly Debian and Ubuntu though it is possible to install the SDK on other flavours of Linux too.&lt;br /&gt;
&lt;br /&gt;
Once you are sure that your development machine fulfils these requirements, you can proceed with the following guidelines:&lt;br /&gt;
&lt;br /&gt;
Maemo 5 SDK comes with two command line installation scripts and GUI installer (beta) to ease the SDK installation.&lt;br /&gt;
*Scratchbox installer script which downloads and installs the required version of Scratchbox onto your host machine.&lt;br /&gt;
*Maemo SDK installer which sets up two targets (armel and x86) inside Scratchbox,  downloads the minimal rootstraps for both targets, and installs the open source development files based on the user selection during the installation process.&lt;br /&gt;
*GUI installer  which combines both Scratchbox and SDK installation.&lt;br /&gt;
&lt;br /&gt;
Maemo 5 SDK also provides the essential Nokia proprietary binary packages needed for Maemo development and additional Nokia applications in an authenticated repository. In order to have access to this repository, you will need to accept the End User License Agreement (EULA).    For the complete functionality and usability of the Maemo SDK, it is required to install Nokia proprietary binary packages in addition to the open source packages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is not included in the Maemo SDK?==&lt;br /&gt;
Xephyr X11 server software is needed on your host machine before you can run any applications in the Maemo SDK. It is an X11 server that provides a device screen for the developer so that you can see all the Maemo application windows and visuals on your host machine. This software is not included in the SDK mainly because it is available on most linux distributions. &lt;br /&gt;
&lt;br /&gt;
If you choose to install Maemo SDK using the GUI installer on Debian based systems, it will provide an option to install Xephyr for you. &lt;br /&gt;
&lt;br /&gt;
If not, you can manually install Xephyr as follows:&lt;br /&gt;
&lt;br /&gt;
On Debian based linux systems, Xephyr can be installed outside Scratchbox environment using apt with root permission:&lt;br /&gt;
&lt;br /&gt;
 $ sudo apt-get install xserver-xephyr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On a Gentoo system you need to install xorg-server with the kdrive useflag. This builds the Xephyr binary.&lt;br /&gt;
&lt;br /&gt;
=Installing Maemo 5 SDK using GUI Installer=&lt;br /&gt;
&lt;br /&gt;
Maemo 5 SDK installation is now made easy with GUI installer. This&lt;br /&gt;
installer will install Scratchbox and Maemo 5 SDK on Debian based&lt;br /&gt;
systems. This installer will allow installation of nokia closed packages and&lt;br /&gt;
applications provided that EULA[http://tablets-dev.nokia.com/eula/index.php this webpage] is accepted. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;GUI Installer has following features:&#039;&#039;&#039;&lt;br /&gt;
* Install/Upgrade Scratchbox&lt;br /&gt;
* Installation of Maemo 5 SDK&lt;br /&gt;
* Installation of nokia-binaries&lt;br /&gt;
* Installation of nokia-apps&lt;br /&gt;
* Installation of Xephyr&lt;br /&gt;
* Creates a launcher for Xephyr on Desktop&lt;br /&gt;
* Creates a shortcut to Scratchbox home folder on Desktop&lt;br /&gt;
* Creates Maemo 5 info page on Desktop that contains useful links for developers &lt;br /&gt;
&lt;br /&gt;
GUI installer offers standard and custom installation modes in a wizard. Standard installation will use default settings, while custom offers more choices. Please note that standard mode will overwrite any of the standard targets (FREMANTLE_X86, FREMANTLE_ARMEL) if present, but contents of Scratchbox home will be preserved. Please use the custom mode if you don&#039;t want to overwrite your targets.&lt;br /&gt;
&lt;br /&gt;
The GUI installer Qt application requires python bindings for Qt. GUI installer can install the required packages if not already installed.&lt;br /&gt;
&lt;br /&gt;
The installer will use http_proxy environment variable if available. If&lt;br /&gt;
your connection doesn&#039;t seem to work, you will be asked to manually&lt;br /&gt;
enter proxy settings.&lt;br /&gt;
&lt;br /&gt;
GUI installer has been tested on Ubuntu Karmic and Debian Lenny, both 32bit and 64bit versions. The GUI installer needs to download Maemo SDK so it requires a working Internet connection.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Starting installation with GUI installer:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
There is some missing options in this python script if you run from non-debian linux systems you got errors, because it will not automatically define the installation path of scratchbox, to correct this errors you must patch this script.&lt;br /&gt;
&lt;br /&gt;
Also you must uncheck Xephyer checkbox and install it manually.&lt;br /&gt;
&lt;br /&gt;
  129c129&lt;br /&gt;
  &amp;lt; SB_PATH = &amp;quot;/scratchbox&amp;quot;&lt;br /&gt;
  ---&lt;br /&gt;
  &amp;gt; SB_PATH = &amp;quot;/opt/scratchbox&amp;quot;&lt;br /&gt;
  2297a2298&lt;br /&gt;
  &amp;gt;       opt = opt + &amp;quot;-s /opt/scratchbox&amp;quot;&lt;br /&gt;
  2351a2353&lt;br /&gt;
  &amp;gt;       cmd = cmd +&amp;quot; -s /opt/scratchbox&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 $ wget http://repository.maemo.org/stable/5.0/maemo-sdk-install-wizard_5.0.py&lt;br /&gt;
 $ chmod a+x maemo-sdk-install-wizard_5.0.py&lt;br /&gt;
&lt;br /&gt;
 $ Installer requires root preveliges&lt;br /&gt;
   Ubuntu&lt;br /&gt;
    sudo ./maemo-sdk-install-wizard_5.0.py&lt;br /&gt;
   Debian&lt;br /&gt;
    su -c ./maemo-sdk-install-wizard_5.0.py&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Limitations:&#039;&#039;&#039;&lt;br /&gt;
*As the installer will do package installation, you should quit all package managers before running it.&lt;br /&gt;
*Please note that detecting scratchbox is not perfect and it will detect only if it is installed in /scratchbox path.&lt;br /&gt;
*Please note that python-qt features used in this installer might not be available in older ubuntu and debian distros.&lt;br /&gt;
*Installer only showss required settings on 64-bit machines but does not add them automatically.&lt;br /&gt;
*Installer will always use DISPLAY :2, if you want to use a different value, you need to change it manually.&lt;br /&gt;
&lt;br /&gt;
=Installing Maemo 5 SDK on x86-32 Debian based distribution=&lt;br /&gt;
&lt;br /&gt;
1. Download the scratchbox installer and the Maemo SDK installer scripts. These are the same scripts as are available through Forum Nokia: [http://www.forum.nokia.com/Tools_Docs_and_Code/Tools/Platforms/Maemo/ Maemo SDK at Forum Nokia].&lt;br /&gt;
&lt;br /&gt;
 $ wget http://repository.maemo.org/stable/5.0/maemo-scratchbox-install_5.0.sh http://repository.maemo.org/stable/5.0/maemo-sdk-install_5.0.sh &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Set the permissions to execute the scripts.&lt;br /&gt;
&lt;br /&gt;
 $ chmod a+x ./maemo-scratchbox-install_5.0.sh  ./maemo-sdk-install_5.0.sh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Run the scratchbox installer with root permission specifying the username to be added to scratchbox users group and sbox group. The username should be an existing user name from the host linux system. This will download about 420 MB of material from the web, which is not resumeable if interrupted.&lt;br /&gt;
&lt;br /&gt;
 $ sudo ./maemo-scratchbox-install_5.0.sh -u USER&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. The installation script adds the specified user to ‘sbox’ user group. For the group membership to be effective in the current terminal session, run the following command:&lt;br /&gt;
&lt;br /&gt;
Note: This command will change the existing group ID during the current login session to ‘sbox’. If you do not want this change, just logout and log back in again for the group membership to be effective.&lt;br /&gt;
&lt;br /&gt;
 $ newgrp sbox&lt;br /&gt;
&lt;br /&gt;
At this step, you should have a working Scratchbox environment ready.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5. Proceed further to run the Maemo SDK installer script. This script is run as &#039;user&#039; outside the scratchbox environment.&lt;br /&gt;
&lt;br /&gt;
 $ ./maemo-sdk-install_5.0.sh&lt;br /&gt;
&lt;br /&gt;
If you have installed Scratchbox in a path alternative to /scratchbox, you will need to specify the path with ‘-s PATH’ option.  More information on available command line options can be found with --help option&lt;br /&gt;
Follow the instructions on the go.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6. Once the script has successfully completed its execution, you can login into Scratchbox.&lt;br /&gt;
&lt;br /&gt;
 $ /scratchbox/login&lt;br /&gt;
&lt;br /&gt;
If you are not able to login, take a look at the [[#Limitations of Scratchbox|limitations of Scratchbox]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7. Proceed further to accept the EULA in order to obtain the Nokia proprietary binary packages. These Nokia binaries are essential for the complete functionality of the Maemo SDK.&lt;br /&gt;
&lt;br /&gt;
7.1. Accept the EULA on [http://tablets-dev.nokia.com/eula/index.php this webpage] &amp;lt;br&amp;gt;&lt;br /&gt;
7.2. Copy the sources.list entry given to you after the license acceptance to your Scratchbox x86 and armel target’s /etc/apt/sources.list file.  Execute the commands below on the _ARMEL and _X86 targets.&lt;br /&gt;
&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;gt; sb-conf select FREMANTLE_ARMEL&lt;br /&gt;
 [sbox-FREMANTLE_ARMEL: ~] &amp;gt; nano /etc/apt/sources.list  # add deb line &lt;br /&gt;
 [sbox-FREMANTLE_ARMEL: ~] &amp;gt; apt-get update&lt;br /&gt;
 [sbox-FREMANTLE_ARMEL: ~] &amp;gt; fakeroot apt-get install nokia-binaries nokia-apps&lt;br /&gt;
&lt;br /&gt;
 [sbox-FREMANTLE_ARMEL: ~] &amp;gt; sb-conf select FREMANTLE_X86&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;gt; nano /etc/apt/sources.list  # add deb line &lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;gt; apt-get update&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;gt; fakeroot apt-get install nokia-binaries nokia-apps&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The above step installs all needed Nokia proprietary binary packages along with the open source binaries that have dependencies to Nokia proprietary binary packages.&lt;br /&gt;
With this, your Maemo 5 SDK environment is set up completely and ready for development.&lt;br /&gt;
&lt;br /&gt;
=Starting/Shutting down the SDK UI=&lt;br /&gt;
&lt;br /&gt;
Before starting the UI framework, ensure that you have installed the following:&lt;br /&gt;
*Xephyr X11 server on the host machine outside the Scratchbox environment&lt;br /&gt;
*The SDK as described above&lt;br /&gt;
*The Nokia proprietary binary packages&lt;br /&gt;
&lt;br /&gt;
1. Now, run Xephyr outside the scratchbox environment:&lt;br /&gt;
&lt;br /&gt;
 $ Xephyr :2 -host-cursor -screen 800x480x16 -dpi 96 -ac -kb &amp;amp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Login to Scratchbox X86 target&lt;br /&gt;
&lt;br /&gt;
 $ /scratchbox/login&lt;br /&gt;
 &lt;br /&gt;
 Welcome to Scratchbox, the cross-compilation toolkit!&lt;br /&gt;
 &lt;br /&gt;
 Use &#039;sb-menu&#039; to change your compilation target.&lt;br /&gt;
 &lt;br /&gt;
 See /scratchbox/doc/ for documentation.&lt;br /&gt;
 &lt;br /&gt;
 [sbox-FREMANTLE_X86: ~]&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Set the DISPLAY variable to match the display setting given for the Xephyr server.&lt;br /&gt;
&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;gt;export DISPLAY=:2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. Start the UI framework .&lt;br /&gt;
&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;gt;af-sb-init.sh start&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5. You will now see the UI framework up and running on the Xephyr window.&lt;br /&gt;
&lt;br /&gt;
6. You can shut down the UI framework as follows:&lt;br /&gt;
&lt;br /&gt;
  [sbox-FREMANTLE_X86: ~] &amp;gt;af-sb-init.sh stop&lt;br /&gt;
&lt;br /&gt;
=Installation of x86-64 Debian based distributions=&lt;br /&gt;
Since Scratchbox only supports x86-32 bit Linux host systems, we need to force the installation of x86-32 Scratchbox packages on the x86-64 bit machines. Using the -F option with the Scratchbox installation script can do this.&lt;br /&gt;
&lt;br /&gt;
==Installation procedure==&lt;br /&gt;
&lt;br /&gt;
*Download the Scratchbox installer and the Maemo SDK installer scripts.&lt;br /&gt;
&lt;br /&gt;
 $ wget -c http://repository.maemo.org/stable/5.0/maemo-scratchbox-install_5.0.sh http://repository.maemo.org/stable/5.0/maemo-sdk-install_5.0.sh &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Set permissions to execute the scripts.&lt;br /&gt;
&lt;br /&gt;
 $ chmod a+x ./maemo-scratchbox-install_5.0.sh  ./maemo-sdk-install_5.0.sh&lt;br /&gt;
&lt;br /&gt;
*Run the Scratchbox installer script as &#039;root user&#039; with -F option, specifying the username to be added to Scratchbox users group sbox group as follows:&lt;br /&gt;
&lt;br /&gt;
 $ sudo ./maemo-scratchbox-install_5.0.sh -F -u $USER&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Upon successful installation of Scratchbox, continue to run the Maemo 5 Final SDK Installer as instructed in the x86-32 installation.&lt;br /&gt;
&lt;br /&gt;
=Starting Scratchbox on non-Debian based systems=&lt;br /&gt;
If Scratchbox was installed from Debian packages, the /etc/init.d/scratchbox-core init script is installed and Scratchbox should start automatically when the system is rebooted. However, if you have installed Scratchbox from tarballs, then rebooting your machine will clear away all the mounts and binfmt_misc registrations that Scratchbox requires to work. To get your Scratchbox working again after reboot, you have to run the following command as root:&lt;br /&gt;
&lt;br /&gt;
 $ sudo /scratchbox/sbin/sbox_ctl start&lt;br /&gt;
&lt;br /&gt;
Alternatively you can add sbox_ctl as an init script to the /etc/init.d directory and create the appropriate links at your system&#039;s runlevel directories. This procedure works on some systems:&lt;br /&gt;
&lt;br /&gt;
 $ ln -s /scratchbox/sbin/sbox_ctl /etc/init.d/scratchbox-core&lt;br /&gt;
 $ /usr/sbin/update-rc.d scratchbox-core defaults&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Refer to your system&#039;s documentation for the correct instructions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Upgrading from Maemo 5 Beta2 SDK=&lt;br /&gt;
&lt;br /&gt;
A smooth upgrade from beta2 to Final SDK is unfortunately not possible. Hence it is advised to freshly install the Final SDK. Before you do so, read through the instructions below.&lt;br /&gt;
&lt;br /&gt;
Some of the Nokia applications shipped with the final SDK use a hard coded path for user home directory which presents a problem since the default username on the device differs from the username on the developer’s machine. To make these applications work, it is required to create a home directory that matches the hard coded value.  This needs to be done outside scratchbox using root privileges. The -u  option in the Scratchbox installer has been updated to create the necessary symlinks.  Running the installer with -u option when the Scratchbox has been already installed will just add the user and create symlinks.  Running it for already existing user will check for the symlink and create it if needed.&lt;br /&gt;
&lt;br /&gt;
Run the command below to create the symlink for existing Scratchbox user:&lt;br /&gt;
&lt;br /&gt;
 $ sudo ./maemo-scratchbox-install_5.0.sh -u &amp;lt;EXISTING_USER&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can create the symlinks manually as follows, if Scratchbox is installed in the default location:&lt;br /&gt;
&lt;br /&gt;
 $ sudo ln -s /scratchbox/users/&amp;lt;username&amp;gt;/home/&amp;lt;username&amp;gt; /scratchbox/users/&amp;lt;username&amp;gt;/home/user&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Final SDK installer additionally creates a directory /opt under /target/&amp;lt;target_name&amp;gt;/.&lt;br /&gt;
&#039;&#039;&#039;Reason:&#039;&#039;&#039; In order to facilitate installing applications under /opt on the device, a symlink  /opt has been created pointing to /home/opt. The SDK inherits this feature. Under Scratchbox, /opt points to /target/links/opt which in turn points to /targets/&amp;lt;target_name&amp;gt;/opt. Installing the rootstraps makes this point to /home/opt, which is not what we want, since we need /opt to be target specific.  In order to resolve this situation, we have to manually check whether /targets/&amp;lt;target_name&amp;gt;/opt is a symlink and if it is, remove it and create a directory with the same name.&lt;br /&gt;
&lt;br /&gt;
=Upgrading from Maemo 4.x/Diablo SDK=&lt;br /&gt;
Due to the fact that there are API breaks in Fremantle, we cannot upgrade Diablo SDK to Fremantle. We can however have Fremantle Scratchbox targets co-exist with Diablo targets.&lt;br /&gt;
&lt;br /&gt;
For this, we need to first upgrade the Scratchbox installation on our host machine.&lt;br /&gt;
&lt;br /&gt;
*Download the Maemo5 scratchbox installer.&lt;br /&gt;
&lt;br /&gt;
*Set executable permissions and run it as follows:&lt;br /&gt;
&lt;br /&gt;
 $ chmod a+x ./maemo-scratchbox-install_5.0.sh&lt;br /&gt;
 $ sudo  ./maemo-scratchbox-install_5.0.sh -U -u &amp;lt;EXISTING_USER&amp;gt; -s /scratchbox&lt;br /&gt;
&lt;br /&gt;
Once the Scratchbox installation is done, run the Maemo 5 Final SDK installer.&lt;br /&gt;
&lt;br /&gt;
=Manual Installation=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;On x86-32 Debian based systems:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*You can add the following line into your host machine&#039;s /etc/apt/sources.list file.&lt;br /&gt;
&lt;br /&gt;
 deb http://scratchbox.org/debian/ maemo5-sdk main&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Install the needed Scratchbox packages with root permission&lt;br /&gt;
&lt;br /&gt;
 $ sudo apt-get update&lt;br /&gt;
 $ sudo apt-get install scratchbox-core scratchbox-libs scratchbox-devkit-qemu scratchbox-devkit-debian scratchbox-devkit-doctools scratchbox-devkit-perl scratchbox-toolchain-host-gcc scratchbox-toolchain-cs2007q3-glibc2.5-arm7 scratchbox-toolchain-cs2007q3-glibc2.5-i486  scratchbox-devkit-svn scratchbox-devkit-git scratchbox-devkit-apt-https&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;On x86-64 Debian based systems:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Download the Scratchbox packages from here.&lt;br /&gt;
&lt;br /&gt;
*Force the installation of the x86-32 packages with root permission as follows:&lt;br /&gt;
&lt;br /&gt;
 $ sudo dpkg -i --force-architecture scratchbox-core scratchbox-libs scratchbox-devkit-qemu scratchbox-devkit-debian scratchbox-devkit-doctools scratchbox-devkit-perl scratchbox-toolchain-host-gcc scratchbox-toolchain-cs2007q3-glibc2.5-arm7 scratchbox-toolchain-cs2007q3-glibc2.5-i486  scratchbox-devkit-svn scratchbox-devkit-git scratchbox-devkit-apt-https&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Scratchbox packages will be unpacked to /scratchbox directory and the installation procedure will ask you some questions about the group and user accounts. Default group to Scratchbox is &#039;sbox&#039;.&lt;br /&gt;
&lt;br /&gt;
*Users who will be using Scratchbox should be added using the following command with root permission:&lt;br /&gt;
&lt;br /&gt;
 $ sudo /scratchbox/sbin/sbox_adduser USER yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It will automatically include the user to the Scratchbox group, create user directories under /scratchbox/users and mount several directories (/dev, /proc, /tmp) under the user directory.&lt;br /&gt;
&lt;br /&gt;
*Some of the Nokia applications shipped with the final SDK use a hard coded path for user home directory which presents a problem since the default username on the device differs from the username on the developer’s machine. To make these applications work, it is required to create a home directory that matches the hard coded value.  This needs to be done outside scratchbox using root privileges.&lt;br /&gt;
&lt;br /&gt;
 $ sudo ln -s /scratchbox/users/&amp;lt;username&amp;gt;/home/&amp;lt;username&amp;gt; /scratchbox/users/&amp;lt;username&amp;gt;/home/user&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*For the group membership to be effective in the current terminal session, run the following command:&lt;br /&gt;
&lt;br /&gt;
 $ newgrp sbox&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; This command will change the existing group ID during the current login session to &#039;sbox&#039;. If you do not want to change, simply logout and log back in for the group membership to be effective.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Log-in to Scratchbox.&lt;br /&gt;
&lt;br /&gt;
 $ /scratchbox/login&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Configure the scratchbox x86 and armel targets as follows:&lt;br /&gt;
&lt;br /&gt;
 [sbox-&amp;gt;:~]&amp;gt;sb-conf st FREMANTLE_X86 -c cs2007q3-glibc2.5-i486 -d perl:debian-etch:doctools:svn:git -t none&lt;br /&gt;
 [sbox-&amp;gt;:~]&amp;gt;sb-conf st FREMANTLE_ARMEL -c cs2007q3-glibc2.5-arm7 -d qemu:perl:debian-etch:doctools:svn:git -t qemu-arm-sb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Download the minimal rootstraps.&lt;br /&gt;
&lt;br /&gt;
 [sbox-&amp;gt;:~]&amp;gt; wget http://repository.maemo.org/stable/5.0/armel/maemo-sdk-rootstrap_5.0_armel.tgz http://repository.maemo.org/stable/5.0/i386/maemo-sdk-rootstrap_5.0_i386.tgz&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Switch to x86 target, install the devkits, etc and fakeroot into the target, install the minimal rootstrap and finally the Maemo development files.&lt;br /&gt;
&lt;br /&gt;
 [sbox-&amp;gt;:~]&amp;gt; sb-conf se FREMANTLE_X86&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;gt; sb-conf rs maemo-sdk-rootstrap_5.0_i386.tgz&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;gt; sb-conf in -edFL&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;gt; apt-get update&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;gt; fakeroot apt-get install maemo-sdk-debug&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The meta-package &#039;maemo-sdk-debug&#039; installs all needed open source runtime, development and debug pakcages into the target. Use maemo-sdk-runtime if you want only runtime packages to be installed or user maemo-sdk-dev if you want only the runtime + development packages to be installed.&lt;br /&gt;
&lt;br /&gt;
*Accept the EULA from [http://tablets-dev.nokia.com/eula/index.php here]  to obtain the URL to access the Nokia binaries repository.&lt;br /&gt;
&lt;br /&gt;
*Add the URL thus obtained to the Scratchbox target&#039;s /etc/apt/sources.list and do the following:&lt;br /&gt;
&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;gt;apt-get update&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;gt;fakeroot apt-get install nokia-binaries nokia-apps&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*In order to facilitate installing applications under /opt on the device, a symlink  /opt has been created pointing to /home/opt. The SDK inherits this feature. Under Scratchbox, /opt points to /target/links/opt which in turn points to /targets/&amp;lt;target_name&amp;gt;/opt. Installing the rootstraps makes this point to /home/opt, which is not what we want, since we need /opt to be target specific.  In order to resolve this situation,&lt;br /&gt;
&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;gt;rm /targets/FREMANTLE_X86/opt&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;gt;mkdir /targets/FREMANTLE_X86/opt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Execute similar steps on the armel target too to set it up:&lt;br /&gt;
&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~]&amp;gt; sb-conf se FREMANTLE_ARMEL&lt;br /&gt;
 [sbox-FREMANTLE_ARMEL: ~] &amp;gt; sb-conf rs maemo-sdk-rootstrap_5.0_armel.tgz&lt;br /&gt;
 [sbox-FREMANTLE_ARMEL: ~] &amp;gt; sb-conf in -edFL&lt;br /&gt;
 [sbox-FREMANTLE_ARMEL: ~] &amp;gt; apt-get update&lt;br /&gt;
 [sbox-FREMANTLE_ARMEL: ~] &amp;gt; fakeroot apt-get install maemo-sdk-debug&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Add the same URL obtained above to access the Nokia binaries repository under /etc/apt/sources.list file of the Scratchbox armel target.&lt;br /&gt;
&lt;br /&gt;
 [sbox-FREMANTLE_ARMEL: ~] &amp;gt;apt-get update&lt;br /&gt;
 [sbox-FREMANTLE_ARMEL: ~] &amp;gt;fakeroot apt-get install nokia-binaries nokia-apps&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Create the /opt directory.&lt;br /&gt;
&lt;br /&gt;
 [sbox-FREMANTLE_ARMEL: ~] &amp;gt;rm /targets/FREMANTLE_ARMEL/opt&lt;br /&gt;
 [sbox-FREMANTLE_ARMEL: ~] &amp;gt;mkdir /targets/FREMANTLE_ARMEL/opt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With this, you must now have both the targets setup and ready to use.&lt;br /&gt;
&lt;br /&gt;
[[#Starting/Shutting down the SDK UI|Start the UI framework]].&lt;br /&gt;
&lt;br /&gt;
=Un-installation=&lt;br /&gt;
&lt;br /&gt;
Make sure that you have no process running inside Scratchbox. Uninstalling Scratchbox will remove everything that is installed and saved inside Scratchbox. Please take a backup of your files from Scratchbox user home directory if needed.&lt;br /&gt;
&lt;br /&gt;
On Debian based systems, do the following with root permissions:&lt;br /&gt;
&lt;br /&gt;
 $ sudo apt-get remove scratchbox-* --purge&lt;br /&gt;
 $ sudo rm -rf /scratchbox&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On non-Debian based systems, you need to stop scratchbox as follows before removing it.&lt;br /&gt;
&lt;br /&gt;
 $ sudo /scratchbox/sbin/sbox_ctl stop&lt;br /&gt;
 $ sudo rm -rf /scratchbox&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Limitations of Scratchbox=&lt;br /&gt;
&lt;br /&gt;
The following limitations have been noted in the usage of Scratchbox:&lt;br /&gt;
&lt;br /&gt;
==VDSO support==&lt;br /&gt;
Scratchbox does not work when VDSO32 support is enabled in the host&#039;s kernel. We&#039;re working on making it possible, but at the moment there are some workarounds, which are presented here.&lt;br /&gt;
&lt;br /&gt;
If your host has VDSO32 turned on you will get an error like this when trying to login to Scratchbox.&lt;br /&gt;
&lt;br /&gt;
 No directory, logging in with HOME=/&lt;br /&gt;
 Inconsistency detected by ld.so: rtld.c: 1192: dl_main: Assertion `(void *) &lt;br /&gt;
 ph-&amp;gt;p_vaddr == _rtld_local._dl_sysinfo_dso&#039; failed!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==x86-64 kernel==&lt;br /&gt;
&lt;br /&gt;
x86-64 Linux kernels starting from version 2.6.25 enable VDSO32 by default. To temporarily disable VDSO32 execute &lt;br /&gt;
&lt;br /&gt;
 sysctl abi.vsyscall32=0&lt;br /&gt;
&lt;br /&gt;
On Linux kernel 2.6.24 &amp;lt;= you can disable VDSO32 by executing&lt;br /&gt;
&lt;br /&gt;
 sysctl vm.vdso_enabled=0&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
 sysctl kernel.vdso=0&lt;br /&gt;
&lt;br /&gt;
The current setting of VDSO32 can be verified by using sysctl. Only values 0 and 2 are compatible with Scratchbox. In our examples we use 0 (disable). 2 enables compat mode.&lt;br /&gt;
&lt;br /&gt;
You can set all of these permanently by adding the following lines to /etc/sysctl.conf&lt;br /&gt;
&lt;br /&gt;
 vm.vdso_enabled = 0&lt;br /&gt;
 abi.vsyscall32 = 0&lt;br /&gt;
 kernel.vdso = 0&lt;br /&gt;
&lt;br /&gt;
Save the file and run the command:&lt;br /&gt;
&lt;br /&gt;
 $ sudo sysctl -p&lt;br /&gt;
&lt;br /&gt;
Please note the correct line depends on your Linux kernel version. When you execute sysctl -p you may get a warning about unknown keys. You can safely ignore those warnings as long as one of the 3 settings works.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING :&#039;&#039;&#039; You should try setting these values by echoing them to the given locations before adding them to sysctl.conf to see if they cause any problems. For example, in some Ubuntu Gutsy installations, it has been observed that changing the VDSO settings will hang the system and thus making permanent changes in sysctl.conf may, in these cases, make your system unbootable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Known Issues in the SDK=&lt;br /&gt;
&lt;br /&gt;
*A list of issues and their solutions is http://wiki.maemo.org/Q%26A_-_SDK_and_Scratchbox&lt;br /&gt;
&lt;br /&gt;
*Unnecessary warnings and debugging messages are printed out when the hildon application framework is started.&lt;br /&gt;
&lt;br /&gt;
*Armel target does not bring up the UI framework&lt;br /&gt;
&lt;br /&gt;
*It has been noted that Xephyr dies with the application framework at times. The crash in question might even be Xephyr related since the application framework behaves differently with different versions/builds of Xephyr. The case seems to be worst on Xephyr that comes with Ubuntu Jaunty, there Xephyr will die when running any application that contains an input field and clicking on that field with a mouse to invoke the input method. On Fedora Code 10 the Xephyr does not mind the mouse clicks but dies when shutting down the application framework. On the other hand Xephyr on Ubuntu Intrepid or even the Intrepid version recompiled for Jaunty does not experience crashing in these situations.&lt;br /&gt;
&lt;br /&gt;
A patch is already available for the Xephyr on Ubuntu Jaunty and can be found at http://bugs.freedesktop.org/show_bug.cgi?id=21591. Binaries packages for [http://launchpadlibrarian.net/30330126/xserver-xephyr_1.6.3-1ubuntu2_i386.deb xserver-xephyr] package and its dependencies ([http://launchpadlibrarian.net/27533744/libgpg-error0_1.6-1ubuntu1_i386.deb libgpg-error0] and [http://launchpadlibrarian.net/28623981/libgcrypt11_1.4.4-2ubuntu2_i386.deb libcrypt11]) can be download from Ubuntu Jaunty repositories.&lt;br /&gt;
&lt;br /&gt;
*The performance of clutter can be improved by enabling hardware acceleration if not enabled already. In some cases, it would require installing restricted/proprietary drivers (Eg: on host machines with ATI or NVidia graphics card). Refer to [[Maemo5 clutter performance]] for more details.&lt;br /&gt;
&lt;br /&gt;
*Running Xephyr with -kb option disables entry of “@” symbol. However, removing -kb option disables cursor keys.&lt;br /&gt;
&lt;br /&gt;
*Colours invert sometimes in some applications. (Browser and Photo&#039;s for example)&lt;br /&gt;
&lt;br /&gt;
[[Category:Scratchbox]]&lt;/div&gt;</summary>
		<author><name>192.100.124.218</name></author>
	</entry>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=Maemo-Barcelona_Long_Weekend/UX_meets_Code&amp;diff=15874</id>
		<title>Maemo-Barcelona Long Weekend/UX meets Code</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=Maemo-Barcelona_Long_Weekend/UX_meets_Code&amp;diff=15874"/>
		<updated>2009-12-02T07:18:14Z</updated>

		<summary type="html">&lt;p&gt;192.100.124.218: /* Participants */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page is complemented by [http://talk.maemo.org/showthread.php?p=393329 this discussion thread]&lt;br /&gt;
&lt;br /&gt;
About 50 community developers and user experience professionals work together during 3 days.&lt;br /&gt;
&lt;br /&gt;
=== 3 goals ===&lt;br /&gt;
&lt;br /&gt;
* Improve the usability and visual appeal of great Maemo apps.&lt;br /&gt;
* Improve the UX documentation for Maemo developers.&lt;br /&gt;
* Get a critical mass of people interested in pushing forward UX meets Code activities online and face to face.&lt;br /&gt;
&lt;br /&gt;
=== Way of working ===&lt;br /&gt;
&lt;br /&gt;
All the activity happens in a big room (official capacity for 70 people).&lt;br /&gt;
&lt;br /&gt;
The group activity on a project can happen in one side and you can be doing your own thing on the other side if you prefer. Free flow!&lt;br /&gt;
&lt;br /&gt;
You should be able to find some time during the day to get some opinions and help from one of the experts about specific details of your project.&lt;br /&gt;
&lt;br /&gt;
Every day has a similar flexible structure:&lt;br /&gt;
* 9:00 - Starting with a briefing about the topic: presentation + Q&amp;amp;A.&lt;br /&gt;
* 11:00 - About 2h discussion and collaboration on a real project. &lt;br /&gt;
* 13:00 - Lunch&lt;br /&gt;
* 14:00 - 2nd real project.&lt;br /&gt;
* 16:00 - Everybody: hard work. Other projects feel free to share your plans and problems &lt;br /&gt;
* 18:00 - Recap&lt;br /&gt;
* 18:30-ish - Enjoy the city!&lt;br /&gt;
&lt;br /&gt;
===Projects===&lt;br /&gt;
&lt;br /&gt;
6 projects have been selected to get get special attention during the Long Weekend. The group will do its best to have a Before and After for them. Participants in the hackfest can join the discussion/work of a specific project or can you their time to work on their own projects. &lt;br /&gt;
&lt;br /&gt;
{|width=100%&lt;br /&gt;
!width=10%| &lt;br /&gt;
!width=30% align=center style=&amp;quot;background-color:#efe;&amp;quot;|&amp;lt;span style=&amp;quot;font-size: 20pt; font-weight: bold;&amp;quot;&amp;gt;Friday&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;concepting&lt;br /&gt;
!width=30% align=center style=&amp;quot;background-color:#fee;&amp;quot;|&amp;lt;span style=&amp;quot;font-size: 20pt; font-weight: bold;&amp;quot;&amp;gt;Saturday&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;interaction&lt;br /&gt;
!width=30% align=center style=&amp;quot;background-color:#eef;&amp;quot;|&amp;lt;span style=&amp;quot;font-size: 20pt; font-weight: bold;&amp;quot;&amp;gt;Sunday&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;graphics&lt;br /&gt;
|-&lt;br /&gt;
|align=right style=&amp;quot;padding:10px;&amp;quot;|11:00-12:00&lt;br /&gt;
|style=&amp;quot;padding:10px;background-color:#efe;&amp;quot;|[http://www.youtube.com/watch?v=9rEZxWjVvGo liqbase Calendar]&lt;br /&gt;
|style=&amp;quot;padding:10px;background-color:#fee;&amp;quot;|[[Maemo-Barcelona_Long_Weekend/UX_meets_Code/MaemoMapper|Mapper]]&lt;br /&gt;
|style=&amp;quot;padding:10px;background-color:#eef;&amp;quot;|[http://maemo.org/downloads/product/Maemo5/gpodder/ gPodder]&lt;br /&gt;
|-&lt;br /&gt;
|align=right style=&amp;quot;padding:10px;&amp;quot;|14:00-16:00&lt;br /&gt;
|style=&amp;quot;padding:10px;background-color:#efe;&amp;quot;|Video editor&lt;br /&gt;
|style=&amp;quot;padding:10px;background-color:#fee;&amp;quot;|[http://maemo.org/downloads/product/Maemo5/xournal/ Xournal]&lt;br /&gt;
|style=&amp;quot;padding:10px;background-color:#eef;&amp;quot;|MaStory&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
List here other projects with developers participants in the hackfest. Please provide links to the project and your thought on what would you like to improve and what do you plan to achieve during the whole weekend. Add your names!&lt;br /&gt;
&lt;br /&gt;
* [http://maemo.org/downloads/product/Maemo5/fmradio/ FM Radio] - Martin Grimme - general UI overhaul for a better user experience&lt;br /&gt;
* [http://maemo.org/downloads/product/Maemo5/conboy/ Conboy] - Cornelius Hald - Fixing settings UI / Polishing synchronization work flow and dialogs / Making control file translatable / Getting ideas for next version&lt;br /&gt;
* [http://maemo.org/downloads/product/OS2008/diskusage/ DiskUsage], [http://maemo.org/downloads/product/OS2008/kandis/ Kandis], [http://maemo.org/downloads/product/OS2008/PackageView/ PackageView], [http://maemo.org/downloads/product/OS2008/weightjinni/ WeightJinni], [http://maemo.org/downloads/product/OS2008/wifiinfo/ WifiInfo], [http://maemo.org/downloads/product/OS2008/mathjinni/ MathJinni], [http://maemo.org/downloads/product/OS2008/dicejinni/ DiceJinni], [http://maemo.org/downloads/product/OS2008/findmine/ FindMine], [http://maemo.org/downloads/product/OS2008/pushit/ PushIt], [http://maemo.org/downloads/product/OS2008/givemefive/ GiveMeFive], [http://maemo.org/downloads/product/OS2008/gpsjinni/ GPSJinni] - Tim Teulings - Usage of tables with table headers and multiple columns vs. one table column with complex layout (general), general usability improvements (MathJinni, WeightJinni, DiceJinni, Kandis, GPSJinni) replacement suggestions for tree view (MathJinni), thumbable gaming interaction (FindMine, PushIt, GiveMeFive) and technical support for Gtk/hildon theming alignment and Qt know how (general) - all applications also available in maemo5 extras-devel!&lt;br /&gt;
&lt;br /&gt;
=== Participants ===&lt;br /&gt;
Please add your names and a link to your maemo.org profile. Please edit your profile adding all the relevant info about you and links to your website, blog, etc.&lt;br /&gt;
&lt;br /&gt;
* [http://maemo.org/profile/view/martin/ Martin Schuele] - Principal UI designer for N900&lt;br /&gt;
* [http://maemo.org/profile/view/msoini/ Mox Soini] - Interaction Designer, Concepting, Maemo-as-platform&lt;br /&gt;
* Steffen Halme - Graphic Designer specializing in icons&lt;br /&gt;
* [http://personal.inet.fi/koti/mgimpl/ Martin Gimpl] - Graphic Designer, Concepting, Transitions, Graphics&lt;br /&gt;
* [http://maemo.org/profile/view/asimula/ Adele Simula] - UX Graphic Designer, Concepting, Layout Design, Graphics&lt;br /&gt;
* Sanna Nordling - Interaction designer, Concepting, Application UX design&lt;br /&gt;
* [http://maemo.org/profile/view/jmaaniit/ Jussi Maaniitty] - UX Management, Concepting&lt;br /&gt;
* Juha Vartiainen - Interaction Design, Concepting, Application UI design&lt;br /&gt;
* Jaakko Viitanen - Interaction Design, Concepting, Application UI design&lt;br /&gt;
* [http://blogs.forum.nokia.com/blog/arabella-davids-forum-nokia-blog Arabella David], Design &amp;amp; User Experience Program Manager @ Forum Nokia&lt;br /&gt;
* Sanna Häivalainen, UX Specialist @ Forum Nokia&lt;br /&gt;
* [http://maemo.org/profile/view/tigert/ Tuomas Kuosmanen] - Senior Designer @ Nokia&lt;br /&gt;
* [http://maemo.org/profile/view/patifa/ Patricia Montenegro] - Lead User Experience Designer @ INdT&lt;br /&gt;
* [http://maemo.org/profile/view/allsomm/ Alysson Santos] - Senior Designer @ INdT - interested in the video editor&lt;br /&gt;
* Annu-Maaria Nivala&lt;br /&gt;
* Jan Krebber&lt;br /&gt;
* Kirsi Rönkkö&lt;br /&gt;
* Ulla Niemelä&lt;br /&gt;
&lt;br /&gt;
===Help with specific technologies===&lt;br /&gt;
&lt;br /&gt;
====Developers willing to help====&lt;br /&gt;
Please list technologies you are using and working with here. This makes it easier for other people to quickly find a person to ask specific technical questions.&lt;br /&gt;
&lt;br /&gt;
* Thomas Perl: PyMaemo, GTK+, Hildon, PyGTK, Python&lt;br /&gt;
* [http://maemo.org/profile/view/andy80/ Andrea Grandi]: Pymaemo, Python, UI design concepts&lt;br /&gt;
* [http://maemo.org/profile/view/anidel/ Aniello Del Sorbo]: GTK, C, Debian packaging. Not an expert.&lt;br /&gt;
* Jesus Sanchez-Palencia: Qt 4.6, libqt4-maemo5 (Qt 4.6 for Maemo5)&lt;br /&gt;
* Zaheer Abbas Merali: GStreamer, Python, PyGTK&lt;br /&gt;
* [http://maemo.org/profile/view/vdvsx/ Valério Valério]: Python, C/C++, EFL, PyGTK, Qt (not an expert).&lt;br /&gt;
* [http://maemo.org/profile/view/mardy/ Alberto Mardegan]: GTK, Hildon, C/C++, Qt, Clutter (just basics).&lt;br /&gt;
* [http://maemo.org/profile/view/marcoil/ Marc Ordinas i Llopis]: C, Gtk+, Hildon, Hildon-desktop.&lt;br /&gt;
* [http://maemo.org/profile/view/pycage/ Martin Grimme]: PyMaemo, GDK, UPnP with Python, V4L2 in Python, controlling N800 &amp;amp; N900 FM receivers, D-Bus services with GObject (C)&lt;br /&gt;
* [http://maemo.org/profile/view/mikhas/ Michael Hasselmann]: Qt 4.6 for Maemo5 (novice), autotroll&lt;br /&gt;
* [http://maemo.org/profile/view/bilboed/ Edward Hervey]: Video Editing, GStreamer, PiTiVi, GStreamer Editing Services, GNonLin&lt;br /&gt;
* [http://maemo.org/profile/view/conny/ Cornelius Hald]: C, Gtk+, Hildon, Eclipse, transifex.net, hildon-extras&lt;br /&gt;
* &#039;&#039;&amp;lt;Your name here&amp;gt;: &amp;lt;Your technologies here&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====How to get help====&lt;br /&gt;
&lt;br /&gt;
# Look up developers who work with the technology you need help with in the list above&lt;br /&gt;
# Approach the developers and ask them for help/advice :)&lt;br /&gt;
# In the neighbor room there will be [[Maemo-Barcelona_Long_Weekend/Formaci%C3%B3n|a developer&lt;br /&gt;
training track]]. Feel free jumping there to ask questions, too!&lt;br /&gt;
&lt;br /&gt;
=== Interested? ===&lt;br /&gt;
&lt;br /&gt;
If you want to be invited please provide in [http://talk.maemo.org/showthread.php?t=33719 this thread]:&lt;br /&gt;
&lt;br /&gt;
* Your [http://maemo.org/profile/list/ maemo.org profile] making sure that there one can find info about or links to your current projects and your interests in Code or UX.&lt;br /&gt;
* If you are more into Code, a link to the app hosted in maemo.org, either under [http://maemo.org/packages/ Fremantle packages] or [http://maemo.org/downloads/OS2008/ OS2008 Downloads].&lt;br /&gt;
* If you are more into UX, a link to wherever your work can be seen.&lt;br /&gt;
&lt;br /&gt;
Forward this to your colleagues working on great stuff!&lt;br /&gt;
&lt;br /&gt;
For budgeting and also practical purposes we will keep the number of participants around 50 people even if we get more requests. The criteria will be defined more or less by fast response, travel costs, community involvement and of course Maemo excellence in Code or UX.&lt;/div&gt;</summary>
		<author><name>192.100.124.218</name></author>
	</entry>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=Documentation/Maemo_5_Developer_Guide/Development_Environment/Maemo_SDK&amp;diff=6950</id>
		<title>Documentation/Maemo 5 Developer Guide/Development Environment/Maemo SDK</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=Documentation/Maemo_5_Developer_Guide/Development_Environment/Maemo_SDK&amp;diff=6950"/>
		<updated>2009-11-16T11:28:59Z</updated>

		<summary type="html">&lt;p&gt;192.100.124.218: /* Starting Virtual X Server (Xephyr) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Maemo SDK =&lt;br /&gt;
&lt;br /&gt;
The following code examples are used in this chapter:&lt;br /&gt;
&lt;br /&gt;
* [https://garage.maemo.org/svn/maemoexamples/trunk/support-libraries/helloworld.c helloworld.c]&lt;br /&gt;
* [https://garage.maemo.org/svn/maemoexamples/trunk/support-libraries/gtk_helloworld-1.c gtk_helloworld-1.c]&lt;br /&gt;
&lt;br /&gt;
The development environment for Maemo running on the desktop is called &#039;&#039;&#039;Maemo SDK&#039;&#039;&#039;. You can only install Maemo SDK on a Linux operating system. Maemo SDK currently supports the following Linux distributions:&lt;br /&gt;
*Debian&lt;br /&gt;
*Ubuntu&lt;br /&gt;
&lt;br /&gt;
However, you can also install Maemo SDK on other Linux distributions.&lt;br /&gt;
&lt;br /&gt;
=  Maemo Software Development Kit =&lt;br /&gt;
&lt;br /&gt;
The Maemo SDK creates a sandboxed Maemo development environment on a GNU/Linux desktop system largely built on a tool called [http://scratchbox.org/ Scratchbox]. In most ways, this environment behaves like the operating system on the device, but with added development tools. This means that the development process is very similar to a normal desktop GNU/Linux, and the kinks of embedded development, such as cross-compiling, are handled transparently by Scratchbox.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Hardware architectures==&lt;br /&gt;
&lt;br /&gt;
Maemo SDK supports two architectures, &#039;&#039;X86&#039;&#039; and &#039;&#039;ARMEL&#039;&#039; and provides development environment for both. In Fremantle, &#039;&#039;X86&#039;&#039; environment is used for active development and has better tool support through native execution without the need for emulation. &#039;&#039;&#039; &#039;&#039;ARMEL&#039;&#039; &#039;&#039;target&#039;&#039; is used only for cross-compilation of applications to work on the actual device&#039;&#039;&#039;. There are currently issues with the user mode qemu which prevent the UI framework from starting up in the &#039;&#039;ARMEL&#039;&#039; target which prevents running applications on this target.&lt;br /&gt;
&lt;br /&gt;
When your application compiles, runs and behaves as expected on the &#039;&#039;X86&#039;&#039; &#039;&#039;target&#039;&#039;, the next step is to compile it on the &#039;&#039;ARMEL&#039;&#039; &#039;&#039;target&#039;&#039;. The process of compilation and packaging is exactly the same as in &#039;&#039;X86&#039;&#039;, albeit a bit slower, because some of the required software is emulated. Scratchbox will handle cross-compilation, so the developers need not concern themselves with cross-compilation.&lt;br /&gt;
&lt;br /&gt;
The applications thus compiled on the &#039;&#039;ARMEL&#039;&#039; target can be run directly on the device without further modifications. This is possible because of the emulation provided by the Maemo SDK. The emulation however is not complete, so the actual testing must be performed on the device. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Scratchbox==&lt;br /&gt;
Scratchbox is a specially packaged &amp;quot;sandbox&amp;quot; environment, providing the necessary tools and isolating the development efforts from the actual Linux system. Scratchbox also makes cross-compiling easy to perform: the software is built into a binary format that is executable on the target device.&lt;br /&gt;
&lt;br /&gt;
The name &amp;quot;Scratchbox&amp;quot; comes from &amp;quot;Linux from scratch&amp;quot; + &amp;quot;chroot jail&amp;quot; (sandbox). This also explains its implementation and intended use. While working inside Scratchbox, programs will be running in a changed root environment (chroot). In Linux systems, it is possible to change the file paths that a process will see. Scratchbox uses this mechanism on startup to switch its root directory (/) to something other than the real root. This is part of the isolation technique used. Because of this, the environment is called a sandbox, a private area where it is possible to play around without disturbing the environment, and without all the mess that real sand would cause. The other parts of the isolation technique are library call diversions (using LD_PRELOAD), wrapping of compiler executables and other commands.&lt;br /&gt;
&lt;br /&gt;
Scratchbox:&lt;br /&gt;
&lt;br /&gt;
* Is a software package to implement development sandboxes (for isolation)&lt;br /&gt;
* Contains easy-to-use tools to assist cross-compilation&lt;br /&gt;
* Supports multiple developers using the same development system&lt;br /&gt;
* Supports multiple configurations for each developer&lt;br /&gt;
* Supports executing target executables on the hardware target, via a mechanism called sbrsh&lt;br /&gt;
* Supports running non-native binaries on the host system via instruction set emulators ([http://bellard.org/qemu Qemu] is used).&lt;br /&gt;
&lt;br /&gt;
Besides these main features, it is possible to develop your own software packages that can be installed and used inside a Scratchbox environment. Scratchbox also includes some integration of Debian package management, so that once the source files are set up correctly and a couple of configuration files have been written, binary distribution packages can be created for various architectures (similar to .msi files in Windows, or .rpm files in Fedora Core, RHEL and SUSE). These tools are also used to provide the environment with a packaging database so that other development packages can be installed over the Internet when needed (by using standard Debian package management tools).&lt;br /&gt;
&lt;br /&gt;
Fremantle also uses a similar packaging system, and this means that packages built using Scratchbox and the SDK can be installed on the real device.&lt;br /&gt;
&lt;br /&gt;
Scratchbox is licensed under the GPL and it is open for outside contributions. For in-depth coverage on Scratchbox and its capabilities, please visit the [http://scratchbox.org project website].&lt;br /&gt;
&lt;br /&gt;
This material discusses only the Scratchbox capabilities that are necessary to use the Maemo SDK. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Scratchbox In-Depth===&lt;br /&gt;
&lt;br /&gt;
Scratchbox is Maemo SDK&#039;s cross-compiling environment. The default Scratchbox installation works as-is under most conditions, but some details are good to know for more specialized usage.&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;target&#039;&#039; inside Scratchbox contains a root file system. When you create a new target inside Scratchbox, specify the &#039;&#039;toolchain&#039;&#039; you will use to build applications. Examples of a &#039;&#039;target&#039;&#039; include X86 and ARMEL, provided by Maemo SDK on top of Scratchbox.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Host tools&#039;&#039; are native to the host, provided for convenience and speed. They are always transparently preferred over target tools. For example, cross-compiling applications to the target architecture. Host tools consist of devkits and &#039;&#039;toolchains&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
A toolchain provides the minimal set of tools for compiling binaries for the target. Each scratchbox target must have one and only one toolchain selected.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;CPU transparency methods&#039;&#039; take care of running the applications on an emulator, target device or directly on the host transparently from the user&#039;s perspective. The available CPU transparency methods come from a special &#039;&#039;devkit&#039;&#039; called &#039;&#039;cputransp&#039;&#039;. For each of Maemo SDK&#039;s pre-defined targets, a CPU transparency method is selected and defined.&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;toolchain&#039;&#039; is a collection of tools used to produce binaries for the target environment. In addition to a compiler (&#039;&#039;gcc&#039;&#039;), the toolchain contains a linker (&#039;&#039;ld&#039;&#039;) and other &#039;&#039;binutils&#039;&#039;, such as &#039;&#039;strip&#039;&#039;, &#039;&#039;objdump&#039;&#039; and &#039;&#039;strings&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;devkit&#039;&#039; is a collection of tools native to the host. A devkit can be selected or disabled for a target. An example of a devkit is the doctools devkit, which provides tools (like doxygen) for building documentation.&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;rootstrap&#039;&#039; is a root file system for the target device. Maemo SDK provides root file systems for both targets (X86 and ARMEL) inside Scratchbox. Note that the user&#039;s home directory is shared for all targets. The &#039;&#039;/tmp&#039;&#039; directory is shared for all targets and also with the host.&lt;br /&gt;
&lt;br /&gt;
From Scratchbox&#039;s point of view, Maemo SDK is a set of preconfigured &#039;&#039;targets&#039;&#039; and &#039;&#039;root file system&#039;&#039;s. One set is provided for both &#039;&#039;X86&#039;&#039; and &#039;&#039;ARMEL&#039;&#039; architectures on top of a working Scratchbox installation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Development on Maemo SDK==&lt;br /&gt;
The Maemo SDK provides all of its development tools inside Scratchbox. Also the UI framework is started with a single command, &#039;&#039;af-sb-init&#039;&#039;, run within Scratchbox. However, it needs a secondary X server of proper size and bit-depth to be displayed on.&lt;br /&gt;
&lt;br /&gt;
As an exception to the rule, you must start the Xserver, such as [http://www.freedesktop.org/wiki/Software/Xephyr Xephyr] on the host Linux environment, not inside Scratchbox.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Scratchbox Development Tools===&lt;br /&gt;
As the Scratchbox environment is practically a full GNU/Linux system, it includes the standard GNU/Linux development tools. Debugging is performed with tools like &#039;&#039;[http://sourceware.org/gdb/ gdb]&#039;&#039;, &#039;&#039;[http://valgrind.org/ valgrind]&#039;&#039;,  &#039;&#039;ltrace&#039;&#039; and &#039;&#039;[http://sourceforge.net/projects/strace/ strace]&#039;&#039;. Performance profiling can be performed with tools like &#039;&#039;[http://htop.sourceforge.net/ htop]&#039;&#039;, &#039;&#039;[http://oprofile.sourceforge.net/ oprofile]&#039;&#039; and &#039;&#039;time&#039;&#039;. Compiling is done with the GCC toolchain. Some of these tools offer graphical user interfaces, which can also be used. Naturally, this is not a comprehensive list of the tools, and if the tools shipped with the SDK do not suit your needs or personal preferences, most utilities can be easily run practically unchanged in Scratchbox.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Other Programming Languages===&lt;br /&gt;
Currently C is the only official programming language for Maemo. But thanks to the community,  Python scripting language also has a good support in the form of [http://pymaemo.garage.maemo.org/ pymaemo].&lt;br /&gt;
&lt;br /&gt;
= Installing SDK =&lt;br /&gt;
&lt;br /&gt;
Before continuing, review the [http://wiki.maemo.org/Documentation/Maemo5_Final_Installation installation instructions] of the Maemo SDK.&lt;br /&gt;
&lt;br /&gt;
The kernel must support binfmt_misc-feature in order for the instruction emulator in Scratchbox to work properly. Because it is usually built as a module, verify that the module is loaded in Linux (no root access needed):&lt;br /&gt;
&lt;br /&gt;
 user@system:~$ lsmod | grep binfmt&lt;br /&gt;
 binfmt_misc 12936 0&lt;br /&gt;
&lt;br /&gt;
If you do not see a line of output, try to execute &#039;&#039;modprobe binfmt_misc&#039;&#039; as root (or with sudo). If this still does not work, either locate the module elsewhere, or recompile the kernel. Most Debian-based systems (Debian, Ubuntu) include the module, unless you have built your own kernel, you should encounter no problems. The feature may also be directly built inside the kernel instead of being a module.&lt;br /&gt;
&lt;br /&gt;
Install a pseudo X server to act as an X client to the real system in order to run application developed after installing the SDK. You have a certain amount of freedom to choose the most suitable option to achieve this, but this material assumes that you are using Xephyr, a Kdrive-based X server/client that can emulate 16-color depth for its clients even while acting as a client to an 24-bit depth real X server. Xephyr also implements modern X protocol extensions.&lt;br /&gt;
&lt;br /&gt;
The concept of having a program that is both X server and a client may seem weird, but it is a tested technology and works quite well.&lt;br /&gt;
&lt;br /&gt;
To install Xephyr on a Debian-based Linux:&lt;br /&gt;
&lt;br /&gt;
* Issue the command sudo apt-get install xserver-xephyr on your real Linux system.&lt;br /&gt;
* Verify installation status by issuing the command &#039;dpkg -l | grep xephyr&#039; (as non-root).&lt;br /&gt;
&lt;br /&gt;
As mentioned before, Maemo SDK uses Scratchbox as the cross-compilation environment. Therefore, you must install Scratchbox first before attempting to install the SDK. The preferred way to install scratchbox and SDK is to use the automated installation scripts though manual installation steps are also provided. Detailed instructions are found [http://maemo.org/development/sdks/maemo_5_beta_2_sdk_installation/ here].&lt;br /&gt;
&lt;br /&gt;
= Testing SDK Installation =&lt;br /&gt;
&lt;br /&gt;
== Testing Scratchbox ==&lt;br /&gt;
The following shows how to create a small non-graphical Hello World program to verify that the Scratchbox environment works: helloworld.c&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/**&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt; * helloworld.c&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt; *&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt; * This maemo code example is licensed under a MIT-style license,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt; * that can be found in the file called &amp;quot;License&amp;quot; in the same&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt; * directory as this file.&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt; * Copyright (c) 2007-2008 Nokia Corporation. All rights reserved.&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt; *&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt; * Simple standard I/O (printf)-based Hello World that we can use to&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt; * test our toolchains.&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt; */&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000080&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;#include&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;amp;lt;stdio.h&amp;amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* printf */&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* main implementation */&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#009900&amp;quot;&amp;gt;int&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;main&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#009900&amp;quot;&amp;gt;int&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; argc&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#009900&amp;quot;&amp;gt;char&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;**&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; argv&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;)&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;{&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;printf&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;Hello world&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#CC33CC&amp;quot;&amp;gt;\n&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* In Linux, each process upon termination must set its exit code.&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;     Exit code 0 means success to whoever executed this program. It&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;     is routinely used inside scripts to test whether running some&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;     program succeeded or not. Other exit codes mean failure. Each&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;     program is free to use different non-zero codes to signify&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;     different kinds of failures. These are normally listed in the&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;     manual page for the program (since there is no standard). If you&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;     forget to set your exit code, it will be undefined. */&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
   &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;return&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#993399&amp;quot;&amp;gt;0&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;}&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
First, verify that the proper directory is chosen by using pwd (print working directory). At this point, the work directory should be your home directory: &lt;br /&gt;
&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;amp;gt; pwd&lt;br /&gt;
 /home/user&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then, start an editor and write a small hello world program (you may use the above code listing as a template if you wish): &lt;br /&gt;
&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;amp;gt; nano helloworld.c&lt;br /&gt;
&lt;br /&gt;
It is also possible to use vi (Visual Interactive) editor inside Scratchbox. You can install your own favourite editor inside sbox (with the debian-devkit), but the following examples will use nano, because it is the easiest to start with. If you want to learn vi, your best course of action is searching for &amp;quot;vi tutorial&amp;quot; with your favourite search engine. There are lots of them to be found. To understand why vi can be considered &amp;quot;strange&amp;quot;, it is useful to know its history first. Using vi is fully optional.&lt;br /&gt;
 &lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;amp;gt; gcc -Wall -g helloworld.c -o helloworld&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;amp;gt; ls -F hello*&lt;br /&gt;
 helloworld* helloworld.c&lt;br /&gt;
&lt;br /&gt;
GCC&#039;s -g option tells the compiler to add debugging symbols to the generated output file. -Wall will tell the compiler to enable most of the syntax and other warnings that the source code could trigger. -o helloworld tells gcc to output the resulting binary with the filename of helloworld.&lt;br /&gt;
&lt;br /&gt;
The -F option to ls is mainly useful when working with a non-color terminal (for example paper) to indicate the type of different files. The asterisk after helloworld signifies that the file is executable. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;amp;gt; ./helloworld&lt;br /&gt;
 Hello world&lt;br /&gt;
&lt;br /&gt;
Running the binary should not produce any surprises. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;amp;gt; file helloworld&lt;br /&gt;
 helloworld: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV),&lt;br /&gt;
 for GNU/Linux 2.6.0, dynamically linked (uses shared libs), not stripped&lt;br /&gt;
&lt;br /&gt;
The file tool is a generic utility that loads some bytes from the start of the given file and then uses its internal database to decode what type of file it is. In this case, it will correctly decode the file as a X86 format binary file. &lt;br /&gt;
 &lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;amp;gt; ldd helloworld&lt;br /&gt;
    linux-gate.so.1 =&amp;amp;gt;  (0xffffe000)&lt;br /&gt;
    libc.so.6 =&amp;amp;gt; /lib/libc.so.6 (0xb7e9f000)&lt;br /&gt;
    /lib/ld-linux.so.2 (0xb7fd2000)&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;amp;gt; ls -l /lib/libc.so.6&lt;br /&gt;
 lrwxrwxrwx  1 user user 11 Nov 12 15:52 /lib/libc.so.6 -&amp;amp;gt; libc-2.5.so&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;amp;gt; ls -l /lib/libc-2.5.so&lt;br /&gt;
 -rwxr-xr-x  1 user user 1213256 Sep  7 13:28 /lib/libc-2.5.so&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On the left are the names of dynamic libraries that the executable uses, and on the right are the files where the libraries reside on the system when executing the program. Next use ls to check the exact version of the C library that the SDK uses with the &amp;quot;long listing format&amp;quot; -l option. Running these commands using the ARMEL target yields more or less the same results. &lt;br /&gt;
N.B. The linux-gate.so.1 is a so-called hack to support a certain way of doing system calls on the X86 architecture, and is not always present on newer systems.&lt;br /&gt;
&lt;br /&gt;
When comparing the version of libc used on the real system with ls -l, it will probably show a difference (in version numbers). This means that the executables that were built inside Scratchbox use libraries that are also inside Scratchbox. This also means we have a stable development platform, which is very important, especially when working on a team where each member has their own Linux installation which they may or may not have customized. This might not seem very important at this stage, but when encountering all the different tools that are used in free software development, this feature of Scratchbox will come in handy.&lt;br /&gt;
&lt;br /&gt;
Scratchbox does not contain any logic to emulate the kernel (or to use a different kernel for running programs inside Scratchbox). The only easy possibility for this is using the sbrsh CPU-transparency option. &lt;br /&gt;
&lt;br /&gt;
===vi===&lt;br /&gt;
You can also use vi (Visual Interactive) editor inside sbox. You can install your own favorite editor inside Scratchbox (with the debian-devkit), but the following examples will use nano, since it is the easiest to start with. If you want to learn vi, search for &amp;quot;vi tutorial&amp;quot; with your favorite search engine. There are lots of them to be found. To understand why vi can be considered &amp;quot;strange&amp;quot;, it is useful to know its history first. Using vi is fully optional. It is common for people who are new to vi to get stuck in it; if you find yourself in this situation, a way to exit (without writing the file) is to press type &amp;lt;escape&amp;gt;:qall!&amp;lt;enter&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The vi that is commonly installed on Linux systems is really vim (VI iMproved), which is a more user-friendly version of vi, including syntax high-lighting and all kinds of improvements. sbox has a program called vimtutor installed to help you learn how to use vi interactively.&lt;br /&gt;
&lt;br /&gt;
It is also fairly simple to use existing editors. /scratchbox/users/x/home/x/ is the home directory of user x when accessing it from the real Linux desktop. Ubuntu comes with Gedit, which is a fairly good graphical editor that also supports syntax highlighting and multiple tabs for editing multiple files at the same time.&lt;br /&gt;
&lt;br /&gt;
And as a final note, emacs can also be used.&lt;br /&gt;
&lt;br /&gt;
Here is how to do use it:&lt;br /&gt;
&lt;br /&gt;
* Start emacs outside of Scratchbox&lt;br /&gt;
* In emacs, use M-x server-start&lt;br /&gt;
* Inside Scratchbox, use the emacsclient filename to open the file for editing in your emacs&lt;br /&gt;
&lt;br /&gt;
==Writing GUI Hello World==&lt;br /&gt;
The following example shows how to write the first GUI program. Note that the example only uses the GTK+ library and does not utilise the widgets and coding style provided by the platform. That will be discussed later. &lt;br /&gt;
&lt;br /&gt;
gtk_helloworld-1.c&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/**&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt; * gtk_helloworld-1.c&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt; *&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt; * This maemo code example is licensed under a MIT-style license,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt; * that can be found in the file called &amp;quot;License&amp;quot; in the same&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt; * directory as this file.&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt; * Copyright (c) 2007-2008 Nokia Corporation. All rights reserved.&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt; *&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt; * A simple GTK+ Hello World. You need to use Ctrl+C to terminate&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt; * this program since it doesn&#039;t implement GTK+ signals (yet).&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt; */&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000080&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;#include&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;amp;lt;stdlib.h&amp;amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* EXIT_* */&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* Introduce types and prototypes of GTK+ for the compiler. */&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000080&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;#include&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;amp;lt;gtk/gtk.h&amp;amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#009900&amp;quot;&amp;gt;int&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;main&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#009900&amp;quot;&amp;gt;int&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; argc&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#009900&amp;quot;&amp;gt;char&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;**&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; argv&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;)&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;{&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* We&#039;ll have two references to two GTK+ widgets. */&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
   GtkWindow&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; window&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
   GtkLabel&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; label&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* Initialize the GTK+ library. */&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
   &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;gtk_init&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;amp;amp;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;argc&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;amp;amp;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;argv&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* Create a window with window border width of 12 pixels and a&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;     title text. */&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
   window &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_object_new&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;GTK_TYPE_WINDOW&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;border-width&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#993399&amp;quot;&amp;gt;12&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;title&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;Hello GTK+&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     NULL&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* Create the label widget. */&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
   label &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_object_new&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;GTK_TYPE_LABEL&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;label&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;Hello World!&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     NULL&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* Pack the label into the window layout. */&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
   &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;gtk_container_add&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;GTK_CONTAINER&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;window&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;),&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;GTK_WIDGET&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;label&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;));&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* Show all widgets that are contained by the window. */&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
   &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;gtk_widget_show_all&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;GTK_WIDGET&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;window&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;));&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* Start the main event loop. */&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
   &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_print&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;main: calling gtk_main&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#CC33CC&amp;quot;&amp;gt;\n&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
   &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;gtk_main&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;();&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* Display a message to the standard output and exit. */&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
   &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_print&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;main: returned from gtk_main and exiting with success&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#CC33CC&amp;quot;&amp;gt;\n&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* The C standard defines this condition as EXIT_SUCCESS, and this&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;     symbolic macro is defined in stdlib.h (which GTK+ will pull in&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;     in-directly). There is also a counter-part for failures:&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;     EXIT_FAILURE. */&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
   &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;return&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; EXIT_SUCCESS&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;}&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Build your program:&lt;br /&gt;
&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;amp;gt; gcc -Wall -g gtk_helloworld-1.c -o gtk_helloworld-1&lt;br /&gt;
 gtk_helloworld-1.c:15:21: gtk/gtk.h: No such file or directory&lt;br /&gt;
 gtk_helloworld-1.c: In function `main&#039;:&lt;br /&gt;
 gtk_helloworld-1.c:20: error: `GtkWindow&#039; undeclared (first use in this function)&lt;br /&gt;
 gtk_helloworld-1.c:20: error: (Each undeclared identifier is reported only once&lt;br /&gt;
 gtk_helloworld-1.c:20: error: for each function it appears in.)&lt;br /&gt;
 gtk_helloworld-1.c:20: error: `window&#039; undeclared (first use in this function)&lt;br /&gt;
 gtk_helloworld-1.c:21: error: `GtkLabel&#039; undeclared (first use in this function)&lt;br /&gt;
 gtk_helloworld-1.c:21: error: `label&#039; undeclared (first use in this function)&lt;br /&gt;
 gtk_helloworld-1.c:24: warning: implicit declaration of function `gtk_init&#039;&lt;br /&gt;
 gtk_helloworld-1.c:28: warning: implicit declaration of function `g_object_new&#039;&lt;br /&gt;
 gtk_helloworld-1.c:28: error: `GTK_TYPE_WINDOW&#039; undeclared (first use in this function)&lt;br /&gt;
 gtk_helloworld-1.c:34: error: `GTK_TYPE_LABEL&#039; undeclared (first use in this function)&lt;br /&gt;
 gtk_helloworld-1.c:39: warning: implicit declaration of function `gtk_container_add&#039;&lt;br /&gt;
 gtk_helloworld-1.c:39: warning: implicit declaration of function `GTK_CONTAINER&#039;&lt;br /&gt;
 gtk_helloworld-1.c:39: warning: implicit declaration of function `GTK_WIDGET&#039;&lt;br /&gt;
 gtk_helloworld-1.c:42: warning: implicit declaration of function `gtk_widget_show_all&#039;&lt;br /&gt;
 gtk_helloworld-1.c:45: warning: implicit declaration of function `g_print&#039;&lt;br /&gt;
 gtk_helloworld-1.c:46: warning: implicit declaration of function `gtk_main&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This does not look at all promising. The source code started with #include, and you need to tell the compiler where to look for that critical GTK+ header file. The compiler probably also needs some special flags to be able to use the correct compilation settings for building GTK+ software.&lt;br /&gt;
&lt;br /&gt;
To help you decide which flags to use we provide a tool called pkg-config, which is a simple program that provides a unified interface to output compiler, linker flags and library version numbers. Use pkg-config manually for the time being. &lt;br /&gt;
 &lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;amp;gt; pkg-config --list-all | sort&lt;br /&gt;
 .. listing cut to include only relevant libraries ..&lt;br /&gt;
 dbus-glib-1    dbus-glib - GLib integration for the free desktop message bus&lt;br /&gt;
 gconf-2.0      gconf - GNOME Config System.&lt;br /&gt;
 gdk-2.0        GDK - GIMP Drawing Kit (x11 target)&lt;br /&gt;
 gdk-pixbuf-2.0 GdkPixbuf - Image loading and scaling&lt;br /&gt;
 glib-2.0       GLib - C Utility Library&lt;br /&gt;
 gnome-vfs-2.0  gnome-vfs - The GNOME virtual file-system libraries&lt;br /&gt;
 gtk+-2.0       GTK+ - GIMP Tool Kit (x11 target)&lt;br /&gt;
 hildon-1       hildon - Hildon widgets library&lt;br /&gt;
 hildon-fm-2    hildon-fm - Hildon file management widgets&lt;br /&gt;
 pango          Pango - Internationalized text handling&lt;br /&gt;
 x11            X11 - X Library&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
pkg-config also has some other useful commands:&lt;br /&gt;
 &lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;amp;gt; pkg-config --modversion gtk+-2.0&lt;br /&gt;
 2.10.12&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;amp;gt; pkg-config --cflags gtk+-2.0&lt;br /&gt;
 -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0&lt;br /&gt;
 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0&lt;br /&gt;
 -I/usr/lib/glib-2.0/include -I/usr/include/freetype2&lt;br /&gt;
 -I/usr/include/libpng12&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this version of GTK+, all these commands are -I options that tell the compiler which additional directories to check for system header files in addition to the default ones. &lt;br /&gt;
 &lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;amp;gt; pkg-config --libs gtk+-2.0&lt;br /&gt;
 -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm&lt;br /&gt;
 -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2&lt;br /&gt;
 -ldl -lglib-2.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When linking the application, the linker has to be told which libraries to link against. In fact, the whole program linking phase will fail (as shown below) without this information.&lt;br /&gt;
&lt;br /&gt;
Now compile the software again, and this time use the compilation flags that pkg-config provides: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;amp;gt; gcc -Wall -g gtk_helloworld-1.c  \&lt;br /&gt;
  `pkg-config --cflags gtk+-2.0` -o gtk_helloworld-1&lt;br /&gt;
 /var/tmp/ccQ14x4c.o: In function `main&#039;:/home/user/gtk_helloworld-1.c:24:&lt;br /&gt;
  undefined reference to `gtk_init&#039;&lt;br /&gt;
 :/home/user/gtk_helloworld-1.c:28: undefined reference to `gtk_window_get_type&#039;&lt;br /&gt;
 :/home/user/gtk_helloworld-1.c:28: undefined reference to `g_object_new&#039;&lt;br /&gt;
 :/home/user/gtk_helloworld-1.c:34: undefined reference to `gtk_label_get_type&#039;&lt;br /&gt;
 :/home/user/gtk_helloworld-1.c:34: undefined reference to `g_object_new&#039;&lt;br /&gt;
 :/home/user/gtk_helloworld-1.c:39: undefined reference to `gtk_widget_get_type&#039;&lt;br /&gt;
 :/home/user/gtk_helloworld-1.c:39: undefined reference to `g_type_check_instance_cast&#039;&lt;br /&gt;
 :/home/user/gtk_helloworld-1.c:39: undefined reference to `gtk_container_get_type&#039;&lt;br /&gt;
 :/home/user/gtk_helloworld-1.c:39: undefined reference to `g_type_check_instance_cast&#039;&lt;br /&gt;
 :/home/user/gtk_helloworld-1.c:39: undefined reference to `gtk_container_add&#039;&lt;br /&gt;
 :/home/user/gtk_helloworld-1.c:42: undefined reference to `gtk_widget_get_type&#039;&lt;br /&gt;
 :/home/user/gtk_helloworld-1.c:42: undefined reference to `g_type_check_instance_cast&#039;&lt;br /&gt;
 :/home/user/gtk_helloworld-1.c:42: undefined reference to `gtk_widget_show_all&#039;&lt;br /&gt;
 :/home/user/gtk_helloworld-1.c:45: undefined reference to `g_print&#039;&lt;br /&gt;
 :/home/user/gtk_helloworld-1.c:46: undefined reference to `gtk_main&#039;&lt;br /&gt;
 :/home/user/gtk_helloworld-1.c:49: undefined reference to `g_print&#039;&lt;br /&gt;
 collect2: ld returned 1 exit status&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The command above may be new to you, if you have not used UNIX command shells.  This is a backtick expansion, an operation where the shell starts another shell only to execute the text inside the backticks. In this case, start another shell to run &#039;&#039;`pkg-config --cflags gtk+-2.0`&#039;&#039;. Normal output from the commands is then read into the main shell and the output is replaced into the location where the backticks were. &lt;br /&gt;
N.B. Use the backtick character (`) or falling accent. Do not use a rising accent (´) or a single quote or apostrophe (&#039;). In some keyboard layouts, you can get the backtick character to appear by pressing first the backtic and then the space bar.&lt;br /&gt;
&lt;br /&gt;
An alternative operation is $(pkg-config ..), which corresponds to the backtick but is less portable across antique UNIX shells. Choosing between these is a matter of taste.&lt;br /&gt;
&lt;br /&gt;
GCC prints very different errors this time. These errors come from ld, which is the binary code linker in Linux systems and complains about missing symbols (the undefined references). Obviously something is still missing.&lt;br /&gt;
&lt;br /&gt;
You must tell the linker where to find the missing symbols. Because this is the linker and not the compiler that we are talking aobut, the missing symbols are in the library files.&lt;br /&gt;
&lt;br /&gt;
To fix the problem (again using backticks), pkg-config libs can be used:&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;amp;gt; gcc -Wall -g gtk_helloworld-1.c  \&lt;br /&gt;
  `pkg-config --cflags gtk+-2.0` -o gtk_helloworld-1  \&lt;br /&gt;
  `pkg-config --libs gtk+-2.0`&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The order and placement of the pkg-config commands above is important: you must place the cflags as early as feasible and ensure that the libs must come last (this does matter in some problematic linking scenarios).&lt;br /&gt;
&lt;br /&gt;
The next step is to repeat the basic commands that you used before with the non-GUI hello world: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;amp;gt; ls -l gtk_helloworld-1&lt;br /&gt;
 -rwxrwxr-x  1 user user 16278 Nov 20 00:22 gtk_helloworld-1&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;amp;gt; file gtk_helloworld-1&lt;br /&gt;
 gtk_helloworld-1: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV),&lt;br /&gt;
 for GNU/Linux 2.6.0, dynamically linked (uses shared libs), not stripped&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;amp;gt; ldd gtk_helloworld-1&lt;br /&gt;
   linux-gate.so.1 =&amp;amp;gt;  (0xffffe000)&lt;br /&gt;
   libgtk-x11-2.0.so.0 =&amp;amp;gt; /usr/lib/libgtk-x11-2.0.so.0 (0xb7c4c000)&lt;br /&gt;
   libgdk-x11-2.0.so.0 =&amp;amp;gt; /usr/lib/libgdk-x11-2.0.so.0 (0xb7bc8000)&lt;br /&gt;
   libatk-1.0.so.0 =&amp;amp;gt; /usr/lib/libatk-1.0.so.0 (0xb7bad000)&lt;br /&gt;
   libgdk_pixbuf-2.0.so.0 =&amp;amp;gt; /usr/lib/libgdk_pixbuf-2.0.so.0 (0xb7b97000)&lt;br /&gt;
   libm.so.6 =&amp;amp;gt; /lib/libm.so.6 (0xb7b71000)&lt;br /&gt;
   libpangocairo-1.0.so.0 =&amp;amp;gt; /usr/lib/libpangocairo-1.0.so.0 (0xb7b68000)&lt;br /&gt;
   libpango-1.0.so.0 =&amp;amp;gt; /usr/lib/libpango-1.0.so.0 (0xb7b2b000)&lt;br /&gt;
   libcairo.so.2 =&amp;amp;gt; /usr/lib/libcairo.so.2 (0xb7ab5000)&lt;br /&gt;
   libgobject-2.0.so.0 =&amp;amp;gt; /usr/lib/libgobject-2.0.so.0 (0xb7a7a000)&lt;br /&gt;
   libgmodule-2.0.so.0 =&amp;amp;gt; /usr/lib/libgmodule-2.0.so.0 (0xb7a76000)&lt;br /&gt;
   libdl.so.2 =&amp;amp;gt; /lib/libdl.so.2 (0xb7a71000)&lt;br /&gt;
   libglib-2.0.so.0 =&amp;amp;gt; /usr/lib/libglib-2.0.so.0 (0xb79dd000)&lt;br /&gt;
   libc.so.6 =&amp;amp;gt; /lib/libc.so.6 (0xb78b2000)&lt;br /&gt;
   libX11.so.6 =&amp;amp;gt; /usr/lib/libX11.so.6 (0xb77bd000)&lt;br /&gt;
   libXfixes.so.3 =&amp;amp;gt; /usr/lib/libXfixes.so.3 (0xb77b8000)&lt;br /&gt;
   libXtst.so.6 =&amp;amp;gt; /usr/lib/libXtst.so.6 (0xb77b3000)&lt;br /&gt;
   libfontconfig.so.1 =&amp;amp;gt; /usr/lib/libfontconfig.so.1 (0xb7788000)&lt;br /&gt;
   libXext.so.6 =&amp;amp;gt; /usr/lib/libXext.so.6 (0xb777a000)&lt;br /&gt;
   libXrender.so.1 =&amp;amp;gt; /usr/lib/libXrender.so.1 (0xb7771000)&lt;br /&gt;
   libXi.so.6 =&amp;amp;gt; /usr/lib/libXi.so.6 (0xb7769000)&lt;br /&gt;
   libXrandr.so.2 =&amp;amp;gt; /usr/lib/libXrandr.so.2 (0xb7762000)&lt;br /&gt;
   libXcursor.so.1 =&amp;amp;gt; /usr/lib/libXcursor.so.1 (0xb7759000)&lt;br /&gt;
   /lib/ld-linux.so.2 (0xb7fc3000)&lt;br /&gt;
   libpangoft2-1.0.so.0 =&amp;amp;gt; /usr/lib/libpangoft2-1.0.so.0 (0xb772b000)&lt;br /&gt;
   libfreetype.so.6 =&amp;amp;gt; /usr/lib/libfreetype.so.6 (0xb76c6000)&lt;br /&gt;
   libz.so.1 =&amp;amp;gt; /usr/lib/libz.so.1 (0xb76b7000)&lt;br /&gt;
   libpng12.so.0 =&amp;amp;gt; /usr/lib/libpng12.so.0 (0xb7692000)&lt;br /&gt;
   libXau.so.6 =&amp;amp;gt; /usr/lib/libXau.so.6 (0xb768f000)&lt;br /&gt;
   libXdmcp.so.6 =&amp;amp;gt; /usr/lib/libXdmcp.so.6 (0xb7689000)&lt;br /&gt;
   libexpat.so.1 =&amp;amp;gt; /usr/lib/libexpat.so.1 (0xb7669000)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As you can see from the last ldd listing, this simple Hello World requires several other libraries to run. The program itself only requires GTK+, but GTK+ needs GDK and all the other libraries that were covered in the introduction. Those libraries in turn need other libraries and so on.&lt;br /&gt;
&lt;br /&gt;
This is almost the full list of all required libraries to run. Modern UNIX systems (and Linux) can also load other libraries on demand (called runtime dynamic module loading).&lt;br /&gt;
&lt;br /&gt;
Perhaps you are wondering why writing a simple Hello World is so demanding. It is actually much simpler in real life. This chapter simply introduces and solves various problems that you may encounter in actual situations.&lt;br /&gt;
&lt;br /&gt;
You need all of these tools later on when starting the packaging of the software.&lt;br /&gt;
&lt;br /&gt;
== Running GUI Hello World ==&lt;br /&gt;
Let&#039;s try to execute Hello World inside Scratchbox: &lt;br /&gt;
&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;amp;gt; ./gtk_helloworld-1&lt;br /&gt;
 gtk_helloworld-1[4759]: GLIB WARNING ** Gtk - cannot open display:&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;amp;gt; echo $DISPLAY&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GTK+ seems unable to open connection to the X server. To verify this, display the contents of the DISPLAY environmental variable; indeed, the variable is empty. If the DISPLAY variable contains :0.0, the value originates in the graphical session and was copied into Scratchbox. Clients try to connect to the real X server and probably fail during authentication.&lt;br /&gt;
&lt;br /&gt;
== Starting Virtual X Server (Xephyr) ==&lt;br /&gt;
Run Xephyr outside the scratchbox environment:&lt;br /&gt;
&lt;br /&gt;
 $ Xephyr :2 -host-cursor -screen 800x480x16 -dpi 96 -ac -kb &amp;amp;&lt;br /&gt;
&lt;br /&gt;
== Directing Client to Virtual Server ==&lt;br /&gt;
&lt;br /&gt;
Now that there is an X server running, switch back to Scratchbox.&lt;br /&gt;
&lt;br /&gt;
The first step is to set the environmental variable so that X server knows to use a local domain socket, and tell all X clients to connect to Display number 2, since that is where Xephyr started: &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;amp;gt; export DISPLAY=:2&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;amp;gt; ./gtk_helloworld-1&lt;br /&gt;
 main: calling gtk_main&lt;br /&gt;
 [[Ctrl+c]]&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Use Ctrl+C to terminate the program because it does not implement any graphical methods for closing. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;N.B.&#039;&#039; The DISPLAY needs to be set correctly on each Scratchbox login (or when switching targets).&lt;br /&gt;
&lt;br /&gt;
Since you did not start a window manager for the X server, you cannot control Hello World with the mouse. Use Ctrl+C to terminate Hello World; you will start it again in a moment.&lt;br /&gt;
&lt;br /&gt;
To quickly detach the foreground process from the shell and continue running the process in the background, press Ctrl+Z and then use the shell command bg. The process is &amp;quot;paused&amp;quot; between these two steps.&lt;br /&gt;
&lt;br /&gt;
== Starting Application Framework ==&lt;br /&gt;
&lt;br /&gt;
The next step is to have a graphical environment that will implement a nicer graphical screen. For this, a series of clients will be started, each of which have a specific role. These were introduced before.&lt;br /&gt;
&lt;br /&gt;
To start the UI Framework, you can use a handy script that comes with the SDK: &lt;br /&gt;
&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;amp;gt; af-sb-init.sh start&lt;br /&gt;
 &lt;br /&gt;
The start and stop parameters are used to start and stop the graphical environment. If everything works, it should show a screen resembling this one:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:UI-startup.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==Running Hello World in Application Framework ==&lt;br /&gt;
While the UI framework is running, the Hello World can be started again &lt;br /&gt;
&lt;br /&gt;
[sbox-FREMANTLE_X86: ~] &amp;gt;./gtk_helloworld-1&lt;br /&gt;
&lt;br /&gt;
[[Image:helloworld-without-theme.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Because there now is a window manager running, the client gets much larger window to draw in. GTK+ scales the widget accordingly (there is only one widget in the program). &lt;br /&gt;
&lt;br /&gt;
The screen still looks a bit off. If the application is closed by pressing the X in the top-right corner, you can see that the Hello World disappears from the screen. Because no signals have been implemented yet and thus there is nothing to handle window destruction, the Hello World application is only hidden. It is still running (as can be seen in the sbox terminal emulator, since the shell does not display its prompt). Stop the Hello World program with Ctrl+C.&lt;br /&gt;
&lt;br /&gt;
The next step shows how to use an SDK utility script called run-standalone.sh. Its job is to set up the correct environment variables for themes and communication for the command that is given to it as its command line parameter.&lt;br /&gt;
&lt;br /&gt;
 [sbox-FREMANTLE_X86: ~] &amp;gt;run-standalone.sh ./gtk_helloworld-1&lt;br /&gt;
&lt;br /&gt;
[[Image:helloworld-with-theme.png|400px]]&lt;br /&gt;
&lt;br /&gt;
The screen is still a bit off (there are no borders around the main GtkLabel widget), but already looks better. The text is scaled to be more in sync with the other text sizes and the color is also in sync with the platform color (it is not gray anymore).&lt;/div&gt;</summary>
		<author><name>192.100.124.218</name></author>
	</entry>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=Documentation/devtools/maemo5/xresponse-visualize&amp;diff=8495</id>
		<title>Documentation/devtools/maemo5/xresponse-visualize</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=Documentation/devtools/maemo5/xresponse-visualize&amp;diff=8495"/>
		<updated>2009-11-13T16:01:49Z</updated>

		<summary type="html">&lt;p&gt;192.100.124.218: update for Fremantle&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description ==&lt;br /&gt;
&lt;br /&gt;
xresponse-visualize is a set of scripts that can be used on the host/Scratchbox environment to visualize [[Documentation/devtools/maemo5/xresponse|xresponse]] log files.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;xresponse-convert&#039;&#039;: create a series of images from xresponse logs highlighting the area of the screen where changes were detected.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;xresponse-visualize&#039;&#039;: animates images create with xresponse-convert&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;source&#039;&#039;&#039;: xresponse-visualize&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;binary&#039;&#039;&#039;: xresponse-visualize&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Usage Examples ==&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
The recommended &#039;&#039;imagemagick&#039;&#039; dependency for xresponse-visualize is not (yet) provided with the maemo SDK, but are expected to be found from the user&#039;s host system.  It&#039;s needed only by the animated GIF creation script, not by the visualization program itself.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
[xresponse-convert man page](/development/documentation/man_pages/xresponse-convert.html)&lt;br /&gt;
&lt;br /&gt;
[xresponse-visualize man page](/development/documentation/man_pages/xresponse-visualize.html)&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
[[Documentation/devtools/maemo5/xresponse|xresponse]]&lt;/div&gt;</summary>
		<author><name>192.100.124.218</name></author>
	</entry>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=Documentation/devtools/maemo5&amp;diff=8290</id>
		<title>Documentation/devtools/maemo5</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=Documentation/devtools/maemo5&amp;diff=8290"/>
		<updated>2009-11-13T11:59:46Z</updated>

		<summary type="html">&lt;p&gt;192.100.124.218: /* Performance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These tools are available in the official maemo 5 Fremantle tools repository at repository.maemo.org. Some of them may have already been available unofficially, but these versions are tested for functionality.&lt;br /&gt;
&lt;br /&gt;
You can propose new tools by filing an enhancement request in Bugzilla.&lt;br /&gt;
&lt;br /&gt;
Installation instructions are available [[#Installation | below]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Categories ==&lt;br /&gt;
&lt;br /&gt;
The tools are arranged into different categories so that you can easily see what tools are available for specific kinds of tasks. The same tool can be present in multiple categories.&lt;br /&gt;
&lt;br /&gt;
=== Code Analysis ===&lt;br /&gt;
{| style=&amp;quot;width:75%&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|[[Documentation/devtools/maemo5/doxygen | doxygen]] || a source code documentation generator tool&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
| [[Documentation/devtools/maemo5/gtk-doc | gtk-doc]] || an API documentation generator&lt;br /&gt;
|}&lt;br /&gt;
=== Debugging ===&lt;br /&gt;
{| style=&amp;quot;width:75%&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|[[Documentation/devtools/maemo5/gdb | gdb]] || GDB is the GNU debugger&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
| [[Documentation/devtools/maemo5/functracer | functracer]] || an allocation backtrace tool&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|[[Documentation/devtools/maemo5/functracer-postproc | functracer-postproc]] || a post-processing tool for functracer output data&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
| [[Documentation/devtools/maemo5/latrace | latrace]] || display a program&#039;s dynamic library calls&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|[[Documentation/devtools/maemo5/ltrace | ltrace]] || a library call tracer&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
| [[Documentation/devtools/maemo5/maemo-debug-scripts | maemo-debug-scripts]] || a set of scripts to help with debugging tasks&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|[[Documentation/devtools/maemo5/sp-error-visualizer | sp-error-visualizer]] || displays log messages as banners&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
| [[Documentation/devtools/maemo5/sp-rich-core | sp-rich-core]] || a core dump data saver&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|[[Documentation/devtools/maemo5/sp-startup-time | sp-startup-time]] || a library for calculating application startup times&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
| [[Documentation/devtools/maemo5/strace | strace]] || a system call tracer&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|[[Documentation/devtools/maemo5/syslog | syslog]] || a log message collecting service&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
| [[Documentation/devtools/maemo5/valgrind | valgrind]] || a suite of tools for debugging and profiling programs&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|[[Documentation/devtools/maemo5/x11-utils | x11-utils]] || a collection of X Window System debugging tools; xev, xwininfo, xprop, xlsatoms and xlsclients.&lt;br /&gt;
|}&lt;br /&gt;
=== Miscellaneous ===&lt;br /&gt;
{| style=&amp;quot;width:75%&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|[[Documentation/devtools/maemo5/less | less]] || a text file viewer/pager&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
| [[Documentation/devtools/maemo5/osso-xterm | osso-xterm]] || a terminal emulator&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|[[Documentation/devtools/maemo5/man-db | man-db]] || manual page infrastructure&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
| [[Documentation/devtools/maemo5/screen | screen]] || provides access to detachable console sessions&lt;br /&gt;
|}&lt;br /&gt;
=== Editors ===&lt;br /&gt;
{| style=&amp;quot;width:75%&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|[[Documentation/devtools/maemo5/nano | nano]] || a friendly text editor&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
| [[Documentation/devtools/maemo5/vi | vi]] || a text editor&lt;br /&gt;
|}&lt;br /&gt;
=== Graphics ===&lt;br /&gt;
{| style=&amp;quot;width:75%&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|[[Documentation/devtools/maemo5/screenshot-tool | screenshot-tool]] || a command line utility to take screenshots&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
| [[Documentation/devtools/maemo5/xresponse | xresponse]] || measures the time taken to update the screen after user action&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|[[Documentation/devtools/maemo5/xresponse-visualize | xresponse-visualize]] || scripts for visualizing xresponse logs&lt;br /&gt;
|}&lt;br /&gt;
=== Networking ===&lt;br /&gt;
{| style=&amp;quot;width:75%&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|[[Documentation/devtools/maemo5/iputils | iputils]] || a collection of TCP/IP related utilities&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
| [[Documentation/devtools/maemo5/netcat | netcat]] || a utility to read and write data across network connections&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|[[Documentation/devtools/maemo5/tcpdump | tcpdump]] || a network traffic capturing utility&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
| [[Documentation/devtools/maemo5/traceroute | traceroute]] || print the route packets take to a network host&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|[[Documentation/devtools/maemo5/wget | wget]] || a utility to non-interactively download files from the Web&lt;br /&gt;
|}&lt;br /&gt;
=== Performance ===&lt;br /&gt;
{| style=&amp;quot;width:75%&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|[[Documentation/devtools/maemo5/oprofile | oprofile]] || a low overhead system wide profiler&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
| [[Documentation/devtools/maemo5/oprofileui | oprofileui]] || a user interface to oprofile&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|[[Documentation/devtools/maemo5/sp-startup-time | sp-startup-time]] || a library for calculating application startup times&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|[[Documentation/devtools/maemo5/valgrind | valgrind]] || a suite of tools for debugging and profiling programs&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
| [[Documentation/devtools/maemo5/xresponse | xresponse]] || measures the time taken to update the screen after user action&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|[[Documentation/devtools/maemo5/xresponse-visualize | xresponse-visualize]] || scripts for visualizing xresponse logs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Resource Usage ===&lt;br /&gt;
{| style=&amp;quot;width:75%&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|[[Documentation/devtools/maemo5/functracer | functracer]] || an allocation backtrace tool&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
| [[Documentation/devtools/maemo5/functracer-postproc | functracer-postproc]] || a post-processing tool for functracer output data&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|[[Documentation/devtools/maemo5/htop | htop]] || an interactive process viewer&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
| [[Documentation/devtools/maemo5/sp-endurance | sp-endurance]] || tools to collect system endurance related information&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|[[Documentation/devtools/maemo5/sp-endurance-postproc | sp-endurance-postproc]] || postprocessing scripts to parse and generate a report from endurance measurement data&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
| [[Documentation/devtools/maemo5/sp-memusage | sp-memusage]] || a collection of memory usage monitoring tools and scripts&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|[[Documentation/devtools/maemo5/sp-smaps-measure | sp-smaps-measure]] || utilities for taking snapshots of smaps memory information&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
| [[Documentation/devtools/maemo5/sp-smaps-visualize | sp-smaps-visualize]] || utilities for analyzing smaps memory information&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|[[Documentation/devtools/maemo5/sysstat | sysstat]] || tools for collecting and reporting system activity information&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
| [[Documentation/devtools/maemo5/valgrind | valgrind]] || a suite of tools for debugging and profiling programs&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|[[Documentation/devtools/maemo5/xrestop | xrestop]] || shows X clients&#039; X resource usage&lt;br /&gt;
|}&lt;br /&gt;
=== Test Automation ===&lt;br /&gt;
{| style=&amp;quot;width:75%&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|[[Documentation/devtools/maemo5/check | check]] || a unit test framework for C&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
| [[Documentation/devtools/maemo5/sp-stress | sp-stress]] || tools to create artificial system load&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|[[Documentation/devtools/maemo5/xnee | xnee]] || automate user actions under X11&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
| [[Documentation/devtools/maemo5/xresponse | xresponse]] || measures the time taken to update the screen after user action&lt;br /&gt;
|}&lt;br /&gt;
=== Wireless Tools ===&lt;br /&gt;
{| style=&amp;quot;width:75%&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
|[[Documentation/devtools/maemo5/bluez-hcidump | bluez-hcidump]] || a tool to monitor Bluetooth activity&lt;br /&gt;
|-style=&amp;quot;background:white&amp;quot;&lt;br /&gt;
| [[Documentation/devtools/maemo5/wireless-tools | wireless-tools]] || tools for manipulating Linux Wireless Extensions&lt;br /&gt;
|}&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
These tools can be installed in the device by activating the Diablo tools repository in the Application manager. Developers can also install them to the device or in Scratchbox using the command line interface.&lt;br /&gt;
&lt;br /&gt;
To activate the tools repository with the Application manager, &lt;br /&gt;
[http://mg.pov.lt/770/tools-repository.install open this single-click install file], or manually create a new catalogue like this:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|Catalogue name: || fremantle tools&lt;br /&gt;
|-&lt;br /&gt;
|Web address: || http://repository.maemo.org&lt;br /&gt;
|-&lt;br /&gt;
|Distribution: || fremantle/tools&lt;br /&gt;
|-&lt;br /&gt;
|Components: || free non-free&lt;br /&gt;
|-&lt;br /&gt;
|Disabled: || leave unchecked&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you prefer to edit configuration files yourself instead of using the Application manager, add these lines to your &#039;&#039;/etc/apt/sources.list&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# fremantle tools&lt;br /&gt;
deb http://repository.maemo.org fremantle/tools free non-free&lt;br /&gt;
# fremantle tools sources&lt;br /&gt;
deb-src http://repository.maemo.org fremantle/tools free non-free&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To install a binary package in Scratchbox:                 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ fakeroot apt-get install &amp;amp;lt;bin pkg name&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To install a binary package to the device (as root):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ apt-get install &amp;amp;lt;bin pkg name&amp;amp;gt;   &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To install a source package in Scratchbox or to the device:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ apt-get source &amp;amp;lt;src pkg name&amp;amp;gt;                        &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>192.100.124.218</name></author>
	</entry>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=Using_Fremantle_widgets&amp;diff=42494</id>
		<title>Using Fremantle widgets</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=Using_Fremantle_widgets&amp;diff=42494"/>
		<updated>2009-11-12T09:27:31Z</updated>

		<summary type="html">&lt;p&gt;192.100.124.218: /* Portrait Mode */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This document should help developers to port the user interface from [[Diablo]] to [[Fremantle]]. The document mirrors what was discussed on the mailing lists, forum and bug reports. It is based completely on the Fremantle Beta SDK which is the most recent SDK at the moment.&lt;br /&gt;
in addition, please check the growing [http://wiki.maemo.org/index.php?title=Documentation/Maemo_5_Developer_Guide/Human_Interface_Guidelines Human Interface Guidelines] and the official hildon documentation:&lt;br /&gt;
* [http://www.forum.nokia.com/info/sw.nokia.com/id/eb8a68ba-6225-4d84-ba8f-a00e4a05ff6f/Hildon_2_2_UI_Style_Guide.html Hildon 2.2 UI Style Guide]&lt;br /&gt;
* [http://www.forum.nokia.com/info/sw.nokia.com/id/019c2b31-3777-49a0-9257-970d79580756/Hildon_2_2_Widget_UI_Specification.html Hildon 2.2 Widget UI Specification]&lt;br /&gt;
* [http://www.forum.nokia.com/info/sw.nokia.com/id/e778ba1f-2507-4672-be45-798359a3aea7/Fremantle_Master_Layout_Guide.html Fremantle Master Layout Guide]&lt;br /&gt;
&lt;br /&gt;
Please feel totally free to add/update/change/remix this document. Many aspects are currently not discussed here but will hopefully be added by you!&lt;br /&gt;
&lt;br /&gt;
Note: The casts of all code examples haven been removed for better readability.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Toggle Buttons Vs. Radio Buttons =&lt;br /&gt;
The use of radio buttons in Fremantle is discouraged because they don&#039;t fit the visual style quite well. Instead you should use toggle buttons.&lt;br /&gt;
&lt;br /&gt;
So if you need the behavior of radio buttons (which is that only one can be selected at a time) simply create them as usually and then call &amp;lt;code&amp;gt;gtk_toggle_button_set_mode()&amp;lt;/code&amp;gt;. This will create a button that acts like a radio button, but is displayed as a toggle button.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GtkWidget *b1 = gtk_radio_button_new_with_label(&amp;quot;One&amp;quot;);&lt;br /&gt;
GtkWidget *b2 = gtk_radio_button_new_with_label_from_widget(b1, &amp;quot;Two&amp;quot;);&lt;br /&gt;
gtk_toggle_button_set_mode(b1, FALSE);&lt;br /&gt;
gtk_toggle_button_set_mode(b2, FALSE);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Fle_tut_radio_buttons.jpg|frame|Above you see how radio buttons are displayed in Fremantle. There is a bug in this screenshot, normally of course only one of the four options would be selected.]]&lt;br /&gt;
&lt;br /&gt;
[[image:Fle_tut_toggle_buttons.jpg|frame|Here you can see four radio buttons which are displayed as toggle buttons using the &amp;lt;code&amp;gt;gtk_toggle_button_set_mode()&amp;lt;/code&amp;gt; function mentioned above.]]&lt;br /&gt;
&lt;br /&gt;
= Widget Sizes =&lt;br /&gt;
For some widgets there is now an enum which provides three different values: &amp;lt;code&amp;gt;HILDON_SIZE_FINGER_HEIGHT&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;HILDON_SIZE_THUMB_HEIGHT&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;HILDON_SIZE_AUTO_HEIGHT&amp;lt;/code&amp;gt;. You can use them, for example, like that:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GtkWidget but* = hildon_gtk_button_new(HILDON_SIZE_FINGER_HEIGHT);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You should always use the finger or the thumb size, don&#039;t use HILDON_SIZE_AUTO_HEIGHT as the outcome is not totally clear (see below for screenshots).&lt;br /&gt;
&lt;br /&gt;
If you have a button where you cannot provide a size with the constructor, for example, a stock button, then you can use &amp;lt;code&amp;gt;hildon_gtk_widget_set_theme_size()&amp;lt;/code&amp;gt; to set the code afterwards. Like in this small example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GtkWidget *but = gtk_button_new_from_stock(GTK_STOCK_COPY);&lt;br /&gt;
hildon_gtk_widget_set_theme_size(but, HILDON_SIZE_THUMB_HEIGHT);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now to get a feeling for the different sizes here are some screenshots that show a HildonEntry together with a GtkButton using different sizes.&lt;br /&gt;
&lt;br /&gt;
[[Image:Fle_tut_button_auto_finger.jpg|frame|A HildonEntry with HILDON_SIZE_AUTO_HEIGHT and a GtkButton with HILDON_SIZE_FINGER_HEIGHT. Looks inconsistent.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Fle_tut_button_finger_finger.jpg|frame|Both widget with HILDON_SIZE_FINGER_HEIGHT. Looks more consistent now.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Fle_tut_button_finger_thumb.jpg|frame|For comparison reasons the HildonEntry with HILDON_SIZE_FINGER_HEIGHT and the GtkButton with HILDON_SIZE_THUMB_HEIGHT.]]&lt;br /&gt;
&lt;br /&gt;
= Window Menu =&lt;br /&gt;
In Fremantle it is not encouraged to use &amp;lt;code&amp;gt;GtkMenu&amp;lt;/code&amp;gt; as window menu anymore. Instead you should use the &amp;lt;code&amp;gt;HildonAppMenu&amp;lt;/code&amp;gt;. This new menu is really different from the old one so it´s worth taking a closer look. Here are the main features of the HildonAppMenu.&lt;br /&gt;
* It has big / finger friendly menu items.&lt;br /&gt;
* It holds a maximum of ten menu items.&lt;br /&gt;
* It does not support sub menues.&lt;br /&gt;
* The first row can be used for Filters. (Filters are explained in more details below.)&lt;br /&gt;
* In landscape mode the menu items are displayed in two rows.&lt;br /&gt;
* In portrait mode the menu items are automatically displayed in one row.&lt;br /&gt;
* There are no separators, so you cannot group your menu items.&lt;br /&gt;
* The menu items are GtkButtons and not GtkMenuItems.&lt;br /&gt;
&lt;br /&gt;
The HildonAppMenu is meant to be displayed when the user clicks the title bar of the window, but it is possible to have several other HildonAppMenus in your application and activate them for example on button press.&lt;br /&gt;
&lt;br /&gt;
As you can see the HildonAppMenu differs quite a lot from the old GtkMenu. The main difference is surely that you cannot have more then 10 menu items&lt;br /&gt;
inside the new menu. The Hildon HIG gives an overview on how to deal with that.&lt;br /&gt;
&lt;br /&gt;
[[Image:Fle_tut_app_menu_with_filters.jpg‎|frame|A HildonAppMenu with two filters at the top and four buttons]]&lt;br /&gt;
&lt;br /&gt;
== Using HildonAppMenu with GtkActions ==&lt;br /&gt;
As said earlier, the menu items are not GtkMenuItems anymore but instead they are normal GtkButtons. So you´re using GtkActions in your code, you´ll probably miss a replacement for &amp;lt;code&amp;gt;gtk_action_create_menu_item()&amp;lt;/code&amp;gt;. There is no direct replacement, instead you just have to use standard gtk functions to connect the button as a proxy to the action. Here is an example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GtkButton *menu_item = gtk_button_new();&lt;br /&gt;
gtk_action_connect_proxy(action, menu_item);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This is also possible with &amp;lt;code&amp;gt;GtkToggleAction&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;GtkRadioAction&amp;lt;/code&amp;gt;. But remember that your GtkRadioButtons should look like GtkToggleButtons as mentioned above. So a complete example for a HildonAppMenu that should display three GtkRadioActions would look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GSList *group = NULL;&lt;br /&gt;
GtkAction *a1, *a2, *a3;&lt;br /&gt;
GtkWidget *b1, *b2, *b3;&lt;br /&gt;
GtkWidget *menu;&lt;br /&gt;
&lt;br /&gt;
/* Create the actions */&lt;br /&gt;
a1 = gtk_radio_action_new(&amp;quot;small&amp;quot;, &amp;quot;Small&amp;quot;, NULL, NULL, 0);&lt;br /&gt;
a2 = gtk_radio_action_new(&amp;quot;normal&amp;quot;, &amp;quot;Normal&amp;quot;, NULL, NULL, 1);&lt;br /&gt;
a3 = gtk_radio_action_new(&amp;quot;large&amp;quot;, &amp;quot;Large&amp;quot;, NULL, NULL, 2);&lt;br /&gt;
&lt;br /&gt;
/* Build the radio action group */&lt;br /&gt;
gtk_radio_action_set_group(a1, group);&lt;br /&gt;
group = gtk_radio_action_get_group(a1);&lt;br /&gt;
&lt;br /&gt;
gtk_radio_action_set_group(a2, group);&lt;br /&gt;
group = gtk_radio_action_get_group(a2);&lt;br /&gt;
&lt;br /&gt;
gtk_radio_action_set_group(a3, group);&lt;br /&gt;
group = gtk_radio_action_get_group(a3);&lt;br /&gt;
&lt;br /&gt;
/* Create the toggle buttons */&lt;br /&gt;
b1 = gtk_toggle_button_new();&lt;br /&gt;
b2 = gtk_toggle_button_new();&lt;br /&gt;
b3 = gtk_toggle_button_new();&lt;br /&gt;
&lt;br /&gt;
/* Connect the buttons and the actions */&lt;br /&gt;
gtk_action_connect_proxy(a1, b1);&lt;br /&gt;
gtk_action_connect_proxy(a2, b2);&lt;br /&gt;
gtk_action_connect_proxy(a3, b3);&lt;br /&gt;
&lt;br /&gt;
/* Create the menu */&lt;br /&gt;
menu = hildon_app_menu_new();&lt;br /&gt;
&lt;br /&gt;
/* Add the buttons to the menu */&lt;br /&gt;
hildon_app_menu_append(menu, b1);&lt;br /&gt;
hildon_app_menu_append(menu, b2);&lt;br /&gt;
hildon_app_menu_append(menu, b3);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Finger Friendly GtkTreeView =&lt;br /&gt;
To get a finger friendly &amp;lt;code&amp;gt;GtkTreeView&amp;lt;/code&amp;gt; it´s not enough to call &amp;lt;code&amp;gt;hildon_gtk_tree_view_new()&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;gtk_tree_view_new()&amp;lt;/code&amp;gt; but you also have to put the tree view inside a &amp;lt;code&amp;gt;HildonPannableArea&amp;lt;/code&amp;gt; to get finger friendly sizes. If you have your tree view inside a &amp;lt;code&amp;gt;GtkScrolledWindow&amp;lt;/code&amp;gt; it will be displayed with stylus-style (like in Diablo).&lt;br /&gt;
&lt;br /&gt;
Also if you´re displaying icons in your tree view you probably should use the 40x40 pixel version for Fremantle if you used the 26x26 pixel version in Diablo.&lt;br /&gt;
&lt;br /&gt;
== Normal Vs. Edit Mode ==&lt;br /&gt;
There are now two different modes for the tree view. Those modes affect how the rows in a tree view react to finger taps.&lt;br /&gt;
&lt;br /&gt;
You should use &amp;lt;code&amp;gt;HILDON_UI_MODE_NORMAL&amp;lt;/code&amp;gt; if the user should only be able to activate one row of the text view. If the user taps a row in the tree view the &amp;lt;code&amp;gt;row-activated&amp;lt;/code&amp;gt; is emitted. In standard Gtk+ this happens only if the user double clicks the row - a single click selects the row which is not possible with &amp;lt;code&amp;gt;HILDON_UI_MODE_NORMAL&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If the user should be able to select or edit rows then you should use &amp;lt;code&amp;gt;HILDON_UI_MODE_EDIT&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Using Filters For Sorting ==&lt;br /&gt;
Most of you probably are using the tree view with a header row that displays column labels. Often this header row can also be used to sort the columns ascending or descending. If you&#039;re designing a finger friendly UI you will usually have a very limited number of visible columns - probably only one or two. In this case the column content is often self explanatory and the header row is only there for sorting. If that&#039;s the case for your UI, you might want to remove the header column completely and replace it with so called filters on the HildonAppMenu.&lt;br /&gt;
&lt;br /&gt;
According to the HIG filters are meant to change how data is presented, but it should not affect the amount of data that is displayed. Sorting a tree view would be a possible use case. To do this, just have a look at the example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/* Remove the header row */&lt;br /&gt;
gtk_tree_view_set_headers_visible(view, FALSE);&lt;br /&gt;
&lt;br /&gt;
/* Create two radio buttons for sorting */&lt;br /&gt;
GtkWidget *b1, *b2;&lt;br /&gt;
b1 = gtk_radio_button_new_with_label(NULL, &amp;quot;Sort By Title&amp;quot;);&lt;br /&gt;
b2 = gtk_radio_button_new_with_label_from_widget(b1, &amp;quot;Sort By Date&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
/* Draw them as toggle buttons not as radio buttons */&lt;br /&gt;
gtk_toggle_button_set_mode(b1, FALSE);&lt;br /&gt;
gtk_toggle_button_set_mode(b2, FALSE);&lt;br /&gt;
&lt;br /&gt;
/* Add the buttons as filters to the menu */&lt;br /&gt;
hildon_app_menu_add_filter(menu, b1);&lt;br /&gt;
hildon_app_menu_add_filter(menu, b2);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That is all for showing them on the window menu. Now only a callback is needed which gets activated whenever the user selects a filter. An example implementation might look like that:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void on_sort_filter_clicked(GtkToggleButton *button, GtkTreeSortable *sortable)&lt;br /&gt;
{&lt;br /&gt;
  if (gtk_toggle_button_get_active(button)) {&lt;br /&gt;
    gtk_tree_sortable_set_sort_column_id(sortable, TITLE_COLUMN, GTK_SORT_ASCENDING);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can add as many filters as you like, but they will be displayed all in one row and there is no possibility to add another filter row. This means you have to select carefully what to put there and also have a look at the length of the strings.&lt;br /&gt;
If you, for example have two rows, one with a title and one with a date you could offer the user:&lt;br /&gt;
* Sort ascending by date&lt;br /&gt;
* Sort descending by date&lt;br /&gt;
* Sort ascending by title&lt;br /&gt;
* Sort descending by title&lt;br /&gt;
Those four strings will not fit into one row. Therefore you have to make a selection and include only the cases which will (hopefully) be most relevant to the user. In this case you should offer:&lt;br /&gt;
* Sort by title (which sorts by title ascending - A before B)&lt;br /&gt;
* Sort by date (which sorts by date descending - newest on top)&lt;br /&gt;
In the most recent version (not yet in Beta 2) the filter group has a fixed size which does not depend on the number of filters or the orientation of the device. So if your menu looks good in landscape mode it will look good in portrait mode.&lt;br /&gt;
&lt;br /&gt;
[[Image:Fle_tut_tree_view.jpg‎|frame|A tree view without the title row. Sorting is now done with filters]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Fle_tut_tree_view_filter.jpg‎|frame|When clicking the title bar two filters are shown which let the user sort the tree view]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Fle_tut_filter_long_strings.jpg|frame|Long strings get truncated]]&lt;br /&gt;
&lt;br /&gt;
= Context Menus =&lt;br /&gt;
To display finger friendly context menues there is a hildon helper function called &amp;lt;code&amp;gt;hildon_gtk_menu_new()&amp;lt;/code&amp;gt;. Just call this instead of &amp;lt;code&amp;gt;gtk_menu_new()&amp;lt;/code&amp;gt; and you´re done.&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GtkWidget *menu = hildon_gtk_menu_new();&lt;br /&gt;
&lt;br /&gt;
GtkWidget *item1 = gtk_menu_item_new_with_label(&amp;quot;Bla&amp;quot;);&lt;br /&gt;
GtkWidget *item2 = gtk_menu_item_new_with_label(&amp;quot;Blablabla&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
gtk_menu_shell_append(GTK_MENU_SHELL(menu), item1);&lt;br /&gt;
gtk_menu_shell_append(GTK_MENU_SHELL(menu), item2);&lt;br /&gt;
&lt;br /&gt;
gtk_widget_show_all(menu);&lt;br /&gt;
gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, 0,&lt;br /&gt;
gtk_get_current_event_time());&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;Note that in the Beta SDK there is a bug. If you´re using &amp;lt;code&amp;gt;GtkImageMenuItems&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;GtkMenuItems&amp;lt;/code&amp;gt; the menu will have stylus-style. This bug is already fixed and a work around is available here: https://bugs.maemo.org/show_bug.cgi?id=4654 .&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:Fle_tut_context_menu.jpg‎|frame|Finger friendly context menu which is showing four stock items]]&lt;br /&gt;
&lt;br /&gt;
= Panning =&lt;br /&gt;
Almost all of you will know the problems with scrollbars in Diablo. You can have small scrollbars which are not finger friendly or you can have large scrollbars which are using a lot of screen space and look ugly.&lt;br /&gt;
&lt;br /&gt;
In Fremantle both kinds of scrollbars are still available, but there is also a third option. &amp;lt;code&amp;gt;HildonPannableArea&amp;lt;/code&amp;gt; features kinetic panning using fingers. There is no scrollbar anymore, only a very small scroll indicator that indicates which part of the document you´re seeing right now.&lt;br /&gt;
&amp;lt;code&amp;gt;HildonPannableArea&amp;lt;/code&amp;gt; can be used as a replacement for &amp;lt;code&amp;gt;GtkScrolledWindow&amp;lt;/code&amp;gt; but there are things you have to keep in mind when doing so.&lt;br /&gt;
&lt;br /&gt;
== GtkTextView Inside HildonPannableArea ==&lt;br /&gt;
Panning does not work with a &amp;lt;code&amp;gt;GtkTextView&amp;lt;/code&amp;gt;. Instead you can use a &amp;lt;HildonTextView&amp;gt; which is a drop in replacement. The advantage is, that then panning is possible. The disadvantage is that selecting text is not possible anymore. The discussion about this is here: https://bugs.maemo.org/show_bug.cgi?id=4619&lt;br /&gt;
&lt;br /&gt;
== GtkHtml Inside HildonPannableArea ==&lt;br /&gt;
When using &amp;lt;code&amp;gt;GtkHtml&amp;lt;/code&amp;gt; inside a &amp;lt;code&amp;gt;HildonPannableArea&amp;lt;/code&amp;gt; the panning is not smooth. The problem seems to be that GtkHtml provides some build in support for panning and that it conflicts with the panning offered by Hildon. See this bug report here: https://bugs.maemo.org/show_bug.cgi?id=4631&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Portrait Mode =&lt;br /&gt;
If your application should work in portrait mode you probably have to change the UI quite a bit. There are a couple of problems you&#039;ll might have:&lt;br /&gt;
* The toolbar is not wide enough to hold all items anymore.&lt;br /&gt;
* The columns of your tree view get too small.&lt;br /&gt;
* You cannot enter text because there´s no onscreen keyboard.&lt;br /&gt;
  (Actually the FKB works perfectly, but it will switch to landscape&lt;br /&gt;
   and then back to portrait when closed.)&lt;br /&gt;
* Dialogs are not shown correctly (see https://bugs.maemo.org/show_bug.cgi?id=4618 ).&lt;br /&gt;
* Probably more...&lt;br /&gt;
&lt;br /&gt;
This means you have to listen to changes in the orientation and hide/show/change widgets to make the UI functional in portrait mode.&lt;br /&gt;
&lt;br /&gt;
[[Image:Fle_tut_app_menu_portrait.jpg|frame|The HildonAppMenu with filters in portrait mode. The final version will cover the complete screen width, so there is a bit more space for the filters.]]&lt;br /&gt;
&lt;br /&gt;
== Listening To Screen Orientation Changes ==&lt;br /&gt;
Basically here you´re not listening to changes in the devices orientation, but you check  the height and width of the screen. So if width &amp;gt; height you are in landscape mode and if height &amp;gt; width you´re in portrait mode. This is supposed to work no matter why height and width changed. So it does not depend on hardware support like acceleratormeters it could also just be a software setting that rotates the screen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
gboolean is_portrait()&lt;br /&gt;
{&lt;br /&gt;
  GdkScreen *screen = gdk_screen_get_default();&lt;br /&gt;
  int width = gdk_screen_get_width(screen);&lt;br /&gt;
  int height = gdk_screen_get_height(screen);&lt;br /&gt;
  if (width &amp;gt; height) {&lt;br /&gt;
    return FALSE;&lt;br /&gt;
  } else {&lt;br /&gt;
    return TRUE;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void on_orientation_changed(GdkScreen *screen, GtkWidget *widget)&lt;br /&gt;
{&lt;br /&gt;
  if (is_portrait()) {&lt;br /&gt;
    gtk_widget_hide(widget);&lt;br /&gt;
    /* Hide/Show other things */&lt;br /&gt;
  } else {&lt;br /&gt;
    gtk_widget_show(widget);&lt;br /&gt;
    /* Hide/Show other things */&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then inside your UI code you should listen to the &amp;lt;code&amp;gt;size-changed&amp;lt;/code&amp;gt; signal of &amp;lt;code&amp;gt;GdkScreen&amp;lt;/code&amp;gt;. For example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
g_signal_connect(screen, &amp;quot;size-changed&amp;quot;, on_orientation_changed, widget);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Testing Screen Orientation Changes In Scratchbox ==&lt;br /&gt;
For testing your code you can execute the following commands outside scratchbox:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xrandr -display :2 -o left&lt;br /&gt;
xrandr -display :2 -o normal&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Automatic Screen Rotation ==&lt;br /&gt;
Your application is not automatically rotated when the user rotates its device. Even if the hardware supports it. There are more things to do to make that happen. Basically you have to do two things:&lt;br /&gt;
* During startup of your application, or better shortly before showing the first window, you should check the orientation of the device and adjust your application.&lt;br /&gt;
* You have to listen to all changes in the devices orientation while your application is running and adapt accordingly.&lt;br /&gt;
&lt;br /&gt;
Whether or not your application is rotated depends on a couple of things:&lt;br /&gt;
* There are two X window properties which you can set on your windows.&lt;br /&gt;
* Those tell the system what to do.  The type of the value of the properties is &amp;lt;tt&amp;gt;XA_CARDINAL&amp;lt;/tt&amp;gt; where 0 means &amp;quot;off&amp;quot;, and 1 stands for &amp;quot;on&amp;quot;.  Other values may get other meaning in the future.&lt;br /&gt;
** &amp;lt;tt&amp;gt;HILDON_PORTRAIT_MODE_SUPPORT&amp;lt;/tt&amp;gt; tells the system that your application can be rotated, so it won&#039;t prevent any other application from rotating.&lt;br /&gt;
** &amp;lt;tt&amp;gt;HILDON_PORTRAIT_MODE_REQUEST&amp;lt;/tt&amp;gt; tells the system that your application wants to be rotated.&lt;br /&gt;
* Rotation only happens when all visible windows are ok with being rotated.&lt;br /&gt;
&lt;br /&gt;
That means that to get a rotated desktop all visible windows must have the &amp;lt;tt&amp;gt;HILDON_PORTRAIT_MODE_SUPPORT&amp;lt;/tt&amp;gt; flag set to 1 and at least one of them must have the &amp;lt;tt&amp;gt;HILDON_PORTRAIT_MODE_REQUEST&amp;lt;/tt&amp;gt; flag set to true.  The flags are inherited through the transiency chain, so you needn&#039;t set the SUPPORT flag on your transient dialogs for example, nor on all stackable windows.&lt;br /&gt;
&lt;br /&gt;
It&#039;s important that you set the flags correctly on all windows that you open. If you or another application opens a window with the &amp;lt;tt&amp;gt;HILDON_PORTRAIT_MODE_SUPPORT&amp;lt;/tt&amp;gt; flag not set, the whole UI is rotated to landscape mode.&lt;br /&gt;
&lt;br /&gt;
So here are the steps you have to do to make correct use of the portrait mode:&lt;br /&gt;
* On all windows that support portrait mode, set the &amp;lt;tt&amp;gt;HILDON_PORTRAIT_MODE_SUPPORT&amp;lt;/tt&amp;gt; flag.&lt;br /&gt;
* During startup check the hardware orientation. If the hardware orientation is portrait mode, then set the &amp;lt;tt&amp;gt;HILDON_PORTRAIT_MODE_REQUEST&amp;lt;/tt&amp;gt; flag on at least one visible window.&lt;br /&gt;
* While running your application, listen to changes in the orientation of the device. If it is rotated to landscape mode set the &amp;lt;tt&amp;gt;HILDON_PORTRAIT_MODE_SUPPORT&amp;lt;/tt&amp;gt; flag. If it&#039;s rotated to portrait mode set the &amp;lt;tt&amp;gt;HILDON_PORTRAIT_MODE_REQUEST&amp;lt;/tt&amp;gt; flag. &lt;br /&gt;
It is not necessary to set &#039;request&#039; together with &#039;support&#039; as &#039;request&#039; implies &#039;support&#039;, provided that &#039;support&#039; is unset (as opposed to set to 0).&lt;br /&gt;
&lt;br /&gt;
=== Finding Out The Current Hardware Orientation ===&lt;br /&gt;
In order to find out whether or not the device currently is in portrait you need to ask the MCE (Mode Control Entity) via DBus. The parameters of the call are the following and can be found as constants in &#039;mce/dbus-names.h&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Service:   &amp;quot;com.nokia.mce&amp;quot;&lt;br /&gt;
Path:      &amp;quot;/com/nokia/mce/request&amp;quot;&lt;br /&gt;
Iterface:  &amp;quot;com.nokia.mce.request&amp;quot;&lt;br /&gt;
Member:    &amp;quot;get_device_orientation&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This method returns several values:&lt;br /&gt;
* gchar * portrait/landscape orientation (see mce/mode-names.h for valid portrait/landscape states)&lt;br /&gt;
* gchar * on/off stand (see mce/mode-names.h for valid stand states)&lt;br /&gt;
* gchar * face up/face down (see mce/mode-names.h for valid facing states)&lt;br /&gt;
* dbus_int32_t x axis (unit mG)&lt;br /&gt;
* dbus_int32_t y axis (unit mG)&lt;br /&gt;
* dbus_int32_t z axis (unit mG) &lt;br /&gt;
&lt;br /&gt;
In our case we are only interested in the first return value which will be &#039;portrait&#039; or &#039;landscape&#039;. Because we only need to know the first value here we can use the &amp;lt;tt&amp;gt;osso_rpc_run_system()&amp;lt;/tt&amp;gt; function for making this call to DBus. It&#039;s a convenience function provided by libosso for making DBus calls. The advantage is that our code gets shorter, the disadvantage is that it only return the first return value - which in our case is ok. So here is the code using libosso.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;mce/dbus-names.h&amp;gt;&lt;br /&gt;
#include &amp;lt;mce-dev/mode-names.h&lt;br /&gt;
&lt;br /&gt;
gboolean&lt;br /&gt;
device_is_portrait_mode(osso_context_t* ctx)&lt;br /&gt;
{&lt;br /&gt;
    osso_rpc_t ret;&lt;br /&gt;
    gboolean result = FALSE;&lt;br /&gt;
&lt;br /&gt;
    if (osso_rpc_run_system(ctx, MCE_SERVICE, MCE_REQUEST_PATH,&lt;br /&gt;
        MCE_REQUEST_IF, MCE_DEVICE_ORIENTATION_GET, &amp;amp;ret, DBUS_TYPE_INVALID) == OSSO_OK) {&lt;br /&gt;
        g_printerr(&amp;quot;INFO: DBus said orientation is: %s\n&amp;quot;, ret.value.s);&lt;br /&gt;
&lt;br /&gt;
        if (strcmp(ret.value.s, MCE_ORIENTATION_PORTRAIT) == 0) {&lt;br /&gt;
            result = TRUE;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        osso_rpc_free_val(&amp;amp;ret);&lt;br /&gt;
&lt;br /&gt;
    } else {&lt;br /&gt;
        g_printerr(&amp;quot;ERROR: Call do DBus failed\n&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return result;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Listening To Hardware Orientation Changes ===&lt;br /&gt;
&lt;br /&gt;
So now you know how to ask the device for its orientation. Now let&#039;s see how to connect a signal handler to listen to changes in the orientation.&lt;br /&gt;
&lt;br /&gt;
First here is again the signature:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Service:   &amp;quot;com.nokia.mce&amp;quot;&lt;br /&gt;
Path:      &amp;quot;/com/nokia/mce/signal&amp;quot;&lt;br /&gt;
Iterface:  &amp;quot;com.nokia.mce.signal&amp;quot;&lt;br /&gt;
Member:    &amp;quot;sig_device_orientation_ind&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The signal transports three values:&lt;br /&gt;
* gchar * portrait/landscape orientation (see mce/mode-names.h for valid portrait/landscape states)&lt;br /&gt;
* gchar * on/off stand (see mce/mode-names.h for valid stand states)&lt;br /&gt;
* gchar * face up/face down (see mce/mode-names.h for valid facing states) &lt;br /&gt;
&lt;br /&gt;
Again we are only interested in the first value which is &#039;portrait&#039; or &#039;landscape&#039;. Unfortunately there is no libosso convenience function for listening to DBus signals, so we have to use the raw DBus API.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
static DBusHandlerResult&lt;br /&gt;
dbus_handle_mce_message(DBusConnection *con, DBusMessage *msg, gpointer data)&lt;br /&gt;
{&lt;br /&gt;
    DBusMessageIter iter;&lt;br /&gt;
    const gchar *mode = NULL;&lt;br /&gt;
&lt;br /&gt;
    if (dbus_message_is_signal(msg, MCE_SIGNAL_IF, MCE_DEVICE_ORIENTATION_SIG)) {&lt;br /&gt;
        if (dbus_message_iter_init(msg, &amp;amp;iter)) {&lt;br /&gt;
            dbus_message_iter_get_basic(&amp;amp;iter, &amp;amp;mode);&lt;br /&gt;
            g_printerr(&amp;quot;INFO: New orientation is now: %s\n&amp;quot;, mode);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we need to register this signal handler.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#define MCE_MATCH_RULE &amp;quot;type=&#039;signal&#039;,interface=&#039;&amp;quot; MCE_SIGNAL_IF &amp;quot;&#039;,member=&#039;&amp;quot; MCE_DEVICE_ORIENTATION_SIG &amp;quot;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
/* Get the system DBus connection */&lt;br /&gt;
DBusConnection *con = osso_get_sys_dbus_connection(osso_context);&lt;br /&gt;
&lt;br /&gt;
/* Add the callback, which should be called, once the device is rotated */&lt;br /&gt;
dbus_bus_add_match(con, MCE_MATCH_RULE, NULL);&lt;br /&gt;
dbus_connection_add_filter(con, dbus_handle_mce_message, NULL, NULL);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Listening To Hardware Orientation Changes (Python example) ===&lt;br /&gt;
&lt;br /&gt;
This short snippet should get you started (you only need the gobject.MainLoop if you are writing a console application). &amp;quot;handler&amp;quot; will be called every time the orientation changes, and the first parameter is the important one (compare it to &amp;quot;landscape&amp;quot; and &amp;quot;portrait&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;import dbus&lt;br /&gt;
import dbus.glib&lt;br /&gt;
&lt;br /&gt;
# Again, this is only needed for console apps&lt;br /&gt;
import gobject&lt;br /&gt;
mainloop = gobject.MainLoop()&lt;br /&gt;
&lt;br /&gt;
# Define some constants&lt;br /&gt;
MCE_SIGNAL_NAME = &#039;sig_device_orientation_ind&#039;&lt;br /&gt;
MCE_SIGNAL_IFACE = &#039;com.nokia.mce.signal&#039;&lt;br /&gt;
MCE_SIGNAL_PATH = &#039;/com/nokia/mce/signal&#039;&lt;br /&gt;
&lt;br /&gt;
# Get the system bus&lt;br /&gt;
system_bus = dbus.Bus.get_system()&lt;br /&gt;
&lt;br /&gt;
# Define a callback that gets called for orientation changes&lt;br /&gt;
def handler(orientation, stand, face, x, y, z):&lt;br /&gt;
    print orientation&lt;br /&gt;
&lt;br /&gt;
# Connect the &amp;quot;handler&amp;quot; to the orientation changed signal of mce&lt;br /&gt;
system_bus.add_signal_receiver(handler, signal_name=MCE_SIGNAL_NAME, \&lt;br /&gt;
        dbus_interface=MCE_SIGNAL_IFACE, path=MCE_SIGNAL_PATH)&lt;br /&gt;
&lt;br /&gt;
# Start the main loop - only needed for console apps&lt;br /&gt;
mainloop.run()&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Do you want it even more comfortable? See [http://talk.maemo.org/showthread.php?p=330992 this forum post] for a link to an easy-to-use drop-in module that will take care of auto-rotation all your application windows.&lt;br /&gt;
&lt;br /&gt;
== Testing Hardware Orientation In Scratchbox ==&lt;br /&gt;
Testing whether or not your DBus signal handler for device orientation change works is easy. Just run the following commands inside scratchbox while your application is running.&lt;br /&gt;
&lt;br /&gt;
Device was rotated into portrait mode:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
run-standalone.sh dbus-send --system --type=signal /com/nokia/mce/signal com.nokia.mce.signal.sig_device_orientation_ind string:&#039;portrait&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Device was rotated into landscape mode:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
run-standalone.sh dbus-send --system --type=signal /com/nokia/mce/signal com.nokia.mce.signal.sig_device_orientation_ind string:&#039;landscape&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For testing the call to the MCE you first have to install the MCE because it&#039;s not part of the default SDK installation. Simply do:&lt;br /&gt;
&amp;lt;pre&amp;gt;fakeroot apt-get install mce&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now start it using the debug mode. It won&#039;t start without the &#039;--debug-mode&#039; flag. You&#039;ll get lots of debug output on the terminal, just ignore it:&lt;br /&gt;
&amp;lt;pre&amp;gt;mce --debug-mode&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the DBus call to the MCE should return &#039;landscape&#039;. It probably will always return &#039;landscape&#039; when run inside the SDK as it is not possible to really rotated the &amp;quot;device&amp;quot; there.&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
In no particular order&lt;br /&gt;
&lt;br /&gt;
* http://maemo.org/api_refs/5.0/beta/tutorial/html&lt;br /&gt;
* http://maemo.org/api_refs/5.0/beta/hig/html&lt;br /&gt;
&lt;br /&gt;
* http://lists.maemo.org/pipermail//maemo-developers/2009-May/019368.html&lt;br /&gt;
* http://lists.maemo.org/pipermail//maemo-developers/2009-May/019144.html&lt;br /&gt;
* http://lists.maemo.org/pipermail//maemo-developers/2009-June/019426.html&lt;br /&gt;
* http://lists.maemo.org/pipermail//maemo-developers/2009-June/019579.html&lt;br /&gt;
* http://lists.maemo.org/pipermail//maemo-developers/2009-August/020202.html&lt;br /&gt;
&lt;br /&gt;
* https://bugs.maemo.org/show_bug.cgi?id=4617&lt;br /&gt;
* https://bugs.maemo.org/show_bug.cgi?id=4618&lt;br /&gt;
* https://bugs.maemo.org/show_bug.cgi?id=4619&lt;br /&gt;
* https://bugs.maemo.org/show_bug.cgi?id=4654&lt;br /&gt;
* https://bugs.maemo.org/show_bug.cgi?id=4637&lt;br /&gt;
* https://bugs.maemo.org/show_bug.cgi?id=4648&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Fremantle]]&lt;/div&gt;</summary>
		<author><name>192.100.124.218</name></author>
	</entry>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=Maemo_Summit_2009/Day_3&amp;diff=20799</id>
		<title>Maemo Summit 2009/Day 3</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=Maemo_Summit_2009/Day_3&amp;diff=20799"/>
		<updated>2009-11-01T17:53:54Z</updated>

		<summary type="html">&lt;p&gt;192.100.124.218: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Maemo Summit day 3, Sunday 11 October =&lt;br /&gt;
&lt;br /&gt;
=== Fremantle Stars showcase ===&lt;br /&gt;
&lt;br /&gt;
Take a tour of the Fremantle Stars, the best of the best in Maemo community developed applications, featuring:&lt;br /&gt;
; liqbase&lt;br /&gt;
: Gary Birkett, liquid at gmail dot com, lcuk on #maemo&lt;br /&gt;
; [http://mauku.innologies.com Mauku]&lt;br /&gt;
: [http://www.henrikhedberg.net Henrik Hedberg]&lt;br /&gt;
; OSM2Go&lt;br /&gt;
: Till Harbaum&lt;br /&gt;
; OMWeather&lt;br /&gt;
: Vlad Vasilyev&lt;br /&gt;
; eCoach&lt;br /&gt;
: Sampo Savola&lt;br /&gt;
&lt;br /&gt;
=== Maemo Browser for power users ===&lt;br /&gt;
*Author: Mikko Korpelainen, mikko.korpelainen at nokia dot com&lt;br /&gt;
*Intended audience: users&lt;br /&gt;
*Talk type: presentation&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: Quick overview of the Maemo Browser design and capabilities. Followed by an in-depth explanation of the end user features and settings the Maemo Browser has.&lt;br /&gt;
*Author bio&lt;br /&gt;
: Mikko Korpelainen is a senior product manager @ Maemo for browser, FlashPlayer, maps and location.&lt;br /&gt;
&lt;br /&gt;
=== Maemo Browser evolution ===&lt;br /&gt;
*Author: Oleg Romashin, oleg.romashin at nokia dot com&lt;br /&gt;
*Intended audience: developers&lt;br /&gt;
*Talk type: presentation&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: Quick overview of the Maemo Browser improvement process, rendering architecture.&lt;br /&gt;
  Link to presentation: http://docs.google.com/present/view?id=ajk2s2df9zhr_144fb8zrrck&lt;br /&gt;
*Author bio&lt;br /&gt;
: Oleg Romashin is a senior lead developer @ Maemo for browser.&lt;br /&gt;
&lt;br /&gt;
=== Maemo Browser extension development ===&lt;br /&gt;
*Author: Sudarsana Nagineni, sudarsana.nagineni at nokia dot com&lt;br /&gt;
*Intended audience: developers&lt;br /&gt;
*Talk type: presentation - [http://docs.google.com/present/view?id=dct6z7j7_25zrcj3hs Slides]&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: A tutorial on how to develop extensions for Maemo Browser. &lt;br /&gt;
*Author bio&lt;br /&gt;
: Sudarsana Nagineni is a senior developer at Maemo for browser. &lt;br /&gt;
&lt;br /&gt;
=== [http://jammo.garage.maemo.org JamMo - Jamming mobile game for children] ===&lt;br /&gt;
* Author: Aapo Rantalainen (aapodotrantalainenatgmaildotcom)&lt;br /&gt;
* Intended audience: application developers&lt;br /&gt;
* Talk type: presentation&lt;br /&gt;
* Abstract/description&lt;br /&gt;
: JamMo is an educational music making game for children at age 3-12. It is targeted for Maemo 5 Fremantle. It uses GStreamer at music backend and Clutter toolkit for graphical user interface. In this talk we present the first version of the application and our experiences on underlying technologies. The development of JamMo is open to everyone who is interested to contribute in any way. For more information see http://jammo.garage.maemo.org/&lt;br /&gt;
* Additional Information&lt;br /&gt;
: Needed equipment: video projector, canvas, speakers.&lt;br /&gt;
&lt;br /&gt;
* Author bio&lt;br /&gt;
: JamMo is a product of an EU funded [http://www.umsic.org/ UMSIC project]. Aapo Rantalainen is the head developer of JamMo.&lt;br /&gt;
&lt;br /&gt;
=== Writing plugins for MAFW ===&lt;br /&gt;
*Author: Iago Toral - itoral at igalia dot com&lt;br /&gt;
*Intended audience: platform and application developers.&lt;br /&gt;
*Talk type: Presentation (Tutorial)&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: A tutorial on how developers can write source and renderer plugins for the Media Application Framework (MAFW). The audience will learn how to develop new plugins that provide access to new sources of media content or implement different rendering backends and how they can use these plugins from their own media applications. The tutorial will also include an introduction to MAFW for those not familiar with the framework.&lt;br /&gt;
*Author bio&lt;br /&gt;
: I am a Software Engineer at Igalia and user of the Gnome Desktop and Linux OS for quite many years. Currently I am most interested in Multimedia, specially around MAFW, for which I am one of the main developers, and GStreamer.&lt;br /&gt;
&lt;br /&gt;
=== Hackathon: Integrating Canola with Fremantle ===&lt;br /&gt;
*Author: [http://maemo.org/profile/view/etrunko Eduardo Lima (Etrunko)]&lt;br /&gt;
*Intended audience: Application Developers&lt;br /&gt;
*Talk type: Hands-on/Hackathon&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: The idea of this session is to get a reasonable number of people interested in integrating Canola with the new technologies introduced in Fremantle, mostly Tracker and MAFW, together, so we can trace a plan and start getting our hands dirty.&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;Why??&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: Some Canola components were conceived aiming to provide alternate solutions for some Nokia closed-source libraries and others that were not available by the time we started the project (mid-2007, back then we only had the N800 with Bora/Chinook). That&#039;s why we created our own media scanner (lightmediascanner+canolad) and media engine (atabake). Now I think it is time for us to evolve to the new and open solutions provided by Fremantle, yet keeping compatibility with &amp;quot;legacy&amp;quot; platforms, such as Diablo.&lt;br /&gt;
&lt;br /&gt;
: People interested in developing plugins for Canola and/or developing using EFL/PyEFL are more than welcome to join us.&lt;br /&gt;
*Extra equipment&lt;br /&gt;
**&amp;lt;strike&amp;gt;&#039;&#039;Guns, lots of guns.&#039;&#039;&amp;lt;/strike&amp;gt;&lt;br /&gt;
**Brave hacker souls&lt;br /&gt;
**Power outlets galore&lt;br /&gt;
**Internet Connection&lt;br /&gt;
**Whiteboard/Flipchart&lt;br /&gt;
**Coffe&lt;br /&gt;
*Author bio&lt;br /&gt;
: Open Source Software enthusiast, involved with Maemo since the very beginning (mid 2005), and had the opportunity to be part of the first Maemo Community Council. Started porting various GTK+/GNOME applications (Gnumeric, Evince, Abiword, Leafpad, Xournal, etc), to the platform. Worked on the first version of Carman, written in Python + GTK. After that, joined the team developing the Canola media player, coding and maintaining its packages for Maemo since then. Also maintains packages of the Enlightenment Foundation Libraries (EFL) for Maemo. Works for openBossa/INdT, where has been having the opportunity to present and talk about Maemo in events in Brazil and worldwide.&lt;br /&gt;
&lt;br /&gt;
=== Maemo documentation co-creation ===&lt;br /&gt;
&lt;br /&gt;
*Dave Neary, dneary at maemo dot org&lt;br /&gt;
*Intended audience: Users&lt;br /&gt;
*Talk type: Presentation&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: The stated goal in the 2010 agenda for maemo.org is the co-creation of all Maemo documentation.&lt;br /&gt;
: This presentation will show the path we have traveled towards this goal so far, especially over the past year, the plans for Fremantle and Harmattan, and most importantly, a call to action showing how you can help out.&lt;br /&gt;
&lt;br /&gt;
*Author bio&lt;br /&gt;
: Dave Neary has participated in many free software projects over the years. He was release manager of the GIMP, chairman of the GNOME Foundation, and community and product manager for the OpenWengo project. He is currently the maemo.org Docmaster, a role where he works to enable the Maemo community to do great work, and an independent consultant helping companies work with and create healthy communities.&lt;br /&gt;
&lt;br /&gt;
=== Designing QT application for Maemo 5 and Maemo 6===&lt;br /&gt;
*Sergiy Dubovik &amp;lt;sergiy dot dubovik &amp;quot;at sign&amp;quot; nokia point com&amp;gt;, Ian Monroe &amp;lt;ian.monroe at collabora.co.uk&amp;gt;&lt;br /&gt;
*Intended audience: application developers&lt;br /&gt;
*Talk type: presentation&lt;br /&gt;
*Abstract/description&lt;br /&gt;
&lt;br /&gt;
:How application developers should design their applications to work on Maemo 5 and Maemo 6 platforms? Which widgets will be supported? How to handle possible virtual keyboard? Where to store application settings? Which QT services will be available? These questions will be answered.&lt;br /&gt;
&lt;br /&gt;
*Additional information on extra equipment you might need or something else goes here&lt;br /&gt;
:Just a projector&lt;br /&gt;
&lt;br /&gt;
*Author bio&lt;br /&gt;
: Sergiy Dubovik is a senior software developer working in Nokia, designing and developing UI frameworks for Harmattan program.&lt;br /&gt;
&lt;br /&gt;
: Ian is a software developer at Collabora Ltd where he works from home in Iowa City, Iowa USA. He has been a developer of the popular desktop music manager Amarok for four years. He is the maintainer of KDE&#039;s video player, Dragon Player.&lt;br /&gt;
&lt;br /&gt;
=== Building for Mer ===&lt;br /&gt;
* [[User:lbt|David Greaves]]&lt;br /&gt;
* Intended audience: application &amp;amp; platform developers&lt;br /&gt;
* Talk type : Presentation/demo&lt;br /&gt;
* Abstract&lt;br /&gt;
: Since Fremantle Extras applications will eventually be submitted to the Mer builder it may be a good idea to introduce it. We use the openSuse Open Build Service; a GPL service that provides an emulated, pristine (yes, I&#039;m looking at you autobuilder and scratchbox), dependency driven build environment. I&#039;ll talk about the processes around Mer builds, access controls, managing integration with our DVCS (git), acceleration tricks and generally how to make good use of things you find lying about on the web.&lt;br /&gt;
&lt;br /&gt;
*Additional Information&lt;br /&gt;
: Live web link to OBS would be good.&lt;br /&gt;
&lt;br /&gt;
*Author bio&lt;br /&gt;
: David is the Mer build mentor; he&#039;s been a solutions architect at a major telco for several years but still (kinda) knows how to code. He&#039;s a passionate believer in the commercial viability of OSS. Previous contributions include kick-starting the git documentation &amp;amp; establishing wikis for Linux RAID and MythTV. He runs linux everywhere.&lt;br /&gt;
&lt;br /&gt;
=== Handheld Glom: Easy database applications ===&lt;br /&gt;
* Murray Cumming &amp;lt;murrayc at openismus dot com&amp;gt;&lt;br /&gt;
* Intended audience: application developers&lt;br /&gt;
* Talk type: Presentation&lt;br /&gt;
* Abstract/description:&lt;br /&gt;
: Many custom Maemo applications just need the user to navigate through some data and enter new information. Glom lets you quickly throw together a database structure and UI layout, providing a Maemo UI with no coding. You can then use Python for anything more complicated, though Glom itself already supports features such as related records, related fields, related choices, field lookups, calculated fields, and translated UIs.&lt;br /&gt;
*Author bio:&lt;br /&gt;
: Murray Cumming runs Openismus GmbH in Berlin and Munich. We work on Maemo&#039;s development platform and applications and maintain the GNOME C++ API (gtkmm). When we have extra time we work on Glom, gradually getting it ready for real-world use.&lt;br /&gt;
&lt;br /&gt;
=== Towards painless and quality translations ===&lt;br /&gt;
* Dimitris Glezos (glezos _at_ indifex _dot_ com)&lt;br /&gt;
* Intended audience: developers, translators, docs writers, webmasters&lt;br /&gt;
* Talk type: Presentation&lt;br /&gt;
* Material: [http://media.indifex.com/other/maesum.pdf Slides (pdf)]&lt;br /&gt;
* Abstract/description&lt;br /&gt;
: Most developers agree: &amp;quot;Translations are hard&amp;quot;. And while Maemo&#039;s localization is already in place, we&#039;ve got a long way to maximize our efficiency in reaching a global audience. The challenges: lower the costs for developers, minimize maintenance overheads, provide the translators with an effective, easy-to-use interface for submitting translations to their favorite projects (even if they&#039;re hosted on git.. *especially* when they&#039;re hosted on git).&lt;br /&gt;
: Transifex is an open localization platform built for and used by communities similar to Maemo such as Moblin, Fedora and XFCE. This talk will present Transifex, discuss the test results by the Mer Project, and lay down the roadmap for the establishment of an infrastructure able to support the L10n process of Maemo.&lt;br /&gt;
*Additional Information&lt;br /&gt;
: The session will most likely turn into a BoF, bringing together application and platform developers, translators and webmasters/admins.&lt;br /&gt;
*Author bio&lt;br /&gt;
: Dimitris Glezos is the lead developer Transifex. He led Fedora re-engineer its globalization infrastructure allowing for an explosive growth of community translations. He currently serves as Fedora&#039;s Board member and Translation Leader. He works at Indifex, providing enterprise-level support on complex localization scenarios.&lt;br /&gt;
&lt;br /&gt;
=== 10 Tips for Designing Mobile Widgets ===&lt;br /&gt;
*Author: [http://maemo.org/profile/view/rajeshlal Rajesh Lal], rajesh.lal at nokia dot com&lt;br /&gt;
*Intended audience: Widget Developers/Mobile Application Developers&lt;br /&gt;
*Talk type: Presentation&lt;br /&gt;
&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: Do you know why only 1 percent of Mobile Widgets are successful ? What makes some widgets thrive and used by millions, and others with equal functionality bite the dust ? Make no mistakes, design of a widget is not about graphics, color or fonts. This presentation will demystify this &#039;invisible&#039; layer below the surface with 10 pragmatic tips. The tips will uncover some of the most useful, and often ignored standard design principles and how to apply them in a mobile context.&lt;br /&gt;
&lt;br /&gt;
*Author bio&lt;br /&gt;
: Rajesh lal is a Designer, Author, Technology Evangelist, and a Senior Nokia Engineer with a decade of experience in Information Technology. He has been involved in Widget design and development for last 5 years and have authored multiple books on Gadgets and Widgets. He has experience in a variety of Mobile devices, namely Sony Mylo, Window&#039;s Mobile, Apple&#039;s Iphone, Nokia S60 and Maemo devices. His blog on design and user experience can be found at http://abcofdesign.com&lt;br /&gt;
&lt;br /&gt;
=== Mobile Office based on KOffice Open Source Project===&lt;br /&gt;
*Suresh Chande, suresh.chande at nokia.com&lt;br /&gt;
*Intended audience: Application &amp;amp; Platform developers&lt;br /&gt;
*Talk type: Presentation&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: We will present here Mobile Office project developed for Fremantle based on KOffice, a Qt based open source project.&lt;br /&gt;
&lt;br /&gt;
*Additional Information (optional)&lt;br /&gt;
: We will demonstrate Mobile Office (KOffice) running on the N900.&lt;br /&gt;
: Blog Entry: http://labs.trolltech.com/blogs/2009/09/17/office-viewer-for-maemo5-based-on-koffice/ &lt;br /&gt;
&lt;br /&gt;
*Author bio&lt;br /&gt;
: Suresh Chande, works for Nokia  in Device R&amp;amp;D(Maemo ) as Technical Product Owner for the Office Domain. Suresh has worked at Nokia Research Center for over 11 years focusing Mobile Business and Enterprise Application research. His vision is to have Office tools free for use by everybody.&lt;br /&gt;
&lt;br /&gt;
=== Maemo Platform Security: Principles and Concepts ===&lt;br /&gt;
&lt;br /&gt;
* Elena Reshetova - elena.reshetova@nokia.com&lt;br /&gt;
* Intended audience: users, application developers, platform developers&lt;br /&gt;
* Talk type: presentation - [http://www.slideshare.net/peterschneider/maemo-6-platform-security Slides]&lt;br /&gt;
* Abstract/description:&lt;br /&gt;
&lt;br /&gt;
: The purpose of the Platform Security in the Maemo platform is to protect the owner of a Maemo-powered device from getting her personal, private data and passwords from being stolen and used for malicious purposes, to prevent a malware from misusing a device and incurring costs on user, to prevent a user from accidentally breaking the device and to make the platform meet the requirements set by such third party software that requires a safe execution environment. &lt;br /&gt;
&lt;br /&gt;
: The main design goal is to have all this accomplished without any significant penalty in terms of performance or usability, by using established open standards and having as much of the implementation open-sourced as possible. Another goal is to minimize an entry barrier for 3rd party programmers by reusing the existing Linux programming environment and introducing only needed additional features. &lt;br /&gt;
&lt;br /&gt;
: The presentation will cover the main principles and concepts of the Maemo Platform Security.&lt;br /&gt;
&lt;br /&gt;
*Author bio&lt;br /&gt;
: Elena is a senior security engineer and representative of Maemo security team at the Maemo summit. The current task of the team is development of the Maemo Security FW.&lt;br /&gt;
&lt;br /&gt;
=== Telepathy on Maemo ===&lt;br /&gt;
* Author: Marco Barisione, marco.barisione at collabora.co.uk&lt;br /&gt;
* Intended audience: application developers/platform developers&lt;br /&gt;
* Talk type: presentation&lt;br /&gt;
&lt;br /&gt;
* Abstract/description:&lt;br /&gt;
The [http://telepathy.freedesktop.org/ Telepathy real-time communication framework] is a project to abstract messaging, presence, voice and video functionality, regardless of the underlying protocol. Amongst numerous benefits, this makes the connections available as a D-Bus service which can be shared between multiple applications, rather than limited to single monolithic jack-of-all-trades clients.&lt;br /&gt;
&lt;br /&gt;
The talk will introduce the Telepathy framework, its basic concepts and current functionality. It will focus in particular on:&lt;br /&gt;
- The Telepathy architecture&lt;br /&gt;
- How Telepathy is used on Maemo 5 for chat, VOIP calls, telephony calls and SMS messages&lt;br /&gt;
- How to use Telepathy from your program&lt;br /&gt;
&lt;br /&gt;
* Author bio:&lt;br /&gt;
Marco Barisione started to work on Telepathy implementing file transfer for a Google Summer of Code and for his University final project. After graduating he started to work for Collabora where he worked both on Telepathy and on the GTK+ port of WebKit and he spent the last year working on Telepathy-related components for Maemo.&lt;br /&gt;
Before falling in love with Telepathy he worked on various other GNOME projects, in particular adding regular expression support to GLib and implementing a new syntax highlighting engine for the GtkSourceView widget.&lt;br /&gt;
&lt;br /&gt;
=== Extending the Hildon desktop ===&lt;br /&gt;
*Author: Marc Ordinas i Llopis ([[User:Marcoil|marcoil]]), marcoil at collabora dot co dot uk&lt;br /&gt;
*Intended audience: application developers/platform developers&lt;br /&gt;
*Talk type: presentation&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: Developers can easily extend Maemo 5&#039;s desktop, giving users new ways to view and interact with the data in their mobile device. In this talk I&#039;ll describe the basic architecture and components of the desktop and show how to extend it.&lt;br /&gt;
*Author bio&lt;br /&gt;
: Marc is a programmer at Collabora and has been working on hildon-desktop for the last year.&lt;br /&gt;
&lt;br /&gt;
=== What to do about /opt in Fremantle ===&lt;br /&gt;
Author: [[User:mvo|Marius Vollmer]]&lt;br /&gt;
*Intended audience: TBD&lt;br /&gt;
*Talk type: BoF&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: For Fremantle, packages in the Extras repository are asked to install files into /opt to make better use of the available flash space.&lt;br /&gt;
This BoF is an opportunity to discuss everything related to this, immediate next steps and long term solutions, according to the interest of the participants.&lt;br /&gt;
*Author bio&lt;br /&gt;
: TBD&lt;/div&gt;</summary>
		<author><name>192.100.124.218</name></author>
	</entry>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=Documentation/Maemo_5_Developer_Guide/Architecture/RTCOM&amp;diff=6590</id>
		<title>Documentation/Maemo 5 Developer Guide/Architecture/RTCOM</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=Documentation/Maemo_5_Developer_Guide/Architecture/RTCOM&amp;diff=6590"/>
		<updated>2009-10-29T12:47:50Z</updated>

		<summary type="html">&lt;p&gt;192.100.124.218: /* Functionalities provided */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Real Time Communications domain=&lt;br /&gt;
The RTCom domain provides both services and applications for real time Internet communications, such as Voice Over IP / Video calls and Instant Messaging, and also cellular/CS communications on Maemo platform. It also provides and distributes presence information within the system. &lt;br /&gt;
The architecture consists of a few major components; connection managers which abstract implementation details of different protocols to a common API, mission control to handle transient events and enforce system policies, and user interfaces to present information to the user. There is also a streaming server to handle actual media streaming communications. It is not conceptually a separate architectural element of the framework, but more like one UI implementation. Farsight interface is used to manage media pipelines.&lt;br /&gt;
&lt;br /&gt;
==System decomposition view==&lt;br /&gt;
The diagram below shows the entities of the RTCOM subsystem, dependencies between them, provided interfaces and required external interfaces. The client applications are shown as packages without the fill-color.&lt;br /&gt;
Different UI components (Messaging, Call, Log Viewer, Desktop Elements, Control Panel Applets) provide user interface layer to the system.&lt;br /&gt;
&lt;br /&gt;
On intermediate layer, there’s a Mission Control package, which handle transient events and enforce system policies, providing application logic services, and libtelepathy-glib component providing GObject-style access to the Telepathy DBUS interfaces.&lt;br /&gt;
&lt;br /&gt;
On lowest level, there are Streaming Engine to handle actual media streaming communications, and Connection managers that abstract implementation details of different protocols to a common API. The interface is modular and platform  includes Jabber (instant messaging) and SIP (voice and video calls).&lt;br /&gt;
&lt;br /&gt;
The Telepathy framework is used to handle real time communication related signaling and abstracting all protocol dependencies to a single D-BUS interface.&lt;br /&gt;
&lt;br /&gt;
Centralized addressbook is provided by the Contacts subsystem and used by the RTcom subsystem for all contact information storage and lookup purposes and it also stores transient contacts/states.&lt;br /&gt;
&lt;br /&gt;
==RTCOM  framework==&lt;br /&gt;
&lt;br /&gt;
In Fremantle, RTCom framework provides the following functionality:&lt;br /&gt;
*Support for comprehensive logging&lt;br /&gt;
*SSO related components&lt;br /&gt;
*Support for heartbeat&lt;br /&gt;
*Device presence profiles&lt;br /&gt;
*Support for BT HFP&lt;br /&gt;
*Location support for presence&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===telepathy-glib===&lt;br /&gt;
{|cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Purpose&#039;&#039;&#039;||Provides GObject abstraction of Telepathy DBUS interfaces&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Source packages&#039;&#039;&#039;||telepathy-glib, librtcom-telepathy-glib&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Licenses&#039;&#039;&#039;||LGPL and Nokia Proprietary&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Interfaces used&#039;&#039;&#039;||libglib, libdbus, libdbus-glib&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Interfaces provided&#039;&#039;&#039;||libtelepathy-glib, librtcom-telepathy-glib&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===telepathy-mission-control===&lt;br /&gt;
{|cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Purpose&#039;&#039;&#039;||Provides a way for “end user” applications to abstract some of the details of connection managers to provide a simple way to manipulate a bunch of connection managers at once and remove the need to have in each program the account definitions and credentials.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Source packages&#039;&#039;&#039;||telepathy-glib, librtcom-telepathy-glib&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Licenses&#039;&#039;&#039;||LGPL and Nokia Proprietary&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Interfaces used&#039;&#039;&#039;||libglib, libdbus, libdbus-glib&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Interfaces provided&#039;&#039;&#039;||libtelepathy-glib, librtcom-telepathy-glib&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===osso-mission-control===&lt;br /&gt;
{|cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Purpose&#039;&#039;&#039;||Mission control filters&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Source packages&#039;&#039;&#039;||telepathy-mission-control&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Licenses&#039;&#039;&#039;||Nokia&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Interfaces used&#039;&#039;&#039;||libmissioncontrol, libosso, libconic, libebook, libhildon1 (libhildon-desktop), mce, libxml2, librtcom-eventlogger, librtcom-eventlogger-plugins, libsignon-glib&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Interfaces provided&#039;&#039;&#039;||None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===osso-accounts===&lt;br /&gt;
{|cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&#039;&#039;&#039;Purpose&#039;&#039;&#039;||Provides a set of libraries, UIs and applets for account management.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Source packages&#039;&#039;&#039;||osso-accounts, osso-accounts-plugin-nokia-chat&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Licenses&#039;&#039;&#039;||Nokia&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Interfaces used&#039;&#039;&#039;||libgtk2, libhildon1 (libhildon1, libhildonfm2, hildon-control-panel, libhildonmime, libhildonhelp), libosso-abook, libglade2, libconic, libmcclient&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Interfaces provided&#039;&#039;&#039;||libaccounts, libaccounts-glade, libosso-rtcom-accounts&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===rtcom-eventlogger===&lt;br /&gt;
{|cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Purpose&#039;&#039;&#039;||Provides general purpose event log database system.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Source packages&#039;&#039;&#039;||rtcom-eventlogger&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Licenses&#039;&#039;&#039;||Nokia&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Interfaces used&#039;&#039;&#039;||libglib, libsqlite3, libdbus&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Interfaces provided&#039;&#039;&#039;||librtcom-eventlogger&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===rtcom-eventlogger-plugins===&lt;br /&gt;
{|cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Purpose&#039;&#039;&#039;||Provides plugins for the event logging system.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Source packages&#039;&#039;&#039;||rtcom-eventlogger-plugins&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Licenses&#039;&#039;&#039;||Nokia&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Interfaces used&#039;&#039;&#039;||libglib, libsqlite3, librtcom-eventlogger&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Interfaces provided&#039;&#039;&#039;||None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Connection Managers==&lt;br /&gt;
Connection managers can be thought of as a kind of protocol plugins of the system. They conform to Telepathy DBUS interface specification and provide DBUS interface abstraction of some protocol. Each connection manager usually provides support for one protocol. The provided interfaces depend on the capabilities of the connection manager and protocol.&lt;br /&gt;
&lt;br /&gt;
Connection managers only signaling protocols. In case of a media streaming session, SDP or similar negotiation signaling is done in Connection Manager using the signaling protocol, but actual payload streaming is handled by Streaming Engine (Eg: telepathy-stream-engine).&lt;br /&gt;
&lt;br /&gt;
===Functionalities provided===&lt;br /&gt;
&lt;br /&gt;
*Support for Skype integrated into Telepathy framework&lt;br /&gt;
&lt;br /&gt;
===sofia-sip===&lt;br /&gt;
{|cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Purpose&#039;&#039;&#039;||SIP-stack implementation&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Source packages&#039;&#039;&#039;||sofia-sip&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Licenses&#039;&#039;&#039;||LGPL&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Interfaces used&#039;&#039;&#039;||libglib, libssl&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Interfaces provided&#039;&#039;&#039;||libsofia-sip-ua, libsofia-sip-ua-glib&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===telepathy-sofiasip===&lt;br /&gt;
{|cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Purpose&#039;&#039;&#039;||SIP connection manager&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Source packages&#039;&#039;&#039;||telepathy-sofiasip&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Licenses&#039;&#039;&#039;||LGPL&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Interfaces used&#039;&#039;&#039;||libglib, libdbus, libdbus-glib, libsofia-sip-ua, libsofia-sip-ua-glib, libtelepathy-glib, libssl&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Interfaces provided&#039;&#039;&#039;||None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===loudmouth===&lt;br /&gt;
{|cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Purpose&#039;&#039;&#039;||XMPP-stack implementation&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Source packages&#039;&#039;&#039;||loudmouth&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Licenses&#039;&#039;&#039;||LGPL&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Interfaces used&#039;&#039;&#039;||libglib, libssl, libcertman (libcst)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Interfaces provided&#039;&#039;&#039;||libloudmouth&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===telepathy-gabble===&lt;br /&gt;
{|cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Purpose&#039;&#039;&#039;||XMPP connection manager&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Source packages&#039;&#039;&#039;||telepathy-gabble&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Licenses&#039;&#039;&#039;||LGPL&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Interfaces used&#039;&#039;&#039;||libglib, libssl&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Interfaces provided&#039;&#039;&#039;||libglib, libdbus, libdbus-glib, libloudmouth, libtelepathy-glib&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Streaming Engines==&lt;br /&gt;
Media engines handle media streaming needs for multimedia communication methods like voice and video conversation. Generic telepathy-stream-engine provides voice and video streaming capabilities over RTP protocol. If there is a need for other kind of media streaming for some connection manager, it might be reasonable to provide separate media engine for that purpose.&lt;br /&gt;
Independent of possible other uses, libjingle is used to provide NAT traversal using STUN, GTalk relay and ICE technologies for the GTalk service. libnice provides fully standards compliant ICE implementation.&lt;br /&gt;
&lt;br /&gt;
===Functionalities provided===&lt;br /&gt;
&lt;br /&gt;
*Support for fully standards compliant ICE through libnice.&lt;br /&gt;
*Support for H.264&lt;br /&gt;
*Support for BT HFP.&lt;br /&gt;
*Support for Skype in Telepathy framework.&lt;br /&gt;
&lt;br /&gt;
===gst-plugins-farsight===&lt;br /&gt;
{|cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Purpose&#039;&#039;&#039;||GStreamer plugins specific to Farsight.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Source packages&#039;&#039;&#039;||gst-plugins-farsight&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Licenses&#039;&#039;&#039;||LGPL&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Interfaces used&#039;&#039;&#039;||libglib, gstreamer (libgstreamer-pligins-base), libjingle, libgonf2&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Interfaces provided&#039;&#039;&#039;||None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===farsight2===&lt;br /&gt;
{|cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Purpose&#039;&#039;&#039;||The Farsight project is an effort to create a framework to deal with all known audio/video conferencing protocols. On one side it offers a generic API that makes it possible to write plugins for different streaming protocols, on the other side it offers an API for clients to use those plugins. This package provides the core Farsight 2 library.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Source packages&#039;&#039;&#039;||farsight2&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Licenses&#039;&#039;&#039;||LGPL&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Interfaces used&#039;&#039;&#039;||libglib, gstreamer (libgstreamer-plugins-base, libgstreamer-plugins-good, libgstreamer-plugins-bad), libnice, libnice-gstreamer, gupnp&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Interfaces provided&#039;&#039;&#039;||libgstfarsight&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===telepathy-farsight===&lt;br /&gt;
{|cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Purpose&#039;&#039;&#039;||Glue betweeen Telepathy and Farsight2&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Source packages&#039;&#039;&#039;||telepathy-farsight&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Licenses&#039;&#039;&#039;||LGPL&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Interfaces used&#039;&#039;&#039;||libglib, libdbus (libdbus, libdbus-glib), libgstfarsight, libtelepathy-glib&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Interfaces provided&#039;&#039;&#039;||libtelepathy-farsight&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===libnice===&lt;br /&gt;
{|cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Purpose&#039;&#039;&#039;||ICE NAT-traversal implementation &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Source packages&#039;&#039;&#039;||libnice&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Licenses&#039;&#039;&#039;||MPL / LGPL&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Interfaces used&#039;&#039;&#039;||libglib, gstreamer (libgstreamer, libgstreamer-plugins-base)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Interfaces provided&#039;&#039;&#039;||libnice, libnice-gstreamer&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===telepathy-stream-engine===&lt;br /&gt;
{|cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Purpose&#039;&#039;&#039;||Media streaming engine for Telepathy, mostly used for standard RTP-over-UDP streaming. &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Source packages&#039;&#039;&#039;||telepathy-stream-engine&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Licenses&#039;&#039;&#039;||LGPL&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Interfaces used&#039;&#039;&#039;||libglib, libdbus (libdbus, libdbus-glib), libgstfarsight, gstreamer (libgstreamer-plugins-base), libtelepathy-farsight, libgtk2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==telepathy-glib==&lt;br /&gt;
Telepathy Library’s role is to provide common GObject-based C-language API for applications. It wraps Telepathy DBUS interfaces to GObjects and also provides some utility functions for accessing and enumerating DBUS interfaces. It’s code is mostly autogenerated from DBUS interface spec.&lt;br /&gt;
&lt;br /&gt;
{|cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Purpose&#039;&#039;&#039;||C API for Telepathy DBUS interfaces.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Responsibilties&#039;&#039;&#039;||Provides GObject based C-language API to the Telepathy DBUS interfaces along with some utility functions.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Notes&#039;&#039;&#039;||Most of Telepathy’s functionality is distributed as DBUS objects where the actual functionality doesn’t necessarily reside within any specific component, but as an abstract object in the DBUS network.&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;License&#039;&#039;&#039;||LGPL&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interfaces used by libtelepathy-glib&#039;&#039;&#039;&lt;br /&gt;
{|cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Interface name&#039;&#039;&#039;||&#039;&#039;&#039;License&#039;&#039;&#039;||&#039;&#039;&#039;Dependency&#039;&#039;&#039;||&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Telepathy||LGPL||glib, DBUS||RTCom Interface&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Mission Control==&lt;br /&gt;
Communication system policies are usually dependent on application and environment, thus some method external to framework has to exist for handling those. Mission Control thus enforces communication system policies. It also handles configuration information storage, network connectivity from policy point of view and is thus responsible for starting and stopping connection managers and engines. While starting up connection managers and engines, it provides the configuration information.&lt;br /&gt;
In case of network side event like presence subscription or start of communication session, Mission Control handles these transient events based on system policy and possibly starts associated UI components.&lt;br /&gt;
Misson Control employs plugin methods to provide possibility to add special event handlers called “mission control filters”. These plugins can provide special device or system dependent function handling.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|&#039;&#039;&#039;Purpose&#039;&#039;&#039;||Enforces policies, handles startup/connectivity and transient events.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Responsibilities&#039;&#039;&#039;||Enforces system policies. Handles Connection Managers, Engines and UI startups. Also handles transient and network side events. Also responsible for connectivity management.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Packages&#039;&#039;&#039;||curlpp, osso-mission-control, osso-rtcom-oma, telepathy-mission-control&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;License&#039;&#039;&#039;||LGPL, Nokia Proprietary&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==User Interfaces==	&lt;br /&gt;
&lt;br /&gt;
===Messaging UI===&lt;br /&gt;
&lt;br /&gt;
{|cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;||rtcom-messaging-ui&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Purpose&#039;&#039;&#039;||Messaging application.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Source Packages&#039;&#039;&#039;||rtcom-messaging-ui&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Licenses&#039;&#039;&#039;||Nokia&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Interfaces Used&#039;&#039;&#039;||libglib, libosso, libgtk2, libhildon1 (libhildon1, libhildon-mime, libhildonfm2), libgconf2, libtelepathy-glib, librtcom-telepathy-glib, libmcclient, libosso-abook, libebook, mce, maemo-launcher, librtcom-eventlogger, librtcom-eventlogger-ui, librtcom-eventlogger-plugins, browser-neteal&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Messaging UI is a user interface component for instant messaging sessions. It handles all kinds of non-media streaming communications like text chat.&lt;br /&gt;
&lt;br /&gt;
===Event logger===&lt;br /&gt;
{|cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;||rtcom-eventlogger-ui&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Purpose&#039;&#039;&#039;||Event logger widgets.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Source Packages&#039;&#039;&#039;||rtcom-eventlogger-ui&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Licenses&#039;&#039;&#039;||Nokia&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Interfaces Used&#039;&#039;&#039;||libglib, libgtk, libdbus, librtcom-eventlogger, librtcom-eventlogger-plugins, libosso, libosso-abook, libhildon1, libmcclient&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Interfaces Provided&#039;&#039;&#039;||librtcom-eventlogger-ui&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Logger is a database engine built into a library for logging all kinds of events. It’s particularly powerful for logging messages (optionally with attachments), calls and network events.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Notification UI===&lt;br /&gt;
{|cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;||rtcom-notification-ui&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Purpose&#039;&#039;&#039;||Notification UI, plugin for the Hildon Status Menu.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Source Packages&#039;&#039;&#039;||rtcom-notification-ui&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Licenses&#039;&#039;&#039;||Nokia&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Interfaces Used&#039;&#039;&#039;||libglib, libosso, libgtk2, libhildon1 (libhildon1, libhildondesktop1, libhildonmime), mce, libtelepathy-glib, libosso-abook, libebook, librtcom-telepathy-glib&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is a Hildon Status menu plugin for RTCom related notifications.&lt;br /&gt;
&lt;br /&gt;
===Presence UI===&lt;br /&gt;
{|cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;||rtcom-presence-ui&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Purpose&#039;&#039;&#039;||Accounts presence UI.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Source Packages&#039;&#039;&#039;||rtcom-presence-ui&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;License&#039;&#039;&#039;||Nokia&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Interfaces Used&#039;&#039;&#039;||libglib, libosso, libgtk2, libhildon1 (libhildon1, libhildondesktop1), libmcclient, maemo-launcher, liblocation, libnavigation, libcanberra, libosso-abook&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is the presence user interface.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Single-Sign-On (SSO)==&lt;br /&gt;
&lt;br /&gt;
SSO subsystem is a separate subsystem providing credential storage and a client library for applications. This way, user is not requested to login or enter credentials as he’s navigating between different service types within single service provider. In case of wide ticket-based system like OpenID (reference) , user can even use the same credential between different service providers as long as service provider accepts tickets from external providers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Purpose&#039;&#039;&#039;||Provides Single-Sign-On functionality.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Responsibilities&#039;&#039;&#039;||Provides authentication services and tokens for applications.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;||libsignon-glib&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Purpose&#039;&#039;&#039;||GObject interface to SSO functionality.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Source Packages&#039;&#039;&#039;||signon&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Licenses&#039;&#039;&#039;||Nokia&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Interfaces Used&#039;&#039;&#039;||libglib, libxml2&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Interfaces Provided&#039;&#039;&#039;||libsignon-glib&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;||libsignonui&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Purpose&#039;&#039;&#039;||UI elements of the SSO functionality.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Source Packages&#039;&#039;&#039;||signon&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Licenses&#039;&#039;&#039;||Nokia&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Interfaces Used||&#039;&#039;&#039;libglib, libgtk2, libhildon1, libaccounts, libosso-rtcom-accounts, libsignon-glib&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Interfaces Provided&#039;&#039;&#039;||libsignonui&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Name&#039;&#039;&#039;||signond&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Purpose&#039;&#039;&#039;||SSO daemon, handling credential storate and authentication.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Source Packages&#039;&#039;&#039;||signon&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Licenses&#039;&#039;&#039;||Nokia&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Interfaces Used&#039;&#039;&#039;||libglib, libxml2, libcurl (libcurl3-openssl), libssl (libcrypto)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Interfaces Provided&#039;&#039;&#039;||signond (ipc)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SSO-subsystem consists of server, here called “signond” and application libraries libsignon-glib and libsignonui.&lt;br /&gt;
Server stores credentials in optionally encrypted database. It is running under different user id than applications. Application library accesses the storage over IPC mechanism.&lt;br /&gt;
&lt;br /&gt;
==Protocol Stack==&lt;br /&gt;
Realtime communication framework connects to services using protocol plugins. Currently, XMPP/Jabber and SIP are the officially supported protocols. There’s also support for media extension of Jabber called Jingle.&lt;br /&gt;
As described earlier, each of the protocol plugins create abstraction of some protocol to a common DBUS protocol.&lt;br /&gt;
&lt;br /&gt;
GoogleTalk uses Jingle protocol to handle voice streaming.&lt;br /&gt;
&lt;br /&gt;
Standard Jabber communication always goes through persistent TCP connection to the server.&lt;br /&gt;
SIP protocol uses either UDP or TCP protocol for signaling. UDP is older and established method, while TCP is more recommended nowadays, mainly due to some particular message size and NAT traversal problems associated with UDP use. Together with SIP, standard RTP is always used for the media.&lt;/div&gt;</summary>
		<author><name>192.100.124.218</name></author>
	</entry>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=Documentation/Maemo_5_Developer_Guide/Using_Connectivity_Components/Maemo_Connectivity&amp;diff=7511</id>
		<title>Documentation/Maemo 5 Developer Guide/Using Connectivity Components/Maemo Connectivity</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=Documentation/Maemo_5_Developer_Guide/Using_Connectivity_Components/Maemo_Connectivity&amp;diff=7511"/>
		<updated>2009-10-23T13:02:09Z</updated>

		<summary type="html">&lt;p&gt;192.100.124.218: /* Bluetooth DBUS UI dialogs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Maemo Connectivity =&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
The maemo connectivity subsystem is implemented by using known Linux conventions. It resides in the user space of Linux, and relies on the Linux kernel through standard C libraries. GPRS or WLAN is the main channel to the Internet. The Bluetooth software of maemo is based on BlueZ, which is known as the de-facto implementation of Bluetooth for Linux. D-Bus is used for internal application level message exchange.&lt;br /&gt;
&lt;br /&gt;
Even though the connectivity device drivers are closely related to this subsystem, they are considered to be outside of the scope of this manual.&lt;br /&gt;
&lt;br /&gt;
===Components of the maemo connectivity architecture===&lt;br /&gt;
&#039;&#039;&#039;Maemo connectivity UI&#039;&#039;&#039; - User Interface parts of the connectivity. This includes Control Panel applets and several different dialogs.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maemo connectivity daemon (ICd)&#039;&#039;&#039; - [http://maemo.org/api_refs/5.0/beta/libconic/ LibConIC] API works together with [http://maemo.org/api_refs/5.0/beta/icd2/ ICd], handling all Internet Access Points (IAPs). IC daemon handles both WLAN and GPRS connections.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;OBEX wrapper&#039;&#039;&#039; - Interface to OBEX services. The primary target user of this library is the OBEX gnome-vfs module.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;OpenOBEX&#039;&#039;&#039; - Open source implementation of the Object Exchange (OBEX) protocol. For more information on OpenOBEX, visit http://triq.net/obex/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;BlueZ Bluetooth stack&#039;&#039;&#039; - The de-facto implementation of Bluetooth for Linux. For more information on BlueZ, visit [http://www.bluez.org/ http://www.bluez.org]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[http://git.kernel.org/?p=bluetooth/bluez.git;a=tree;f=doc;hb=HEAD BlueZ D-Bus API]&#039;&#039;&#039; - BlueZ accepts commands via D-Bus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WLAN connectivity daemon&#039;&#039;&#039; - The daemon controlling WLAN connections.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WLAN device driver&#039;&#039;&#039; - mac80211 from Linux and wl12xx driver implemented by Nokia, licensed under GPLv2.&lt;br /&gt;
&lt;br /&gt;
===Internet Access Points (IAP)===&lt;br /&gt;
The central concept for maemo Internet connections is the Internet Access Point (IAP), which represents a logical Internet (IP) connection that the user defines. An IAP has a unique name, usually in form of UUID). Among other things, it defines the radio bearer (e.g. WLAN, GPRS), and usually also the data transfer speed, username, password, proxy server, and the corresponding access point in the Internet or the telephone number of the service provider&#039;s modem.&lt;br /&gt;
&lt;br /&gt;
==Connectivity Subsystem ==&lt;br /&gt;
This section describes the system decomposition of the Connectivity subsystem. Maemo applications can open Internet connections by using the LibConIC API. The Internet Access subsystem take care of the connection to the phone, if necessary, by using the services of the Phone Access subsystem. If an application needs to gain access to the phone&#039;s files, the File selector consults the Phone Access subsystem.&lt;br /&gt;
&lt;br /&gt;
In offline mode, none of the radios must be active. The Device System Management Entity (DSME) of maemo provides information about the transitions to and from the offline mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div align=&amp;quot;CENTER&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot;&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Name&lt;br /&gt;
| width=&amp;quot;350&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Connectivity UI&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Purpose&lt;br /&gt;
| width=&amp;quot;350&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Provides the UI for managing phone and Internet connections. Available as a Control Panel applet, and from the Status Bar.&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Responsibilities and additional requirements&lt;br /&gt;
| width=&amp;quot;350&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
* Displaying active connections with statistics&lt;br /&gt;
* Updating status indicators&lt;br /&gt;
* Providing dialogs for changing and disconnecting connections&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Concurrent usage&lt;br /&gt;
| width=&amp;quot;350&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | (N/A)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot;&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Name&lt;br /&gt;
| width=&amp;quot;350&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Phone Access&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Purpose&lt;br /&gt;
| width=&amp;quot;350&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Provides connections to phones with different Bluetooth profiles&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Responsibilities and additional requirements&lt;br /&gt;
| width=&amp;quot;350&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
* Searching for phones and inquiring their services&lt;br /&gt;
* Keeping phone register&lt;br /&gt;
* Providing status of the phone connections for Connectivity UI&lt;br /&gt;
* Binding RFCOMM devices to Bluetooth services on the phone&lt;br /&gt;
* Providing easy access to OpenOBEX&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Concurrent usage&lt;br /&gt;
| width=&amp;quot;350&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Number of clients not limited by maemo. However, some phones may not support more than one Bluetooth profile at a time.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot;&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Name&lt;br /&gt;
| width=&amp;quot;350&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Internet Access&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Purpose&lt;br /&gt;
| width=&amp;quot;350&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Provides Internet connections over different bearers.&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Responsibilities and additional requirements&lt;br /&gt;
| width=&amp;quot;350&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
* Providing means for configuration and management of IAP settings&lt;br /&gt;
* Providing API for Internet connections over different bearers (e.g. WLAN, GPRS)&lt;br /&gt;
* Providing status of Internet connections for Connectivity UI&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Concurrent usage&lt;br /&gt;
| width=&amp;quot;350&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Number of clients not limited, but only one connection to the Internet can exist at any given time&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Phone and Internet connections are quite different by nature and behavior. These are introduced in more detail in the following sections.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Phone Access ===&lt;br /&gt;
Phone Access is the subsystem handling connections to a cellular phone. It offers a search utility for finding potential phones and inquiring the services they can offer. This is based on the standard Bluetooth service discovery mechanism. Phone Access also keeps a record of phones that have connected to the device in GConf, and provides a list of them for the user to choose from. Phone Access relies on the Linux Bluetooth implementation called BlueZ. BlueZ offers the Berkeley socket interface to the HCI and to the L2CAP protocol for the user space applications.&lt;br /&gt;
&lt;br /&gt;
In principle, any cellular phone supporting Bluetooth Service Discovery Protocol (SDP) and File Transfer Profile (FTP) can connect to maemo. However, different mobile phones implement varying levels of file transfer services and OBEX. Some products limit access to the Inbox (Object Push), whereas more sophisticated ones make the Gallery and the memory card available. The recent products support the OBEX Capability request for retrieving more specific information about the file system on the phone.&lt;br /&gt;
&lt;br /&gt;
Maemo connects to a phone on an on-demand basis, such as when an application requires a connection. For example, when the Internet browser is about to open a URL, it requests Phone Access to establish a connection to the phone. This causes Phone Access to bind an RFCOMM device to the requested service on the phone. In a similar fashion, the File Selector can set up a file transfer connection to the phone using another RFCOMM device. After binding to a service, the application in question can open the local RFCOMM device. Normal file selector access is performed with GnomeVFS layer to get transparent access to phone in the same way as internal flash and MMC are accessed.&lt;br /&gt;
&lt;br /&gt;
The Bluetooth SIM Access (SAP) profile is also needed in maemo to perform WLAN authentication using the EAP-SIM authentication method. In this case, the EAP component asks the BT sap component to get session keys from a GSM/UMTS phone.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div align=&amp;quot;CENTER&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div align=&amp;quot;CENTER&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot;&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Name&lt;br /&gt;
| width=&amp;quot;350&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | General Bluetooth UI&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Purpose&lt;br /&gt;
| width=&amp;quot;350&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | User interface for managing all paired BT devices&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Responsibilities and additional requirements&lt;br /&gt;
| width=&amp;quot;350&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
* Keeping a list of all paired devices (not only phones)&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Concurrent usage&lt;br /&gt;
| width=&amp;quot;350&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | N/A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot;&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Name&lt;br /&gt;
| width=&amp;quot;350&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | BT search&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Purpose&lt;br /&gt;
| width=&amp;quot;350&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Searches for available Bluetooth devices&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Responsibilities and additional requirements&lt;br /&gt;
| width=&amp;quot;350&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
* Bluetooth inquiry&lt;br /&gt;
* Checking on offline mode state&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Concurrent usage&lt;br /&gt;
| width=&amp;quot;350&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | N/A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot;&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Name&lt;br /&gt;
| width=&amp;quot;350&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | BT service discovery&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Purpose&lt;br /&gt;
| width=&amp;quot;350&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Checks if a found Bluetooth device is sufficient&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Responsibilities and additional requirements&lt;br /&gt;
| width=&amp;quot;350&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
* Bluetooth service discovery (SDP)&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Concurrent usage&lt;br /&gt;
| width=&amp;quot;350&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Not limited (but used by Phone selection UI and Phone connection daemon only)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot;&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Name&lt;br /&gt;
| width=&amp;quot;350&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | GW OBEX library&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Purpose&lt;br /&gt;
| width=&amp;quot;350&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Provides access to OpenOBEX library for the File selector (Gnome VFS) on a higher abstraction level than OpenOBEX itself supports&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Responsibilities and additional requirements&lt;br /&gt;
| width=&amp;quot;350&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
* Handling OBEX requests&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Concurrent usage&lt;br /&gt;
| width=&amp;quot;350&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Not limited&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div align=&amp;quot;CENTER&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maemo Bluetooth also supports HID (keyboard) and OPP (object push file transfer) profiles.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Internet Access ===&lt;br /&gt;
The Internet Access subsystem manages connections to the Internet over different bearers and is also responsible for the configuration and management of Internet Access Points. Internet Access provides applications with TCP/IP connections. They can be established in the following ways:&lt;br /&gt;
&lt;br /&gt;
* WLAN connection to a wireless access point.&lt;br /&gt;
* Bluetooth connection through phone using Point-to-Point Protocol (PPP) and a cellular modem (in the phone).&lt;br /&gt;
&lt;br /&gt;
For Bluetooth connections, AT commands are applied to establish a PPP link to the cellular modem and the connection to the Internet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div align=&amp;quot;CENTER&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div align=&amp;quot;CENTER&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot;&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Name&lt;br /&gt;
| width=&amp;quot;350&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | IC daemon&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Purpose&lt;br /&gt;
| width=&amp;quot;350&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | IC daemon establishes Internet connections over different bearers.&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Responsibilities and additional requirements&lt;br /&gt;
| width=&amp;quot;350&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
* Controlling that only one Internet connection (one active IAP) can exist at any given time&lt;br /&gt;
* Using WLAN or GPRS connection daemon for getting a network device and getting the connection authenticated&lt;br /&gt;
* Starting IP level services like PPP and DHCP&lt;br /&gt;
* Providing statistics about the usage of IAPs to any application&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Concurrent usage&lt;br /&gt;
| width=&amp;quot;350&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Has multiple clients and limits the connections to one at a time&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot;&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Name&lt;br /&gt;
| width=&amp;quot;350&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Internet Connectivity GUI&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Purpose&lt;br /&gt;
| width=&amp;quot;350&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Has GUI applications for configuring Internet Access Points and WLAN settings.&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Responsibilities and additional requirements&lt;br /&gt;
| width=&amp;quot;350&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
* Providing the UI for configuring an IAP&lt;br /&gt;
* Providing the UI for WLAN settings&lt;br /&gt;
* Scanning for available WLAN networks (on request)&lt;br /&gt;
* Saving IAP and WLAN settings (excluding EAP settings) to GConf&lt;br /&gt;
* Opening up dialogs and displaying notifications&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Concurrent usage&lt;br /&gt;
| width=&amp;quot;350&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | N/A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot;&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Name&lt;br /&gt;
| width=&amp;quot;350&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | WLAN connection daemon&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Purpose&lt;br /&gt;
| width=&amp;quot;350&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Manages WLAN network connections&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Responsibilities and additional requirements&lt;br /&gt;
| width=&amp;quot;350&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
* Starting WLAN driver with the settings provided; stopping WLAN&lt;br /&gt;
* Requesting authentication when necessary&lt;br /&gt;
* Relaying WLAN IAP settings from IC daemon to WLAN drivers and authentication requests to EAP&lt;br /&gt;
* Relaying WLAN events from WLAN drivers&lt;br /&gt;
* Providing WLAN status information&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Concurrent usage&lt;br /&gt;
| width=&amp;quot;350&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Not limited&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot;&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Name&lt;br /&gt;
| width=&amp;quot;350&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | EAP UI&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Purpose&lt;br /&gt;
| width=&amp;quot;350&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | User interface for EAP authentication&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Responsibilities and additional requirements&lt;br /&gt;
| width=&amp;quot;350&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
* Invoking a dialog for an authentication password&lt;br /&gt;
* Showing authentication status&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Concurrent usage&lt;br /&gt;
| width=&amp;quot;350&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | N/A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot;&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Name&lt;br /&gt;
| width=&amp;quot;350&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | EAP&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Purpose&lt;br /&gt;
| width=&amp;quot;350&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Provides WLAN security excluding basic WEP settings, which are in Wireless Extensions&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Responsibilities and additional requirements&lt;br /&gt;
| width=&amp;quot;350&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
* Taking care of the authentication process for the active IAP&lt;br /&gt;
* Delivering progress events to IC daemon&lt;br /&gt;
* As a special case, controlling the EAP-SIM authentication using the SIM Access Profile&lt;br /&gt;
* Providing authentication status&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Concurrent usage&lt;br /&gt;
| width=&amp;quot;350&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | N/A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div align=&amp;quot;CENTER&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Internet Connectivity Daemon ==&lt;br /&gt;
This section describes how the Internet Connectivity daemon works internally. The following subsections explain the behavior and the decomposition of this component in detail, also covering the interfaces that this component realizes.&lt;br /&gt;
&lt;br /&gt;
===Decomposition ===&lt;br /&gt;
If the ICd receives a request to activate or deactivate an IAP, the ICd activates the IAP or, if no IAP has been defined as the default, shows a uI requesting the user to choose one. Depending on the type of the IAP, the ICd uses the appropriate network type plug-in to activate or deactivate specific network interface.&lt;br /&gt;
&lt;br /&gt;
The ICd tracks the applications requesting IAPs by recording their D-Bus base service names. This allows the ICd to detect situations where processes using an IAP have aborted or crashed. &lt;br /&gt;
&lt;br /&gt;
Maemo version 3.0 introduced the automatic connection creation feature in the Internet Connectivity Daemon. In other words, the device tries to connect automatically to the saved IAPs, and keep connected as long as possible. With this feature, applications like e-mail and RSS reader are always up to date. The device is also always ready for online use, for example, incoming VoIP calls or IM chat. In earlier versions, the Internet connection was automatically closed if no application was using it or when the connection was idle for the period of time defined by the idle timeout configuration parameter.&lt;br /&gt;
&lt;br /&gt;
When the device is not connected, it scans for saved IAPs and tries to connect automatically, taking into account the value defined by the search interval configuration parameter. The search interval can be 5, 10, 30 or 60 minutes; all other values are automatically mapped to &amp;quot;Never&amp;quot;. This setup switches off the automatic connection feature. In this case, the device behaves just like the former versions: Connections are created only when applications require it.&lt;br /&gt;
&lt;br /&gt;
Because each application keeps its data updated and provides the always-online feature, the ICd is only responsible for creating connections.&lt;br /&gt;
&lt;br /&gt;
While writing an application making use of the ICd system, keep the following in mind:&lt;br /&gt;
&lt;br /&gt;
* The application must always use the existing available connection.&lt;br /&gt;
* As in former versions, if the device is not connected but a connection is required by user interaction, the application must require connection creation using LibConIC API.&lt;br /&gt;
* Ensure that the user is aware of updates and can see the time when the data was last updated.&lt;br /&gt;
* Ensure that the application registers via LibConIC and listens to signals emitted by the ICd (Connection Created, Lost and Changed), and react as follows:&lt;br /&gt;
** &#039;&#039;&#039;Connection Created&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;: Use the connection and update all data. &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
** &#039;&#039;&#039;Connection Lost&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;: Go to an idle state silently and wait until a new connection is created. &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
** &#039;&#039;&#039;Connection Changed&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;: Use the new connection. &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* Ensure that automatic data updates run in background and silently:&lt;br /&gt;
** Avoid alarming the user with unnecessary banners or dialogs.&lt;br /&gt;
** Ensure that usernames and passwords are saved so that automatic updates can be performed without prompts.&lt;br /&gt;
** During and after updates, ensure that no failures display error notifications.&lt;br /&gt;
* The connectivity infrastructure must take care of error situations in a centralized way.&lt;br /&gt;
&lt;br /&gt;
You can switch off the automatic connection creation feature by using offline mode. While in this mode, the configuration parameter for allowing WLAN in offline mode is checked. Depending on the state of this configuration parameter, WLAN IAPs are either enabled or disabled in the offline mode. Also other radios like Bluetooth are normally disabled in the offline mode.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== WLAN ===&lt;br /&gt;
For connecting to a WLAN, the ICd needs to associate with the network as well as enable EAP authentication and the DHCP client as needed. Independently of whether an active IAP using WLAN exists, the requested WLAN network is first scanned to ensure that it is available. If the requested network is found and the current IAP is using WLAN, the current IAP is deactivated. WLAN is activated according to the following procedure:&lt;br /&gt;
&lt;br /&gt;
* If the network requires EAP authentication, the EAP authentication procedure is started. While performing the EAP authentication, the EAP software may show GUI dialogs relating to the EAP authentication procedure. When EAP authentication is complete, the EAP software sets security keys for the WLAN network, resulting in state change messages from wlancond. The ICd receives these messages but ignores them and waits for the reply from EAP authentication instead. If the EAP authentication fails, the ICd aborts with a D-Bus error message.&lt;br /&gt;
* After the EAP process starts, the ICd instructs wlancond to associate with the WLAN network. Any static security settings relating to pre-shared security keys are also supplied at this point. If it cannot establish a connection to the WLAN network, the ICd aborts with an error.&lt;br /&gt;
* Because the DHCP client is a stand-alone program, start it by using exec if the WLAN IAP requires dynamic IP address acquisition. When the DHCP client has obtained an IP address, it configures IP-related parameters, and sends a D-Bus signal to the ICd. If it cannot obtain the IP address lease, the ICd times out, stops the DHCP client and aborts with a D-Bus error message.&lt;br /&gt;
&lt;br /&gt;
==LibConIC Library ==&lt;br /&gt;
Internet Connectivity API (in shorter form: Libconic) is an API for applications to manage internet connections on Maemo devices. It was introduced in the first IT OS 2007 release, deprecating the old OSSO IC API (osso-ic-lib). OSSO IC API was conclusively removed in the IT OS 2008 release. For more information on libconic interfaces, see [http://maemo.org/api_refs/4.1/libconic-0.16/index.html Internet Connectivity API]&lt;br /&gt;
&lt;br /&gt;
Libconic is high level and stable object-oriented API suitable for the following purposes:&lt;br /&gt;
&lt;br /&gt;
* requesting Internet connection&lt;br /&gt;
* listening for Internet connection status events&lt;br /&gt;
* receiving statistics of Internet connection&lt;br /&gt;
* getting proxy settings for the current connection&lt;br /&gt;
* getting a list of user-saved connections (IAPs)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Application Requirements&#039;&#039;&#039;&lt;br /&gt;
Before applications can use the Libconic API, they must meet the following requirements:&lt;br /&gt;
&lt;br /&gt;
# use non-blocking sockets&lt;br /&gt;
# have the system D-BUS running&lt;br /&gt;
# &#039;&#039;g_type_init()&#039;&#039; has to be called&lt;br /&gt;
# employ no threading support in the Libconic API&lt;br /&gt;
&lt;br /&gt;
If the application is a standard Hildon application, almost all of these requirements are already fulfilled. LibOSSO context initialization connects the application to both session and system D-BUS buses, &#039;&#039;g_type_init()&#039;&#039; is called as a part of &#039;&#039;gtk_init()&#039;&#039;, and probably no extra threads are used. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Non-Blocking Sockets&#039;&#039;&#039;&lt;br /&gt;
Blocking sockets cannot be used because that would also block incoming Connectivity events. Non-blocking sockets should be used in order to receive the events properly. For example, GLib IO Channels with the &#039;&#039;G_IO_FLAG_NONBLOCK&#039;&#039; flag provide non-blocking way to use sockets.&lt;br /&gt;
&lt;br /&gt;
With threads, blocking sockets can be used, although Libconic API itself is not thread safe. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;System D-BUS&#039;&#039;&#039;&lt;br /&gt;
Libconic API uses internally system D-BUS for delivering messages to the Connectivity components. Applications must be running normal D-BUS dispatch, watch and timeout monitoring before using the Libconic API. If the GLib mainloop is used, this can be accomplished with &amp;lt;br /&amp;gt;&#039;&#039;dbus_connection_setup_with_g_main()&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
N.B. Setting up LibOSSO context connects the application to required D-BUS. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;GType&#039;&#039;&#039;&lt;br /&gt;
Libconic API is GObject-basedm, so in order to get the API working, you must initialize GLib&#039;s GType properly. To do that, use &#039;&#039;g_type_init()&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;No Multiple Threads&#039;&#039;&#039;&lt;br /&gt;
Libconic API is not thread-safe. If the applications have threads, use Libconic API only from the same context where GMainloop is running.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Libconic Usage ===&lt;br /&gt;
&lt;br /&gt;
==== Requesting for Connection ====&lt;br /&gt;
Libconic is an asynchronous connection API, which heavily relies on GObject signals. Basically this means that GMainloop must be iterated in order to successfully execute connection requests. After the application is set up, use a &#039;&#039;ConIcConnection&#039;&#039; object to request a connection:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;    gboolean success &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; FALSE&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* Create connection object */&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
     ConIcConnection &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;connection &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;con_ic_connection_new&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;();&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* Connect signal to receive connection events */&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_signal_connect&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;G_OBJECT&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;connection&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;),&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;connection-event&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                      &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;G_CALLBACK&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;my_connection_handler&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;),&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; NULL&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* Request connection and check for the result */&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
     success &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;con_ic_connection_connect&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;connection&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; CON_IC_CONNECT_FLAG_NONE&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;if&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(!&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;success&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;)&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_warning&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;Request for connection failed&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point, the application does not yet have an Internet connection. A successful return from &#039;&#039;con_ic_connection_connect()&#039;&#039; means only that the request was successfully dispatched to the Internet Connectivity daemon. When the daemon has a connection ready, the application receives an event (as an GObject signal) indicating that the device is connected. If the connection attempt fails, the application receives a disconnected event with an error describing the reason for the failure.&lt;br /&gt;
&lt;br /&gt;
The connection handler (&#039;&#039;my_connection_handler()&#039;&#039; function registered in the previous snippet) could look like this:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;static&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#009900&amp;quot;&amp;gt;void&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;my_connection_handler&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;ConIcConnection &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;connection&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                                   ConIcConnectionEvent &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;event&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                                   gpointer user_data&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;)&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;{&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     ConIcConnectionStatus status &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;con_ic_connection_event_get_status&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;event&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     ConIcConnectionError error&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;const&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; gchar &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;iap_id &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;con_ic_event_get_iap_id&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;CON_IC_EVENT&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;event&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;));&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;const&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; gchar &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;bearer &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;con_ic_event_get_bearer_type&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;CON_IC_EVENT&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;event&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;));&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;switch&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;status&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;)&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;{&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
         &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;case&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; CON_IC_STATUS_CONNECTED&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
             &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_debug&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;Hey, we are connected to IAP %s with bearer %s!&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; iap_id&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; bearer&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
             &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;break&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
         &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;case&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; CON_IC_STATUS_DISCONNECTING&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
             &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_debug&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;We are disconnecting...&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
             &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;break&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
         &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;case&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; CON_IC_STATUS_DISCONNECTED&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
             &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_debug&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;And we are disconnected. Let&#039;s see what went wrong...&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
             error &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;con_ic_connection_event_get_error&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;event&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
             &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;switch&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;error&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;)&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;{&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                 &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;case&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; CON_IC_CONNECTION_ERROR_NONE&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                     &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_debug&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;Libconic thinks there was nothing wrong.&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                     &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;break&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                 &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;case&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; CON_IC_CONNECTION_ERROR_INVALID_IAP&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                     &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_debug&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;Invalid (non-existing?) IAP was requested.&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                     &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;break&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                 &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;case&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; CON_IC_CONNECTION_ERROR_CONNECTION_FAILED&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                     &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_debug&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;Connection just failed.&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                     &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;break&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                 &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;case&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; CON_IC_CONNECTION_ERROR_USER_CANCELED&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                     &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_debug&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;User canceled the connection attempt&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                     &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;break&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
             &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;}&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
             &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;break&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
         &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;default&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
             &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_debug&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;Unknown connection status received&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;}&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;}&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Listening for Connection Events ====&lt;br /&gt;
Sometimes the application does not actively start connections but needs to detect if the device is online. The Libconic &amp;quot;automatic events&amp;quot; feature, enabled with &amp;quot;automatic-events&amp;quot; GObject property, can achieve this:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;    &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* Create connection object */&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
     ConIcConnection &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;connection &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;con_ic_connection_new&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;();&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* Connect signal to receive connection events */&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_signal_connect&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;G_OBJECT&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;connection&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;),&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;connection-event&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                      &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;G_CALLBACK&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;my_connection_handler&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;),&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; NULL&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* Set automatic events */&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_object_set&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;G_OBJECT&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;connection&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;),&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;automatic-events&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; TRUE&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; NULL&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When automatic events are turned on, the application receives connected and disconnected events for all Internet connection changes. In addition to this, the application receives an event for the initial connection status. If the device is disconnected, &#039;&#039;ConIcConnectionEvent&#039;&#039; with status &#039;&#039;CON_IC_STATUS_DISCONNECTED&#039;&#039; is emitted. This event has NULL IAP ID and bearer, because there is no IAP getting disconnected, but the event indicates that the device is offline.&lt;br /&gt;
&lt;br /&gt;
N.B. The main loop must be reiterated in order to receive the event. If you need the connection status information synchronously, you can iterate the main loop yourself:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;static&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#009900&amp;quot;&amp;gt;void&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;connection_info&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;ConIcConnection &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;connection&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                             ConIcConnectionEvent &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;event&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                             gpointer user_data&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;)&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;{&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     ConIcConnectionStatus status &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;con_ic_connection_event_get_status&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;event&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     ConIcConnectionStatus &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;status_ptr &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;ConIcConnectionStatus&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*)&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;user_data&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;status_ptr &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; status&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;}&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* ... */&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* Create connection object and set on automatic events (see previous snippet) ... */&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;static&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; ConIcConnectionStatus status &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#993399&amp;quot;&amp;gt;0xFFFF&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     ConIcConnection &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;connection &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;con_ic_connection_new&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;();&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_signal_connect&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;G_OBJECT&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;connection&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;),&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;connection-event&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                      &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;G_CALLBACK&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;connection_info&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;),&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;amp;amp;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;status&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_object_set&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;G_OBJECT&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;Connection&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;),&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;automatic-events&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; TRUE&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; NULL&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* Iterate main loop for the first connection event */&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;while&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;status &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;==&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#993399&amp;quot;&amp;gt;0xFFFF&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;)&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_main_context_iteration&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;NULL&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; TRUE&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;if&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;status &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;==&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; CON_IC_STATUS_CONNECTED&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;)&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
         &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_debug&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;We are connected!&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;else&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
         &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_debug&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;We are not connected!&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Receiving Statistics of Connection ====&lt;br /&gt;
To receive statistics of the current Internet connection, use the &#039;&#039;con_ic_connection_statistics()&#039;&#039; function and the corresponding event handler. You can retrieve statistics for a specified IAP or just for the current default connection. Note that currently the Internet Connectivity daemon provides only one Internet connection at a time, so the best option is to leave IAP ID NULL.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;static&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#009900&amp;quot;&amp;gt;void&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;connection_statistics&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;ConIcConnection &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;connection&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                                   ConIcStatisticsEvent &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;event&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                                   gpointer user_data&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;)&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;{&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_debug&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;Here are all kind of nice statistics about the connection:&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_debug&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;Time active: %u, signal strength: %u, received packets: %llu, &amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
             &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;sent packets: %llu, received bytes: %llu, sent bytes: %llu&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
             &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;con_ic_statistics_event_get_time_active&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;event&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;),&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
             &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;con_ic_statistics_event_get_signal_strength&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;event&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;),&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
             &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;con_ic_statistics_event_get_rx_packets&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;event&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;),&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
             &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;con_ic_statistics_event_get_tx_packets&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;event&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;),&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
             &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;con_ic_statistics_event_get_rx_bytes&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;event&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;),&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
             &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;con_ic_statistics_event_get_tx_bytes&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;event&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;));&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;}&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* ... */&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* ConIcConnection object named &amp;quot;connection&amp;quot; has already been created */&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_signal_connect&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;G_OBJECT&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;connection&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;),&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;statistics&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                      &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;G_CALLBACK&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;connection_statistics&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;),&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; NULL&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;if&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(!&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;con_ic_connection_statistics&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;connection &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;NULL&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;))&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
         &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_warning&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;Requesting connection statistics failed!&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Getting Proxy Settings ====&lt;br /&gt;
Libconic allows you to set up Internet connection proxy settings for various protocols. The first step is to discover the current proxy mode by using the &#039;&#039;con_ic_connection_get_proxy_mode()&#039;&#039; function. Next, use the following functions to get the actual proxy settings:&lt;br /&gt;
&lt;br /&gt;
* If proxy mode is CON_IC_PROXY_MODE_NONE, do not use any proxies.&lt;br /&gt;
* If proxy mode is CON_IC_PROXY_MODE_MANUAL, use the following functions to query proxy settings:&lt;br /&gt;
** con_ic_connection_get_proxy_host() to get the proxy host&lt;br /&gt;
** con_ic_connection_get_proxy_port() to get the proxy port&lt;br /&gt;
** con_ic_connection_get_proxy_ignore_hosts() to get a list of hosts for which the proxy should not be used.&lt;br /&gt;
* If proxy mode is CON_IC_PROXY_MODE_AUTO, use &amp;lt;br /&amp;gt; con_ic_connection_get_proxy_autoconfig_url() to get a proxy auto configuration URL.&lt;br /&gt;
** Use of auto configuration URL is explained in [http://en.wikipedia.org/wiki/Proxy_auto-config Wikipedia]&lt;br /&gt;
&lt;br /&gt;
In this example, the &amp;quot;connection-event&amp;quot; handler is modified to print HTTP proxy settings when establishing connection:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;static&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#009900&amp;quot;&amp;gt;void&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;my_connection_handler&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;ConIcConnection &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;connection&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                                   ConIcConnectionEvent &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;event&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                                   gpointer user_data&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;)&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;{&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     ConIcConnectionStatus status &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;con_ic_connection_event_get_status&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;event&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     GSList &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;ignore_hosts&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;if&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;status &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;==&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; CON_IC_STATUS_CONNECTED&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;)&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;{&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
         &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_debug&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;We are connected! \&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;Let&#039;s see what kind of settings we have for HTTP proxy...&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
         &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* Do things based on specified proxy mode */&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
         &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;switch&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;con_ic_connection_get_proxy_mode&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;connection&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;))&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;{&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
             &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;case&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; CON_IC_PROXY_MODE_NONE&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                 &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_debug&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;No proxies defined, it is direct connection&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                 &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;break&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
             &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;case&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; CON_IC_PROXY_MODE_MANUAL&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                 &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_debug&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;HTTP proxy %s:%d in use&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                         &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;con_ic_connection_get_proxy_host&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;connection&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; CON_IC_PROXY_PROTOCOL_HTTP&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;),&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                         &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;con_ic_connection_get_proxy_port&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;connection&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; CON_IC_PROXY_PROTOCOL_HTTP&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;));&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
                 &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_debug&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;List of hosts, for which proxy should not be used:&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                 ignore_hosts &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;con_ic_connection_proxy_ignore_hosts&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;connection&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                 &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;for&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;GSList &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;iter &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; ignore_hosts&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; iter &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;!=&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; NULL&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; iter &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_slist_next&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;iter&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;))&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                 &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;{&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                     &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_debug&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;%s&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;gchar &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*)&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;iter&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;-&amp;amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;data&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                     &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_free&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;iter&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;-&amp;amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;data&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                 &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;}&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                 &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_slist_free&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;ignore_hosts&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                 &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;break&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
             &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;case&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; CON_IC_PROXY_MODE_AUTO&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                 &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_debug&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;Proxy auto-config URL %s should be used&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                         &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;con_ic_connection_get_proxy_autoconfig_url&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;connection&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;));&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                 &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;break&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
         &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;}&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;}&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;}&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Proxy functions also exist for each individual protocol (like &amp;lt;br /&amp;gt;&#039;&#039;con_ic_connection_get_proxy_ftp_host()&#039;&#039;), but these functions are deprecated. Avoid them in newly-written code.&lt;br /&gt;
&lt;br /&gt;
====Getting List of User-Saved Connections ====&lt;br /&gt;
To query all user-saved connections (IAPs), use the &#039;&#039;con_ic_connection_get_all_iaps()&#039;&#039; function. The function returns simply a singly linked list of ConIcIap objects:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;    &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* ConIcConnection object named &amp;quot;connection&amp;quot; has already been created */&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
     GSList &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;saved_iaps &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;con_ic_connection_get_all_iaps&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;connection&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_debug&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;The following connections have been saved by the user:&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;for&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;GSList &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;iter &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; saved_iaps&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; iter &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;!=&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; NULL&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; iter &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_slist_next&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;iter&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;))&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;{&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
         &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* Get IAP object and print some information about it */&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
         ConIcIap &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;iap &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;ConIcIap &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*)&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;iter&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;-&amp;amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;data&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
         &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_debug&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;Connection %s called &#039;%s&#039; using bearer %s&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                 &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;con_ic_iap_get_id&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;iap&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;),&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;con_ic_iap_get_name&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;iap&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;),&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                 &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;con_ic_iap_get_bearer_type&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;iap&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;));&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
         &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* We unref the IAP object as we are not going to use it anymore */&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
         &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_object_unref&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;iap&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;}&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_slist_free&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;saved_iaps&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Porting Application from OSSO IC API to Libconic ====&lt;br /&gt;
* If the application does not have GType, GLib or D-BUS configured, set them up:&lt;br /&gt;
 &amp;lt;tt&amp;gt;      DBusConnection &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;system_dbus&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
       GMainloop &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;main_loop&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
       &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_type_init&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;();&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
       main_loop &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_main_loop_new&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;NULL&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; FALSE&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
       system_dbus &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;dbus_bus_get&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;DBUS_BUS_SYSTEM&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; NULL&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
       &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;dbus_connection_setup_with_g_main&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;system_dbus&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; NULL&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Include the correct header file:&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000080&amp;quot;&amp;gt;      #include&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;amp;lt;osso-ic.h&amp;amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
       &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;===&amp;amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000080&amp;quot;&amp;gt;      #include&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;amp;lt;conic.h&amp;amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Set up &#039;&#039;ConIcConnection&#039;&#039; object and &amp;quot;connection-event&amp;quot; handler instead of &#039;&#039;osso_iap_cb_t&#039;&#039; callback:&lt;br /&gt;
 &amp;lt;tt&amp;gt;      &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;static&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#009900&amp;quot;&amp;gt;void&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;my_connection_cb&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;struct&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#009900&amp;quot;&amp;gt;iap_event_t&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;event&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#009900&amp;quot;&amp;gt;void&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;arg&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;)&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
       &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;{&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
       &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* ... */&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
       &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;}&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
       &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* ... */&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
           &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;osso_iap_cb&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;my_connection_cb&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
       &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;===&amp;amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
       &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;static&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#009900&amp;quot;&amp;gt;void&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;my_connection_cb&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;ConIcConnection &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;connection&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                                    ConIcConnectionEvent &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;event&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                                    gpointer user_data&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;)&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
       &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;{&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
       &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* ... */&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
       &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;}&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
       &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* ... */&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
           ConIcConnection &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;connection &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;con_ic_connection_new&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;();&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
           &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_signal_connect&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;G_OBJECT&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;connection&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;),&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;connection-event&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                            &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;G_CALLBACK&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;my_connection_cb&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;),&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; app_data&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Manage connections through &#039;&#039;ConIcConnection&#039;&#039; API instead of &amp;lt;br /&amp;gt;&#039;&#039;osso_iap_connect()&#039;&#039; and &#039;&#039;osso_iap_disconnect()&#039;&#039;&amp;lt;nowiki&amp;gt;: &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;      &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;osso_iap_connect&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;OSSO_IAP_ANY&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; OSSO_IAP_REQUESTED_CONNECT&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; app_data&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
       &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;osso_iap_disconnect&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;iap_name&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; app_data&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
       &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;===&amp;amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
       &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;con_ic_connection_connect&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;connection&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; CON_IC_CONNECT_FLAG_NONE&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
       &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;con_ic_connection_disconnect&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;connection&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Request statistics with &#039;&#039;con_ic_connection_statistics()&#039;&#039; instead of &amp;lt;br /&amp;gt;&#039;&#039;osso_iap_get_statistics()&#039;&#039;.&lt;br /&gt;
* List all available IAPs with &#039;&#039;con_ic_connection_get_all_iaps()&#039;&#039; instead of &amp;lt;br /&amp;gt;&#039;&#039;osso_iap_get_configured_iaps()&#039;&#039;.&lt;br /&gt;
* Configure autoconf to use Libconic instead of OSSO IC API:&lt;br /&gt;
 &amp;lt;tt&amp;gt;      PKG_CHECK_MODULES&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;OSSOIC&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; osso-ic&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;)&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
       AC_SUBST&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;OSSOIC_CFLAGS&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;)&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
       AC_SUBST&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;OSSOIC_LIBS&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;)&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
       &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;===&amp;amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
       PKG_CHECK_MODULES&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;CONIC&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; conic&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;)&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
       AC_SUBST&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;CONIC_CFLAGS&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;)&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
       AC_SUBST&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;CONIC_LIBS&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;)&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
* In debian/control file &amp;quot;Build-Depends&amp;quot; section, depend on libconic0-dev instead of osso-ic-dev.&lt;br /&gt;
&lt;br /&gt;
==Bluetooth Libraries ==&lt;br /&gt;
This section explains how maemo Bluetooth libraries work internally. The following subsections explain the behavior and the decomposition of the Bluetooth library components in detail.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Libgwobex ===&lt;br /&gt;
Libgwobex provides access to libopenobex functionality by providing a &amp;lt;br /&amp;gt; helper/wrapper interface. Libopenobex is explained in detail in the following section.&lt;br /&gt;
&lt;br /&gt;
The interface to libgwobex is available at [http://maemo.org/api_refs/4.1/osso-gwobex-0.60/index.html GW OBEX Library Documentation].&lt;br /&gt;
&lt;br /&gt;
===Creating Connection ===&lt;br /&gt;
The connection with libgwobex is established using the gw_obex_setup_dev function, setting up the connection. gw-obex.h&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000080&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;#define&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; OBEX_FTP_UUID &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;\&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
         &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#CC33CC&amp;quot;&amp;gt;\x&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;F9&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#CC33CC&amp;quot;&amp;gt;\x&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;EC&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#CC33CC&amp;quot;&amp;gt;\x&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;7B&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#CC33CC&amp;quot;&amp;gt;\x&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;C4&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#CC33CC&amp;quot;&amp;gt;\x&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;95&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#CC33CC&amp;quot;&amp;gt;\x&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;3C&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#CC33CC&amp;quot;&amp;gt;\x&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;11&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#CC33CC&amp;quot;&amp;gt;\x&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;D2&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#CC33CC&amp;quot;&amp;gt;\x&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;98&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#CC33CC&amp;quot;&amp;gt;\x&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;4E&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#CC33CC&amp;quot;&amp;gt;\x&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;52&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#CC33CC&amp;quot;&amp;gt;\x&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;54&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#CC33CC&amp;quot;&amp;gt;\x&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;00&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#CC33CC&amp;quot;&amp;gt;\x&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;DC&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#CC33CC&amp;quot;&amp;gt;\x&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;9E&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#CC33CC&amp;quot;&amp;gt;\x&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;09&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000080&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;#define&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; OBEX_FTP_UUID_LEN &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#993399&amp;quot;&amp;gt;16&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* ... */&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 GwObex&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;gw_obex_setup_dev&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;const&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; gchar &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; device&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;const&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; gchar &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; uuid&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; gint uuid_len&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                            GMainContext &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; context&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; gint &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; error &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;)&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following code snippet illustrates how to open a handle using gw_obex_setup_dev.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;if&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;ctx&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;-&amp;amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;rfcomm_dev&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;)&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;{&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
         &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;if&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;ctx&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;-&amp;amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;use_ftp&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;)&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                 ctx&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;-&amp;amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;obex &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;gw_obex_setup_dev&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;ctx&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;-&amp;amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;rfcomm_dev&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                         OBEX_FTP_UUID&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; OBEX_FTP_UUID_LEN&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                         NULL&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;amp;amp;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;err&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
         &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;else&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
                 ctx&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;-&amp;amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;obex &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;gw_obex_setup_dev&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;ctx&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;-&amp;amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;rfcomm_dev&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; NULL&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                         &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#993399&amp;quot;&amp;gt;0&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; NULL&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;amp;amp;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;err&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
         &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;if&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;ctx&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;-&amp;amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;obex &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;==&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; NULL&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;)&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                 &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;printf&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;OBEX setup failed: %s&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#CC33CC&amp;quot;&amp;gt;\n&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;response_to_string&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;err&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;));&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;}&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this example, ctx-&amp;amp;gt;rfcomm_dev points to a string containing the device node name (e.g. /dev/rfcomm0). ctx-&amp;amp;gt;use_ftp dictates whether to set up standard folder browsing services. If use_ftp is untrue, then INBOX is connected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Closing Connection ===&lt;br /&gt;
To close a gwobex connection, use the following function: gw-obex.h&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#009900&amp;quot;&amp;gt;void&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;gw_obex_close&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; GwObex &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; ctx &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following code demonstrates this usage.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;if&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;ctx&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;-&amp;amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;obex&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;)&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;{&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
         &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;gw_obex_close&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;ctx&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;-&amp;amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;obex&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
         ctx&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;-&amp;amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;obex &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; NULL&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;}&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If ctx-&amp;amp;gt;obex is not NULL, it is simply passed as an argument to gw_obex_close().&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Using Connection ===&lt;br /&gt;
The libgwobex library provides general file handling functionality, including reading directory structure, browsing in different folders and getting files.&lt;br /&gt;
&lt;br /&gt;
To read entries from an opened directory, use the following function: gw-obex.h&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;gboolean &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;gw_obex_read_dir&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;GwObex &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; ctx&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                            &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;const&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; gchar &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; dir&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                            gchar &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;**&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; buf&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                            gint &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; buf_size&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                            gint &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; error &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
gw_obex_read_dir reads an entry from the selected folder and returns the result in the buf argument given to the function.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;gboolean ret&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* ... */&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 ret &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;gw_obex_read_dir&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;ctx&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;-&amp;amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;obex&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; dir&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; buf&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; buf_size&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; err&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This reads an entry from the directory dir (char *) and returns it in buf (char **).&lt;br /&gt;
&lt;br /&gt;
To change the current directory, use the following function: gw-obex.h&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;gboolean &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;gw_obex_chdir&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;GwObex &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; ctx&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;const&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; gchar &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; dir&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; gint &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; error &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which changes the directory of the FTP connection. Below is a code example using this function.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* Ignore parent dir pointers */&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;if&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_str_equal&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;name&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;..&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;))&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
         &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;return&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; TRUE&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;if&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(!&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;gw_obex_chdir&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;ctx&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;-&amp;amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;obex&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; name&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; err&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;))&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;{&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
         &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;printf&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;Could not chdir to %s&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#CC33CC&amp;quot;&amp;gt;\n&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; name&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
         &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;return&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; FALSE&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;}&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To retrieve files over the OBEX connection, use the gw_obex_get_file function: gw-obex.h&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;gboolean &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;gw_obex_get_file&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;GwObex &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; ctx&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                            &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;const&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; gchar &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; local&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                            &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;const&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; gchar &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; remote&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                            &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;const&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; gchar &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; type&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                            gint &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; error&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
gw_obex_get_file uses the ctx context for retrieving the remote file to local file.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;gboolean ret&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 ret &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;gw_obex_get_file&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;ctx&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;-&amp;amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;obex&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; name&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; name&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; err&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Using the libwobex wrapper directly allows you to perform many more functions. For more information, see the [hhttp://maemo.org/api_refs/5.0/beta/osso-gwobex/ API document].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Libopenobex ===&lt;br /&gt;
The LibOpenOBEX library implements a generic OBEX Session Protocol, but not the OBEX Application Framework. OBEX is a protocol designed to allow data interchanging between different kinds of connections (e.g. Bluetooth, IrDA). For more information on the OBEX protocol, see [http://www.irda.org/ http://www.irda.org]&amp;lt;nowiki&amp;gt;; select the Developer-&amp;amp;gt;Specifications category. OBEX resembles the HTTP protocol, expect for a few differences: &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Transports: While HTTP is normally layered above a TCP/IP connection, OBEX is usually transported over IrLAP/IrLMP/Tiny TP (on IrDA) or over Baseband/Link Manager/L2CAP/RFCOMM (on Bluetooth).&lt;br /&gt;
* Binary transmissions: OBEX communicates using binary transmissions, as HTTP is transmitted in a human-readable XML-based format.&lt;br /&gt;
* Session support: HTTP is stateless, while OBEX maintains the connection.&lt;br /&gt;
&lt;br /&gt;
For more information on OBEX, see the summary available at &amp;lt;br /&amp;gt;http://en.wikipedia.org/wiki/OBEX.&lt;br /&gt;
&lt;br /&gt;
For libopenobex code samples, see &amp;lt;br /&amp;gt;http://openobex.triq.net/downloads&amp;lt;nowiki&amp;gt;; the samples are in the example apps package. &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Using BlueZ D-Bus API ===&lt;br /&gt;
The BlueZ system exports a D-Bus API that can be employed instead of OSSO Bluetooth tools. See the following documents:&lt;br /&gt;
&lt;br /&gt;
* [http://git.kernel.org/?p=bluetooth/bluez.git;a=tree;f=doc;hb=HEAD BlueZ D-Bus API documentation]&lt;br /&gt;
&lt;br /&gt;
==Connectivity UI ==&lt;br /&gt;
&lt;br /&gt;
===UI Components ===&lt;br /&gt;
Connectivity UI contains various dialogs and other components used to control the connectivity. The different UI parts are:&lt;br /&gt;
&lt;br /&gt;
* Connectivity UI&lt;br /&gt;
* Connectivity dialogs&lt;br /&gt;
* Status bar applets&lt;br /&gt;
* Control panel applet&lt;br /&gt;
* Bluetooth UIs&lt;br /&gt;
&lt;br /&gt;
The connectivity dialogs are invoked by D-Bus method calls, so for example the ICd is using these D-Bus method calls for showing dialogs when they are needed. The next section specifies the D-Bus API of maemo connectivity UI.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===D-Bus Connectivity UI Interface ===&lt;br /&gt;
If the user must provide information about the IAP that the system is about to connect to, you can use the following method:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;graybox&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 Service:           com.nokia.icd_ui&lt;br /&gt;
 Interfaces:        com.nokia.icd_ui&lt;br /&gt;
 Object paths:      /com/nokia/icd_ui&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Internet Connectivity UIs implement the following D-Bus API used by the ICd and EAP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;graybox&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 Method:            show_conn_dlg&lt;br /&gt;
 Parameters:        1. boolean When TRUE the dialog is requested because&lt;br /&gt;
                               there were no saved connections (i.e. auto  &lt;br /&gt;
                               connect was tried before invoking the dialog)&lt;br /&gt;
 Return parameters: none&lt;br /&gt;
 Errors:            com.nokia.icd_ui.error.flight_mode:&lt;br /&gt;
                    Flight mode enabled, dialog not shown&lt;br /&gt;
 Description:       Shows the Connect Dialog where the user can choose an IAP.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;graybox&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 Method:            show_disconnect_dlg&lt;br /&gt;
 Parameters:        none&lt;br /&gt;
 &lt;br /&gt;
 Return Parameters: none&lt;br /&gt;
 Errors:            com.nokia.icd_ui.error.flight_mode:&lt;br /&gt;
                    Flight mode enabled, dialog not shown&lt;br /&gt;
 &lt;br /&gt;
 Description:       Shows the disconnect dialog.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;graybox&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 Method:            show_retry_dlg&lt;br /&gt;
 Parameters:        1. string  Bluetooth address of the device used with SAP&lt;br /&gt;
                    2. string  Name of the connection attempt error which&lt;br /&gt;
                                selects the retry dialog type.&lt;br /&gt;
 &lt;br /&gt;
 Return Parameters: none&lt;br /&gt;
 Errors:            com.nokia.icd_ui.error.flight_mode:&lt;br /&gt;
                    Flight mode enabled, dialog not shown&lt;br /&gt;
 &lt;br /&gt;
 Description:       Shows the retry dialog.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;graybox&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 Method:            show_change_dlg&lt;br /&gt;
 Parameters:        1. string  Name of the currently active IAP&lt;br /&gt;
                    2. string  Name of the IAP to be activated&lt;br /&gt;
 &lt;br /&gt;
 Return Parameters: none&lt;br /&gt;
 Errors:            com.nokia.icd_ui.error.flight_mode:&lt;br /&gt;
                    Flight mode enabled, dialog not shown&lt;br /&gt;
 &lt;br /&gt;
 Description:       Shows the Change IAP Dialog&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;graybox&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 Method:            show_passwd_dlg&lt;br /&gt;
 Parameters:        1. string  Username supplied by ICd&lt;br /&gt;
                    2. string  Password supplied by ICd&lt;br /&gt;
                    3. string  Name of the IAP&lt;br /&gt;
 &lt;br /&gt;
 Return Parameters: none&lt;br /&gt;
 Errors:            com.nokia.icd_ui.error.flight_mode:&lt;br /&gt;
                    Flight mode enabled, dialog not shown&lt;br /&gt;
 &lt;br /&gt;
 Description:       Shows the username/password dialog.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;graybox&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 Method:            show_gtc_dlg&lt;br /&gt;
 Parameters:        1. string  GTC challenge string&lt;br /&gt;
 &lt;br /&gt;
 Return Parameters: none&lt;br /&gt;
 Errors:            com.nokia.icd_ui.error.flight_mode:&lt;br /&gt;
                    Flight mode enabled, dialog not shown&lt;br /&gt;
 &lt;br /&gt;
 Description:       Shows EAP GTC challenge dialog.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;graybox&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 Method:            show_mschap_change_dlg&lt;br /&gt;
 Parameters:        1. string  Supplied username&lt;br /&gt;
                    2. string  Old password that is to be changed&lt;br /&gt;
                    3. string  Name of the IAP&lt;br /&gt;
 &lt;br /&gt;
 Return Parameters: none&lt;br /&gt;
 Errors:            com.nokia.icd_ui.error.flight_mode:&lt;br /&gt;
                    Flight mode enabled, dialog not shown&lt;br /&gt;
 &lt;br /&gt;
 Description:       Shows EAP MSCHAPv2 change password dialog.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;graybox&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 Method:            show_private_key_passwd_dlg&lt;br /&gt;
 Parameters:        1. byte array  Certificate ID&lt;br /&gt;
 &lt;br /&gt;
 Return Parameters: none&lt;br /&gt;
 Errors:            com.nokia.icd_ui.error.flight_mode:&lt;br /&gt;
                    Flight mode enabled, dialog not shown&lt;br /&gt;
 &lt;br /&gt;
 Description:       Shows EAP private key password dialog&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;graybox&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 Method:            show_server_cert_dlg&lt;br /&gt;
 Parameters:        1. string  Certificate name&lt;br /&gt;
                    2. string  Certificate serial&lt;br /&gt;
                    3. boolean  TRUE if certificate is expired, FALSE otherwise&lt;br /&gt;
                    4. boolean  TRUE if root CA is unknown or self-signed&lt;br /&gt;
                                 certificate, FALSE otherwise&lt;br /&gt;
 &lt;br /&gt;
 Return Parameters: none&lt;br /&gt;
 Errors:            com.nokia.icd_ui.error.flight_mode:&lt;br /&gt;
                    Flight mode enabled, dialog not shown&lt;br /&gt;
 &lt;br /&gt;
 Description:       Shows server certificate error and expiration dialogs.&lt;br /&gt;
                    If both boolean arguments are false, the error dialog is&lt;br /&gt;
                    shown. If either or both boolean arguments are TRUE, the&lt;br /&gt;
                    expiration dialog is shown instead.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;graybox&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 Method:            strong_bt_req&lt;br /&gt;
 Parameters:        1. string  Bluetooth address of the device to pair with&lt;br /&gt;
                    2. boolean  TRUE if strong authentication enabled, FALSE&lt;br /&gt;
                                 if strong authentication is disabled&lt;br /&gt;
 &lt;br /&gt;
 Return Parameters: none&lt;br /&gt;
 Errors:            com.nokia.icd_ui.error.flight_mode:&lt;br /&gt;
                    Flight mode enabled, dialog not shown&lt;br /&gt;
 &lt;br /&gt;
 Description:       Requests strong (16 digit) BT PIN dialog for a BT device&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;graybox&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 Method:            show_sim_pin_dlg&lt;br /&gt;
 Parameters:        1. string  Bluetooth address of the device used with SAP&lt;br /&gt;
                    2. boolean  TRUE if PIN was incorrect and retry dialog&lt;br /&gt;
                                 should be displayed before asking PIN. FALSE&lt;br /&gt;
                                 if this is the first PIN request.&lt;br /&gt;
 &lt;br /&gt;
 Return Parameters: none&lt;br /&gt;
 Errors:            com.nokia.icd_ui.error.flight_mode:&lt;br /&gt;
                    Flight mode enabled, dialog not shown&lt;br /&gt;
 &lt;br /&gt;
 Description:       Shows SIM PIN dialog&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The code example for the application to show the connect dialog using show_conn_dlg is following. Note the use of the macro.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000080&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;#include&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;amp;lt;osso-ic-ui-dbus.h&amp;amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* ... */&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* in our code somewhere, where we need the Connect Dialog*/&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 DBusMessage &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;uimsg&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* construct the message for Connect Dialog request*/&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 uimsg &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
   &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;dbus_message_new_method_call&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;ICD_UI_DBUS_SERVICE&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                              ICD_UI_DBUS_PATH&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                            ICD_UI_DBUS_INTERFACE&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                          &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/*macro for show_conn_dlg */&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
                                ICD_UI_SHOW_CONNDLG_REQ&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* send the message */&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 reply &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
   &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;dbus_connection_send_with_reply_and_block&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;connection&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                                     uimsg&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                                    reply_timeout&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                                    &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;amp;amp;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;error&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;if&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;reply &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;==&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; NULL&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;)&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;{&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;DLOG_ERR&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;Failed to show connect dialog: %s&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; uierror&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;.&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;message&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;dbus_error_free&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;amp;amp;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;uierror&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;}&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;dbus_message_unref&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;uimsg&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;dbus_message_unref&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;reply&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* ... */&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The signals emitted from com.nokia.icd_ui interface are listed below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;graybox&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 Signal:        disconnect&lt;br /&gt;
 Parameters:    1. boolean  TRUE if &amp;quot;disconnect&amp;quot; pressed, FALSE if &amp;quot;cancel&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 Description:   Signal emitted from UI when disconnect dialog has been closed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;graybox&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 Signal:        retry&lt;br /&gt;
 Parameters:    1. string  The IAP that is to be retried&lt;br /&gt;
                2. boolean  TRUE if &amp;quot;retry&amp;quot; pressed, FALSE if &amp;quot;cancel&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 Description:   Signal emitted from UI when the retry dialog has been closed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;graybox&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 Signal:        change&lt;br /&gt;
 Parameters:    1. string  Old IAP to change from&lt;br /&gt;
                2. string  New IAP to change to&lt;br /&gt;
                3. boolean  Change to the new IAP If TRUE, keep old if FALSE&lt;br /&gt;
 &lt;br /&gt;
 Description:   Signal emitted from UI when change connection dialog has&lt;br /&gt;
                 been closed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;graybox&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 Signal:        passwd&lt;br /&gt;
 Parameters:    1. string  Username supplied or modified by the user&lt;br /&gt;
                2. string  Password supplied or modified by the user&lt;br /&gt;
                3. string  IAP name&lt;br /&gt;
                4. boolean  TRUE if &amp;quot;ok&amp;quot; pressed, FALSE if &amp;quot;cancel&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 Description:   Signal emitted from UI when the username/password dialog has&lt;br /&gt;
                been closed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;graybox&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 Signal:        gtc_response&lt;br /&gt;
 Parameters:    1. string  Response to the given challenge or empty string&lt;br /&gt;
                            if cancelled&lt;br /&gt;
                2. boolean  TRUE if &amp;quot;ok&amp;quot; pressed, FALSE if &amp;quot;cancel&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 Description:   Signal emitted from UI when the EAP GTC challenge dialog has&lt;br /&gt;
                been closed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;graybox&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 Signal:        mschap_change&lt;br /&gt;
 Parameters:    1. string  Supplied username&lt;br /&gt;
                2. string  The new password or empty string if cancelled&lt;br /&gt;
                3. string  IAP name&lt;br /&gt;
                4. boolean  TRUE if &amp;quot;ok&amp;quot; pressed, FALSE if &amp;quot;cancel&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 Description:   Signal emitted from UI when the MSCHAPv2 password has been&lt;br /&gt;
                changed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;graybox&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 Signal:        private_key_passwd&lt;br /&gt;
 Parameters:    1. byte array  Certificate ID&lt;br /&gt;
                2. string  Password for the private key or empty string if none&lt;br /&gt;
                3. boolean  TRUE if &amp;quot;ok&amp;quot; pressed, FALSE if &amp;quot;cancel&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 Description:   Signal emitted from UI when the private key password dialog&lt;br /&gt;
                has been closed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;graybox&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 Signal:        server_cert&lt;br /&gt;
 Parameters:    1. boolean  TRUE if strong PIN entered, FALSE if strong&lt;br /&gt;
                             PIN dialog was canceled&lt;br /&gt;
 &lt;br /&gt;
 Description:   Signal emitted from UI when the server certificate error&lt;br /&gt;
                dialog has been closed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;graybox&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 Signal:        strong_bt&lt;br /&gt;
 Parameters:    1. boolean  TRUE if strong PIN entered, FALSE if strong&lt;br /&gt;
                             PIN dialog was cancelled&lt;br /&gt;
 &lt;br /&gt;
 Description:   Signal emitted from UI when the strong (16 digit) BT PIN&lt;br /&gt;
                has been entered&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;graybox&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 Signal:        sim_pin&lt;br /&gt;
 Parameters:    1. string  SIM PIN code or empty string if  cancelled&lt;br /&gt;
                2. boolean  TRUE if &amp;quot;ok&amp;quot; pressed, FALSE if &amp;quot;cancel&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 Description:   Signal emitted from UI when the SIM PIN has been entered.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Bluetooth DBUS UI dialogs ===&lt;br /&gt;
&lt;br /&gt;
conbtdialogs-dbus.h&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/** &amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;  Example of use (command line):&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;  &amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;  dbus-send --system --print-reply \&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;    --dest=&#039;com.nokia.icd_ui&#039; /com/nokia/bt_ui \&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;    com.nokia.bt_ui.show_send_file_dlg \&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;    array:string:&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;u&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;file:///home/user/MyDocs/.documents/testing.txt&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/u&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;    &amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;  dbus-send --system --print-reply \&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;    --dest=com.nokia.bt_ui  /com/nokia/bt_ui &amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;    com.nokia.bt_ui.show_search_dlg \&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;    string: string: array:string: string:&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*/&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000080&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;#ifndef&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; CONBTDIALOGS_DBUS_H&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000080&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;#define&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; CONBTDIALOGS_DBUS_H&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000080&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;#ifdef&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; __cplusplus&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;extern&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;C&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;{&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000080&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;#endif&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/** Conbtdialogs service, resides in system dbus */&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000080&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;#define&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; CONBTDIALOGS_DBUS_SERVICE                &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;com.nokia.bt_ui&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/** Conbtdialogs interface */&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000080&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;#define&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; CONBTDIALOGS_DBUS_INTERFACE                &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;com.nokia.bt_ui&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/** Conbtdialogs path */&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000080&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;#define&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; CONBTDIALOGS_DBUS_PATH                        &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;/com/nokia/bt_ui&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/** &amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;  Show send file dialog&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt; &amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;  Arguments:&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;  &amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;  uris: DBUS_TYPE_ARRAY                Array of strings representing the URIs of the&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;                                files to send.&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;  &amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;  Returns:&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;  &amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;  DBUS_TYPE_BOOLEAN             TRUE, if dialog was shown successfully.&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt; */&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000080&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;#define&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; CONBTDIALOGS_SEND_FILE_REQ                &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;show_send_file_dlg&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/** &amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;  File sending result signal&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt; &amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;  Arguments:&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;  &amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;  success: DBUS_TYPE_BOOLEAN        TRUE, if all files were sent successfully or&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;                                FALSE, if error occurred or sending was &amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;                                canceled.&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt; */&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000080&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;#define&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; CONBTDIALOGS_SEND_FILE_SIG                &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;send_file&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/** &amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;  Show BT device search dialog&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt; &amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;  Arguments:&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;  &amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;  major_class: DBUS_TYPE_STRING To set filtering based on major_class or&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;                                &amp;quot;&amp;quot;. Possible major class values are:&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;                                &amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;                                &amp;quot;miscellaneous&amp;quot;, &amp;quot;computer&amp;quot;, &amp;quot;phone&amp;quot;, &amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;                                &amp;quot;access point&amp;quot;, &amp;quot;audio/video&amp;quot;, &amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;                                &amp;quot;peripheral&amp;quot;, &amp;quot;imaging&amp;quot;, &amp;quot;wearable&amp;quot;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;                                &amp;quot;toy&amp;quot; and &amp;quot;uncategorized&amp;quot;.&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;  &amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;  minor_class: DBUS_TYPE_STRING To set filtering based on minor_class or &amp;quot;&amp;quot;.&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;                                Possible minor class values are:&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;                        &amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;                                - Minor classes for &amp;quot;computer&amp;quot;: &amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;                                  &amp;quot;uncategorized&amp;quot;, &amp;quot;desktop&amp;quot;, &amp;quot;server&amp;quot;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;                                  &amp;quot;laptop&amp;quot;, &amp;quot;handheld&amp;quot;, &amp;quot;palm&amp;quot;, &amp;quot;wearable&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;                                - Minor classes for &amp;quot;phone&amp;quot;: &amp;quot;uncategorized&amp;quot;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;                                  &amp;quot;cellular&amp;quot;, &amp;quot;cordless&amp;quot;, &amp;quot;smart phone&amp;quot;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;                                  &amp;quot;modem&amp;quot;, &amp;quot;isdn&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;  &amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;  service_classes: DBUS_TYPE_ARRAY To set filtering based on service classes.&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;                                   Supported classes include &amp;quot;positioning&amp;quot;, &amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;                                   &amp;quot;networking&amp;quot;, &amp;quot;rendering&amp;quot;, &amp;quot;capturing&amp;quot;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;                                   &amp;quot;object transfer&amp;quot;, &amp;quot;audio&amp;quot;, &amp;quot;telephony&amp;quot;, &amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;                                   &amp;quot;information&amp;quot;. Can be empty list, when no&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;                                   service class filtering is performed.&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;  &amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;  bonding: DBUS_TYPE_STRING     Bonding mode for found and selected device:&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;                                &amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;                                &amp;quot;require&amp;quot; for requiring a bonding from a&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;                                selected device (i.e. bond device if it has not&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;                                been bonded before). &amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;                                &amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;                                &amp;quot;force&amp;quot; to always bond (i.e. device will be&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;                                bonded even if bonded before).&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;                                &amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;                                Any other string will allow to search and&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;                                select device without bonding it.&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;                                &amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;  Returns:&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;  &amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;  DBUS_TYPE_BOOLEAN             TRUE, if dialog was shown successfully.&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt; */&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000080&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;#define&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; CONBTDIALOGS_SEARCH_REQ                 &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;show_search_dlg&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/** &amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;  Bluetooth search result signal&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt; &amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;  Arguments:&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;  &amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;  address: DBUS_TYPE_STRING     Bluetooth address of the selected device, or &amp;quot;&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;                                if search dialog was cancelled.&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;  &amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;  name: DBUS_TYPE_STRING        Name of the device.&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;  &amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;  icon: DBUS_TYPE_STRING        Logical name for the icon describing the &amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;                                device.&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;  &amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;  major_class: DBUS_TYPE_STRING Major class of the device.&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;  &amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;  minor_class: DBUS_TYPE_STRING Minor class of the device.&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;  &amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;  trusted: DBUS_TYPE_BOOLEAN    Defines whether the device is marked as a trusted device.&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;  &amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;  services: DBUS_TYPE_ARRAY     List of strings describing the service classes&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;                                and SDP-based services provided by the device.&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt; */&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000080&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;#define&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; CONBTDIALOGS_SEARCH_SIG                 &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;search_result&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/**&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;  Bluetooth UI Library for maemo&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;  Copyright (C) 2006 Nokia. All rights reserved.&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;  &amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;  This sample demonstrates the use of conbtdialogs API and especially &amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;  send_file function. Compile the program with conbtdialogs and dbus:&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;  &amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;  gcc -Wall `pkg-config -libs -cflags dbus-glib-1 conbtdialogs` \&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;-o send_file conbtdialogs_send_file.c&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;  &amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;  Run with list of URLS:&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;  &amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;  ./send_file &amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;u&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;file:///home/user/MyDocs/.sounds/Everyday.mp3&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/u&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*/&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000080&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;#define&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; DBUS_API_SUBJECT_TO_CHANGE&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000080&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;#include&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;amp;lt;glib.h&amp;amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000080&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;#include&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;amp;lt;conbtdialogs-dbus.h&amp;amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000080&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;#include&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;amp;lt;dbus/dbus.h&amp;amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000080&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;#include&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;amp;lt;dbus/dbus-glib.h&amp;amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 DBusGConnection &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;connection &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; NULL&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 GMainLoop &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;mainloop &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; NULL&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;static&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; gboolean &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;initialize&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#009900&amp;quot;&amp;gt;void&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;)&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;{&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     GError &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;error &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; NULL&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_type_init&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;();&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* Create main loop */&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
     mainloop &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_main_loop_new&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;NULL&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; TRUE&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;if&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; mainloop &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;==&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; NULL &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;)&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;return&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; FALSE&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* Create DBUS connection */&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
     connection &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;dbus_g_bus_get&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;DBUS_BUS_SYSTEM&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;amp;amp;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;error&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;if&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;connection &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;==&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; NULL &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;)&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;{&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
         &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_print&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;Error: %s&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#CC33CC&amp;quot;&amp;gt;\n&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; error&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;-&amp;amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;message&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
         &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_clear_error&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;amp;amp;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;error&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
         &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;return&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; FALSE&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;}&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;return&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; TRUE&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;}&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;static&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; gboolean &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;uninitialize&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#009900&amp;quot;&amp;gt;void&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;)&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;{&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* Quit main loop and unref it */&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;if&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;mainloop &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;!=&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; NULL&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;)&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;{&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
         &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_main_loop_quit&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;mainloop&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
         &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_main_loop_unref&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;mainloop&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;}&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;return&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; TRUE&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;}&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;static&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; DBusHandlerResult &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;file_sent_signal&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; DBusConnection &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;connection&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                                             DBusMessage &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;message&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                                             &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#009900&amp;quot;&amp;gt;void&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;data &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;)&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;{&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     gboolean success &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; FALSE&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* check signal */&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;if&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(!&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;dbus_message_is_signal&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;message&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                                 CONBTDIALOGS_DBUS_INTERFACE&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                                 CONBTDIALOGS_SEND_FILE_SIG&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;))&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
         &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;return&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; DBUS_HANDLER_RESULT_NOT_YET_HANDLED&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* get args */&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;if&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;!&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;dbus_message_get_args&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; message&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; NULL&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                                   DBUS_TYPE_BOOLEAN&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;amp;amp;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;success&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                                   DBUS_TYPE_INVALID &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;)&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;)&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
       &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;return&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; DBUS_HANDLER_RESULT_NOT_YET_HANDLED&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* print if file sending was success or failure */&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_print&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;File sending was a &amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;if&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;success&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;)&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_print&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;success&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#CC33CC&amp;quot;&amp;gt;\n&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;else&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_print&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;failure&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#CC33CC&amp;quot;&amp;gt;\n&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;dbus_connection_close&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;connection&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;uninitialize&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;();&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;return&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; DBUS_HANDLER_RESULT_HANDLED&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;}&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 gint &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;main&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;gint argc&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; gchar &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;**&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;argv&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;)&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;{&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     GError &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;error &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; NULL&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     gchar &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;**&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;files &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; NULL&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     gint idx &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#993399&amp;quot;&amp;gt;0&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     DBusGProxy &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;proxy&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     DBusConnection &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;sys_conn&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     gchar &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;filter_string &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; NULL&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;if&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;argc &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;amp;lt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#993399&amp;quot;&amp;gt;2&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;)&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;return&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#993399&amp;quot;&amp;gt;1&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;if&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;initialize&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;()&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;==&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; FALSE&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;)&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;{&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
         &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;uninitialize&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;();&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
         &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;return&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#993399&amp;quot;&amp;gt;1&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;}&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* Copy urls to GLib compatible char array */&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
     files &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_new0&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;gchar&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*,&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; argc&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;for&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;idx &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#993399&amp;quot;&amp;gt;1&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; idx &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;amp;lt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; argc&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; idx&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;++)&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
         files&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;[&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;idx&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;-&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#993399&amp;quot;&amp;gt;1&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;]&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_strdup&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;argv&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;[&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;idx&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;]);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     files&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;[&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;argc&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;-&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#993399&amp;quot;&amp;gt;1&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;]&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; NULL&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* Open connection for btdialogs service */&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
     proxy &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;dbus_g_proxy_new_for_name&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;connection&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                                       CONBTDIALOGS_DBUS_SERVICE&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                                       CONBTDIALOGS_DBUS_PATH&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                                       CONBTDIALOGS_DBUS_INTERFACE&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* Send send file request to btdialogs service */&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;if&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(!&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;dbus_g_proxy_call&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;proxy&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; CONBTDIALOGS_SEND_FILE_REQ&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                            &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;amp;amp;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;error&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                            G_TYPE_STRV&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; files&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; G_TYPE_INVALID&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                            G_TYPE_INVALID&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;))&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;{&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
         &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_print&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;Error: %s&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#CC33CC&amp;quot;&amp;gt;\n&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; error&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;-&amp;amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;message&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
         &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_clear_error&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;amp;amp;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;error&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
         &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_strfreev&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;files&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
         &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_object_unref&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;G_OBJECT&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;proxy&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;));&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
         &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;uninitialize&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;();&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
         &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;return&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#993399&amp;quot;&amp;gt;1&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;}&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_strfreev&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;files&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     files &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; NULL&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_object_unref&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;G_OBJECT&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;proxy&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;));&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* Now wait for file sent signal, use low level bindings as glib &amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;       bindings require signal marshaller registered */&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
     sys_conn &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;dbus_bus_get&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;DBUS_BUS_SYSTEM&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; NULL&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_assert&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;dbus_connection_add_filter&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;sys_conn&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                                         file_sent_signal&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                                         NULL&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
                                         NULL &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;));&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     filter_string &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
        &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_strdup_printf&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;quot;type=&#039;signal&#039;,interface=&#039;%s&#039;&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; CONBTDIALOGS_DBUS_INTERFACE&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;dbus_bus_add_match&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;sys_conn&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; filter_string&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;,&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; NULL&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;dbus_connection_unref&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;sys_conn&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#9A1900&amp;quot;&amp;gt;/* Run mainloop */&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;g_main_loop_run&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;(&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;mainloop&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;);&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span&amp;gt;&#039;&#039;&#039;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;return&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#993399&amp;quot;&amp;gt;0&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#990000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;}&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt;&lt;/div&gt;</summary>
		<author><name>192.100.124.218</name></author>
	</entry>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=Maemo_Summit_2009&amp;diff=20116</id>
		<title>Maemo Summit 2009</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=Maemo_Summit_2009&amp;diff=20116"/>
		<updated>2009-10-19T07:40:00Z</updated>

		<summary type="html">&lt;p&gt;192.100.124.218: /*  Friday, October 9 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;font-weight:bold;&amp;quot;&amp;gt;October 9-10-11, 2009- [http://www.westergasfabriek.nl/english/engels_welcome.php WesterGasFabriek] - Amsterdam&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Image:Westergas.png‎]]&lt;br /&gt;
&lt;br /&gt;
== Conference archive ==&lt;br /&gt;
Videos, slides and other materials related to the sessions. Feel free to update your own.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, October 8 ===&lt;br /&gt;
&lt;br /&gt;
17:00 - 19:00 Registration at the Community Room (Zuiveringshal Oost). &#039;&#039;&#039;Early registrations encouraged to avoid queues and stress on Friday morning!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
19:00 - 00:00 The official get together on Thursday will be [http://www.indewildeman.nl/indexe.html In de Wildeman], a beer house ([http://maps.google.nl/maps?f=q&amp;amp;source=s_q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=Kolksteeg+3+1012+PT+Amsterdam&amp;amp;sll=52.377171,4.897242&amp;amp;sspn=0.005803,0.016512&amp;amp;ie=UTF8&amp;amp;hq=&amp;amp;hnear=Kolksteeg+3,+1012+Amsterdam,+North+Holland&amp;amp;t=h&amp;amp;z=16 Map]).&lt;br /&gt;
&lt;br /&gt;
=== [[/Schedule/Day 1 | Friday, October 9]] ===&lt;br /&gt;
&lt;br /&gt;
9:00    Registration at the Community Room (Zuiveringshal Oost). &#039;&#039;&#039;Come early: you won&#039;t get to the conference without your badge.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
10:00   &#039;&#039;&#039;Programme starts at N900 (Transformatorhuis)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
10:00    &#039;&#039;&#039;Welcome - Opening of Summit &#039;&#039;&#039; by [http://maemo.org/profile/view/peterschneider.html Peter Schneider], Head of Maemo Marketing @ Nokia&lt;br /&gt;
&lt;br /&gt;
10:15     &#039;&#039;&#039;[http://wiki.maemo.org/Maemo_Summit_2009/Schedule/Day_1#Maemo_5_and_the_N900 Maemo 5 and the Nokia N900] by [http://maemo.org/profile/view/jaaksi/ Ari Jaaksi], VP - Maemo Devices @ Nokia [http://www.slideshare.net/peterschneider/maemo-and-the-nokia-n900 (slides)]&lt;br /&gt;
&lt;br /&gt;
11:00    &#039;&#039;&#039;[http://wiki.maemo.org/Maemo_Summit_2009/Schedule/Day_1#Changing_PC_.26_Mobile_Landscape.3B_Why_Linux_will_play_a_Critical_Role Changing PC &amp;amp; Mobile Landscape; Why Linux will play a Critical Role]&#039;&#039;&#039;  by Jim Zemlin, Executive Director @ Linux Foundation&lt;br /&gt;
&lt;br /&gt;
11:30  &#039;&#039;&#039;Break&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
11:45    &#039;&#039;&#039;[http://wiki.maemo.org/Maemo_Summit_2009/Schedule/Day_1#Nokia_Nseries_Devices_on_Maemo Nokia Nseries Devices on Maemo]&#039;&#039;&#039; by Jose-Luis Martinez Merino, VP, Marketing @ Nokia [http://www.slideshare.net/peterschneider/nokia-nseries-and-maemo-6 (slides)]&lt;br /&gt;
&lt;br /&gt;
12:15    &#039;&#039;&#039;[http://wiki.maemo.org/Maemo_Summit_2009/Schedule/Day_1#Harmattan_Highlights_-_Developer_Opportunities Harmattan Highlights - Developer Opportunities]&#039;&#039;&#039; by Janne Heikkinen, Director - Maemo Product Planning @ Nokia [http://www.slideshare.net/peterschneider/maemo-5-developer-offering (Maemo 5 slides)] - [http://www.slideshare.net/peterschneider/maemo-6-technology-highlights (Maemo 6 slides)]&lt;br /&gt;
&lt;br /&gt;
13:00  &#039;&#039;&#039;Lunch - Maemo Expo opens&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
14:15  &#039;&#039;&#039;[http://wiki.maemo.org/Maemo_Summit_2009/Schedule/Day_1#Why_the_Maemo_Community_matters_to_Nokia Why the Maemo Community matters to Nokia]&#039;&#039;&#039; - Alan &amp;quot;[http://maemo.org/profile/view/qole/ qole]&amp;quot; Bruce of [[Community Council|Maemo Community Council]] interviewing Ari Jaaksi, VP - Maemo Devices @ Nokia&lt;br /&gt;
&lt;br /&gt;
15:00      &#039;&#039;&#039;Expert streams&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time&lt;br /&gt;
! N900 - &#039;&#039;chair: John Loughney&#039;&#039;&lt;br /&gt;
! N810 - &#039;&#039;chair: Anthony Fabbricino&#039;&#039;&lt;br /&gt;
! N800 - &#039;&#039;chair: Quim Gil&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 15:00 - 15:25 &lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | &#039;&#039;&#039;[http://wiki.maemo.org/Maemo_Summit_2009/Schedule/Day_1#UX_panel UX Panel]&#039;&#039;&#039; &lt;br /&gt;
&#039;&#039;Moderated by: [http://maemo.org/profile/view/timsamoff Tim Samoff], Maemo Council,&#039;&#039;&lt;br /&gt;
&#039;&#039;with Harri Kiljander, Director Maemo UX Design and Martin Schüle, Principal Designer Maemo 5&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;UI design of Maemo 5 apps&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Annu-Maaria Nivala, UX team, Digia&#039;&#039; [http://www.slideshare.net/annumaaria/ui-design-of-maemo-5-apps-digia (slides)]&lt;br /&gt;
| &#039;&#039;&#039;[http://wiki.maemo.org/Maemo_Summit_2009/Schedule/Day_1#Cross-platform_with_Qt_-_live Cross-platform with Qt - live]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Ariya Hidayat, Software Engineer, Nokia&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 15:30 - 15:55 &lt;br /&gt;
| &#039;&#039;&#039;[http://wiki.maemo.org/Maemo_Summit_2009/Schedule/Day_1#Developing_widgets_on_Maemo_5_-_showcase_Foreca_Weather Developing widgets on Maemo 5 - showcase Foreca Weather]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Juha Järvi, Software Designer, Foreca&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;[http://wiki.maemo.org/Maemo_Summit_2009/Schedule/Day_1#Mer_-_how_the_community_innovates Mer - how the community innovates]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Carsten Munk, Lead Developer, Mer project&#039;&#039; [http://www.slideshare.net/carstenmunk/mer-how-the-community-innovates (slides)]&lt;br /&gt;
|-&lt;br /&gt;
| 16.00 - 16.25 &lt;br /&gt;
| &#039;&#039;&#039;[http://wiki.maemo.org/Maemo_Summit_2009/Schedule/Day_1#Firefox_on_Maemo Firefox on Maemo]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Stuart Parmenter, Director of Engineering, Mozilla&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
| &#039;&#039;&#039;Developing apps with Qt for Maemo5&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Kate Alhola, Forum Nokia, Chief Guru on Maemo&lt;br /&gt;
| | &#039;&#039;&#039;[http://wiki.maemo.org/Maemo_Summit_2009/Schedule/Day_1#Your_foundation_for_open-source_innovation:_TI.E2.80.99s_OMAP_processor-based_Zoom_platform Your foundation for open-source innovation:  TI’s OMAP processor-based Zoom platform]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Ameet Suri, Texas Instruments&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 16.30 - 16.55&lt;br /&gt;
| &#039;&#039;&#039;[http://wiki.maemo.org/Maemo_Summit_2009/Schedule/Day_1#Present_and_future_of_Maemo_digital_marketing Present andd future of Maemo digital marketing]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Isko Salminen, Production Manager, Activeark &amp;amp; Jussi Mäkinen, Maemo Marketing, Nokia&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Developing apps with Qt on Harmattan&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Ville Lavonius, Product Manager Developer Offering, Nokia&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Feedservice and plug-ins development in Maemo 5&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Mikko Levonmaa, Ixonos&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 17.00 - 17.25 &lt;br /&gt;
| &#039;&#039;&#039;[http://wiki.maemo.org/Maemo_Summit_2009/Schedule/Day_1#Biz_apps_on_Maemo Biz apps on Maemo]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Kari Pikkarainen, Product Manager Productivity, Nokia&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Developing apps with Nokia Web Runtime&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Santtu Ahonen, Head of Developer Offering, Nokia&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;[http://www.slideshare.net/jtukkine/maemo-6-harmattan-architecture-overview Harmattan Architecture Overview]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Juha Tukkinen, Principal Engineer, Maemo Devices, Nokia&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 17.30 - 18.00 &lt;br /&gt;
| &#039;&#039;&#039;[http://wiki.maemo.org/Maemo_Summit_2009/Schedule/Day_1#Skype_on_Maemo Skype on Maemo]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Mark Douglas, Mobile Product Manager, Skype&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;[http://wiki.maemo.org/Maemo_Summit_2009/Schedule/Day_1#Developer_Support_for_Maemo_by_Forum_Nokia Developer Support for Maemo by Forum Nokia]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Matt Collins, Director, Forum Nokia Marketing&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;[http://wiki.maemo.org/Maemo_Summit_2009/Schedule/Day_1#Porting_an_OpenGL_game_to_GL_ES Porting an OpenGL game to GL ES]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Oliver Mcfadden, Software Engineer, Nokia&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
20:00    &#039;&#039;&#039;Maemo Party in FlexBar&#039;&#039;&#039; DJ&#039;s [http://valeriecherie.blogspot.com/2008/02/from-britain-with-love.html Russ Chimes] &amp;amp; [http://www.trashmenagerie.com/mixes/2008/04/01/grums-nllr-mixtape/ Grum]  (check the mixtapes!) visuals by [http://www.xploitec.org/blog/?page_id=103 Xploitec VJ&#039;s]. coordinated by Jussi Mäkinen. It&#039;s a public bar and the doors are open to anybody. Our &#039;&#039;program&#039;&#039; will go until 23h or so, but the bar is open until really late with good music. Special cocktail hour sponsored by the lovely Skype people. Don&#039;t forget the Saturday schedule, though.  :)&lt;br /&gt;
&lt;br /&gt;
=== [[/Day 2 | Saturday, October 10]] ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time&lt;br /&gt;
! N900&lt;br /&gt;
! N810&lt;br /&gt;
! N800&lt;br /&gt;
! 770&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 9.00  &lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; align=&amp;quot;center&amp;quot; | Doors Open&lt;br /&gt;
|- &lt;br /&gt;
| 10.00 - 10.15 &lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; align=&amp;quot;center&amp;quot; | &#039;&#039;&#039;Welcome to Community days&#039;&#039;&#039;&amp;lt;br/&amp;gt;&#039;&#039;Maemo Community Council&#039;&#039;&amp;lt;br/&amp;gt;([http://www.youtube.com/watch?v=6Mm-OS__8V0 Video])&lt;br /&gt;
|- &lt;br /&gt;
| 10.15 - 10:45 &lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; align=&amp;quot;center&amp;quot; | &#039;&#039;&#039;Keynote: Ton Roosendaal, the Blender Foundation&#039;&#039;&#039;&lt;br /&gt;
|- &lt;br /&gt;
| 10.45 - 11:00&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; align=&amp;quot;center&amp;quot; | Coffee-break&lt;br /&gt;
|- &lt;br /&gt;
| 11.00 - 11.25 &lt;br /&gt;
| [[/Day 2#Designing_UI_for_Maemo_5 | &#039;&#039;&#039;Designing UI for Maemo 5&#039;&#039;&#039;]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Mox Soini&#039;&#039;&amp;lt;br /&amp;gt;([http://www.slideshare.net/moximillian/soini-designing-ui-for-maemo-5 Slides])&lt;br /&gt;
| [[/Day 2#PyQt_application_development_on_Maemo | &#039;&#039;&#039;PyQt application development on Maemo&#039;&#039;&#039;]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Attila Csipa&#039;&#039;&amp;lt;br /&amp;gt;([http://www.slideshare.net/guestb404461/pyqt-application-development-on-maemo Slides], [http://web.atombiztos.hu/pyqt_on_maemo.zip .odp with demo videos])&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot; | [[/Day 2#Getting_started_session | &#039;&#039;&#039;Getting started session&#039;&#039;&#039;]]&amp;lt;br /&amp;gt;&#039;&#039;Daniel Wilms and others&#039;&#039;&lt;br /&gt;
| ------&lt;br /&gt;
|-&lt;br /&gt;
| 11.30 - 11.55 &lt;br /&gt;
| [[/Day 2#Personalizing_your_Maemo_5_device | &#039;&#039;&#039;Personalizing your Maemo 5 device&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&#039;&#039;Hartti Suomela&#039;&#039;&lt;br /&gt;
| [[/Day 2#Canola_application_and_framework_for_rich_GUI | &#039;&#039;&#039;Canola application and framework for rich GUI&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Gustavo Sverzut Barbieri&#039;&#039;&lt;br /&gt;
| ------&lt;br /&gt;
|-&lt;br /&gt;
| 12.00 - 12.25 &lt;br /&gt;
| [[/Day 2#Modest.2C_email_client_for_Fremantle | &#039;&#039;&#039;Modest, email client for Fremantle&#039;&#039;&#039;]] &amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Sergio Villar, Jose Dapena&#039;&#039;&lt;br /&gt;
| [[/Day_2#Introducing_the_Harmattan_UI_framework | &#039;&#039;&#039;Introducing the Harmattan UI framework&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Tomas Junnonen&#039;&#039;&lt;br /&gt;
| [[/Day 2#Maemomm:_Maemo_with_C.2B.2B_and_a_Gtkmm_flavour | &#039;&#039;&#039;Maemomm: Maemo with C++ and a Gtkmm flavour&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;David King&#039;&#039;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | [[/Day 2#Extras.2Fautobuilder.2Finterfaces_round-table | &#039;&#039;&#039;Extras/autobuilder/interfaces round-table&#039;&#039;&#039;]]&lt;br /&gt;
|-&lt;br /&gt;
| 12.30 - 12.55 &lt;br /&gt;
| [[/Day_2#Maemo_Co-creation | &#039;&#039;&#039;Maemo Co-Creation Showcase&#039;&#039;&#039;]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Jussi Mäkinen&#039;&#039;&lt;br /&gt;
| [[/Day 2#Creating_packages_for_the_Maemo_platform | &#039;&#039;&#039;Creating packages for the Maemo platform&#039;&#039;&#039;]] &amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Jeremiah Foster&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
[http://www.slideshare.net/miahfost/packaging-for-the-maemo-platform (slides)]&lt;br /&gt;
| [[/Day 2#Developments_in_The_Qt_WebKit_Integration | &#039;&#039;&#039;Developments in The Qt WebKit Integration&#039;&#039;&#039;]] &amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Kenneth Rohde Christiansen&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 13.00 - 14.30 &lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; align=&amp;quot;center&amp;quot; | Lunch&lt;br /&gt;
|-&lt;br /&gt;
| 14.30 - 15.25&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | &#039;&#039;&#039;[[/Lightning talks | Lightning talks]]&#039;&#039;&#039;, 5 min each &lt;br /&gt;
# [[/Lightning talks#Giving_Great_Presentations | &#039;&#039;&#039;Giving Great Presentations&#039;&#039;&#039;]] - &#039;&#039;Dave Neary&#039;&#039;&lt;br /&gt;
# [[/Lightning talks#Feedhandler_-_Integrating_RSS_newsreaders_with_the_browser | &#039;&#039;&#039;Feedhandler - Integrating RSS newsreaders with the browser&#039;&#039;&#039;]] - &#039;&#039;Thomas Perl&#039;&#039;&lt;br /&gt;
# [[/Lightning talks#python-mafw:_MAFW_framework_for_Python_developers | &#039;&#039;&#039;python-mafw: MAFW framework for Python developers&#039;&#039;&#039;]] - &#039;&#039;Andrea Grandi&#039;&#039; - [http://www.slideshare.net/andy80/pythonmafw-intoduction-at-maemo-summit-2009 (Slides)]&lt;br /&gt;
# [[/Lightning talks#DVCS.3F_git.3F_-_How_does_that_work_then.3F | &#039;&#039;&#039;DVCS? git? - How does that work then?&#039;&#039;&#039;]] - &#039;&#039;David Greaves&#039;&#039; - [http://www.slideshare.net/mrlbt/git-how-does-that-work-then (Slides)]&lt;br /&gt;
# [[/Lightning_talks#BlueMaemo_-_Bluetooth_HID_mouse_.26_keyboard_for_Maemo | &#039;&#039;&#039;BlueMaemo - Bluetooth HID mouse &amp;amp; keyboard for Maemo&#039;&#039;&#039;]] - &#039;&#039;Valério Valério&#039;&#039; [http://www.slideshare.net/VDVsx/bluemaemo-bluetooth-hid-mouse-keyboard-for-maemo (Slides)]&lt;br /&gt;
# [[/Lightning_talks#Continous_Integration_with_CruiseControl_and_Scratchbox | &#039;&#039;&#039;Continous Integration with CruiseControl and Scratchbox&#039;&#039;&#039;]] - &#039;&#039;Jani Mikkonen&#039;&#039;&lt;br /&gt;
# [[/Lightning_talks#Conboy.2C_Tomboy_and_Snowy | &#039;&#039;&#039;Conboy, Tomboy and Snowy&#039;&#039;&#039;]] - &#039;&#039;Cornelius Hald&#039;&#039;&lt;br /&gt;
# [[/Lightning_talks#Ogg_support_status | &#039;&#039;&#039;Ogg support status&#039;&#039;&#039;]] - &#039;&#039;Tuomas Kulve&#039;&#039;&lt;br /&gt;
# [[/Lightning_talks#Maemo_Platform_Security | &#039;&#039;&#039;Maemo Platform Security&#039;&#039;&#039;]] - &#039;&#039;Elena Reshetova&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 15:25 - 15:45&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; align=&amp;quot;center&amp;quot; | Break&lt;br /&gt;
|-&lt;br /&gt;
| 15.45 - 16.10 &lt;br /&gt;
| [[/Day 2#GUPnP_and_Rygel:_The_UPnP.2FDLNA_solution_for_Maemo | &#039;&#039;&#039;GUPnP and Rygel: The UPnP/DLNA solution for Maemo&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Zeeshan Ali&#039;&#039;&lt;br /&gt;
| [[/Day 2#Adapting_GNOME_applications_to_Maemo_Fremantle | &#039;&#039;&#039;Adapting GNOME applications to Maemo Fremantle&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Joaquim Rocha&#039;&#039; [http://www.slideshare.net/j_rocha/adapting-gnome-applications-to-maemo-fremantle (slides)]&lt;br /&gt;
| [[/Day 2#Contributing_with_Git_.26_Gitorious | &#039;&#039;&#039;Contributing with Git &amp;amp; Gitorious&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;Johan Sørensen&lt;br /&gt;
| [[/Day_2#High-resolution_image_processing_on_Maemo_devices | &#039;&#039;&#039;High-resolution image processing on Maemo devices&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Alexander Bokovoy&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 16.15 - 16.40 &lt;br /&gt;
| [[/Day 2#Mer:_A_year_after| &#039;&#039;&#039;Mer: A year after&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Carsten Valdemar Munk&#039;&#039; [http://www.slideshare.net/carstenmunk/mer-a-year-after (slides)]&lt;br /&gt;
| [[/Day_2#Intelligent_Usage_of_Fremantle_Location_Framework_For_Location-aware_Applications | &#039;&#039;&#039;Intelligent Usage of Fremantle Location Framework For Location-aware Applications&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Quanyi Sun&#039;&#039;&lt;br /&gt;
| [[/Day 2#Hildon_toolkit_for_Fremantle | &#039;&#039;&#039;Hildon toolkit for Fremantle&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Alberto Garcia, Claudio Saavedra&#039;&#039;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | [[/Day_2#Git_hands-on_workshop | &#039;&#039;&#039;Git hands-on workshop&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;David Greaves&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 16.45 - 17.10 &lt;br /&gt;
| [[/Day 2#maemo.org_Bug_Management | &#039;&#039;&#039;maemo.org Bug Management&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Andre Klapper&#039;&#039; [http://home.arcor.de/ak-47/en/linux/maemosummit2009.pdf (slides)]&lt;br /&gt;
| [[/Day 2#Go-to_market_opportunities_for_mobile_application_developers | &#039;&#039;&#039;Go-to market opportunities for mobile application developers&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Boaz Zilberman&#039;&#039;&lt;br /&gt;
| [[/Day_2#Tracker:_Dial_M_for_Metadata | &#039;&#039;&#039;Tracker: Dial M for Metadata&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Ivan Frade, Iridian Kiiskinen&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 17.10 - 17.30 &lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; align=&amp;quot;center&amp;quot; | Break&lt;br /&gt;
|-&lt;br /&gt;
| 17.30 - 17.55 &lt;br /&gt;
| [[/Day 2#Canola:_Beyond_the_media_playback | &#039;&#039;&#039;Canola: Beyond the media playback&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&#039;&#039;Eduardo Lima&#039;&#039;&lt;br /&gt;
| [[/Day 2#Hands-on_development_with_Nokia_Web_Runtime | &#039;&#039;&#039;Hands-on development with Nokia Web Runtime&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Oren Levine&#039;&#039; [http://www.slideshare.net/olevine/handson-development-with-nokia-web-runtime (Slides)] [http://www.forum.nokia.com/Technology_Topics/Web_Technologies/Web_Runtime/ (More information)]&lt;br /&gt;
| [[/Day 2#The_Qt_Mobility_Project | &#039;&#039;&#039;The Qt Mobility Project&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&#039;&#039;Alex Luddy&#039;&#039;&lt;br /&gt;
| [[/Day_2#Hacking_officially_unsupported_Bluetooth_profiles_to_work_in_Fremantle | &#039;&#039;&#039;Hacking officially unsupported Bluetooth profiles to work in Fremantle&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Johan Hedberg&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 18.00 - 18.25 &lt;br /&gt;
| [[/Day_2#The_Maemo_5_Address_Book | &#039;&#039;&#039;The Maemo 5 Address Book&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Mathias Hasselmann, Travis Reiter&#039;&#039;&lt;br /&gt;
| [[/Day 2#Publishing_your_software_through_maemo.org | &#039;&#039;&#039;Publishing your software through maemo.org&#039;&#039;&#039;]] &amp;lt;br/&amp;gt;&#039;&#039;Niels Breet&#039;&#039;&lt;br /&gt;
| [[/Day_2#Maemo_and_oFono | &#039;&#039;&#039;Maemo and oFono&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Aki Niemi, Rémi Denis-Courmont&#039;&#039;&lt;br /&gt;
| [[/Day_2#The_future_of_GTK.2B.2FHildon_in_Maemo_Harmattan | &#039;&#039;&#039;The future of GTK+/Hildon in Maemo Harmattan&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Alberto Garcia, Claudio Saavedra&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 18.45 - 20.30 &lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; align=&amp;quot;center&amp;quot; | Maemo Drinks in N900 room&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== [[/Day 3 | Sunday, October 11]] ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time&lt;br /&gt;
! N900&lt;br /&gt;
! N810&lt;br /&gt;
! N800&lt;br /&gt;
! 770&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 9.00  &lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; align=&amp;quot;center&amp;quot; | Doors Open&lt;br /&gt;
|- &lt;br /&gt;
| 10.00 - 10.45 &lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; align=&amp;quot;center&amp;quot; | [[/Day 3#Fremantle_Stars_showcase | &#039;&#039;&#039;Fremantle Stars showcase&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;Including liqbase, OSM2Go, [http://mauku.innologies.com Mauku], OMWeather [http://www.slideshare.net/vasvlad/omweather-in-maemo-summit-2009 (Slides+notes)], eCoach and more.&lt;br /&gt;
|- &lt;br /&gt;
| 10.45 - 11.00 &lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; align=&amp;quot;center&amp;quot; | Coffee-break&lt;br /&gt;
|- &lt;br /&gt;
| 11.00 - 11.25 &lt;br /&gt;
| [[/Day 3#Maemo_Browser_for_power_users  | &#039;&#039;&#039;Maemo Browser for power users&#039;&#039;&#039;]]&amp;lt;br/&amp;gt; &#039;&#039;Mikko Korpelainen&#039;&#039; - [http://www.slideshare.net/mtkorpel/maemo-browser (presentation content)]&lt;br /&gt;
&amp;lt;br/&amp;gt; [[/Day 3#Maemo_Browser_evolution  | &#039;&#039;Maemo Browser evolution&#039;&#039;]]&amp;lt;br/&amp;gt; &#039;&#039;Oleg Romashin&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt; [[/Day 3#Maemo_Browser_extension_development  | &#039;&#039;Maemo Browser extension development&#039;&#039;]]&amp;lt;br/&amp;gt; &#039;&#039;Sudarsana Nagineni&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
| [[/Day 3#JamMo_-_Jamming_mobile_game_for_children | &#039;&#039;&#039;JamMo - Jamming mobile game for children&#039;&#039;&#039;]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Aapo Rantalainen&#039;&#039;&lt;br /&gt;
| [[/Day_3#Building_for_Mer | &#039;&#039;&#039;Building for Mer&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&#039;&#039;David Greaves&#039;&#039; - [http://www.slideshare.net/mrlbt/building-for-mer (Slides+notes)]&amp;lt;br/&amp;gt;[[Mer/Build | (see also Mer Build page)]]&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | [[/Day 3#Hackathon:_Integrating_Canola_with_Fremantle | &#039;&#039;&#039;Canola Fremantle Hackathon&#039;&#039;&#039;]]&lt;br /&gt;
|-&lt;br /&gt;
| 11.30 - 11.55 &lt;br /&gt;
| [[/Day 3#Maemo_documentation_co-creation  | &#039;&#039;&#039;Maemo documentation co-creation &#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Dave Neary&#039;&#039;&lt;br /&gt;
| [[/Day_3#Designing_QT_application_for_Maemo_5_and_Maemo_6 | &#039;&#039;&#039;Designing Qt application for Maemo 5 and Maemo 6&#039;&#039;&#039;]] &amp;lt;br/&amp;gt;&#039;&#039;Sergiy Dubovik, Ian Monroe&#039;&#039;&lt;br /&gt;
| [[/Day 3#Writing_plugins_for_MAFW | &#039;&#039;&#039;Writing plugins for MAFW &#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&#039;&#039;Iago Toral&#039;&#039; [http://blogs.igalia.com/itoral/2009/10/11/writing-mafw-plugins-talk-maemo-summit/ (blog post with slides and source code examples)]&lt;br /&gt;
|-&lt;br /&gt;
| 12.00 - 12.25 &lt;br /&gt;
| [[/Day_3#Mobile_Office_based_on_KOffice_Open_Source_Project | &#039;&#039;&#039;Mobile Office based on KOffice Open Source Project&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Suresh Chande&#039;&#039; [http://sureshchande.blogspot.com/2009/10/mobile-office-based-on-koffice-for.html (blog post + video demo)]&lt;br /&gt;
| [[/Day 3#Handheld_Glom:_Easy_database_applications | &#039;&#039;&#039;Handheld Glom: Easy database applications&#039;&#039;&#039;]] &amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Murray Cumming&#039;&#039;&lt;br /&gt;
| [[/Day_3#Maemo_Platform_Security:_Principles_and_Concepts | &#039;&#039;&#039;Maemo Platform Security: Principles and Concepts&#039;&#039;&#039;]] &amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Elena Reshetova&#039;&#039;&lt;br /&gt;
|[[/Day_3#Extending_the_Hildon_desktop | &#039;&#039;&#039;Extending the Hildon desktop &#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Marc Ordinas i Llopis&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 12.30 - 12.55 &lt;br /&gt;
| [[/Day 3#Towards_painless_and_quality_translations | &#039;&#039;&#039;Towards painless and quality translations&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;Dimitris Glezos ([http://media.indifex.com/other/maesum.pdf slides])&lt;br /&gt;
| [[/Day_3#10_Tips_for_Designing_Mobile_Widgets | &#039;&#039;&#039;10 Tips for Designing Mobile Widgets&#039;&#039;&#039;]] &amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Rajesh Lal&#039;&#039; ([http://www.slideshare.net/rajeshlal/ten-tips-for-designing-mobile-widgets-2009-q3-maemo-summit-v1 slideshare], [http://irajesh.com/files/10TipsForDesigningMobileWidgets.pdf pdf], [http://irajesh.com/files/10TipsForDesigningMobileWidgets.ppt ppt], [http://irajesh.com/files/10TipsForDesigningMobileWidgets.pps pps])&lt;br /&gt;
| [[/Day_3#Telepathy_on_Maemo | &#039;&#039;&#039;Telepathy on Maemo&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Marco Barisione&#039;&#039;&lt;br /&gt;
| [[/Day_3#What_to_do_about_.2Fopt_in_Fremantle | &#039;&#039;&#039;What to do about /opt in Fremantle&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Marius Vollmer&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 13.00 - 14.30 &lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; align=&amp;quot;center&amp;quot; | Lunch&lt;br /&gt;
|-&lt;br /&gt;
| 14.30 - 15.25&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | &#039;&#039;&#039;[[/Lightning talks | Lightning talks]]&#039;&#039;&#039;, 5 min each &lt;br /&gt;
# [[/Lightning talks#Issues_on_adapting_Maemo_4_application_to_Maemo_5 | &#039;&#039;&#039;Issues on adapting Maemo 4 application to Maemo 5&#039;&#039;&#039;]] - &#039;&#039;Aniello del Sorbo&#039;&#039; - [http://www.slideshare.net/anidel/issues-on-adapting-maemo-4-applications-to-maemo-5-2229255 (Slides)]&lt;br /&gt;
# [[/Lightning talks#How_to_speed_up_your_Maemo_application_development | &#039;&#039;&#039;How to speed up your Maemo application development&#039;&#039;&#039;]] - &#039;&#039;Raul Herbster&#039;&#039;&lt;br /&gt;
# [[/Lightning talks#Development_Nirvana:_How_Maemo_Application_Development_Should_Be | &#039;&#039;&#039;Development Nirvana: How Maemo Application Development Should Be&#039;&#039;&#039;]] - &#039;&#039;Andrew Flegg&#039;&#039;&lt;br /&gt;
# [[/Lightning talks#GSoC_presentation:_BitTorrent_plugin_for_Canola | &#039;&#039;&#039;GSoC presentation: BitTorrent plugin for Canola&#039;&#039;&#039;]] - &#039;&#039;Lauri Võsandi&#039;&#039;&lt;br /&gt;
# [[/Lightning talks#GSoC_Project_presentation:_Picasa_plugin_for_Canola | &#039;&#039;&#039;GSoC Project presentation: Picasa plugin for Canola&#039;&#039;&#039;]] - &#039;&#039;Andrei Mirestean&#039;&#039;&lt;br /&gt;
# [[/Lightning talks#Behaviour-Driven_Development_on_Maemo | &#039;&#039;&#039;Behaviour-Driven Development on Maemo&#039;&#039;&#039;]] - &#039;&#039;Jose Teixeira&#039;&#039;&lt;br /&gt;
# [[/Lightning_talks#N900_HW_architecture_overview_.26_power_management | &#039;&#039;&#039;N900 HW architecture overview &amp;amp; power management&#039;&#039;&#039;]] - &#039;&#039;Igor Stoppa&#039;&#039;&lt;br /&gt;
# [[/Lightning talks#From_corporations_to_communities:_responsible_and_effective_engagement | &#039;&#039;&#039;From corporations to communities: responsible and effective engagement&#039;&#039;&#039;]] - &#039;&#039;Randall &amp;quot;Texrat&amp;quot; Arnold&#039;&#039;&lt;br /&gt;
# [[/Lightning talks#Mer_from_a_user.27s_perspective | &#039;&#039;&#039;Mer from a user&#039;s perspective&#039;&#039;&#039;]] - &#039;&#039;Tomasz Dominikowski&#039;&#039; - [http://www.slideshare.net/guest8106d9c/mer-from-users-perspective (Slides)]&lt;br /&gt;
# [[/Lightning talks#Nokia_PUSH_N900_Project_Showcase | &#039;&#039;&#039;Nokia PUSH N900 Project Showcase&#039;&#039;&#039;]] - &#039;&#039;Ben Mason and Gary Birkett&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 15.30 - 16.00 &lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; align=&amp;quot;center&amp;quot; | Grand Finale&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== News ==&lt;br /&gt;
Link here Summit related news that made it to the homepage of recognized media.&lt;br /&gt;
* Made it to homepage of slideshare.net as Spotlight: Maemo Summit 2009, Amsterdam in the right navigation&lt;br /&gt;
&lt;br /&gt;
== User-created content ==&lt;br /&gt;
&lt;br /&gt;
===Tagged===&lt;br /&gt;
&lt;br /&gt;
Please use the tag &amp;quot;maesum&amp;quot; (or hashtag &amp;quot;#maesum&amp;quot; on Identi.ca/Twitter) to tag your content.&lt;br /&gt;
&lt;br /&gt;
Here are some helpful links to search for Maemo Summit content:&lt;br /&gt;
&lt;br /&gt;
* [http://www.flickr.com/photos/tags/maesum/interesting/ maesum on Flickr]&lt;br /&gt;
* [http://picasaweb.google.com/lh/view?q=maesum&amp;amp;psc=G maesum on Picasa]&lt;br /&gt;
* [http://search.twitter.com/search?q=maesum maesum on Twitter]&lt;br /&gt;
* [http://identi.ca/tag/maesum maesum on Identi.ca]&lt;br /&gt;
* [http://www.youtube.com/results?search_query=+%22maesum%22 maesum on YouTube]&lt;br /&gt;
* [http://technorati.com/search/maesum maesum on Technorati]&lt;br /&gt;
* [http://www.slideshare.net/event/maemo-summit-2009 maesum on Slideshare]&lt;br /&gt;
* [http://vimeo.com/tag:maesum maesum on Vimeo]&lt;br /&gt;
&lt;br /&gt;
===Blogs===&lt;br /&gt;
&lt;br /&gt;
See [http://planet.maemo.org Planet Maemo] for some additional posts.&lt;br /&gt;
&lt;br /&gt;
* [http://freebirdbr.wordpress.com/2009/10/12/maemo-summit-2009-dia-1/ Day 1], [http://freebirdbr.wordpress.com/2009/10/12/maemo-summit-2009-dia-2/ Day 2], [http://freebirdbr.wordpress.com/2009/10/13/maemo-summit-2009-dia-3/ Day 3] and two special posts on [http://freebirdbr.wordpress.com/2009/10/09/mitos-do-n900-n900-roda-mesmo-quake-iii/ Quake III on Maemo] and [http://freebirdbr.wordpress.com/2009/10/13/maemo-co-creation-workshop/ Co-creation workshop] at [http://freebirdbr.wordpress.com/2009/10/12/maemo-summit-2009-dia-1/ Free Bird] (&#039;&#039;&#039;&#039;&#039;in portuguese&#039;&#039;&#039;&#039;&#039;); automatic translations (by Google Translate) [http://translate.google.com/translate?u=http%3A%2F%2Ffreebirdbr.wordpress.com%2F2009%2F10%2F12%2Fmaemo-summit-2009-dia-1%2F&amp;amp;sl=&amp;amp;tl=en Day 1], [http://translate.google.com/translate?u=http%3A%2F%2Ffreebirdbr.wordpress.com%2F2009%2F10%2F12%2Fmaemo-summit-2009-dia-2%2F&amp;amp;sl=&amp;amp;tl=en Day 2], [http://translate.google.com/translate?u=http%3A%2F%2Ffreebirdbr.wordpress.com%2F2009%2F10%2F13%2Fmaemo-summit-2009-dia-3%2F&amp;amp;sl=&amp;amp;tl=en Day 3], [http://translate.google.com/translate?u=http%3A%2F%2Ffreebirdbr.wordpress.com%2F2009%2F10%2F09%2Fmitos-do-n900-n900-roda-mesmo-quake-iii%2F&amp;amp;sl=&amp;amp;tl=en Quake III on Maemo] and [http://translate.google.com/translate?u=http%3A%2F%2Ffreebirdbr.wordpress.com%2F2009%2F10%2F13%2Fmaemo-co-creation-workshop%2F&amp;amp;sl=&amp;amp;tl=en Co-creation workshop]&lt;br /&gt;
* Live blogging at [http://maemotalk.com/ Maemo Talk]: [http://maemotalk.com/2009/10/09/maemo-summit-2009-day-1/ Day 1], [http://maemotalk.com/2009/10/10/maemo-summit-2009-day-2/ Day 2], [http://maemotalk.com/2009/10/11/maemo-summit-2009-day-3/ Day 3]&lt;br /&gt;
* [http://blog.bdesmet.be/?p=228 biertie&#039;s blogpost]&lt;br /&gt;
* Add a link to your blog post here&lt;br /&gt;
&lt;br /&gt;
===Videos===&lt;br /&gt;
&lt;br /&gt;
Please add videos that have been taken directly at the Summit (Talks, Interviews, etc..).&lt;br /&gt;
&lt;br /&gt;
* [http://www.youtube.com/watch?v=n7a2Vz9msq4 Quake 3 Presentation]&lt;br /&gt;
* [http://www.youtube.com/watch?v=-xzD7UrrP9w Intro Video (N900 room, Friday morning)]&lt;br /&gt;
* [http://vimeo.com/7109463 Mer: how the community innovates]&lt;br /&gt;
* [http://vimeo.com/7059150 Summit Finale] &lt;br /&gt;
* Add a link to your video here&lt;br /&gt;
&lt;br /&gt;
===Photos===&lt;br /&gt;
&lt;br /&gt;
Please add links to your photos, either as a Flickr photoset, Picasa album or personal website.&lt;br /&gt;
&lt;br /&gt;
* [http://www.flickr.com/photos/63684846@N00/sets/72157622451059219/ thp&#039;s photos on Flickr]&lt;br /&gt;
* [http://www.flickr.com/photos/43614522@N08/ rajesh lal&#039;s photos on Flickr]&lt;br /&gt;
* Add a link to your photos here&lt;br /&gt;
&lt;br /&gt;
== Old ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size: 1em;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sections&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;section&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt;Schedule&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ul class=&amp;quot;document&amp;quot;&amp;gt;{{Summit 2009 Schedule}}&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;section&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt;Location&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ul class=&amp;quot;help&amp;quot;&amp;gt;{{Summit 2009 Location}}&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;section&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt;Attendees&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ul class=&amp;quot;help&amp;quot;&amp;gt;{{Summit 2009 Attendees}}&amp;lt;/ul&amp;gt;&lt;br /&gt;
* [[Maemo_Summit_2009/Speakers|Information for Speakers]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;section&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt;Organization&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ul class=&amp;quot;help&amp;quot;&amp;gt;{{Summit 2009 Organization}}&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Latest News ===&lt;br /&gt;
&amp;lt;rss title=&amp;quot;off&amp;quot; desc=&amp;quot;off&amp;quot; number=&amp;quot;10&amp;quot; time=&amp;quot;3600&amp;quot;&amp;gt;http://search.twitter.com/search.rss?q=%23maesum&amp;lt;/rss&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Community|Mer]]&lt;/div&gt;</summary>
		<author><name>192.100.124.218</name></author>
	</entry>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=Maemo_Summit_2009/Schedule/Day_1&amp;diff=20956</id>
		<title>Maemo Summit 2009/Schedule/Day 1</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=Maemo_Summit_2009/Schedule/Day_1&amp;diff=20956"/>
		<updated>2009-10-19T07:38:19Z</updated>

		<summary type="html">&lt;p&gt;192.100.124.218: /* Harmattan Architecture Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Maemo 5 and the Nokia N900 ===&lt;br /&gt;
* Presenter: Ari Jaaksi, VP Maemo Devices, Nokia &lt;br /&gt;
 &lt;br /&gt;
* Abstract: Maemo 5 is a major milestone of the evolution of Maemo. Maemo 5 delivers computer experiences to pocket-sized devices. It is about six weeks ago that the Nokia N900 was launched and it is time to take a look where we are now with the N900. For newcomers in the community, Ari will summarize the evolution of Maemo. He will tell how we built the N900, together with the community, giving insight to what happened behind the scenes in the last 18 months. Ari will outline on what we focused on when we redesigned the user experience from Maemo 4 to Maemo 5.&lt;br /&gt;
&lt;br /&gt;
=== Changing PC &amp;amp; Mobile Landscape; Why Linux will play a Critical Role  ===&lt;br /&gt;
* Presenter: Jim Zemlin, Executive Director of the Linux Foundation &lt;br /&gt;
&lt;br /&gt;
* Abstract: Jim Zemlin will discuss how the PC and mobile market are merging and how Linux is ideally suited for the new range of devices that are coming to a converged world. &lt;br /&gt;
: In addition he will speak about how the PC and mobile device industry is switching towards a service economy and how utilizing open source allows organizations to reap profits in a range of services. Finally, he will address the kind of user experiences that Linux is ideal for enabling. He will cover the need for social networking API&#039;s to be mapped out by the community on a region by region basis in order to enable a better web experience on Linux devices and how the web can be integrated into a native UI with Linux and provide an entirely new take on how we define the PC.&lt;br /&gt;
&lt;br /&gt;
=== Nokia Nseries Devices on Maemo===&lt;br /&gt;
* Presenter: Jose-Luis Martinez Merino, VP, Marketing, Nokia  &lt;br /&gt;
 &lt;br /&gt;
* Abstract: Jose-Luis will explain which role Maemo-based Nseries devices play in Nokia&#039;s portfolio.&lt;br /&gt;
&lt;br /&gt;
=== Harmattan Highlights - Developer Opportunities ===&lt;br /&gt;
* Presenter: Janne Heikkinen, Director Maemo Product Planning, Nokia &lt;br /&gt;
&lt;br /&gt;
* Abstract: Janne will go through what developer opportunities do exist for Maemo 5 and the N900. He will explain what tools are available and which means there are to get innovations to consumers. He will explain which key platform technologies the Harmattan release will include giving application and platform developers an insight on how to contribute to and benefit from the Harmattan release.&lt;br /&gt;
&lt;br /&gt;
=== Why the Maemo Community matters to Nokia ===&lt;br /&gt;
* Inteviewer: Alan &amp;quot;qole&amp;quot; Bruce of the 2nd &amp;amp; 3rd Maemo Community Councils&lt;br /&gt;
* Interviewee: Ari Jaaksi, VP Maemo Devices, Nokia&lt;br /&gt;
 &lt;br /&gt;
* Abstract: This relaxed, informal interview will focus on how Nokia sees the current community contribution and engagement with Maemo Devices evolving in the next years. Questions on what could work better and what the community needs from Nokia will spice up this interview.&lt;br /&gt;
&lt;br /&gt;
=== UI design of Maemo 5 apps ===&lt;br /&gt;
* Presenter: Annu-Maaria Nivala, Project Manager, User Experience, Digia  &lt;br /&gt;
 &lt;br /&gt;
* Abstract: Digia&#039;s User Experience Team&#039;s experiences of what makes a good UI design for Maemo 5 apps. Ten most critical issues listed in order to help identifying potential usability problems in UI design of Maemo applications.&lt;br /&gt;
&lt;br /&gt;
=== Developing widgets on Maemo 5 - showcase Foreca Weather ===&lt;br /&gt;
* Presenter: Juha Järvi, Software Designer, Foreca   &lt;br /&gt;
 &lt;br /&gt;
* Abstract: This talk will go over some of the design considerations, development process and testing methodology for a Fremantle desktop widget and other software communicating with it. As an example, Foreca&#039;s desktop weather widget has been ported from Diablo to Fremantle with a new more complicated underlying architecture. Several parts need to communicate reacting to settings changes and receiving online data. Particularly power usage, certain regional settings and keeping all parts synchronized were new challenges. Some problems and solutions are shared for others to also learn from the experience.&lt;br /&gt;
&lt;br /&gt;
=== Developing apps with Qt for Maemo5 ===&lt;br /&gt;
* Presenter: Kate Alhola, Forum Nokia, Chief Guru on Maemo  &lt;br /&gt;
 &lt;br /&gt;
* Abstract: coming soon&lt;br /&gt;
&lt;br /&gt;
=== Developing apps with Qt on Harmattan ===&lt;br /&gt;
* Presenter: Ville Lavonius, Product Manager Developer Offering, Nokia    &lt;br /&gt;
 &lt;br /&gt;
* Abstract: coming soon&lt;br /&gt;
&lt;br /&gt;
=== Developing apps with Nokia Web Runtime ===&lt;br /&gt;
* Presenter: Santtu Ahonen, Head of Developer Offering, Nokia    &lt;br /&gt;
 &lt;br /&gt;
* Abstract: coming soon&lt;br /&gt;
&lt;br /&gt;
=== Developer Support for Maemo by Forum Nokia ===&lt;br /&gt;
* Presenter: Matt Collins, Director, Forum Nokia Marketing     &lt;br /&gt;
 &lt;br /&gt;
* Abstract: Forum Nokia is the world&#039;s largest mobile developer community; and is now embarking on a new and exciting transformation.  Nokia is introducing Qt to both Symbian and Maemo platforms and, in addition, strengthening its leading Web Runtime (WRT) offering through Ovi services.  Maemo developers will hear how Forum Nokia wikis, discussion boards, blogs and programs such as Champions and Launchpad will provide them the resources  to learn Qt and also publish their applications to Ovi Store.  This presentation will outline Forum Nokia&#039;s offerings, and our promise to developers for fostering an open cross-platform ecosystem.&lt;br /&gt;
&lt;br /&gt;
=== UX panel ===&lt;br /&gt;
* Moderator:  Tim Samoff, 2nd Maemo Community Council&lt;br /&gt;
* Panelists: Harri Kiljander, Director Maemo UX Design and Martin Schüle, Principal Designer Maemo 5  &lt;br /&gt;
 &lt;br /&gt;
* Abstract: An interactive panel, discussing the User Experience in general, as well as User Experience on Maemo.  Harri and Martin will discuss the goals of Maemo5 UI, and comment on the future UI directions for Maemo.&lt;br /&gt;
&lt;br /&gt;
* Tim Samoff: Tim is an award-winning filmmaker and designer who has been working in various industries for almost 20 years. He&#039;s produced computer games, created brand identities, participated in several open source software projects, and designed innumerable websites. He has also played with several bands and has recorded three CDs, one that became the number one electronic album on mp3.com. Tim came to Maemo sometime between the 770 and the N800 and quickly became involved in helping users and developers in a variety of tablet-related issues. His first major contribution to the community was a document entitled, &amp;quot;An Unofficial Guide to Creating a Most Excellent Maemo User Interface.&amp;quot; Since then, he has designed icons, logos, and user interfaces for Maemo-related projects. He also served two terms as a Maemo Community Council member.&lt;br /&gt;
&lt;br /&gt;
* Harri Kiljander is leading the user experience design team in Maemo Devices in Nokia. Harri is a computer scientist who then moved into information visualization and human-computer interaction. Prior to this role, Harri has been responsible for Nokia&#039;s corporate user experience strategy, and working in various UX design management and research positions in Nokia&#039;s internet services, research and development, and brand management teams in Finland and in the USA. In Maemo, Harri has been driving the bridging of agile software development with human-centered design in product creation. Harri holds a Master&#039;s degree in Computer Science and a Ph.D. in Interactive Digital Media from Helsinki University of Technology, and he is a co-editor of the book &amp;quot;Mobile Usability: How Nokia Changed the Face of the Mobile Phone&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* Martin Schüle is the Principal Designer of Maemo5 User Interface. He is a creative lead with more than 10 years of experience in multidisciplinary design like user interface design, interaction design, industrial design, graphical design and exhibition design; from target settings up to final deliverables. Prior to joining Nokia in 2003 Martin worked in Design agencies in Germany as well as in Finland. During his career Martin received several Design Awards, as well as Nokia internal awards and has been number one User Interface inventor in Nokia Devices based on the patent filings during the 1st half 2009. Martin holds a degree in Industrial Design&lt;br /&gt;
&lt;br /&gt;
=== Firefox on Maemo ===&lt;br /&gt;
* Presenter: Stuart Parmenter, Director of Engineering, Mozilla     &lt;br /&gt;
 &lt;br /&gt;
* Abstract: coming soon&lt;br /&gt;
&lt;br /&gt;
=== Present and future of Maemo digital marketing ===&lt;br /&gt;
* Presenter: Isko Salminen, Production Manager, Activeark and Jussi Mäkinen, Maemo Marketing, Nokia     &lt;br /&gt;
 &lt;br /&gt;
* Abstract: coming soon&lt;br /&gt;
&lt;br /&gt;
* Isko Salminen works as a Production Manager at Activeark Ltd. (activeark.com). For the past year I’ve been working on Project maemo.nokia.com as Lead Technical Architect. &lt;br /&gt;
    Contact:&lt;br /&gt;
    @isko (twitter)&lt;br /&gt;
    isko.salminen@activeark.com (email)&lt;br /&gt;
&lt;br /&gt;
=== Biz apps on Maemo ===&lt;br /&gt;
* Presenter: Kari Pikkarainen, Product Manager Productivity, Nokia      &lt;br /&gt;
 &lt;br /&gt;
* Abstract: This talk covers some business use cases that can be done conveniently with Maemo 5 based Nokia N900. Email, calendar and office tool allow users to work while out of office. Presenter talks about his typical working day and goes through some Nokia N900 highlights.&lt;br /&gt;
&lt;br /&gt;
*Kari Pikkarainen: Kari has worked with Maemo and Internet Tablets since first Nokia 770 Internet Tablet. Before that he was software engineer. Today he product manages email, calendar and office tool applications.&lt;br /&gt;
&lt;br /&gt;
=== Skype on Maemo ===&lt;br /&gt;
* Presenter: Mark Douglas, Mobile Product Manager, Skype      &lt;br /&gt;
 &lt;br /&gt;
* Abstract: coming soon&lt;br /&gt;
&lt;br /&gt;
=== Cross-platform with Qt - live ===&lt;br /&gt;
* Presenter: Ariya Hidayat, Software Engineer, Nokia       &lt;br /&gt;
&lt;br /&gt;
Ariya is a software engineer at Nokia, Qt Development Frameworks in Oslo. He is an open-source advocate for almost a decade, his code can be found in various projects such as KDE, WebKit, and of course Qt.&lt;br /&gt;
 &lt;br /&gt;
* Abstract:&lt;br /&gt;
As a powerful framework, Qt offers tons of modules and classes for building your applications. This talk highlight few practical cross-platform examples of what Qt can do with a fairly few lines of code, ranging from kinetic scrolling, weather service, OpenStreetMap, parallax effect, flight tracking, WYSIWYG HTML editor, and many more. All examples will be accompanied with corresponding &#039;&#039;&#039;live demos&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Mer - how the community innovates ===&lt;br /&gt;
* Presenter: Carsten Munk, Lead Developer, Mer project &lt;br /&gt;
      &lt;br /&gt;
* Abstract: As well as being a Fremantle backport for Nokia N8x0, Mer has been a project where we have tried to develop an organization inside the community with the aim of making the community an equal part in developing the Maemo platform. This talk will be about the methods used, challenges had and results made in creating this organization as well as how to motivate developers to contribute and keeping them motivated. Future role of Mer will also be discussed and suggestions how to step up the cooperation.&lt;br /&gt;
&lt;br /&gt;
=== Your foundation for open-source innovation: TI’s OMAP processor-based Zoom platform  ===&lt;br /&gt;
* Presenter: Ameet Suri, Marketing Manager, OMAP™ Mobile Communication and Computing Business Line, Wireless Business Unit, Texas Instruments.&lt;br /&gt;
&lt;br /&gt;
As a marketing manager for the Texas Instruments Incorporated (TI) OMAP™ mobile communications and computing business line, Ameet Suri manages efforts surrounding TI’s OMAP processor strategy for the mobile communication and computing spaces. Suri and his team identify key trends to better define TI’s OMAP processors’ leading presence in a broad range of markets, including smartphones, mobile Internet devices (MIDs), tablets, net-tops and netbooks.&lt;br /&gt;
&lt;br /&gt;
TI’s broad product portfolio provides the full range of power-optimized tools required to achieve success in the emerging mobile communication and computing markets – from applications processors, mobile connectivity solutions and analog components, to software solutions that deliver a compelling user experience. Suri and the OMAP processor team help customers best utilize those tools to deliver complete, differentiated products. &lt;br /&gt;
&lt;br /&gt;
Suri began his career with TI in 2003. Recruited for his rich graphics expertise, he established the graphics software team for OMAP technologies at the beginning of his time with the company. In this position, Suri worked in OMAP software research and development, and contributed to the development of 3D software solutions for OMAP processors.  &lt;br /&gt;
&lt;br /&gt;
Suri previously held engineering positions at Samsung and Mastech. At these companies, he gained experience developing and architecting various software technologies for handsets. &lt;br /&gt;
&lt;br /&gt;
Suri earned a bachelor’s degree in computer science from MGM College of Engineering and Technology in India. &lt;br /&gt;
     &lt;br /&gt;
* Abstract: As consumers increasingly demand “no-compromise” mobile Internet experiences and feature-packed devices, the role of the operating system continues to grow in importance, as does the presence of open architectures that spur innovative thinking. The Maemo platform continues to show itself as a solid, open foundation for this innovation, answering consumers’ demands for top-notch mobile experiences.&lt;br /&gt;
&lt;br /&gt;
In this session, TI’s Ameet Suri will discuss Maemo’s presence in the open source world, and how TI’s Zoom OMAP34x-II Mobile Development Platform is a strong foundation for creating Maemo-based features and applications. Suri will also highlight the full tool set needed to reduce risks and grow investments with Maemo, and will touch on TI’s unique relationship with the Maemo community.&lt;br /&gt;
&lt;br /&gt;
=== Feedservice and plug-ins development in Maemo 5 ===&lt;br /&gt;
* Presenter: Mikko Levonmaa, Ixonos       &lt;br /&gt;
 &lt;br /&gt;
* Abstract: Present the feedservice ecosystem and how it will enable efficient authoring of home screen widgets for social networks feeds and other information sources that exist in the internet. The framework provides an abstraction layer for the plugins and utility services for the most common functionality. From the device point of view it will provide a single point of control for the feeds, it will determine, with the help from a plugin, when a feed should be run. The feedservice will also monitor the device states, such as network connection and screen activity. This enables the feedservice to optimize the user experience in terms of up-to-date feeds and power managemet.&lt;br /&gt;
&lt;br /&gt;
=== Harmattan Architecture Overview ===&lt;br /&gt;
* Presenter: Juha Tukkinen, Principal Engineer, Maemo Devices, Nokia       &lt;br /&gt;
* Presentation: [http://www.slideshare.net/jtukkine/maemo-6-harmattan-architecture-overview Maemo 6 &amp;quot;Harmattan&amp;quot; Architecture Overview] on slideshare.net&lt;br /&gt;
&lt;br /&gt;
=== Porting an OpenGL game to GL ES ===&lt;br /&gt;
* Presenter: Oliver Mcfadden, Software Engineer, Nokia       &lt;br /&gt;
&lt;br /&gt;
* Abstract: Presentation focusing on the challenges of porting OpenGL games to GL ES, including challenges above and beyond merely porting and optimizing the rendering engine. Quake 3 will be used as an example.&lt;/div&gt;</summary>
		<author><name>192.100.124.218</name></author>
	</entry>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=Maemo_Summit_2009&amp;diff=20118</id>
		<title>Maemo Summit 2009</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=Maemo_Summit_2009&amp;diff=20118"/>
		<updated>2009-10-18T12:37:07Z</updated>

		<summary type="html">&lt;p&gt;192.100.124.218: /*  Sunday, October 11 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;font-weight:bold;&amp;quot;&amp;gt;October 9-10-11, 2009- [http://www.westergasfabriek.nl/english/engels_welcome.php WesterGasFabriek] - Amsterdam&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Image:Westergas.png‎]]&lt;br /&gt;
&lt;br /&gt;
== Conference archive ==&lt;br /&gt;
Videos, slides and other materials related to the sessions. Feel free to update your own.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, October 8 ===&lt;br /&gt;
&lt;br /&gt;
17:00 - 19:00 Registration at the Community Room (Zuiveringshal Oost). &#039;&#039;&#039;Early registrations encouraged to avoid queues and stress on Friday morning!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
19:00 - 00:00 The official get together on Thursday will be [http://www.indewildeman.nl/indexe.html In de Wildeman], a beer house ([http://maps.google.nl/maps?f=q&amp;amp;source=s_q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=Kolksteeg+3+1012+PT+Amsterdam&amp;amp;sll=52.377171,4.897242&amp;amp;sspn=0.005803,0.016512&amp;amp;ie=UTF8&amp;amp;hq=&amp;amp;hnear=Kolksteeg+3,+1012+Amsterdam,+North+Holland&amp;amp;t=h&amp;amp;z=16 Map]).&lt;br /&gt;
&lt;br /&gt;
=== [[/Schedule/Day 1 | Friday, October 9]] ===&lt;br /&gt;
&lt;br /&gt;
9:00    Registration at the Community Room (Zuiveringshal Oost). &#039;&#039;&#039;Come early: you won&#039;t get to the conference without your badge.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
10:00   &#039;&#039;&#039;Programme starts at N900 (Transformatorhuis)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
10:00    &#039;&#039;&#039;Welcome - Opening of Summit &#039;&#039;&#039; by [http://maemo.org/profile/view/peterschneider.html Peter Schneider], Head of Maemo Marketing @ Nokia&lt;br /&gt;
&lt;br /&gt;
10:15     &#039;&#039;&#039;[http://wiki.maemo.org/Maemo_Summit_2009/Schedule/Day_1#Maemo_5_and_the_N900 Maemo 5 and the Nokia N900] by [http://maemo.org/profile/view/jaaksi/ Ari Jaaksi], VP - Maemo Devices @ Nokia [http://www.slideshare.net/peterschneider/maemo-and-the-nokia-n900 (slides)]&lt;br /&gt;
&lt;br /&gt;
11:00    &#039;&#039;&#039;[http://wiki.maemo.org/Maemo_Summit_2009/Schedule/Day_1#Changing_PC_.26_Mobile_Landscape.3B_Why_Linux_will_play_a_Critical_Role Changing PC &amp;amp; Mobile Landscape; Why Linux will play a Critical Role]&#039;&#039;&#039;  by Jim Zemlin, Executive Director @ Linux Foundation&lt;br /&gt;
&lt;br /&gt;
11:30  &#039;&#039;&#039;Break&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
11:45    &#039;&#039;&#039;[http://wiki.maemo.org/Maemo_Summit_2009/Schedule/Day_1#Nokia_Nseries_Devices_on_Maemo Nokia Nseries Devices on Maemo]&#039;&#039;&#039; by Jose-Luis Martinez Merino, VP, Marketing @ Nokia [http://www.slideshare.net/peterschneider/nokia-nseries-and-maemo-6 (slides)]&lt;br /&gt;
&lt;br /&gt;
12:15    &#039;&#039;&#039;[http://wiki.maemo.org/Maemo_Summit_2009/Schedule/Day_1#Harmattan_Highlights_-_Developer_Opportunities Harmattan Highlights - Developer Opportunities]&#039;&#039;&#039; by Janne Heikkinen, Director - Maemo Product Planning @ Nokia [http://www.slideshare.net/peterschneider/maemo-5-developer-offering (Maemo 5 slides)] - [http://www.slideshare.net/peterschneider/maemo-6-technology-highlights (Maemo 6 slides)]&lt;br /&gt;
&lt;br /&gt;
13:00  &#039;&#039;&#039;Lunch - Maemo Expo opens&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
14:15  &#039;&#039;&#039;[http://wiki.maemo.org/Maemo_Summit_2009/Schedule/Day_1#Why_the_Maemo_Community_matters_to_Nokia Why the Maemo Community matters to Nokia]&#039;&#039;&#039; - Alan &amp;quot;[http://maemo.org/profile/view/qole/ qole]&amp;quot; Bruce of [[Community Council|Maemo Community Council]] interviewing Ari Jaaksi, VP - Maemo Devices @ Nokia&lt;br /&gt;
&lt;br /&gt;
15:00      &#039;&#039;&#039;Expert streams&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time&lt;br /&gt;
! N900 - &#039;&#039;chair: John Loughney&#039;&#039;&lt;br /&gt;
! N810 - &#039;&#039;chair: Anthony Fabbricino&#039;&#039;&lt;br /&gt;
! N800 - &#039;&#039;chair: Quim Gil&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 15:00 - 15:25 &lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | &#039;&#039;&#039;[http://wiki.maemo.org/Maemo_Summit_2009/Schedule/Day_1#UX_panel UX Panel]&#039;&#039;&#039; &lt;br /&gt;
&#039;&#039;Moderated by: [http://maemo.org/profile/view/timsamoff Tim Samoff], Maemo Council,&#039;&#039;&lt;br /&gt;
&#039;&#039;with Harri Kiljander, Director Maemo UX Design and Martin Schüle, Principal Designer Maemo 5&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;UI design of Maemo 5 apps&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Annu-Maaria Nivala, UX team, Digia&#039;&#039; [http://www.slideshare.net/annumaaria/ui-design-of-maemo-5-apps-digia (slides)]&lt;br /&gt;
| &#039;&#039;&#039;[http://wiki.maemo.org/Maemo_Summit_2009/Schedule/Day_1#Cross-platform_with_Qt_-_live Cross-platform with Qt - live]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Ariya Hidayat, Software Engineer, Nokia&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 15:30 - 15:55 &lt;br /&gt;
| &#039;&#039;&#039;[http://wiki.maemo.org/Maemo_Summit_2009/Schedule/Day_1#Developing_widgets_on_Maemo_5_-_showcase_Foreca_Weather Developing widgets on Maemo 5 - showcase Foreca Weather]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Juha Järvi, Software Designer, Foreca&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;[http://wiki.maemo.org/Maemo_Summit_2009/Schedule/Day_1#Mer_-_how_the_community_innovates Mer - how the community innovates]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Carsten Munk, Lead Developer, Mer project&#039;&#039; [http://www.slideshare.net/carstenmunk/mer-how-the-community-innovates (slides)]&lt;br /&gt;
|-&lt;br /&gt;
| 16.00 - 16.25 &lt;br /&gt;
| &#039;&#039;&#039;[http://wiki.maemo.org/Maemo_Summit_2009/Schedule/Day_1#Firefox_on_Maemo Firefox on Maemo]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Stuart Parmenter, Director of Engineering, Mozilla&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
| &#039;&#039;&#039;Developing apps with Qt for Maemo5&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Kate Alhola, Forum Nokia, Chief Guru on Maemo&lt;br /&gt;
| | &#039;&#039;&#039;[http://wiki.maemo.org/Maemo_Summit_2009/Schedule/Day_1#Your_foundation_for_open-source_innovation:_TI.E2.80.99s_OMAP_processor-based_Zoom_platform Your foundation for open-source innovation:  TI’s OMAP processor-based Zoom platform]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Ameet Suri, Texas Instruments&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 16.30 - 16.55&lt;br /&gt;
| &#039;&#039;&#039;[http://wiki.maemo.org/Maemo_Summit_2009/Schedule/Day_1#Present_and_future_of_Maemo_digital_marketing Present andd future of Maemo digital marketing]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Isko Salminen, Production Manager, Activeark &amp;amp; Jussi Mäkinen, Maemo Marketing, Nokia&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Developing apps with Qt on Harmattan&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Ville Lavonius, Product Manager Developer Offering, Nokia&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Feedservice and plug-ins development in Maemo 5&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Mikko Levonmaa, Ixonos&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 17.00 - 17.25 &lt;br /&gt;
| &#039;&#039;&#039;[http://wiki.maemo.org/Maemo_Summit_2009/Schedule/Day_1#Biz_apps_on_Maemo Biz apps on Maemo]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Kari Pikkarainen, Product Manager Productivity, Nokia&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Developing apps with Nokia Web Runtime&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Santtu Ahonen, Head of Developer Offering, Nokia&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Harmattan Architecture Overview&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Juha Tukkinen, Principal Engineer, Architecture and Sys, Nokia&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 17.30 - 18.00 &lt;br /&gt;
| &#039;&#039;&#039;[http://wiki.maemo.org/Maemo_Summit_2009/Schedule/Day_1#Skype_on_Maemo Skype on Maemo]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Mark Douglas, Mobile Product Manager, Skype&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;[http://wiki.maemo.org/Maemo_Summit_2009/Schedule/Day_1#Developer_Support_for_Maemo_by_Forum_Nokia Developer Support for Maemo by Forum Nokia]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Matt Collins, Director, Forum Nokia Marketing&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;[http://wiki.maemo.org/Maemo_Summit_2009/Schedule/Day_1#Porting_an_OpenGL_game_to_GL_ES Porting an OpenGL game to GL ES]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Oliver Mcfadden, Software Engineer, Nokia&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
20:00    &#039;&#039;&#039;Maemo Party in FlexBar&#039;&#039;&#039; DJ&#039;s [http://valeriecherie.blogspot.com/2008/02/from-britain-with-love.html Russ Chimes] &amp;amp; [http://www.trashmenagerie.com/mixes/2008/04/01/grums-nllr-mixtape/ Grum]  (check the mixtapes!) visuals by [http://www.xploitec.org/blog/?page_id=103 Xploitec VJ&#039;s]. coordinated by Jussi Mäkinen. It&#039;s a public bar and the doors are open to anybody. Our &#039;&#039;program&#039;&#039; will go until 23h or so, but the bar is open until really late with good music. Special cocktail hour sponsored by the lovely Skype people. Don&#039;t forget the Saturday schedule, though.  :)&lt;br /&gt;
&lt;br /&gt;
=== [[/Day 2 | Saturday, October 10]] ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time&lt;br /&gt;
! N900&lt;br /&gt;
! N810&lt;br /&gt;
! N800&lt;br /&gt;
! 770&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 9.00  &lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; align=&amp;quot;center&amp;quot; | Doors Open&lt;br /&gt;
|- &lt;br /&gt;
| 10.00 - 10.15 &lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; align=&amp;quot;center&amp;quot; | &#039;&#039;&#039;Welcome to Community days&#039;&#039;&#039;&amp;lt;br/&amp;gt;&#039;&#039;Maemo Community Council&#039;&#039;&amp;lt;br/&amp;gt;([http://www.youtube.com/watch?v=6Mm-OS__8V0 Video])&lt;br /&gt;
|- &lt;br /&gt;
| 10.15 - 10:45 &lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; align=&amp;quot;center&amp;quot; | &#039;&#039;&#039;Keynote: Ton Roosendaal, the Blender Foundation&#039;&#039;&#039;&lt;br /&gt;
|- &lt;br /&gt;
| 10.45 - 11:00&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; align=&amp;quot;center&amp;quot; | Coffee-break&lt;br /&gt;
|- &lt;br /&gt;
| 11.00 - 11.25 &lt;br /&gt;
| [[/Day 2#Designing_UI_for_Maemo_5 | &#039;&#039;&#039;Designing UI for Maemo 5&#039;&#039;&#039;]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Mox Soini&#039;&#039;&amp;lt;br /&amp;gt;([http://www.slideshare.net/moximillian/soini-designing-ui-for-maemo-5 Slides])&lt;br /&gt;
| [[/Day 2#PyQt_application_development_on_Maemo | &#039;&#039;&#039;PyQt application development on Maemo&#039;&#039;&#039;]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Attila Csipa&#039;&#039;&amp;lt;br /&amp;gt;([http://www.slideshare.net/guestb404461/pyqt-application-development-on-maemo Slides], [http://web.atombiztos.hu/pyqt_on_maemo.zip .odp with demo videos])&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot; | [[/Day 2#Getting_started_session | &#039;&#039;&#039;Getting started session&#039;&#039;&#039;]]&amp;lt;br /&amp;gt;&#039;&#039;Daniel Wilms and others&#039;&#039;&lt;br /&gt;
| ------&lt;br /&gt;
|-&lt;br /&gt;
| 11.30 - 11.55 &lt;br /&gt;
| [[/Day 2#Personalizing_your_Maemo_5_device | &#039;&#039;&#039;Personalizing your Maemo 5 device&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&#039;&#039;Hartti Suomela&#039;&#039;&lt;br /&gt;
| [[/Day 2#Canola_application_and_framework_for_rich_GUI | &#039;&#039;&#039;Canola application and framework for rich GUI&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Gustavo Sverzut Barbieri&#039;&#039;&lt;br /&gt;
| ------&lt;br /&gt;
|-&lt;br /&gt;
| 12.00 - 12.25 &lt;br /&gt;
| [[/Day 2#Modest.2C_email_client_for_Fremantle | &#039;&#039;&#039;Modest, email client for Fremantle&#039;&#039;&#039;]] &amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Sergio Villar, Jose Dapena&#039;&#039;&lt;br /&gt;
| [[/Day_2#Introducing_the_Harmattan_UI_framework | &#039;&#039;&#039;Introducing the Harmattan UI framework&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Tomas Junnonen&#039;&#039;&lt;br /&gt;
| [[/Day 2#Maemomm:_Maemo_with_C.2B.2B_and_a_Gtkmm_flavour | &#039;&#039;&#039;Maemomm: Maemo with C++ and a Gtkmm flavour&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;David King&#039;&#039;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | [[/Day 2#Extras.2Fautobuilder.2Finterfaces_round-table | &#039;&#039;&#039;Extras/autobuilder/interfaces round-table&#039;&#039;&#039;]]&lt;br /&gt;
|-&lt;br /&gt;
| 12.30 - 12.55 &lt;br /&gt;
| [[/Day_2#Maemo_Co-creation | &#039;&#039;&#039;Maemo Co-Creation Showcase&#039;&#039;&#039;]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Jussi Mäkinen&#039;&#039;&lt;br /&gt;
| [[/Day 2#Creating_packages_for_the_Maemo_platform | &#039;&#039;&#039;Creating packages for the Maemo platform&#039;&#039;&#039;]] &amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Jeremiah Foster&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
[http://www.slideshare.net/miahfost/packaging-for-the-maemo-platform (slides)]&lt;br /&gt;
| [[/Day 2#Developments_in_The_Qt_WebKit_Integration | &#039;&#039;&#039;Developments in The Qt WebKit Integration&#039;&#039;&#039;]] &amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Kenneth Rohde Christiansen&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 13.00 - 14.30 &lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; align=&amp;quot;center&amp;quot; | Lunch&lt;br /&gt;
|-&lt;br /&gt;
| 14.30 - 15.25&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | &#039;&#039;&#039;[[/Lightning talks | Lightning talks]]&#039;&#039;&#039;, 5 min each &lt;br /&gt;
# [[/Lightning talks#Giving_Great_Presentations | &#039;&#039;&#039;Giving Great Presentations&#039;&#039;&#039;]] - &#039;&#039;Dave Neary&#039;&#039;&lt;br /&gt;
# [[/Lightning talks#Feedhandler_-_Integrating_RSS_newsreaders_with_the_browser | &#039;&#039;&#039;Feedhandler - Integrating RSS newsreaders with the browser&#039;&#039;&#039;]] - &#039;&#039;Thomas Perl&#039;&#039;&lt;br /&gt;
# [[/Lightning talks#python-mafw:_MAFW_framework_for_Python_developers | &#039;&#039;&#039;python-mafw: MAFW framework for Python developers&#039;&#039;&#039;]] - &#039;&#039;Andrea Grandi&#039;&#039; - [http://www.slideshare.net/andy80/pythonmafw-intoduction-at-maemo-summit-2009 (Slides)]&lt;br /&gt;
# [[/Lightning talks#DVCS.3F_git.3F_-_How_does_that_work_then.3F | &#039;&#039;&#039;DVCS? git? - How does that work then?&#039;&#039;&#039;]] - &#039;&#039;David Greaves&#039;&#039; - [http://www.slideshare.net/mrlbt/git-how-does-that-work-then (Slides)]&lt;br /&gt;
# [[/Lightning_talks#BlueMaemo_-_Bluetooth_HID_mouse_.26_keyboard_for_Maemo | &#039;&#039;&#039;BlueMaemo - Bluetooth HID mouse &amp;amp; keyboard for Maemo&#039;&#039;&#039;]] - &#039;&#039;Valério Valério&#039;&#039; [http://www.slideshare.net/VDVsx/bluemaemo-bluetooth-hid-mouse-keyboard-for-maemo (Slides)]&lt;br /&gt;
# [[/Lightning_talks#Continous_Integration_with_CruiseControl_and_Scratchbox | &#039;&#039;&#039;Continous Integration with CruiseControl and Scratchbox&#039;&#039;&#039;]] - &#039;&#039;Jani Mikkonen&#039;&#039;&lt;br /&gt;
# [[/Lightning_talks#Conboy.2C_Tomboy_and_Snowy | &#039;&#039;&#039;Conboy, Tomboy and Snowy&#039;&#039;&#039;]] - &#039;&#039;Cornelius Hald&#039;&#039;&lt;br /&gt;
# [[/Lightning_talks#Ogg_support_status | &#039;&#039;&#039;Ogg support status&#039;&#039;&#039;]] - &#039;&#039;Tuomas Kulve&#039;&#039;&lt;br /&gt;
# [[/Lightning_talks#Maemo_Platform_Security | &#039;&#039;&#039;Maemo Platform Security&#039;&#039;&#039;]] - &#039;&#039;Elena Reshetova&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 15:25 - 15:45&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; align=&amp;quot;center&amp;quot; | Break&lt;br /&gt;
|-&lt;br /&gt;
| 15.45 - 16.10 &lt;br /&gt;
| [[/Day 2#GUPnP_and_Rygel:_The_UPnP.2FDLNA_solution_for_Maemo | &#039;&#039;&#039;GUPnP and Rygel: The UPnP/DLNA solution for Maemo&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Zeeshan Ali&#039;&#039;&lt;br /&gt;
| [[/Day 2#Adapting_GNOME_applications_to_Maemo_Fremantle | &#039;&#039;&#039;Adapting GNOME applications to Maemo Fremantle&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Joaquim Rocha&#039;&#039; [http://www.slideshare.net/j_rocha/adapting-gnome-applications-to-maemo-fremantle (slides)]&lt;br /&gt;
| [[/Day 2#Contributing_with_Git_.26_Gitorious | &#039;&#039;&#039;Contributing with Git &amp;amp; Gitorious&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;Johan Sørensen&lt;br /&gt;
| [[/Day_2#High-resolution_image_processing_on_Maemo_devices | &#039;&#039;&#039;High-resolution image processing on Maemo devices&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Alexander Bokovoy&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 16.15 - 16.40 &lt;br /&gt;
| [[/Day 2#Mer:_A_year_after| &#039;&#039;&#039;Mer: A year after&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Carsten Valdemar Munk&#039;&#039; [http://www.slideshare.net/carstenmunk/mer-a-year-after (slides)]&lt;br /&gt;
| [[/Day_2#Intelligent_Usage_of_Fremantle_Location_Framework_For_Location-aware_Applications | &#039;&#039;&#039;Intelligent Usage of Fremantle Location Framework For Location-aware Applications&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Quanyi Sun&#039;&#039;&lt;br /&gt;
| [[/Day 2#Hildon_toolkit_for_Fremantle | &#039;&#039;&#039;Hildon toolkit for Fremantle&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Alberto Garcia, Claudio Saavedra&#039;&#039;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | [[/Day_2#Git_hands-on_workshop | &#039;&#039;&#039;Git hands-on workshop&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;David Greaves&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 16.45 - 17.10 &lt;br /&gt;
| [[/Day 2#maemo.org_Bug_Management | &#039;&#039;&#039;maemo.org Bug Management&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Andre Klapper&#039;&#039; [http://home.arcor.de/ak-47/en/linux/maemosummit2009.pdf (slides)]&lt;br /&gt;
| [[/Day 2#Go-to_market_opportunities_for_mobile_application_developers | &#039;&#039;&#039;Go-to market opportunities for mobile application developers&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Boaz Zilberman&#039;&#039;&lt;br /&gt;
| [[/Day_2#Tracker:_Dial_M_for_Metadata | &#039;&#039;&#039;Tracker: Dial M for Metadata&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Ivan Frade, Iridian Kiiskinen&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 17.10 - 17.30 &lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; align=&amp;quot;center&amp;quot; | Break&lt;br /&gt;
|-&lt;br /&gt;
| 17.30 - 17.55 &lt;br /&gt;
| [[/Day 2#Canola:_Beyond_the_media_playback | &#039;&#039;&#039;Canola: Beyond the media playback&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&#039;&#039;Eduardo Lima&#039;&#039;&lt;br /&gt;
| [[/Day 2#Hands-on_development_with_Nokia_Web_Runtime | &#039;&#039;&#039;Hands-on development with Nokia Web Runtime&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Oren Levine&#039;&#039; [http://www.slideshare.net/olevine/handson-development-with-nokia-web-runtime (Slides)] [http://www.forum.nokia.com/Technology_Topics/Web_Technologies/Web_Runtime/ (More information)]&lt;br /&gt;
| [[/Day 2#The_Qt_Mobility_Project | &#039;&#039;&#039;The Qt Mobility Project&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&#039;&#039;Alex Luddy&#039;&#039;&lt;br /&gt;
| [[/Day_2#Hacking_officially_unsupported_Bluetooth_profiles_to_work_in_Fremantle | &#039;&#039;&#039;Hacking officially unsupported Bluetooth profiles to work in Fremantle&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Johan Hedberg&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 18.00 - 18.25 &lt;br /&gt;
| [[/Day_2#The_Maemo_5_Address_Book | &#039;&#039;&#039;The Maemo 5 Address Book&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Mathias Hasselmann, Travis Reiter&#039;&#039;&lt;br /&gt;
| [[/Day 2#Publishing_your_software_through_maemo.org | &#039;&#039;&#039;Publishing your software through maemo.org&#039;&#039;&#039;]] &amp;lt;br/&amp;gt;&#039;&#039;Niels Breet&#039;&#039;&lt;br /&gt;
| [[/Day_2#Maemo_and_oFono | &#039;&#039;&#039;Maemo and oFono&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Aki Niemi, Rémi Denis-Courmont&#039;&#039;&lt;br /&gt;
| [[/Day_2#The_future_of_GTK.2B.2FHildon_in_Maemo_Harmattan | &#039;&#039;&#039;The future of GTK+/Hildon in Maemo Harmattan&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Alberto Garcia, Claudio Saavedra&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 18.45 - 20.30 &lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; align=&amp;quot;center&amp;quot; | Maemo Drinks in N900 room&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== [[/Day 3 | Sunday, October 11]] ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time&lt;br /&gt;
! N900&lt;br /&gt;
! N810&lt;br /&gt;
! N800&lt;br /&gt;
! 770&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 9.00  &lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; align=&amp;quot;center&amp;quot; | Doors Open&lt;br /&gt;
|- &lt;br /&gt;
| 10.00 - 10.45 &lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; align=&amp;quot;center&amp;quot; | [[/Day 3#Fremantle_Stars_showcase | &#039;&#039;&#039;Fremantle Stars showcase&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;Including liqbase, OSM2Go, [http://mauku.innologies.com Mauku], OMWeather [http://www.slideshare.net/vasvlad/omweather-in-maemo-summit-2009 (Slides+notes)], eCoach and more.&lt;br /&gt;
|- &lt;br /&gt;
| 10.45 - 11.00 &lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; align=&amp;quot;center&amp;quot; | Coffee-break&lt;br /&gt;
|- &lt;br /&gt;
| 11.00 - 11.25 &lt;br /&gt;
| [[/Day 3#Maemo_Browser_for_power_users  | &#039;&#039;&#039;Maemo Browser for power users&#039;&#039;&#039;]]&amp;lt;br/&amp;gt; &#039;&#039;Mikko Korpelainen&#039;&#039; - [http://www.slideshare.net/mtkorpel/maemo-browser (presentation content)]&lt;br /&gt;
&amp;lt;br/&amp;gt; [[/Day 3#Maemo_Browser_evolution  | &#039;&#039;Maemo Browser evolution&#039;&#039;]]&amp;lt;br/&amp;gt; &#039;&#039;Oleg Romashin&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt; [[/Day 3#Maemo_Browser_extension_development  | &#039;&#039;Maemo Browser extension development&#039;&#039;]]&amp;lt;br/&amp;gt; &#039;&#039;Sudarsana Nagineni&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
| [[/Day 3#JamMo_-_Jamming_mobile_game_for_children | &#039;&#039;&#039;JamMo - Jamming mobile game for children&#039;&#039;&#039;]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Aapo Rantalainen&#039;&#039;&lt;br /&gt;
| [[/Day_3#Building_for_Mer | &#039;&#039;&#039;Building for Mer&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&#039;&#039;David Greaves&#039;&#039; - [http://www.slideshare.net/mrlbt/building-for-mer (Slides+notes)]&amp;lt;br/&amp;gt;[[Mer/Build | (see also Mer Build page)]]&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | [[/Day 3#Hackathon:_Integrating_Canola_with_Fremantle | &#039;&#039;&#039;Canola Fremantle Hackathon&#039;&#039;&#039;]]&lt;br /&gt;
|-&lt;br /&gt;
| 11.30 - 11.55 &lt;br /&gt;
| [[/Day 3#Maemo_documentation_co-creation  | &#039;&#039;&#039;Maemo documentation co-creation &#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Dave Neary&#039;&#039;&lt;br /&gt;
| [[/Day_3#Designing_QT_application_for_Maemo_5_and_Maemo_6 | &#039;&#039;&#039;Designing Qt application for Maemo 5 and Maemo 6&#039;&#039;&#039;]] &amp;lt;br/&amp;gt;&#039;&#039;Sergiy Dubovik, Ian Monroe&#039;&#039;&lt;br /&gt;
| [[/Day 3#Writing_plugins_for_MAFW | &#039;&#039;&#039;Writing plugins for MAFW &#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&#039;&#039;Iago Toral&#039;&#039; [http://blogs.igalia.com/itoral/2009/10/11/writing-mafw-plugins-talk-maemo-summit/ (blog post with slides and source code examples)]&lt;br /&gt;
|-&lt;br /&gt;
| 12.00 - 12.25 &lt;br /&gt;
| [[/Day_3#Mobile_Office_based_on_KOffice_Open_Source_Project | &#039;&#039;&#039;Mobile Office based on KOffice Open Source Project&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Suresh Chande&#039;&#039; [http://sureshchande.blogspot.com/2009/10/mobile-office-based-on-koffice-for.html (blog post + video demo)]&lt;br /&gt;
| [[/Day 3#Handheld_Glom:_Easy_database_applications | &#039;&#039;&#039;Handheld Glom: Easy database applications&#039;&#039;&#039;]] &amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Murray Cumming&#039;&#039;&lt;br /&gt;
| [[/Day_3#Maemo_Platform_Security:_Principles_and_Concepts | &#039;&#039;&#039;Maemo Platform Security: Principles and Concepts&#039;&#039;&#039;]] &amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Elena Reshetova&#039;&#039;&lt;br /&gt;
|[[/Day_3#Extending_the_Hildon_desktop | &#039;&#039;&#039;Extending the Hildon desktop &#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Marc Ordinas i Llopis&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 12.30 - 12.55 &lt;br /&gt;
| [[/Day 3#Towards_painless_and_quality_translations | &#039;&#039;&#039;Towards painless and quality translations&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;Dimitris Glezos ([http://media.indifex.com/other/maesum.pdf slides])&lt;br /&gt;
| [[/Day_3#10_Tips_for_Designing_Mobile_Widgets | &#039;&#039;&#039;10 Tips for Designing Mobile Widgets&#039;&#039;&#039;]] &amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Rajesh Lal&#039;&#039; ([http://www.slideshare.net/rajeshlal/ten-tips-for-designing-mobile-widgets-2009-q3-maemo-summit-v1 slideshare], [http://irajesh.com/files/10TipsForDesigningMobileWidgets.pdf pdf], [http://irajesh.com/files/10TipsForDesigningMobileWidgets.ppt ppt], [http://irajesh.com/files/10TipsForDesigningMobileWidgets.pps pps])&lt;br /&gt;
| [[/Day_3#Telepathy_on_Maemo | &#039;&#039;&#039;Telepathy on Maemo&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Marco Barisione&#039;&#039;&lt;br /&gt;
| [[/Day_3#What_to_do_about_.2Fopt_in_Fremantle | &#039;&#039;&#039;What to do about /opt in Fremantle&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Marius Vollmer&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 13.00 - 14.30 &lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; align=&amp;quot;center&amp;quot; | Lunch&lt;br /&gt;
|-&lt;br /&gt;
| 14.30 - 15.25&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | &#039;&#039;&#039;[[/Lightning talks | Lightning talks]]&#039;&#039;&#039;, 5 min each &lt;br /&gt;
# [[/Lightning talks#Issues_on_adapting_Maemo_4_application_to_Maemo_5 | &#039;&#039;&#039;Issues on adapting Maemo 4 application to Maemo 5&#039;&#039;&#039;]] - &#039;&#039;Aniello del Sorbo&#039;&#039; - [http://www.slideshare.net/anidel/issues-on-adapting-maemo-4-applications-to-maemo-5-2229255 (Slides)]&lt;br /&gt;
# [[/Lightning talks#How_to_speed_up_your_Maemo_application_development | &#039;&#039;&#039;How to speed up your Maemo application development&#039;&#039;&#039;]] - &#039;&#039;Raul Herbster&#039;&#039;&lt;br /&gt;
# [[/Lightning talks#Development_Nirvana:_How_Maemo_Application_Development_Should_Be | &#039;&#039;&#039;Development Nirvana: How Maemo Application Development Should Be&#039;&#039;&#039;]] - &#039;&#039;Andrew Flegg&#039;&#039;&lt;br /&gt;
# [[/Lightning talks#GSoC_presentation:_BitTorrent_plugin_for_Canola | &#039;&#039;&#039;GSoC presentation: BitTorrent plugin for Canola&#039;&#039;&#039;]] - &#039;&#039;Lauri Võsandi&#039;&#039;&lt;br /&gt;
# [[/Lightning talks#GSoC_Project_presentation:_Picasa_plugin_for_Canola | &#039;&#039;&#039;GSoC Project presentation: Picasa plugin for Canola&#039;&#039;&#039;]] - &#039;&#039;Andrei Mirestean&#039;&#039;&lt;br /&gt;
# [[/Lightning talks#Behaviour-Driven_Development_on_Maemo | &#039;&#039;&#039;Behaviour-Driven Development on Maemo&#039;&#039;&#039;]] - &#039;&#039;Jose Teixeira&#039;&#039;&lt;br /&gt;
# [[/Lightning_talks#N900_HW_architecture_overview_.26_power_management | &#039;&#039;&#039;N900 HW architecture overview &amp;amp; power management&#039;&#039;&#039;]] - &#039;&#039;Igor Stoppa&#039;&#039;&lt;br /&gt;
# [[/Lightning talks#From_corporations_to_communities:_responsible_and_effective_engagement | &#039;&#039;&#039;From corporations to communities: responsible and effective engagement&#039;&#039;&#039;]] - &#039;&#039;Randall &amp;quot;Texrat&amp;quot; Arnold&#039;&#039;&lt;br /&gt;
# [[/Lightning talks#Mer_from_a_user.27s_perspective | &#039;&#039;&#039;Mer from a user&#039;s perspective&#039;&#039;&#039;]] - &#039;&#039;Tomasz Dominikowski&#039;&#039; - [http://www.slideshare.net/guest8106d9c/mer-from-users-perspective (Slides)]&lt;br /&gt;
# [[/Lightning talks#Nokia_PUSH_N900_Project_Showcase | &#039;&#039;&#039;Nokia PUSH N900 Project Showcase&#039;&#039;&#039;]] - &#039;&#039;Ben Mason and Gary Birkett&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 15.30 - 16.00 &lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; align=&amp;quot;center&amp;quot; | Grand Finale&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== News ==&lt;br /&gt;
Link here Summit related news that made it to the homepage of recognized media.&lt;br /&gt;
* Made it to homepage of slideshare.net as Spotlight: Maemo Summit 2009, Amsterdam in the right navigation&lt;br /&gt;
&lt;br /&gt;
== User-created content ==&lt;br /&gt;
&lt;br /&gt;
===Tagged===&lt;br /&gt;
&lt;br /&gt;
Please use the tag &amp;quot;maesum&amp;quot; (or hashtag &amp;quot;#maesum&amp;quot; on Identi.ca/Twitter) to tag your content.&lt;br /&gt;
&lt;br /&gt;
Here are some helpful links to search for Maemo Summit content:&lt;br /&gt;
&lt;br /&gt;
* [http://www.flickr.com/photos/tags/maesum/interesting/ maesum on Flickr]&lt;br /&gt;
* [http://picasaweb.google.com/lh/view?q=maesum&amp;amp;psc=G maesum on Picasa]&lt;br /&gt;
* [http://search.twitter.com/search?q=maesum maesum on Twitter]&lt;br /&gt;
* [http://identi.ca/tag/maesum maesum on Identi.ca]&lt;br /&gt;
* [http://www.youtube.com/results?search_query=+%22maesum%22 maesum on YouTube]&lt;br /&gt;
* [http://technorati.com/search/maesum maesum on Technorati]&lt;br /&gt;
* [http://www.slideshare.net/event/maemo-summit-2009 maesum on Slideshare]&lt;br /&gt;
* [http://vimeo.com/tag:maesum maesum on Vimeo]&lt;br /&gt;
&lt;br /&gt;
===Blogs===&lt;br /&gt;
&lt;br /&gt;
See [http://planet.maemo.org Planet Maemo] for some additional posts.&lt;br /&gt;
&lt;br /&gt;
* [http://freebirdbr.wordpress.com/2009/10/12/maemo-summit-2009-dia-1/ Day 1], [http://freebirdbr.wordpress.com/2009/10/12/maemo-summit-2009-dia-2/ Day 2], [http://freebirdbr.wordpress.com/2009/10/13/maemo-summit-2009-dia-3/ Day 3] and two special posts on [http://freebirdbr.wordpress.com/2009/10/09/mitos-do-n900-n900-roda-mesmo-quake-iii/ Quake III on Maemo] and [http://freebirdbr.wordpress.com/2009/10/13/maemo-co-creation-workshop/ Co-creation workshop] at [http://freebirdbr.wordpress.com/2009/10/12/maemo-summit-2009-dia-1/ Free Bird] (&#039;&#039;&#039;&#039;&#039;in portuguese&#039;&#039;&#039;&#039;&#039;); automatic translations (by Google Translate) [http://translate.google.com/translate?u=http%3A%2F%2Ffreebirdbr.wordpress.com%2F2009%2F10%2F12%2Fmaemo-summit-2009-dia-1%2F&amp;amp;sl=&amp;amp;tl=en Day 1], [http://translate.google.com/translate?u=http%3A%2F%2Ffreebirdbr.wordpress.com%2F2009%2F10%2F12%2Fmaemo-summit-2009-dia-2%2F&amp;amp;sl=&amp;amp;tl=en Day 2], [http://translate.google.com/translate?u=http%3A%2F%2Ffreebirdbr.wordpress.com%2F2009%2F10%2F13%2Fmaemo-summit-2009-dia-3%2F&amp;amp;sl=&amp;amp;tl=en Day 3], [http://translate.google.com/translate?u=http%3A%2F%2Ffreebirdbr.wordpress.com%2F2009%2F10%2F09%2Fmitos-do-n900-n900-roda-mesmo-quake-iii%2F&amp;amp;sl=&amp;amp;tl=en Quake III on Maemo] and [http://translate.google.com/translate?u=http%3A%2F%2Ffreebirdbr.wordpress.com%2F2009%2F10%2F13%2Fmaemo-co-creation-workshop%2F&amp;amp;sl=&amp;amp;tl=en Co-creation workshop]&lt;br /&gt;
* Live blogging at [http://maemotalk.com/ Maemo Talk]: [http://maemotalk.com/2009/10/09/maemo-summit-2009-day-1/ Day 1], [http://maemotalk.com/2009/10/10/maemo-summit-2009-day-2/ Day 2], [http://maemotalk.com/2009/10/11/maemo-summit-2009-day-3/ Day 3]&lt;br /&gt;
* [http://blog.bdesmet.be/?p=228 biertie&#039;s blogpost]&lt;br /&gt;
* Add a link to your blog post here&lt;br /&gt;
&lt;br /&gt;
===Videos===&lt;br /&gt;
&lt;br /&gt;
Please add videos that have been taken directly at the Summit (Talks, Interviews, etc..).&lt;br /&gt;
&lt;br /&gt;
* [http://www.youtube.com/watch?v=n7a2Vz9msq4 Quake 3 Presentation]&lt;br /&gt;
* [http://www.youtube.com/watch?v=-xzD7UrrP9w Intro Video (N900 room, Friday morning)]&lt;br /&gt;
* [http://vimeo.com/7109463 Mer: how the community innovates]&lt;br /&gt;
* [http://vimeo.com/7059150 Summit Finale] &lt;br /&gt;
* Add a link to your video here&lt;br /&gt;
&lt;br /&gt;
===Photos===&lt;br /&gt;
&lt;br /&gt;
Please add links to your photos, either as a Flickr photoset, Picasa album or personal website.&lt;br /&gt;
&lt;br /&gt;
* [http://www.flickr.com/photos/63684846@N00/sets/72157622451059219/ thp&#039;s photos on Flickr]&lt;br /&gt;
* [http://www.flickr.com/photos/43614522@N08/ rajesh lal&#039;s photos on Flickr]&lt;br /&gt;
* Add a link to your photos here&lt;br /&gt;
&lt;br /&gt;
== Old ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size: 1em;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sections&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;section&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt;Schedule&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ul class=&amp;quot;document&amp;quot;&amp;gt;{{Summit 2009 Schedule}}&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;section&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt;Location&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ul class=&amp;quot;help&amp;quot;&amp;gt;{{Summit 2009 Location}}&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;section&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt;Attendees&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ul class=&amp;quot;help&amp;quot;&amp;gt;{{Summit 2009 Attendees}}&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;column&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;section&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt;Organization&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ul class=&amp;quot;help&amp;quot;&amp;gt;{{Summit 2009 Organization}}&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Latest News ===&lt;br /&gt;
&amp;lt;rss title=&amp;quot;off&amp;quot; desc=&amp;quot;off&amp;quot; number=&amp;quot;10&amp;quot; time=&amp;quot;3600&amp;quot;&amp;gt;http://search.twitter.com/search.rss?q=%23maesum&amp;lt;/rss&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Community|Mer]]&lt;/div&gt;</summary>
		<author><name>192.100.124.218</name></author>
	</entry>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=Maemo_Summit_2009/Day_3&amp;diff=20800</id>
		<title>Maemo Summit 2009/Day 3</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=Maemo_Summit_2009/Day_3&amp;diff=20800"/>
		<updated>2009-10-18T12:25:36Z</updated>

		<summary type="html">&lt;p&gt;192.100.124.218: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Maemo Summit day 3, Sunday 11 October =&lt;br /&gt;
&lt;br /&gt;
=== Fremantle Stars showcase ===&lt;br /&gt;
&lt;br /&gt;
Take a tour of the Fremantle Stars, the best of the best in Maemo community developed applications, featuring:&lt;br /&gt;
; liqbase&lt;br /&gt;
: Gary Birkett, liquid at gmail dot com, lcuk on #maemo&lt;br /&gt;
; [http://mauku.innologies.com Mauku]&lt;br /&gt;
: [http://www.henrikhedberg.net Henrik Hedberg]&lt;br /&gt;
; OSM2Go&lt;br /&gt;
: Till Harbaum&lt;br /&gt;
; OMWeather&lt;br /&gt;
: Vlad Vasilyev&lt;br /&gt;
; eCoach&lt;br /&gt;
: Sampo Savola&lt;br /&gt;
&lt;br /&gt;
=== Maemo Browser for power users ===&lt;br /&gt;
*Author: Mikko Korpelainen, mikko.korpelainen at nokia dot com&lt;br /&gt;
*Intended audience: users&lt;br /&gt;
*Talk type: presentation&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: Quick overview of the Maemo Browser design and capabilities. Followed by an in-depth explanation of the end user features and settings the Maemo Browser has.&lt;br /&gt;
*Author bio&lt;br /&gt;
: Mikko Korpelainen is a senior product manager @ Maemo for browser, FlashPlayer, maps and location.&lt;br /&gt;
&lt;br /&gt;
=== Maemo Browser evolution ===&lt;br /&gt;
*Author: Oleg Romashin, oleg.romashin at nokia dot com&lt;br /&gt;
*Intended audience: developers&lt;br /&gt;
*Talk type: presentation&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: Quick overview of the Maemo Browser improvement process, rendering architecture.&lt;br /&gt;
  Link to presentation: http://docs.google.com/present/view?id=ajk2s2df9zhr_144fb8zrrck&lt;br /&gt;
*Author bio&lt;br /&gt;
: Oleg Romashin is a senior lead developer @ Maemo for browser.&lt;br /&gt;
&lt;br /&gt;
=== Maemo Browser extension development ===&lt;br /&gt;
*Author: Sudarsana Nagineni, sudarsana.nagineni at nokia dot com&lt;br /&gt;
*Intended audience: developers&lt;br /&gt;
*Talk type: presentation&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: A tutorial on how to develop extensions for Maemo Browser. &lt;br /&gt;
*Author bio&lt;br /&gt;
: Sudarsana Nagineni is a senior developer at Maemo for browser. &lt;br /&gt;
&lt;br /&gt;
=== [http://jammo.garage.maemo.org JamMo - Jamming mobile game for children] ===&lt;br /&gt;
* Author: Aapo Rantalainen (aapodotrantalainenatgmaildotcom)&lt;br /&gt;
* Intended audience: application developers&lt;br /&gt;
* Talk type: presentation&lt;br /&gt;
* Abstract/description&lt;br /&gt;
: JamMo is an educational music making game for children at age 3-12. It is targeted for Maemo 5 Fremantle. It uses GStreamer at music backend and Clutter toolkit for graphical user interface. In this talk we present the first version of the application and our experiences on underlying technologies. The development of JamMo is open to everyone who is interested to contribute in any way. For more information see http://jammo.garage.maemo.org/&lt;br /&gt;
* Additional Information&lt;br /&gt;
: Needed equipment: video projector, canvas, speakers.&lt;br /&gt;
&lt;br /&gt;
* Author bio&lt;br /&gt;
: JamMo is a product of an EU funded [http://www.umsic.org/ UMSIC project]. Aapo Rantalainen is the head developer of JamMo.&lt;br /&gt;
&lt;br /&gt;
=== Writing plugins for MAFW ===&lt;br /&gt;
*Author: Iago Toral - itoral at igalia dot com&lt;br /&gt;
*Intended audience: platform and application developers.&lt;br /&gt;
*Talk type: Presentation (Tutorial)&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: A tutorial on how developers can write source and renderer plugins for the Media Application Framework (MAFW). The audience will learn how to develop new plugins that provide access to new sources of media content or implement different rendering backends and how they can use these plugins from their own media applications. The tutorial will also include an introduction to MAFW for those not familiar with the framework.&lt;br /&gt;
*Author bio&lt;br /&gt;
: I am a Software Engineer at Igalia and user of the Gnome Desktop and Linux OS for quite many years. Currently I am most interested in Multimedia, specially around MAFW, for which I am one of the main developers, and GStreamer.&lt;br /&gt;
&lt;br /&gt;
=== Hackathon: Integrating Canola with Fremantle ===&lt;br /&gt;
*Author: [http://maemo.org/profile/view/etrunko Eduardo Lima (Etrunko)]&lt;br /&gt;
*Intended audience: Application Developers&lt;br /&gt;
*Talk type: Hands-on/Hackathon&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: The idea of this session is to get a reasonable number of people interested in integrating Canola with the new technologies introduced in Fremantle, mostly Tracker and MAFW, together, so we can trace a plan and start getting our hands dirty.&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;Why??&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: Some Canola components were conceived aiming to provide alternate solutions for some Nokia closed-source libraries and others that were not available by the time we started the project (mid-2007, back then we only had the N800 with Bora/Chinook). That&#039;s why we created our own media scanner (lightmediascanner+canolad) and media engine (atabake). Now I think it is time for us to evolve to the new and open solutions provided by Fremantle, yet keeping compatibility with &amp;quot;legacy&amp;quot; platforms, such as Diablo.&lt;br /&gt;
&lt;br /&gt;
: People interested in developing plugins for Canola and/or developing using EFL/PyEFL are more than welcome to join us.&lt;br /&gt;
*Extra equipment&lt;br /&gt;
**&amp;lt;strike&amp;gt;&#039;&#039;Guns, lots of guns.&#039;&#039;&amp;lt;/strike&amp;gt;&lt;br /&gt;
**Brave hacker souls&lt;br /&gt;
**Power outlets galore&lt;br /&gt;
**Internet Connection&lt;br /&gt;
**Whiteboard/Flipchart&lt;br /&gt;
**Coffe&lt;br /&gt;
*Author bio&lt;br /&gt;
: Open Source Software enthusiast, involved with Maemo since the very beginning (mid 2005), and had the opportunity to be part of the first Maemo Community Council. Started porting various GTK+/GNOME applications (Gnumeric, Evince, Abiword, Leafpad, Xournal, etc), to the platform. Worked on the first version of Carman, written in Python + GTK. After that, joined the team developing the Canola media player, coding and maintaining its packages for Maemo since then. Also maintains packages of the Enlightenment Foundation Libraries (EFL) for Maemo. Works for openBossa/INdT, where has been having the opportunity to present and talk about Maemo in events in Brazil and worldwide.&lt;br /&gt;
&lt;br /&gt;
=== Maemo documentation co-creation ===&lt;br /&gt;
&lt;br /&gt;
*Dave Neary, dneary at maemo dot org&lt;br /&gt;
*Intended audience: Users&lt;br /&gt;
*Talk type: Presentation&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: The stated goal in the 2010 agenda for maemo.org is the co-creation of all Maemo documentation.&lt;br /&gt;
: This presentation will show the path we have traveled towards this goal so far, especially over the past year, the plans for Fremantle and Harmattan, and most importantly, a call to action showing how you can help out.&lt;br /&gt;
&lt;br /&gt;
*Author bio&lt;br /&gt;
: Dave Neary has participated in many free software projects over the years. He was release manager of the GIMP, chairman of the GNOME Foundation, and community and product manager for the OpenWengo project. He is currently the maemo.org Docmaster, a role where he works to enable the Maemo community to do great work, and an independent consultant helping companies work with and create healthy communities.&lt;br /&gt;
&lt;br /&gt;
=== Designing QT application for Maemo 5 and Maemo 6===&lt;br /&gt;
*Sergiy Dubovik &amp;lt;sergiy dot dubovik &amp;quot;at sign&amp;quot; nokia point com&amp;gt;, Ian Monroe &amp;lt;ian.monroe at collabora.co.uk&amp;gt;&lt;br /&gt;
*Intended audience: application developers&lt;br /&gt;
*Talk type: presentation&lt;br /&gt;
*Abstract/description&lt;br /&gt;
&lt;br /&gt;
:How application developers should design their applications to work on Maemo 5 and Maemo 6 platforms? Which widgets will be supported? How to handle possible virtual keyboard? Where to store application settings? Which QT services will be available? These questions will be answered.&lt;br /&gt;
&lt;br /&gt;
*Additional information on extra equipment you might need or something else goes here&lt;br /&gt;
:Just a projector&lt;br /&gt;
&lt;br /&gt;
*Author bio&lt;br /&gt;
: Sergiy Dubovik is a senior software developer working in Nokia, designing and developing UI frameworks for Harmattan program.&lt;br /&gt;
&lt;br /&gt;
: Ian is a software developer at Collabora Ltd where he works from home in Iowa City, Iowa USA. He has been a developer of the popular desktop music manager Amarok for four years. He is the maintainer of KDE&#039;s video player, Dragon Player.&lt;br /&gt;
&lt;br /&gt;
=== Building for Mer ===&lt;br /&gt;
* [[User:lbt|David Greaves]]&lt;br /&gt;
* Intended audience: application &amp;amp; platform developers&lt;br /&gt;
* Talk type : Presentation/demo&lt;br /&gt;
* Abstract&lt;br /&gt;
: Since Fremantle Extras applications will eventually be submitted to the Mer builder it may be a good idea to introduce it. We use the openSuse Open Build Service; a GPL service that provides an emulated, pristine (yes, I&#039;m looking at you autobuilder and scratchbox), dependency driven build environment. I&#039;ll talk about the processes around Mer builds, access controls, managing integration with our DVCS (git), acceleration tricks and generally how to make good use of things you find lying about on the web.&lt;br /&gt;
&lt;br /&gt;
*Additional Information&lt;br /&gt;
: Live web link to OBS would be good.&lt;br /&gt;
&lt;br /&gt;
*Author bio&lt;br /&gt;
: David is the Mer build mentor; he&#039;s been a solutions architect at a major telco for several years but still (kinda) knows how to code. He&#039;s a passionate believer in the commercial viability of OSS. Previous contributions include kick-starting the git documentation &amp;amp; establishing wikis for Linux RAID and MythTV. He runs linux everywhere.&lt;br /&gt;
&lt;br /&gt;
=== Handheld Glom: Easy database applications ===&lt;br /&gt;
* Murray Cumming &amp;lt;murrayc at openismus dot com&amp;gt;&lt;br /&gt;
* Intended audience: application developers&lt;br /&gt;
* Talk type: Presentation&lt;br /&gt;
* Abstract/description:&lt;br /&gt;
: Many custom Maemo applications just need the user to navigate through some data and enter new information. Glom lets you quickly throw together a database structure and UI layout, providing a Maemo UI with no coding. You can then use Python for anything more complicated, though Glom itself already supports features such as related records, related fields, related choices, field lookups, calculated fields, and translated UIs.&lt;br /&gt;
*Author bio:&lt;br /&gt;
: Murray Cumming runs Openismus GmbH in Berlin and Munich. We work on Maemo&#039;s development platform and applications and maintain the GNOME C++ API (gtkmm). When we have extra time we work on Glom, gradually getting it ready for real-world use.&lt;br /&gt;
&lt;br /&gt;
=== Towards painless and quality translations ===&lt;br /&gt;
* Dimitris Glezos (glezos _at_ indifex _dot_ com)&lt;br /&gt;
* Intended audience: developers, translators, docs writers, webmasters&lt;br /&gt;
* Talk type: Presentation&lt;br /&gt;
* Material: [http://media.indifex.com/other/maesum.pdf Slides (pdf)]&lt;br /&gt;
* Abstract/description&lt;br /&gt;
: Most developers agree: &amp;quot;Translations are hard&amp;quot;. And while Maemo&#039;s localization is already in place, we&#039;ve got a long way to maximize our efficiency in reaching a global audience. The challenges: lower the costs for developers, minimize maintenance overheads, provide the translators with an effective, easy-to-use interface for submitting translations to their favorite projects (even if they&#039;re hosted on git.. *especially* when they&#039;re hosted on git).&lt;br /&gt;
: Transifex is an open localization platform built for and used by communities similar to Maemo such as Moblin, Fedora and XFCE. This talk will present Transifex, discuss the test results by the Mer Project, and lay down the roadmap for the establishment of an infrastructure able to support the L10n process of Maemo.&lt;br /&gt;
*Additional Information&lt;br /&gt;
: The session will most likely turn into a BoF, bringing together application and platform developers, translators and webmasters/admins.&lt;br /&gt;
*Author bio&lt;br /&gt;
: Dimitris Glezos is the lead developer Transifex. He led Fedora re-engineer its globalization infrastructure allowing for an explosive growth of community translations. He currently serves as Fedora&#039;s Board member and Translation Leader. He works at Indifex, providing enterprise-level support on complex localization scenarios.&lt;br /&gt;
&lt;br /&gt;
=== 10 Tips for Designing Mobile Widgets ===&lt;br /&gt;
*Author: [http://maemo.org/profile/view/rajeshlal Rajesh Lal], rajesh.lal at nokia dot com&lt;br /&gt;
*Intended audience: Widget Developers/Mobile Application Developers&lt;br /&gt;
*Talk type: Presentation&lt;br /&gt;
&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: Do you know why only 1 percent of Mobile Widgets are successful ? What makes some widgets thrive and used by millions, and others with equal functionality bite the dust ? Make no mistakes, design of a widget is not about graphics, color or fonts. This presentation will demystify this &#039;invisible&#039; layer below the surface with 10 pragmatic tips. The tips will uncover some of the most useful, and often ignored standard design principles and how to apply them in a mobile context.&lt;br /&gt;
&lt;br /&gt;
*Author bio&lt;br /&gt;
: Rajesh lal is a Designer, Author, Technology Evangelist, and a Senior Nokia Engineer with a decade of experience in Information Technology. He has been involved in Widget design and development for last 5 years and have authored multiple books on Gadgets and Widgets. He has experience in a variety of Mobile devices, namely Sony Mylo, Window&#039;s Mobile, Apple&#039;s Iphone, Nokia S60 and Maemo devices. His blog on design and user experience can be found at http://abcofdesign.com&lt;br /&gt;
&lt;br /&gt;
=== Mobile Office based on KOffice Open Source Project===&lt;br /&gt;
*Suresh Chande, suresh.chande at nokia.com&lt;br /&gt;
*Intended audience: Application &amp;amp; Platform developers&lt;br /&gt;
*Talk type: Presentation&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: We will present here Mobile Office project developed for Fremantle based on KOffice, a Qt based open source project.&lt;br /&gt;
&lt;br /&gt;
*Additional Information (optional)&lt;br /&gt;
: We will demonstrate Mobile Office (KOffice) running on the N900.&lt;br /&gt;
: Blog Entry: http://labs.trolltech.com/blogs/2009/09/17/office-viewer-for-maemo5-based-on-koffice/ &lt;br /&gt;
&lt;br /&gt;
*Author bio&lt;br /&gt;
: Suresh Chande, works for Nokia  in Device R&amp;amp;D(Maemo ) as Technical Product Owner for the Office Domain. Suresh has worked at Nokia Research Center for over 11 years focusing Mobile Business and Enterprise Application research. His vision is to have Office tools free for use by everybody.&lt;br /&gt;
&lt;br /&gt;
=== Maemo Platform Security: Principles and Concepts ===&lt;br /&gt;
&lt;br /&gt;
* Elena Reshetova - elena.reshetova@nokia.com&lt;br /&gt;
* Intended audience: users, application developers, platform developers&lt;br /&gt;
* Talk type: presentation - [http://www.slideshare.net/peterschneider/maemo-6-platform-security Slides]&lt;br /&gt;
* Abstract/description:&lt;br /&gt;
&lt;br /&gt;
: The purpose of the Platform Security in the Maemo platform is to protect the owner of a Maemo-powered device from getting her personal, private data and passwords from being stolen and used for malicious purposes, to prevent a malware from misusing a device and incurring costs on user, to prevent a user from accidentally breaking the device and to make the platform meet the requirements set by such third party software that requires a safe execution environment. &lt;br /&gt;
&lt;br /&gt;
: The main design goal is to have all this accomplished without any significant penalty in terms of performance or usability, by using established open standards and having as much of the implementation open-sourced as possible. Another goal is to minimize an entry barrier for 3rd party programmers by reusing the existing Linux programming environment and introducing only needed additional features. &lt;br /&gt;
&lt;br /&gt;
: The presentation will cover the main principles and concepts of the Maemo Platform Security.&lt;br /&gt;
&lt;br /&gt;
*Author bio&lt;br /&gt;
: Elena is a senior security engineer and representative of Maemo security team at the Maemo summit. The current task of the team is development of the Maemo Security FW.&lt;br /&gt;
&lt;br /&gt;
=== Telepathy on Maemo ===&lt;br /&gt;
* Author: Marco Barisione, marco.barisione at collabora.co.uk&lt;br /&gt;
* Intended audience: application developers/platform developers&lt;br /&gt;
* Talk type: presentation&lt;br /&gt;
&lt;br /&gt;
* Abstract/description:&lt;br /&gt;
The [http://telepathy.freedesktop.org/ Telepathy real-time communication framework] is a project to abstract messaging, presence, voice and video functionality, regardless of the underlying protocol. Amongst numerous benefits, this makes the connections available as a D-Bus service which can be shared between multiple applications, rather than limited to single monolithic jack-of-all-trades clients.&lt;br /&gt;
&lt;br /&gt;
The talk will introduce the Telepathy framework, its basic concepts and current functionality. It will focus in particular on:&lt;br /&gt;
- The Telepathy architecture&lt;br /&gt;
- How Telepathy is used on Maemo 5 for chat, VOIP calls, telephony calls and SMS messages&lt;br /&gt;
- How to use Telepathy from your program&lt;br /&gt;
&lt;br /&gt;
* Author bio:&lt;br /&gt;
Marco Barisione started to work on Telepathy implementing file transfer for a Google Summer of Code and for his University final project. After graduating he started to work for Collabora where he worked both on Telepathy and on the GTK+ port of WebKit and he spent the last year working on Telepathy-related components for Maemo.&lt;br /&gt;
Before falling in love with Telepathy he worked on various other GNOME projects, in particular adding regular expression support to GLib and implementing a new syntax highlighting engine for the GtkSourceView widget.&lt;br /&gt;
&lt;br /&gt;
=== Extending the Hildon desktop ===&lt;br /&gt;
*Author: Marc Ordinas i Llopis ([[User:Marcoil|marcoil]]), marcoil at collabora dot co dot uk&lt;br /&gt;
*Intended audience: application developers/platform developers&lt;br /&gt;
*Talk type: presentation&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: Developers can easily extend Maemo 5&#039;s desktop, giving users new ways to view and interact with the data in their mobile device. In this talk I&#039;ll describe the basic architecture and components of the desktop and show how to extend it.&lt;br /&gt;
*Author bio&lt;br /&gt;
: Marc is a programmer at Collabora and has been working on hildon-desktop for the last year.&lt;br /&gt;
&lt;br /&gt;
=== What to do about /opt in Fremantle ===&lt;br /&gt;
Author: [[User:mvo|Marius Vollmer]]&lt;br /&gt;
*Intended audience: TBD&lt;br /&gt;
*Talk type: BoF&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: For Fremantle, packages in the Extras repository are asked to install files into /opt to make better use of the available flash space.&lt;br /&gt;
This BoF is an opportunity to discuss everything related to this, immediate next steps and long term solutions, according to the interest of the participants.&lt;br /&gt;
*Author bio&lt;br /&gt;
: TBD&lt;/div&gt;</summary>
		<author><name>192.100.124.218</name></author>
	</entry>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=Maemo_Summit_2009/Day_2&amp;diff=20755</id>
		<title>Maemo Summit 2009/Day 2</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=Maemo_Summit_2009/Day_2&amp;diff=20755"/>
		<updated>2009-10-15T08:24:55Z</updated>

		<summary type="html">&lt;p&gt;192.100.124.218: /* Maemo and oFono */ presentation link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Maemo Summit day 2, Saturday 10 October ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Designing UI for Maemo 5 ===&lt;br /&gt;
* Mox Soini, mox.soini at movial.com&lt;br /&gt;
* Intended audience: Platform/Application Developers, users&lt;br /&gt;
* Talk type: presentation&lt;br /&gt;
* Slides: [http://www.slideshare.net/moximillian/soini-designing-ui-for-maemo-5 Available online at slideshare]&lt;br /&gt;
* Abstract/description:&lt;br /&gt;
: How to make the applications work together as an integrated whole?&lt;br /&gt;
 &lt;br /&gt;
: This talk will discuss the UI Design of the Maemo 5 product as an &amp;quot;application portfolio&amp;quot;. Design patterns as well as application specific designs are presented, and the reasoning for the design decisions.&lt;br /&gt;
&lt;br /&gt;
: Design of the pre-installed applications in the Maemo 5 product is discussed, highlighting the UI flows, common user experience solutions and power user features. Throughout the application walk-through, the structure and &amp;quot;look and feel&amp;quot; of the applications is categorized, resulting in a conceptual design tool for 3rd party application designers and developers.&lt;br /&gt;
&lt;br /&gt;
* Author bio:&lt;br /&gt;
: Mox Soini, Interaction Designer at Movial, is one of the core people who designed the UI Style and UI Framework for the Maemo 5 product. His work additionally includes application design and occasional code patches. He contributes to open source community also in some other projects. Soini strives for a design process that engages collaboration, out of the box thinking and dedication to the fit and finish.&lt;br /&gt;
&lt;br /&gt;
=== PyQt application development on Maemo ===&lt;br /&gt;
*Author: Attila Csipa, attila77 at talk.maemo.org&lt;br /&gt;
*Intended audience: application developers&lt;br /&gt;
*Talk type: presentation&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: A complete walkthrough of creating applications for the Maemo platform with Python and Qt. The presentation would contain two segments, the first being the &#039;why&#039; - introduction to underlying technologies, the rationale of using Python and Qt as a development platform on Maemo and a short demo of a few projects built with these tools. Comparison of different bindings (PyQt vs PySide)&lt;br /&gt;
: The second segment of the presentation focuses on the &#039;how&#039; in a nutshell: How to setup up a proper PyQt/PySide development environment, how to develop most efficiently, how to debug, how to profile and optimize, platform caveats and gotchas, packaging considerations. &lt;br /&gt;
*Author bio&lt;br /&gt;
: Attila Csipa is an Open Source programmer and advocate from Serbia. His Open Source involvements include being a core contributor to web2py, a python based web framework, and contributions to other high profile projects like Mapserver, OpenLayers and NSLU2-linux.&lt;br /&gt;
&lt;br /&gt;
=== Getting started session ===&lt;br /&gt;
* Daniel Wilms, ... (others will be announced later)&lt;br /&gt;
* Intended audience: developers&lt;br /&gt;
* Length: 2 slots (approx. 55 min)&lt;br /&gt;
* Talk type: demo&lt;br /&gt;
&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: The getting started session gives a practical introduction into the environment, which is needed for the development on Maemo. Starting with a short introduction of the Maemo.org infrastructure and the development environment, a step-by-step demonstration of the various tools will be given. Responsibles of each area will explain and demonstrate, how to start from scratch with the development using their tools. The session will end with a demonstration of a download client for 3rd party applications, which are hosted in the Maemo.org repository.&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;Introduction:&#039;&#039;&#039;&lt;br /&gt;
: - The Maemo.org infrastructure (components, documentation, community)&lt;br /&gt;
: - Introduction development environment (SDK, SDK+, Eclipse, Qt)&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;Demonstrations:&#039;&#039;&#039;&lt;br /&gt;
: - Setting up SDK&lt;br /&gt;
: - Setting up SDK+&lt;br /&gt;
: - Development with Eclipse&lt;br /&gt;
: - Development in Qt&lt;br /&gt;
: - Download client for Maemo.org &lt;br /&gt;
&lt;br /&gt;
*Author bio&lt;br /&gt;
: Started as a trainee in NRC Bochum, I am working now for over 2 years for Nokia. In March I came to Maemo and my main task is the technical support of the Maemo.org community developers.&lt;br /&gt;
&lt;br /&gt;
=== Personalizing your Maemo 5 device ===&lt;br /&gt;
* Hartti Suomela (hartti dot suomela at nokia dot com)&lt;br /&gt;
* Intended audience: users&lt;br /&gt;
* Talk type: presentation&lt;br /&gt;
* Abstract/description&lt;br /&gt;
An overview and demo about how you can personalize your Maemo 5 device, including backgrounds, themes, sounds, etc. The talk provides personalization tips for users (what can be done through the device settings), power users (how to add new backgrounds, themes, etc.) and &amp;quot;heavy&amp;quot; power users (e.g. how to change the system sounds).&lt;br /&gt;
*Author bio&lt;br /&gt;
Currently Hartti Suomela works at Nokia in the Maemo User Experience group. In his previous positions he has worked in the Nokia developer support and in Nokia Reserach Center&#039;s software laboratory for example managing university collaborations in U.S.&lt;br /&gt;
&lt;br /&gt;
=== Go-to market opportunities for mobile application developers ===&lt;br /&gt;
*Author: Boaz Zilberman, co-founder and Chief Architect of fring.&lt;br /&gt;
*Intended audience: application developers&lt;br /&gt;
*Talk type: presentation&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: I will be happy to present the go-to-market activities fring is doing to publish our application on the many platforms we work on - Linux, WinMobile, Symbian, Android, J2ME and iPhone. My intention is to stimulate an open discussion so we, as a community, can provide better ways to promote the platform benefits to ordinary users rather than the early adopters.&lt;br /&gt;
*Author bio&lt;br /&gt;
: Boaz Zilberman is a co-founder of fring - a VoIP and IM mobile service with million of active users worldwide. I am responsible for product definition and relations with terminal vendors.&lt;br /&gt;
&lt;br /&gt;
===  Canola application and framework for rich GUI ===&lt;br /&gt;
*Gustavo Sverzut Barbieri (http://blog.gustavobarbieri.com.br/contact/)&lt;br /&gt;
*Intended audience: Application Developers&lt;br /&gt;
*Talk type: presentation&lt;br /&gt;
*Slides: http://talks.gustavobarbieri.com.br/maemo_summit/oct-2009/presentation.pdf&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: Canola is a fancy media center, with a rich graphical user interface designed with touch screen in mind. More than a great application, it is a great framework as well, enabling extending Canola or creating similarly rich programs like Carman or your own! Initially developed by Instituto Nokia de Tecnologia (INdT) in Brazil it was released as GPLv3 and community start to build around it. Today we have more companies supporting the development, the software was ported to other platforms like Ubuntu and OpenMoko SHR. Moreover, 5 of 10 Maemo&#039;s Google Summer of Code projects are around Canola, from media extensions like Picasa integration to non-media related as Remember the Milk (To Do list) and Bittorrent.&lt;br /&gt;
: The framework behind Canola is called Python-Terra, which will be presented simultaneously. A brief overview of its components, followed by explanation of its plugin system will serve as base of understanding of Canola application. Real examples of extensions and new application will be demonstrated as result.&lt;br /&gt;
*Author bio&lt;br /&gt;
: Gustavo lead the development of Canola1 and designed and implemented Canola2 together with co-workers at INdT. Now he runs a company that does software development and services, among them Canola2 development.&lt;br /&gt;
&lt;br /&gt;
=== Maemo Co-creation ===&lt;br /&gt;
* Organiser: Jussi Mäkinen&lt;br /&gt;
* Intended audience: Users&lt;br /&gt;
* Talk type: Presentation and Workshop&lt;br /&gt;
* Abstract/description&lt;br /&gt;
: Maemo co-creation workshops are annual sessions where selected [http://en.wikipedia.org/wiki/Lead_user lead users] + Maemo product managers, designers and marketeers together imagine the future use-cases for Maemo Devices.&lt;br /&gt;
: Maemo co-creation 2009 will now open up for the Maemo community by presenting the workshop results on the Saturday showcase and crafting the ideas forward with anyone willing to participate on our Sunday working session.&lt;br /&gt;
* Organizer bio&lt;br /&gt;
: [http://twitter.com/luovanto Jussi Mäkinen] is responsible for lead consumer marketing &amp;amp; co-creation activities @ Maemo Devices.&lt;br /&gt;
&lt;br /&gt;
=== Maemomm: Maemo with C++ and a Gtkmm flavour ===&lt;br /&gt;
*Author: David King, davidk at openismus dot com, amigadave on IRC, http://amigadave.blogspot.com&lt;br /&gt;
*Intended audience: application developers/platform developers&lt;br /&gt;
*Talk type: presentation&lt;br /&gt;
*Slides: [http://amigadave.com/presentations/maemo_summit_2009.pdf Available as PDF]&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: Maemomm is a set of C++ bindings for Maemo libraries. With the bindings, C++ programmers can use the language features that they are familiar with, and combine them with the underlying features of GTK+ and Maemo. Maemomm allows greater type-safety, use of C++&#039;s object-orientation features and simpler reference-counting semantics.&lt;br /&gt;
: The advantages of the C++ API will be discussed, and demonstrated with short code examples. Comparisons to the underlying C API will be made, as well as to other toolkits. For more information see https://garage.maemo.org/projects/maemomm/&lt;br /&gt;
*Author bio&lt;br /&gt;
: David began working as a software developer for Openismus at the start of 2009. He works on Maemomm development, as well as other projects that are too exciting to talk about.&lt;br /&gt;
&lt;br /&gt;
=== Extras/autobuilder/interfaces round-table ===&lt;br /&gt;
*Author: Ed Bartosh, Alexander Kanevskiy, Niels Breet&lt;br /&gt;
*Intended audience: application and platform developers &lt;br /&gt;
*Talk type: round-table&lt;br /&gt;
*Room: Oostelijk Meterhuis&lt;br /&gt;
*Duration: 1 hour&lt;br /&gt;
*Abstract/description&lt;br /&gt;
:The purpose of this round-table is to discuss future features that can be added to autobuilder and all Extras related services. We want to gather opinions and see what the needs of developers are. Suggestions about enhancements or new features are appreciated. &lt;br /&gt;
*Author bio&lt;br /&gt;
: Ed Bartosh and Alexander Kanevskiy both work at Nokia, in their spare time they work on the autobuilder for Extras. Niels Breet is the maemo.org webmaster, working on web services available at maemo.org.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== GUPnP and Rygel: The UPnP/DLNA solution for Maemo ===&lt;br /&gt;
*Author: Zeeshan Ali, Lead-Developer at Maemo Devices, Nokia.&lt;br /&gt;
*Intended audience: everyone&lt;br /&gt;
*Talk type: presentation&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: I will be introducing the work we have been putting up for the past two and half years to provide a complete well-documented solution for UPnP needs of Maemo and GNOME (Mobile) in general. Also included in the talk will be some cool demos of both of these projects in action.&lt;br /&gt;
*Author bio&lt;br /&gt;
: Zeeshan Ali is a Lead Developer at Nokia Maemo Devices in Helsinki, Finland and a GNOME developer. He started as a GStreamer plugin and application developer and got his first share of fame in the GNOME community for his video-whale project. For the past two year, he had been obsessed with UPnP/DLNA and in turn the GUPnP and Rygel projects. Thanks to Nokia, he now work full-time on Rygel and GUPnP.&lt;br /&gt;
&lt;br /&gt;
=== Contributing with Git &amp;amp; Gitorious ===&lt;br /&gt;
*Johan Sørensen (johan at shortcut.no)&lt;br /&gt;
*Maemo devs and application developers&lt;br /&gt;
*Talk type - Presentation&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: Gitorious.org is an open sourced application and site, that provides infrastructure for managing projects using Git. It hosts thousands of projects, among those Qt. This talk provides an overview of what Gitorious is and what it can do for your project.&lt;br /&gt;
*Author bio&lt;br /&gt;
: Johan Sørensen is the original developer of Gitorious, which is now driven by Shortcut AS, a company he co-founded.&lt;br /&gt;
&lt;br /&gt;
=== Hildon toolkit for Fremantle ===&lt;br /&gt;
*Authors: Alberto Garcia, Claudio Saavedra&lt;br /&gt;
*Intended audience: Platform/Application Developers&lt;br /&gt;
*Talk type presentation&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: This talk will describe all widgets introduced in Hildon 2.2, explaining all the new features and use cases, the reasons why some standard GTK+ widgets are not particularly suited to small devices and the solutions that Hildon 2.2 brings to solve these problems.&lt;br /&gt;
&lt;br /&gt;
: This is a major upgrade of the toolkit. Among several style changes, this Hildon release is for the first time specifically designed to be finger friendly, introducing a panning container (kinetic scrolling) and a new range of selectors among other things.&lt;br /&gt;
*Author bio&lt;br /&gt;
: Alberto Garcia loves computers since he got his first Sinclair ZX Spectrum. In the late 90s he began using GNU/Linux and in 2001 he co-founded Igalia, a Galicia-based free software company. He&#039;s currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed &#039;Fremantle&#039;. Besides programming, Alberto also loves cinema, music and going to the beach.&lt;br /&gt;
: Claudio Saavedra is a chilean Computer Engineer, working at Igalia since 2008. He got involved in the GNOME project back in 2005 and is one of the developers of the Eye of GNOME Image viewer. Currently, he is also working in Maemo 5, codenamed &#039;Fremantle&#039;, developing the Hildon library and also maintaining other parts of the toolkit stack.&lt;br /&gt;
&lt;br /&gt;
=== Developments in The Qt WebKit Integration ===&lt;br /&gt;
*Author: Kenneth Rohde Christiansen kenneth.christiansen at openbossa dot org&lt;br /&gt;
*Intended audience: Application/Platform Developers&lt;br /&gt;
*Talk type: Presentation&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: The Qt WebKit Integration provides a powerful framework to seamlessly integrate web technologies into future Maemo applications, where web content can interact with Qt components. This presentation introduces the QtWebKit APIs, the underlying engine and new features coming in future releases.&lt;br /&gt;
*Author bio&lt;br /&gt;
: Kenneth Christiansen has many years experience with opensource software, and worked on projects such as GNOME, intltools, Canola, and Colligo. He also organized the 2001 GUADEC conference in Copenhagen. Today Kenneth works at the OpenBossa labs at the Nokia Technology Institute in Brazil, where he is currently involved with developing next generation userfaces as well as working with web technologies as part of the Qt WebKit team.&lt;br /&gt;
&lt;br /&gt;
=== Modest, email client for Fremantle ===&lt;br /&gt;
*Authors: Sergio Villar, Jose Dapena&lt;br /&gt;
*Intended audience: users, application developers&lt;br /&gt;
*Talk type: presentation&lt;br /&gt;
*Slides: [http://www.slideshare.net/jdapena/modest-maemo-summit-09 Modest Maemo summit 2009 slides at slideshare]&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: Modest is a modern e-mail client designed for mobile and embedded devices, that focuses on providing a simple user interface, even when it offers advanced e-mail functionality. It&#039;s the default e-mail client for the Nokia N810 device.&lt;br /&gt;
&lt;br /&gt;
: In this presentation we will show the new Hildon 2.2 frontend, and talk about the interesting challenges faced to improve the user experience of Modest using the new Maemo 5 platform. How we tried to simplify the UI overhead in the old N810 Maemo frontend, splitting Modest in multiple views and aggressively simplifying the actions exposed to user.&lt;br /&gt;
&lt;br /&gt;
*Author bio&lt;br /&gt;
: José, who holds a degree in Computer Engineering from the University of A Coruña, is one of the founding members of Igalia. Now he is involved in the development of projects using Gtk/Gnome technologies and, in particular, Tinymail. He is also one of the initiators of Gnome Build Brigade. Currently, he&#039;s a member of Modest development team, and also a regular contributor to Tinymail. &lt;br /&gt;
&lt;br /&gt;
: Sergio joined Igalia in 2003 after getting his Degree in Computer Engineering, and is now a proud stakeholder of the company. He has been involved in Gnome/Maemo developments since then. Sergio is currently co-maintainer of the Modest email client along with José. After more than two years of contributions to Tinymail, he became a co-maintainer of the project in 2009.&lt;br /&gt;
&lt;br /&gt;
=== Mer: A year after ===&lt;br /&gt;
*Carsten Valdemar Munk (carsten.munk at gmail dot com , also known as Stskeeps)&lt;br /&gt;
*Intended audience: Users, application developers, platform developers&lt;br /&gt;
*Talk type: Presentation&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: October&#039;09 is a year after the thought of reconstructing Maemo was first proposed. The thoughts manifested themselves in the Mer project - originally only a proof of concept project, but with the announcement that Nokia would not bring Fremantle to the Nokia N8x0s the project got stronger community support. This talk is about the challenges and the accomplishments we&#039;ve had in the project in the last year. It will also include thoughts on the future of Mer and a call for both community and Nokia to take a radical approach with Harmattan in terms of community involvement.&lt;br /&gt;
*Author bio&lt;br /&gt;
: Carsten (Stskeeps) is known as the primary facilitator of the Mer project and has successfully brought together developers, testers, artists, translators and other groups within both maemo.org and other device communities, to create Mer, a Fremantle community variant. He is currently finalizing his masters degree in computer science and has also been involved in other projects within the community such as Deblet, a Debian port.&lt;br /&gt;
&lt;br /&gt;
=== maemo.org Bug Management ===&lt;br /&gt;
*Andre Klapper, aklapper at openismus dot com, andre__ in #maemo&lt;br /&gt;
*Intended audience: Everyone (Users, Developers, Non-coders, ...)&lt;br /&gt;
*Talk type: Presentation (and discussion/BoF after that?)&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: Provide an overview of the current situation in maemo.org Bugzilla and Brainstorm (stats, numbers, success cases), its people (Bugsquad), workflows, problems (especially with regard to Nokia &amp;amp; community participation). Inform how to participate (report in bugzilla / brainstorm; bugsquad) and how it can help Nokia developers&amp;amp;managers and the maemo.org community to be more productive in the Maemosphere.&lt;br /&gt;
*Additional Information&lt;br /&gt;
: I always fail to convince my laptop to work with beamers at conferences. Be warned. ;-)&lt;br /&gt;
*Author bio&lt;br /&gt;
: Andre Klapper is the maemo.org Bugmaster and works for Openismus GmbH. He is also part of the GNOME Release Team &amp;amp; Bugsquad.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Adapting GNOME applications to Maemo Fremantle ===&lt;br /&gt;
*Author: Joaquim Rocha, jrocha at igalia dot com&lt;br /&gt;
*Intended audience: Application Developers&lt;br /&gt;
*Talk type: presentation&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: Porting GNOME applications to Maemo Fremantle is not just recompiling and make it run on the device. For many applications, a considerable adaptation in they&#039;re UI is needed.&lt;br /&gt;
&lt;br /&gt;
: I&#039;m proposing a presentation having as its base the port of the Eye of GNOME for Maemo, explaining the intentions behind each change and the usage of Hildon 2.2 widgets to accomplish those.&lt;br /&gt;
&lt;br /&gt;
*Author bio&lt;br /&gt;
: Joaquim Rocha has worked from web programming to OCR, desktop and mobile programming and is a proud Open Source an Linux advocate. He&#039;s now doing all this while working for Igalia. When he&#039;s not coding he&#039;s listening to metal, watching movies, playing console games or having a nice cold beer if the weather demands so.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tracker: Dial M for Metadata ===&lt;br /&gt;
*Ivan Frade &amp;lt;ifrade@gnome.org&amp;gt;, Iridian Kiiskinen &amp;lt;ext dash iridian dot kiiskinen at nokia dot com&amp;gt;&lt;br /&gt;
*Intended audience: application developers/platform developers&lt;br /&gt;
*Presentation&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: Tracker is a freedesktop project (with GNOME roots) included in the maemo platform for the first time in maemo5. In fremantle it is a simple index engine with support for basic metadata. For harmattan Tracker takes a great leap forward becoming a central storage for *user information*. The important data for the user (contacts, messages, multimedia, ...) will not only be stored in an application independent way, but also in a &amp;quot;linkable&amp;quot; format. This enables a new user experience: it makes it possible to integrate contacts everywhere, mix IM/email/twitter history of a contact, and so on.&lt;br /&gt;
&lt;br /&gt;
In this presentation, Application developers can see how data is linked and obtained from Tracker to enrich their applications; platform contributors can learn how to integrate new information sources.&lt;br /&gt;
&lt;br /&gt;
*Author bio&lt;br /&gt;
: Ivan Frade is an open source enthusiast who works in nokia building a data management solution for maemo based on tracker. On his free time, helps the world to tag properly their Mp3s with his pet-project.&lt;br /&gt;
: Iridian Kiiskinen started working in Nokia Maemo group since end of 2008, and is a newly enthusiastic open source developer migrating from the academic world.&lt;br /&gt;
&lt;br /&gt;
=== Canola: Beyond the media playback ===&lt;br /&gt;
*Author: [http://maemo.org/profile/view/etrunko Eduardo Lima (Etrunko)]&lt;br /&gt;
*Intended audience: Users&lt;br /&gt;
*Talk type: Presentation/Round Table&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: The first half of this session, will give a quick presentation of some &amp;quot;advanced&amp;quot; features of Canola and the various possibilities of expanding the software and most importantly, the user experience. The second part will be dedicated to an open discussion with the audience about missing/wished features, critics and suggestions.&lt;br /&gt;
*Author bio&lt;br /&gt;
: Open Source Software enthusiast, involved with Maemo since the very beginning (mid 2005), and had the opportunity to be part of the first Maemo Community Council. Started porting various GTK+/GNOME applications (Gnumeric, Evince, Abiword, Leafpad, Xournal, etc), to the platform. Worked on the first version of Carman, written in Python + GTK. After that, joined the team developing the Canola media player, coding and maintaining its packages for Maemo since then. Also maintains packages of the Enlightenment Foundation Libraries (EFL) for Maemo. Works for openBossa/INdT, where has been having the opportunity to present and talk about Maemo in events in Brazil and worldwide.&lt;br /&gt;
&lt;br /&gt;
=== Hands-on development with Nokia Web Runtime ===&lt;br /&gt;
* Oren Levine, &amp;lt; oren dot levine at nokia.com &amp;gt;&lt;br /&gt;
* Intended audiences: application developers and advanced users&lt;br /&gt;
* Talk type: presentation&lt;br /&gt;
* Abstract/description&lt;br /&gt;
: Live demonstration of Nokia Web Runtime (WRT) widget development using the WRT plug-in to Aptana Studio, a popular free Web development tool based on Eclipse. I&#039;ll show how WRT lets you use standard HTML JavaScript, and CSS to create lightweight applications quickly at low cost. If you have a device that supports the WRT, you can leave the session with a new widget!&lt;br /&gt;
&lt;br /&gt;
*Author bio&lt;br /&gt;
: Oren Levine is a Senior Technology Marketing Manager in Nokia&#039;s Devices organization, responsible for promoting Nokia’s Web developer offering. Oren worked for over 10 years as a software engineer and architect before joining Nokia in 2001, gaining experience in many areas including 3D graphics, machine translation, Web application development and database design.&lt;br /&gt;
&lt;br /&gt;
=== The Qt Mobility Project ===&lt;br /&gt;
*Author: Alex Luddy, alexander.luddy at nokia dot com&lt;br /&gt;
*Intended audience: application and platform developers &lt;br /&gt;
*Talk type: presentation&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: The Qt Mobility project is developing new Qt APIs. These APIs will greatly improve the Qt developer offering, particularly for developers targetting mobile platforms such as Maemo. The APIs cover areas such as Location, Contacts, Messaging and Bearer Management. Usage of cross-platform Qt APIs makes it easy to port applications to other platforms supported by Qt &lt;br /&gt;
: The purpose of this presentation is to fuel your own ideas for how the new APIs can be used in your own projects. An overview of all the APIs planned for the first release shall be presented. The Location and Service Framework APIs will be demonstrated in detail through an example application.&lt;br /&gt;
*Author bio&lt;br /&gt;
: Alex Luddy is a product manager at the Australian office of Qt Development Frameworks. He has also been a software engineer and a professional services consultant during his 4 years with the organization. His main focus is embedded development. Alex Luddy has a Bachelor of Software Engineering from the Australian National University.&lt;br /&gt;
&lt;br /&gt;
=== Publishing your software through maemo.org===&lt;br /&gt;
*Author: Niels Breet&lt;br /&gt;
*Intended audience: application developers &lt;br /&gt;
*Talk type: presentation&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: This talk will give developers an overview of what services are available for them to publish their application through maemo.org. Going from autobuilder, package interfaces, community QA to Downloads and Extras.&lt;br /&gt;
*Author bio&lt;br /&gt;
: Niels Breet is the maemo.org webmaster, working on web services available at maemo.org.&lt;br /&gt;
&lt;br /&gt;
=== Introducing the Harmattan UI framework ===&lt;br /&gt;
*Author: Tomas Junnonen - tomas.junnonen at nokia.com&lt;br /&gt;
*Intended audience: application developers&lt;br /&gt;
*Talk type: presentation&lt;br /&gt;
*Abstract/description:&lt;br /&gt;
: The transition from Fremantle to Harmattan will bring a new UI style to Maemo. The demand for fluid, animated user interfaces and new interaction mechanisms are putting new demands on the type of frameworks offered to application developers. &lt;br /&gt;
: This presentation gives a sneak peek at what&#039;s currently cooking in Harmattan. We will share our initial thoughts and plans regarding the future of the Maemo application framework.&lt;br /&gt;
*Author bio:&lt;br /&gt;
: Tomas has been working in Maemo since the original Nokia 770. Today he is the architect of the application framework, designing the next generation Maemo user interface framework.&lt;br /&gt;
&lt;br /&gt;
=== Creating packages for the Maemo platform ===&lt;br /&gt;
&lt;br /&gt;
* Jeremiah C. Foster &amp;lt;jeremiah at maemo dot org&amp;gt;&lt;br /&gt;
* Intended audience -&amp;gt; application developers and platform developers&lt;br /&gt;
* Talk type -&amp;gt; presentation&lt;br /&gt;
* This talk will go through packaging from beginning to end providing a template to use. While one cannot go into every corner case, we can cover the entire process for the average package. In this case we will describe the process for packaging a python app since those are quite common on the maemo platform.  &lt;br /&gt;
&lt;br /&gt;
* Author Bio&lt;br /&gt;
&lt;br /&gt;
: I am the current &amp;quot;debmaster&amp;quot; at maemo.org and have been working with the debian perl team for several years now. I have been using debian for nearly a decade.&lt;br /&gt;
&lt;br /&gt;
=== Intelligent Usage of Fremantle Location Framework For Location-aware Applications ===&lt;br /&gt;
&lt;br /&gt;
*Quanyi Sun&lt;br /&gt;
*Intended audience: users/application developers/platform developers&lt;br /&gt;
*Talk type: presentation&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: Abstract:&lt;br /&gt;
Location API is part of the Maemo 5 (Fremantle) API offerings. The location API for the first time now has introduced concept of hybrid locationing methods, i.e., supports of multiple locationing technologies seemlessly in a transparent way. In addition to the benefits of hybrid locationing methods, there are some issues, e.g., power consumption, that must be handled properly in order to maximize the benefits. &lt;br /&gt;
&lt;br /&gt;
This presentation intends to hightlight the major issues when using location API, and provides best recommendations for developing location-aware applications in Maemo 5. &lt;br /&gt;
&lt;br /&gt;
*Author bio:&lt;br /&gt;
Quanyi Sun has been working for Maemo as technical product owner in location area, with 13+ years of industrial experiences, e.g., in mission-critical realtime onboard software project in my early days.&lt;br /&gt;
&lt;br /&gt;
=== The Maemo 5 Address Book ===&lt;br /&gt;
*Author: Travis Reiter travis dot reitter AT collabora dot co dot uk, Mathias Hasselmann mathias AT openismus dot com&lt;br /&gt;
*Intended audience: users and application developers&lt;br /&gt;
*Talk type: presentation&lt;br /&gt;
*Abstract/description&lt;br /&gt;
&lt;br /&gt;
In Maemo 5, contacts are handled by several components that make up the&lt;br /&gt;
Address Book. In its first part, this talk will provide an overview of&lt;br /&gt;
the components in the new system, as well changes in the interface and&lt;br /&gt;
functionality of the Contacts application. A lot has changed since the&lt;br /&gt;
last major release, so this talk has a lot of interesting bits to cover!&lt;br /&gt;
&lt;br /&gt;
The second part of this talk will focus on developers who want to&lt;br /&gt;
incorporate contacts in their applications. Address Book 5 includes a&lt;br /&gt;
powerful high-level library for accessing contacts on the system. If&lt;br /&gt;
your application needs to present all contacts on the system, find&lt;br /&gt;
specific ones, watch changes to the contacts, pick out avatars, start&lt;br /&gt;
conversations, or much more, it&#039;s all here. And this library,&lt;br /&gt;
libosso-abook, has become the ideal way to access contacts, so we&#039;ll&lt;br /&gt;
provide some tips on porting older Maemo applications based directly on&lt;br /&gt;
Evolution Data Server to libosso-abook.&lt;br /&gt;
&lt;br /&gt;
*Author bio&lt;br /&gt;
Travis Reiter is a software developer at Collabora, Mathias Hasselmann is software developer at Openismus. Both spent alot of time on improving GNOME. For the last two years they worked on improving Maemo&#039;s Address Book.&lt;br /&gt;
&lt;br /&gt;
=== Maemo and oFono  ===&lt;br /&gt;
&lt;br /&gt;
* By Rémi Denis-Courmont (remi dot denis-courmont at nokia dot com) and Aki Niemi (aki dot niemi at nokia dot com)&lt;br /&gt;
* For platform developers&lt;br /&gt;
* Presentation (could be shortened to lightning talk but...)&lt;br /&gt;
* oFono is an open source telephony stack for Linux. It provides an easy-to-use D-Bus interface and has support for a variety of cellular modem hardware, including Nokia cellular modems. The project is a joint effort between Intel and Nokia.&lt;br /&gt;
&lt;br /&gt;
:How is it different from earlier attempts? What is it all about? What can you do with Ofono and Nokia N900?&lt;br /&gt;
&lt;br /&gt;
* For demoing purpose, the presenter will need to use his own laptop and Nokia devices.&lt;br /&gt;
&lt;br /&gt;
* Rémi Denis-Courmont currently works for Nokia, where he maintains the Phonet stack for the Linux kernel, the Maemo platform and the Ofono project. Outside Nokia, he&#039;s also been involved in the VideoLAN project.&lt;br /&gt;
&lt;br /&gt;
[http://www.remlab.net/op/maemo2009.pdf Presentation material]&lt;br /&gt;
&lt;br /&gt;
=== The future of GTK+/Hildon in Maemo Harmattan  ===&lt;br /&gt;
* Alberto Garcia (_berto_) and Claudio Saavedra (csaavedra)&lt;br /&gt;
* Intended audience: developers&lt;br /&gt;
* Talk type: BoF&lt;br /&gt;
* Abstract/description:&lt;br /&gt;
: Nokia has recently announced that GTK+/Hildon, the official Maemo toolkit since the beginning of the project, will be replaced by Qt in the future Harmattan release.&lt;br /&gt;
: However, Nokia has also shown interest in the availability of a community-maintained version of GTK+/Hildon for this next Maemo release, so existing applications can be ported to the new devices and developers more familiar with this toolkit can write new applications for Harmattan.&lt;br /&gt;
: In this BoF we&#039;ll discuss the current situation of GTK+/Hildon in Fremantle, its future in the hands of the community and the challenges to overcome in order to create a decent release for Maemo Harmattan.&lt;br /&gt;
* Author bio&lt;br /&gt;
: Alberto Garcia loves computers since he got his first Sinclair ZX Spectrum. In the late 90s he began using GNU/Linux and in 2001 he co-founded Igalia, a Galicia-based free software company. He&#039;s currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed &#039;Fremantle&#039;. Besides programming, Alberto also loves cinema, music and going to the beach.&lt;br /&gt;
: Claudio Saavedra is a chilean Computer Engineer, working at Igalia since 2008. He got involved in the GNOME project back in 2005 and is one of the developers of the Eye of GNOME Image viewer. Currently, he is also working in Maemo 5, codenamed &#039;Fremantle&#039;, developing the Hildon library and also maintaining other parts of the toolkit stack.&lt;br /&gt;
&lt;br /&gt;
=== High-resolution image processing on Maemo devices ===&lt;br /&gt;
*Author: Alexander Bokovoy - alexander dot bokovoy AT nokia dot com&lt;br /&gt;
*Intended audience: application developers/platform developers&lt;br /&gt;
*Talk type: presentation&lt;br /&gt;
*Abstract/description&lt;br /&gt;
&lt;br /&gt;
N900 is the first Maemo device with high resolution camera. While making photos with camera is an obvious use for it, resulted images are stored on the device and can be used by applications for other purposes as well. Mobile devices like N900 are quite constrained for image processing needs and special work is needed to minimize consumption of memory and processing resources.&lt;br /&gt;
&lt;br /&gt;
The talk will cover camera application development in Maemo 5 and plans for common set of image editing functionality for high-resolution pictures in Maemo 6. We hope to create open and extensible platform-wide solution which can help all developers to better utilize constrained resources on mobile devices.&lt;br /&gt;
&lt;br /&gt;
*Author bio&lt;br /&gt;
&lt;br /&gt;
Alexander Bokovoy is a Senior Architect for Media Experience applications in Maemo Devices, Nokia. Prior joining Maemo he worked with IBM Linux Technology Center on data sharing projects, including high performance networking file systems. He is member of Samba Team since 2003.&lt;br /&gt;
&lt;br /&gt;
=== Hacking officially unsupported Bluetooth profiles to work in Fremantle ===&lt;br /&gt;
*Johan Hedberg - johan.hedberg at nokia.com&lt;br /&gt;
*Intended audience: users,application developers,platform developers&lt;br /&gt;
*Talk type: presentation&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: Fremantle doesn&#039;t come with out-of-the-box support of several Bluetooth profiles that are could in theory be supported with upstream components. These include e.g. DUN, HID and PAN. The presentation intends to be a hands-on session demonstrating how to enable support for these profiles through the act of changing config files and random hacking. &lt;br /&gt;
*Author bio&lt;br /&gt;
: Johan has been a software developer in the Maemo team ever since the first Maemo device, the 770 came out. His main responsibility area is Bluetooth and through active upstream involvement he has become a co-maintainer of BlueZ.&lt;br /&gt;
&lt;br /&gt;
=== Git hands-on workshop ===&lt;br /&gt;
*Author name and contact details&lt;br /&gt;
*Intended audience (users/application developers/platform developers)&lt;br /&gt;
*Talk type (presentation/lightning talk)&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: Abstract goes here. A two paragraph overview of the proposed talk content is sufficient.&lt;br /&gt;
*Additional Information (optional)&lt;br /&gt;
: Additional information on extra equipment you might need or something else goes here&lt;br /&gt;
*Author bio&lt;br /&gt;
: A short (1 paragraph) note about who the author is goes here&lt;/div&gt;</summary>
		<author><name>192.100.124.218</name></author>
	</entry>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=Documentation&amp;diff=6275</id>
		<title>Documentation</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=Documentation&amp;diff=6275"/>
		<updated>2009-10-12T10:31:49Z</updated>

		<summary type="html">&lt;p&gt;192.100.124.218: /* Maemo 5 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Maemo 5 =&lt;br /&gt;
* Documentation in the wiki:&lt;br /&gt;
**[[{{PAGENAME}}/Maemo_5_Developer_Guide|Maemo 5 Developer Guide]]&lt;br /&gt;
**[[{{PAGENAME}}/Maemo_5_Final_SDK|Maemo 5 Final SDK]]&lt;br /&gt;
**[[{{PAGENAME}}/devtools/maemo5| Maemo 5 Developer Tools]]&lt;br /&gt;
**[[{{PAGENAME}}/Maemo 5 Final SDK Installation | Maemo 5 Final SDK Installation Instructions]]&lt;br /&gt;
* Further information:&lt;br /&gt;
**[http://maemo.org/development/sdks/maemo_5_beta_sdk/  Maemo Beta SDK]&lt;br /&gt;
**[[Task:Maemo_roadmap/Fremantle|Fremantle roadmap]]&lt;br /&gt;
**[http://maemo.org/development/sdks/maemo_5_api_documentation/ Maemo 5 API reference]&lt;br /&gt;
** [http://wiki.maemo.org/Maemo5_clutter_performance Maemo 5 Clutter Performance]&lt;br /&gt;
* Maemo 5 Final SDK release source code - http://repository.maemo.org/pool/maemo5.0/free/&lt;/div&gt;</summary>
		<author><name>192.100.124.218</name></author>
	</entry>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=Maemo_Summit_2009/Accommodation&amp;diff=20448</id>
		<title>Maemo Summit 2009/Accommodation</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=Maemo_Summit_2009/Accommodation&amp;diff=20448"/>
		<updated>2009-10-08T08:05:12Z</updated>

		<summary type="html">&lt;p&gt;192.100.124.218: /* Shared Room Allocations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We should offer people a range of accommodation options, from low-cost youth hostel beds to cheap hotels. Encourage people to stay close together.&lt;br /&gt;
&lt;br /&gt;
== Checklist ==&lt;br /&gt;
&lt;br /&gt;
* Draft recommended hotel &amp;amp; hostel list&lt;br /&gt;
** [http://www.hostelworld.com HostelWorld]: a reliable website where you can find cheap hostel. You can see on the map where they&#039;re placed so you can choose one close to the Summit.&lt;br /&gt;
**[http://www.ibishotel.com/gb/hotel-1556-ibis-amsterdam-centre/index.shtml Ibis Amsterdam Center Hotel]: for the sponsored participants and the big bunch of people happy with a price of ~146 €/night inc breakfast for a double room with twin beds (may be cheaper for single room).&lt;br /&gt;
**[http://www.westcordhotels.nl/hotels/Art-Hotel-Amsterdam**** Art Hotel Amsterdam]: recommended to those more interested in a 4 star hotel. &lt;br /&gt;
**[http://www.ibishotel.com/gb/hotel-5140-ibis-amsterdam-city-west/index.shtml Ibis Amsterdam City West Hotel]: A cheaper option, but further out. Price around 65€/night for a double room. I ordered via accorhotels.com and got the price 69/59/59 € for 3 nights starting at Thursday ([http://wiki.maemo.org/User:Asys3 asys3])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Block book and/or obtain group rates&lt;br /&gt;
** Requires visiting hotel, asking for accommodation manager, and negotiating a group price.&lt;br /&gt;
** Sell the conference as important, high visibility, and argue that being a recommended hotel being a benefit for the hotel&lt;br /&gt;
 &lt;br /&gt;
* Put hotel list online&lt;br /&gt;
* Book hotel rooms pre-paid for sponsored attendees, maybe?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Shared Room Allocations ==&lt;br /&gt;
&lt;br /&gt;
We have 40 rooms booked for sponsored participants and special Nokia-related cases at [http://www.ibishotel.com/gb/hotel-1556-ibis-amsterdam-centre/index.shtml Hotel Ibis Amsterdam Centre].&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;If you would like to share a double room with someone, please add your name to the table below.&#039;&#039;&#039;&lt;br /&gt;
* If you find yourself rooming with someone who&#039;s not your best choice, just remove yourself from the room and add it somewhere else. &#039;&#039;&#039;&#039;&#039;No hurt feelings please. This will all work out.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;The rooms are only booked for 3 nights(Thur-Sat), those how want to stay more nights should contact the hotel asap, and pay for the extra nights.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;5&amp;quot;&lt;br /&gt;
! Room #&lt;br /&gt;
! Roommate 1&lt;br /&gt;
! Roommate 2&lt;br /&gt;
! Special Notes/Considerations&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| [[User:timsamoff|Tim Samoff]]&lt;br /&gt;
| [[User:sjgadsby|Stephen Gadsby]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| [[User:texrat|Randall Arnold]]&lt;br /&gt;
| [[User:eipi|Sanjeev Visvanatha]]&lt;br /&gt;
| Looking for new roomie-- zerojay can&#039;t make it :( &lt;br /&gt;
snoring not an issue.  I&#039;m no zerojay - will try to be a good roomie :)&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| [[User:Jaffa|Andrew Flegg]]&lt;br /&gt;
| [[User:andy80|Andrea Grandi]]&lt;br /&gt;
| Non-smoking&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| [[User:Lbt|David Greaves]]&lt;br /&gt;
| [[User:fiferboy|Andrew Olmsted]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| [[User:framstag|Tim Teulings]]&lt;br /&gt;
| [[User:glezos|Dimitris Glezos]]&lt;br /&gt;
| Non-Smoking&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| [[User:qole|Alan Bruce]]&lt;br /&gt;
| [[User:achipa|Attila Csipa]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| [[User:conny|Cornelius Hald]]&lt;br /&gt;
| [[User:thp|Thomas Perl]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| [[User:bundyo|Kamen Bundev]]&lt;br /&gt;
| [[User:frethop|Mike Jipping]]&lt;br /&gt;
| (I&#039;m a snorer, beware :-P)&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| [http://maemo.org/profile/view/mike_morrison mike morrison]&lt;br /&gt;
| [[User:khertan|Benoît HERVIER]]&lt;br /&gt;
| non-smoking. &lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| [[User:vdvsx|Valério Valério]]&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| [http://maemo.org/profile/view/plastun/ Max Usachev]&lt;br /&gt;
| [http://maemo.org/profile/view/vasvlad/ Vlad Vasiliev]&lt;br /&gt;
| Non-smoking&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| Aapo Rantalainen&lt;br /&gt;
| [[User:hhedberg|Henrik Hedberg]]&lt;br /&gt;
| Non-smoking&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| [[User:johnx|John Bloom]]&lt;br /&gt;
| [[User:rm_you|Adam Harwell]]&lt;br /&gt;
| Non-smoking&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| [[User:aikipy|Raluca Pataliu]]&lt;br /&gt;
| [[User:azbuky|Iulian Blajut]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| [[User:Tomaszd|Tomasz Dominikowski]]&lt;br /&gt;
| [[User:stskeeps|Carsten Munk]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| [[User:andrei1089|Andrei Mirestean]]&lt;br /&gt;
| [[User:apopelo|Andrey Popelo]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| [[User:mikkov|Mikko Vartiainen]] (Thu-Sat)&lt;br /&gt;
| [[User:edgar2|Thomas Pakalén]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 18&lt;br /&gt;
| [[User:etrunko|Eduardo Lima (Etrunko)]]&lt;br /&gt;
| [[User:kenneth|Kenneth Rohde Christiansen]]&lt;br /&gt;
| Leaving on Tue 13th Oct&lt;br /&gt;
|-&lt;br /&gt;
| 19&lt;br /&gt;
| [[User:aboaboit|Andrea Borgia]]&lt;br /&gt;
| [[User:Matteone|Matteo Nerozzi]]&lt;br /&gt;
| Leaving on Tue 13th Oct... will decide later for extra nights!&lt;br /&gt;
|-&lt;br /&gt;
| 20&lt;br /&gt;
| [[User:ukki|Janne Mäkinen]]&lt;br /&gt;
| [[User:onion|Kaj-Michael Lang]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 21&lt;br /&gt;
| [[User:n8willis|Nathan Willis]] (Fri-Mon)&lt;br /&gt;
| [[User:segphault|Ryan Paul]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 22&lt;br /&gt;
| [[User:vudentz|Luiz Augusto von Dentz]]&lt;br /&gt;
| [[User:barbieri|Gustavo Sverzut Barbieri]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 23&lt;br /&gt;
| [[User:fms|Marat Fayzullin]]&lt;br /&gt;
| [http://maemo.org/profile/view/twaelti/ Tom Waelti]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 24&lt;br /&gt;
| [[User:thenokiablog|Mark Guim]]&lt;br /&gt;
|&lt;br /&gt;
| wife is w/ me. if possible, requesting if we can be only ones in the room. &lt;br /&gt;
|-&lt;br /&gt;
| 25&lt;br /&gt;
| Brecht Fourneau&lt;br /&gt;
| Miquël Vermeulen&lt;br /&gt;
| Mobilejuice&lt;br /&gt;
|-&lt;br /&gt;
| 26&lt;br /&gt;
| Lennart Poettering&lt;br /&gt;
| Marc-Andre Lureau&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 27&lt;br /&gt;
| Sampo Savola(Thu-Sun)&lt;br /&gt;
| Lauri Võsandi&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 28&lt;br /&gt;
| Tuomas Kulve&lt;br /&gt;
| Aino Kulve&lt;br /&gt;
| wife is w/ me.&lt;br /&gt;
|-&lt;br /&gt;
| 29&lt;br /&gt;
|[[User:baloo|Jamie Bennett]]&lt;br /&gt;
|[[User:rsperberg|Roger Sperberg]] &lt;br /&gt;
|RogerS staying Sunday night also.&lt;br /&gt;
|-&lt;br /&gt;
| 30&lt;br /&gt;
| Till Harbaum&lt;br /&gt;
| [[User:raul|Raul Herbster]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 31&lt;br /&gt;
| Dieter Plaetinck&lt;br /&gt;
| Bert Desmet&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 32&lt;br /&gt;
| Marijn Kruisselbrink&lt;br /&gt;
| Gary Birkett(Wed-Mon)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 33&lt;br /&gt;
| [[User:b0unc3|Daniele Maio]]&lt;br /&gt;
| [[User:skler|Mauro Foti]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 34&lt;br /&gt;
| Naba Kumar&lt;br /&gt;
| Nokia&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 35&lt;br /&gt;
| Yan Minagawa&lt;br /&gt;
| Jim Cognito&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 36&lt;br /&gt;
| [http://maemo.org/profile/view/nnod.html Donn Morrison]  &lt;br /&gt;
|[http://maemo.org/profile/view/jeninfanti.html Jennifer Infanti]&lt;br /&gt;
| Small bricks&lt;br /&gt;
|-&lt;br /&gt;
| 37&lt;br /&gt;
| Oliver Mcfadden&lt;br /&gt;
| Nokia&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 38&lt;br /&gt;
| Ed Bartosh&lt;br /&gt;
| Nokia&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 39&lt;br /&gt;
| Igor Stoppa&lt;br /&gt;
| Nokia&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 40&lt;br /&gt;
| [[User:juarezjunior|Juarez Junior]]&lt;br /&gt;
| Nokia&lt;br /&gt;
| Non-smoking&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Please don&#039;t add more lines in the table, we only have 40 rooms booked&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Who needs a room? ==&lt;br /&gt;
&lt;br /&gt;
Please say if you prefer a hotel (or are happy with a hostel), if you need a double room (i.e. because you&#039;re bringing your wife/gf) or a single (if you don&#039;t want to share) or shared (if you&#039;re happy to share).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;If you would like to share a double room with someone, please add your name to the [[#Shared_Room_Allocations|Shared Room Allocations]] section above.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;5&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Hotel/hostel/other&lt;br /&gt;
! Type of room&lt;br /&gt;
! Arriving&lt;br /&gt;
! Leaving&lt;br /&gt;
! Sponsorship?&lt;br /&gt;
|-&lt;br /&gt;
| [[User:edgar2|Thomas Pakalen]]&lt;br /&gt;
| hotel&lt;br /&gt;
| Single/Shared&lt;br /&gt;
| Fri 9th October&lt;br /&gt;
| Sun 11th October&lt;br /&gt;
| not applied&lt;br /&gt;
|-&lt;br /&gt;
| [[User:twaelti|Thomas Waelti]]&lt;br /&gt;
| hotel/hostel/whatever&lt;br /&gt;
| Single/Shared&lt;br /&gt;
| Thu 8th October&lt;br /&gt;
| Sun 11th October&lt;br /&gt;
| not applied &lt;br /&gt;
|-&lt;br /&gt;
| [[User:harbaum|Till Harbaum]]&lt;br /&gt;
| Hotel&lt;br /&gt;
| Single&lt;br /&gt;
| Oct 8&lt;br /&gt;
| Oct 12&lt;br /&gt;
| Approved&lt;br /&gt;
|-&lt;br /&gt;
| [[User:vdvsx|Valerio Valerio]]&lt;br /&gt;
| Hotel/hostel/whatever&lt;br /&gt;
| Single/Shared&lt;br /&gt;
| October 7,&lt;br /&gt;
| October 12, 2009&lt;br /&gt;
| Approved&lt;br /&gt;
|-&lt;br /&gt;
| [[User:juarezjunior|Juarez Junior]]&lt;br /&gt;
| Hotel/hostel/whatever&lt;br /&gt;
| Single/Shared&lt;br /&gt;
| October 7th,&lt;br /&gt;
| October 11th, 2009&lt;br /&gt;
| Approved&lt;br /&gt;
|-&lt;br /&gt;
| [[User:barbieri|Gustavo Barbieri]]&lt;br /&gt;
| Hotel/hostel/whatever&lt;br /&gt;
| Single/Shared&lt;br /&gt;
| October 8th (from Sao Paulo KL792),&lt;br /&gt;
| October 11th (to Paris)&lt;br /&gt;
| Approved&lt;br /&gt;
|-&lt;br /&gt;
| [[User:texrat|Randall Arnold]]&lt;br /&gt;
| Hotel/hostel/whatever&lt;br /&gt;
| Single/Shared&lt;br /&gt;
| Thur 8th October&lt;br /&gt;
| Mon 12th October&lt;br /&gt;
| Approved&lt;br /&gt;
|-&lt;br /&gt;
| [[User:nirave|Nirave Gondhia]] *&lt;br /&gt;
| Hotel&lt;br /&gt;
| Single room&lt;br /&gt;
| Thur 8th October&lt;br /&gt;
| Mon 12th October&lt;br /&gt;
| Applied for&lt;br /&gt;
|-&lt;br /&gt;
| [[User:andy80|Andrea Grandi]]&lt;br /&gt;
| Hotel&lt;br /&gt;
| Single/Shared&lt;br /&gt;
| Thur 8th October&lt;br /&gt;
| Sun 11th October&lt;br /&gt;
| Approved&lt;br /&gt;
|-&lt;br /&gt;
| [[User:lcuk|Gary Birkett]]&lt;br /&gt;
| Hotel&lt;br /&gt;
| Single/Shared at a push (late night coding..)&lt;br /&gt;
| October 7,&lt;br /&gt;
| October 12, 2009&lt;br /&gt;
| Approved&lt;br /&gt;
|-&lt;br /&gt;
| [[User:achipa|Attila Csipa]]&lt;br /&gt;
| Hotel/hostel&lt;br /&gt;
| Shared&lt;br /&gt;
| Thur 8th October&lt;br /&gt;
| Sun 11th October&lt;br /&gt;
| Approved&lt;br /&gt;
|-&lt;br /&gt;
| [[User:timsamoff|Tim Samoff]]&lt;br /&gt;
| Hotel&lt;br /&gt;
| Single/Shared&lt;br /&gt;
| Wed 7th Oct&lt;br /&gt;
| Tues 13th Oct&lt;br /&gt;
| Approved&lt;br /&gt;
|-&lt;br /&gt;
| [[User:sjgadsby|Stephen Gadsby]]&lt;br /&gt;
| Hotel&lt;br /&gt;
| Single/Shared&lt;br /&gt;
| tbd&lt;br /&gt;
| tbd&lt;br /&gt;
| Approved&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Generalantilles|Ryan Abel]]&lt;br /&gt;
| Hotel&lt;br /&gt;
| Single/Shared&lt;br /&gt;
| tbd&lt;br /&gt;
| tbd&lt;br /&gt;
| Approved&lt;br /&gt;
|-&lt;br /&gt;
| [[User:conny|Cornelius Hald]]&lt;br /&gt;
| Hotel&lt;br /&gt;
| Single/Shared&lt;br /&gt;
| Thur 8th October&lt;br /&gt;
| Sun 11th October&lt;br /&gt;
| Approved&lt;br /&gt;
|-&lt;br /&gt;
| [[User:stskeeps|Carsten Munk]]&lt;br /&gt;
| Hotel&lt;br /&gt;
| Single/Shared&lt;br /&gt;
| Thur 8th October&lt;br /&gt;
| Sun 11th October&lt;br /&gt;
| Approved&lt;br /&gt;
|-&lt;br /&gt;
| [[User:qole|Alan Bruce]]&lt;br /&gt;
| Hotel&lt;br /&gt;
| Single/Shared&lt;br /&gt;
| Wed Oct 6&lt;br /&gt;
| Tue Oct 13&lt;br /&gt;
| Approved&lt;br /&gt;
|-&lt;br /&gt;
| [[User:bundyo|Kamen Bundev]]&lt;br /&gt;
| Hotel/Hostel&lt;br /&gt;
| Single preferred but shared okay&lt;br /&gt;
| October 9, 2009&lt;br /&gt;
| October 11, 2009&lt;br /&gt;
| Approved&lt;br /&gt;
|-&lt;br /&gt;
| [[User:thenokiablog|Mark Guim]]&lt;br /&gt;
| Hotel&lt;br /&gt;
| Double w. wife&lt;br /&gt;
| October 8, 2009&lt;br /&gt;
| October 12, 2009&lt;br /&gt;
| Approved&lt;br /&gt;
|-&lt;br /&gt;
| [[User:ukki|Janne Mäkinen]]&lt;br /&gt;
| Hotel/hostel&lt;br /&gt;
| Single/shared&lt;br /&gt;
| October 8, 2009&lt;br /&gt;
| October 11, 2009&lt;br /&gt;
| Approved&lt;br /&gt;
|-&lt;br /&gt;
| [[User:eipi|Sanjeev Visvanatha]]&lt;br /&gt;
| Hotel&lt;br /&gt;
| Single/shared&lt;br /&gt;
| Oct 9 (7am)&lt;br /&gt;
| Oct 11&lt;br /&gt;
| Approved&lt;br /&gt;
|-&lt;br /&gt;
| [[User:thp|Thomas Perl]]&lt;br /&gt;
| Hotel&lt;br /&gt;
| Single/shared&lt;br /&gt;
| October 8, 2009&lt;br /&gt;
| October 11, 2009&lt;br /&gt;
| Approved&lt;br /&gt;
|-&lt;br /&gt;
| [[User:fiferboy|Andrew Olmsted]]&lt;br /&gt;
| Hotel&lt;br /&gt;
| Single/shared&lt;br /&gt;
| October 8, 2009&lt;br /&gt;
| October 12, 2009&lt;br /&gt;
| Approved&lt;br /&gt;
|-&lt;br /&gt;
| [http://maemo.org/profile/view/plastun/ Max Usachev]&lt;br /&gt;
| Hotel/Hostel&lt;br /&gt;
| Shared&lt;br /&gt;
| October 8, 2009&lt;br /&gt;
| October 12, 2009&lt;br /&gt;
| Approved&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Hhedberg|Henrik Hedberg]]&lt;br /&gt;
| Hotel/Hostel&lt;br /&gt;
| Shared&lt;br /&gt;
| October 8, 2009&lt;br /&gt;
| October 11, 2009&lt;br /&gt;
| Approved&lt;br /&gt;
|-&lt;br /&gt;
| Aapo Rantalainen&lt;br /&gt;
| Hotel/Hostel&lt;br /&gt;
| Shared&lt;br /&gt;
| October 8, 2009&lt;br /&gt;
| October 11, 2009&lt;br /&gt;
| Approved&lt;br /&gt;
|-&lt;br /&gt;
| [http://maemo.org/profile/view/vasvlad/ Vlad Vasiliev]&lt;br /&gt;
| Hotel/Hostel&lt;br /&gt;
| Shared&lt;br /&gt;
| October 8, 2009&lt;br /&gt;
| October 12, 2009&lt;br /&gt;
| Approved&lt;br /&gt;
|-&lt;br /&gt;
| [http://maemo.org/profile/view/baloo/ Jamie Bennett]&lt;br /&gt;
| Hotel&lt;br /&gt;
| Single (other commitments may require me to return funky hours).&lt;br /&gt;
| tbd&lt;br /&gt;
| tbd&lt;br /&gt;
| Approved&lt;br /&gt;
|-&lt;br /&gt;
| [http://maemo.org/profile/view/glezos/ Dimitris Glezos]&lt;br /&gt;
| Hotel/Hostel&lt;br /&gt;
| Shared&lt;br /&gt;
| October 8, 2009&lt;br /&gt;
| October 11, 2009&lt;br /&gt;
| Approved&lt;br /&gt;
|-&lt;br /&gt;
| [http://maemo.org/profile/view/khertan/ Benoît HERVIER]&lt;br /&gt;
| Hotel/Hostel&lt;br /&gt;
| Shared&lt;br /&gt;
| October 9, 2009&lt;br /&gt;
| October 11, 2009&lt;br /&gt;
| Approved&lt;br /&gt;
|-&lt;br /&gt;
| [http://maemo.org/profile/view/andrei1089/ Andrei Mirestean]&lt;br /&gt;
| Hotel/Hostel&lt;br /&gt;
| Shared&lt;br /&gt;
| October 8, 2009&lt;br /&gt;
| October 12, 2009&lt;br /&gt;
| Approved&lt;br /&gt;
|-&lt;br /&gt;
| [http://maemo.org/profile/view/tomaszd/ Tomasz Dominikowski]&lt;br /&gt;
| Hotel&lt;br /&gt;
| Single/Shared&lt;br /&gt;
| Thur 8th October&lt;br /&gt;
| Sun 11th October&lt;br /&gt;
| Approved&lt;br /&gt;
|-&lt;br /&gt;
| [http://maemo.org/profile/view/fms/ Marat Fayzullin]&lt;br /&gt;
| Hotel&lt;br /&gt;
| Single/Shared&lt;br /&gt;
| Thur 8th October&lt;br /&gt;
| Sun 11th October&lt;br /&gt;
| Approved&lt;br /&gt;
|-&lt;br /&gt;
| [http://maemo.org/profile/view/mike_morrison mike morrison]&lt;br /&gt;
| Hotel/Hostel&lt;br /&gt;
| Single/Shared&lt;br /&gt;
| Thur 8th October&lt;br /&gt;
| Mon 12th October&lt;br /&gt;
| Approved&lt;br /&gt;
|-&lt;br /&gt;
| [http://maemo.org/profile/view/sampp Sampo Savola]&lt;br /&gt;
| Hotel&lt;br /&gt;
| Single/Shared&lt;br /&gt;
| Thur 8th October&lt;br /&gt;
| Sun 11th October&lt;br /&gt;
| Approved&lt;br /&gt;
|-&lt;br /&gt;
| [http://maemo.org/profile/view/onion Kaj-Michael Lang]&lt;br /&gt;
| Hostel&lt;br /&gt;
| Single/Shared&lt;br /&gt;
| Thur 8th October&lt;br /&gt;
| Sun 11th October&lt;br /&gt;
| Approved&lt;br /&gt;
|-&lt;br /&gt;
| [[User:etrunko|Eduardo Lima (Etrunko)]]&lt;br /&gt;
| Hotel&lt;br /&gt;
| Single/Shared&lt;br /&gt;
| Thur 8th October&lt;br /&gt;
| Tue 13th October&lt;br /&gt;
| Approved&lt;br /&gt;
|-&lt;br /&gt;
| [[User:kenneth|Kenneth Rohde Christiansen (kenneth)]]&lt;br /&gt;
| Hotel&lt;br /&gt;
| Single/Shared&lt;br /&gt;
| Thur 8th October&lt;br /&gt;
| Tue 12th October&lt;br /&gt;
| Approved&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Detronizator|Ivan De Marino (detro)]]&lt;br /&gt;
| Hotel&lt;br /&gt;
| Single/Shared&lt;br /&gt;
| Thur 8th Oct evening&lt;br /&gt;
| Mon 12th Oct morning (to confirm)&lt;br /&gt;
| Approved&lt;br /&gt;
|-&lt;br /&gt;
| [[User:n8willis|Nathan Willis]]&lt;br /&gt;
| Hotel&lt;br /&gt;
| Single preferred, to write stories at night&lt;br /&gt;
| Fri 9th Oct&lt;br /&gt;
| Mon 12th Oct&lt;br /&gt;
| Approved&lt;br /&gt;
|-&lt;br /&gt;
| [[User:vudentz|Luiz Augusto von Dentz (Vudentz)]]&lt;br /&gt;
| Hotel&lt;br /&gt;
| Single/Shared&lt;br /&gt;
| Thur 8th Oct evening&lt;br /&gt;
| Tue 13th Oct&lt;br /&gt;
| Approved&lt;br /&gt;
|-&lt;br /&gt;
| [[User:b0unc3|Daniele Maio (b0unc3)]]&lt;br /&gt;
| Hotel&lt;br /&gt;
| Single/Shared&lt;br /&gt;
| Thur 8th Oct&lt;br /&gt;
| Mon 12th Oct&lt;br /&gt;
| no&lt;br /&gt;
|-&lt;br /&gt;
| [http://maemo.org/profile/view/apopelo/ Andrey Popelo]&lt;br /&gt;
| Hotel/Hostel&lt;br /&gt;
| Single/Shared&lt;br /&gt;
| October 8, 2009&lt;br /&gt;
| October 12, 2009&lt;br /&gt;
| Approved&lt;br /&gt;
|-&lt;br /&gt;
| Lennart Poettering&lt;br /&gt;
| Hotel&lt;br /&gt;
| Single/Shared&lt;br /&gt;
| Thu 8th Oct&lt;br /&gt;
| Sun 11th Oct&lt;br /&gt;
| Approved&lt;br /&gt;
|-&lt;br /&gt;
| Ryan Paul&lt;br /&gt;
| Hotel&lt;br /&gt;
| Single&lt;br /&gt;
| October 8&lt;br /&gt;
| October 12&lt;br /&gt;
| Approved&lt;br /&gt;
|-&lt;br /&gt;
| Marc-Andre Lureau&lt;br /&gt;
| Hotel&lt;br /&gt;
| Single/Shared&lt;br /&gt;
| Thu 8th Oct&lt;br /&gt;
| Sun 11th Oct&lt;br /&gt;
| not applied&lt;br /&gt;
|-&lt;br /&gt;
| [[User:rsperberg|Roger Sperberg]]&lt;br /&gt;
| Hotel&lt;br /&gt;
| Single/Shared&lt;br /&gt;
| Thu 8th October&lt;br /&gt;
| Mon 12th October&lt;br /&gt;
| Approved&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
(*) - Not registered&lt;br /&gt;
&lt;br /&gt;
== Who&#039;s staying where? ==&lt;br /&gt;
{| border=&amp;quot;5&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Hotel&lt;br /&gt;
! Arriving&lt;br /&gt;
! Leaving&lt;br /&gt;
! Cost&lt;br /&gt;
! Sponsorship?&lt;br /&gt;
! Notes (e.g. spare place, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[User:lardman|Simon Pickering]]&lt;br /&gt;
| Hotel Ibis Amsterdam Centre&lt;br /&gt;
| Thur 8th October&lt;br /&gt;
| Mon 12th October&lt;br /&gt;
| 510.30 Euros for 4 nights (w/out breakfast)&lt;br /&gt;
| Applied for&lt;br /&gt;
| Staying with my wife&lt;br /&gt;
|-&lt;br /&gt;
| [[User:mgedmin|Marius Gedminas]]&lt;br /&gt;
| Hotel Arts (Golden Tulip Amsterdam Art)&lt;br /&gt;
| Thur 8th October&lt;br /&gt;
| Mon 12th October&lt;br /&gt;
| 440 Euros for 4 nights (w/out breakfast)&lt;br /&gt;
| No&lt;br /&gt;
| free wifi!&lt;br /&gt;
|-&lt;br /&gt;
| [[User:gcobb|Graham Cobb]]&lt;br /&gt;
| Hotel Arts&lt;br /&gt;
| Thur 8th October&lt;br /&gt;
| Sun 11th October&lt;br /&gt;
| 310 Euros for 3 nights (w/out breakfast)&lt;br /&gt;
| No&lt;br /&gt;
| Single room&lt;br /&gt;
|-&lt;br /&gt;
| [[User:riussi|Juha Ristolainen]]&lt;br /&gt;
| Hem Hotel Amsterdam &lt;br /&gt;
| Thur 8th October&lt;br /&gt;
| Sun 11th October&lt;br /&gt;
| 313 Euros for 3 nights (w/out breakfast)&lt;br /&gt;
| No&lt;br /&gt;
| double room with two attendees&lt;br /&gt;
|-&lt;br /&gt;
| [[User:jeremiah|Jeremiah C. Foster]]&lt;br /&gt;
| Hotel Arts&lt;br /&gt;
| Thur 8th October&lt;br /&gt;
| Sun 11th October&lt;br /&gt;
| 387 Euros for 3 nights (w/out breakfast)&lt;br /&gt;
| No.&lt;br /&gt;
| My wife will be with me.&lt;br /&gt;
|-&lt;br /&gt;
| [[User:anidel|Aniello Del Sorbo]]&lt;br /&gt;
| A whole house in Bethanienstraat&lt;br /&gt;
| Sat 10th October&lt;br /&gt;
| Tue 13th October&lt;br /&gt;
| 270€ Euros for 3 nights (w/out breakfast)&lt;br /&gt;
| Applied for/Accepted&lt;br /&gt;
| Staying with my partner (sharing the house with a couple of friends)&lt;br /&gt;
|-&lt;br /&gt;
| [[User:lma|Lucas Maneos]]&lt;br /&gt;
| Hotel Arts&lt;br /&gt;
| Thur 8th October&lt;br /&gt;
| Sun 11th October&lt;br /&gt;
|&lt;br /&gt;
| No.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[User:Detronizator|Ivan De Marino]]&lt;br /&gt;
| Hotel Arts (Golden Tulip Amsterdam Art)&lt;br /&gt;
| Thur 8th October&lt;br /&gt;
| Mon 12th October&lt;br /&gt;
|&lt;br /&gt;
| No&lt;br /&gt;
| Would be great to hook up after the Summit to take a walk around Amsterdam. Anyone?&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[User:dneary|Dave Neary]]&lt;br /&gt;
| Ibis Centrum&lt;br /&gt;
| Thur 8th October&lt;br /&gt;
| Sun 11th October&lt;br /&gt;
|&lt;br /&gt;
| No.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[User:gosia|Malgorzata Ciesielska]]&lt;br /&gt;
| Ibis Amsterdam Centre&lt;br /&gt;
| Thur 8th October&lt;br /&gt;
| Sun 11th October&lt;br /&gt;
|&lt;br /&gt;
| No&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[User:rsuplido|Reggie Suplido]]&lt;br /&gt;
| Renaissance Amsterdam&lt;br /&gt;
| Thur 8th October&lt;br /&gt;
| Mon 12th October&lt;br /&gt;
| 243€ for 4 nights (wife discount) (w/o breakfast)&lt;br /&gt;
| Yes&lt;br /&gt;
| Staying with wife&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>192.100.124.218</name></author>
	</entry>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=Documentation/Maemo_5_Developer_Guide/Using_Data_Sharing/Sharing_Plug-in&amp;diff=7578</id>
		<title>Documentation/Maemo 5 Developer Guide/Using Data Sharing/Sharing Plug-in</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=Documentation/Maemo_5_Developer_Guide/Using_Data_Sharing/Sharing_Plug-in&amp;diff=7578"/>
		<updated>2009-10-06T12:06:35Z</updated>

		<summary type="html">&lt;p&gt;192.100.124.218: /* Sharing Internals */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Sharing Plug-in Creation=&lt;br /&gt;
Maemo 5 introduces a new library for handling Sharing related information and services. This chapter will walk you through the process of creating a sharing plug-in using a template plug-in as example. Basic knowledge of debian development and working in scratchbox environment is needed in order to follow these guides.&lt;br /&gt;
&lt;br /&gt;
Plugin example is located here [https://garage.maemo.org/svn/maemoexamples/trunk/data-sharing-plugin/ Data Sharing Plugin example]&lt;br /&gt;
&lt;br /&gt;
Detailed API documentation is available in sharing-plugin-doc package in gtk-doc format.&lt;br /&gt;
&lt;br /&gt;
==Sharing User Interfaces==&lt;br /&gt;
Sharing application abstracts the file sharing and implements common parts needed for file sharing application. Sharing Application service support can be extended by using Sharing Plug-ins. These plug-ins can be created by any 3rd party developer. The plug-ins should implement the Sharing Plug-in API functions and define some parameters to service definition XML file.&lt;br /&gt;
&lt;br /&gt;
Figure 1 below shows Sharing accounts dialog opened from the control panel. With the Sharing accounts, you can create a new Sharing account or edit an existing one. If you install a custom Sharing plug-in, you can see the service it provides in the &amp;quot;Select service list&amp;quot; when creating a new Sharing account.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:SharingAccounts.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Figure 1: Sharing Accounts&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Figure 2 shows the Sharing Dialog user interface that is used to share images to the selected account on some service. The images displayed can come for example from Photos application or from the device camera. You can choose the account created for your service from the &amp;quot;Account&amp;quot; combo box which holds all existing Sharing accounts.&lt;br /&gt;
&lt;br /&gt;
[[Image:SharingDialogInterface.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Figure 2: Sharing Dialog User Interface&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Getting Familiar With Target Service API==&lt;br /&gt;
Many web services provide APIs that are available for 3rd party developers. In this tutorial, we focus on services that provide APIs for image and video uploads. It is possible to give title, description and tags for the images using the common service API.&lt;br /&gt;
Sharing supports image scaling and meta data filtering as common options for any service. Sharing Plug-ins can have service specific options, like privacy. These settings can be accessed through Options dialog (in Figure 2.)&lt;br /&gt;
&lt;br /&gt;
==Getting Your Dummy Plugin To Sharing Menus==&lt;br /&gt;
As a pre-requisite, you will need a working Maemo 5 SDK to continue further.&lt;br /&gt;
We will first install the Sharing Plug-in template:&lt;br /&gt;
*Obtain the template source code &#039;&#039;sharing-plugin-template-0.1.tar.gz&#039;&#039; from &amp;lt;URL HERE&amp;gt;. It contains a good start up file structure for the plug-in creation.&lt;br /&gt;
*Extract and build the package from the folder using command:&lt;br /&gt;
 ./autogen.sh; dpkg-buildpackage -rfakeroot -d&lt;br /&gt;
*Install the package built to your Scratchbox environment or to device if it was build with ARM target.&lt;br /&gt;
*The template dummy service should be now visible in the Sharing account when creating new accounts. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 2px solid rgb(255, 215, 0); background-color: rgb(252, 233, 79); margin-left: 25px; margin-right: 25px; padding: 2px&amp;quot;&amp;gt; N.B: Note that this template plug-in does not send any data before you write the implementation for it. &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Editing Template Plug-in=&lt;br /&gt;
In this section, we peek under the hood by opening the files found from the template plug-in and get familiar with Sharing classes that are used in the Sharing Plugin API functions.&lt;br /&gt;
&lt;br /&gt;
==Sharing Internals==&lt;br /&gt;
Figure 3 shows the general overview of how Sharing Plug-in connects to Sharing Application using the Sharing Plug-in API. The basic plug-in components are the service definition file and the plug-in library. The Application Sharing-Dialog is used to create &#039;&#039;SharingEntries&#039;&#039; that are shared by &#039;&#039;SharingManager&#039;&#039;. Sharing Account Manager implements the Sharing Accounts. Libsharing is library for all common Sharing functionality.&lt;br /&gt;
&lt;br /&gt;
[[Image:SharingPluginAPI.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Figure 3: Sharing Plugin API&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Figure 4 shows the common &#039;&#039;Sharing&#039;&#039; classes found in &#039;&#039;libsharing&#039;&#039; that you would use while creating the plug-in. &lt;br /&gt;
&#039;&#039;SharingTransfer&#039;&#039; is the object that contains all the data of sharing task, overall status of the transfer process for one set of shared files. &lt;br /&gt;
&#039;&#039;SharingEntry&#039;&#039; contains the the &#039;&#039;SharingEntryMedia&#039;&#039; that are the selected files. It also knows  the &#039;&#039;SharingAccount&#039;&#039; that is the target of sharing. &lt;br /&gt;
&#039;&#039;SharingAccount&#039;&#039; contains the username and password along with other parameters that you have to save for your service&#039;s accounts. It also has the information about &#039;&#039;SharingService&#039;&#039; which is registered to the &#039;&#039;SharingAccount&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[Image:LibSharingClasses.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Figure 4: Libsharing classes&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To see more detail the sharing classes you can browse to [https://garage.maemo.org/svn/maemoexamples/trunk/data-sharing-plugin/ Sharing plugin example]&lt;br /&gt;
&lt;br /&gt;
==Service XML File==&lt;br /&gt;
Service definition file, data/template.service.xml.in is the starting point for plug-in loading. It defines the library that implements Sharing Plug-in API functions, the sign up URL for totally new account creation by using web browser, service name, icon file names and some basic information from plug-in.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt; &lt;br /&gt;
 &amp;lt;service plugin=&amp;quot;libtemplate.so&amp;quot; provider=&amp;quot;Me&amp;quot;&amp;gt; &lt;br /&gt;
 &lt;br /&gt;
    &amp;lt;accounts plugInSetup=&amp;quot;0&amp;quot; plugInEdit=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;signup&amp;gt;www.maemo.org&amp;lt;/signup&amp;gt; &lt;br /&gt;
      &amp;lt;password maxlen=&amp;quot;32&amp;quot;/&amp;gt; &lt;br /&gt;
    &amp;lt;/accounts&amp;gt; &lt;br /&gt;
 &lt;br /&gt;
    &amp;lt;ui&amp;gt; &lt;br /&gt;
        &amp;lt;name&amp;gt;Template&amp;lt;/name&amp;gt;  &lt;br /&gt;
        &amp;lt;icon type=&amp;quot;post&amp;quot;&amp;gt;@servicesdir@/template-post.png&amp;lt;/icon&amp;gt; &lt;br /&gt;
        &amp;lt;icon type=&amp;quot;setup&amp;quot;&amp;gt;@servicesdir@/template-setup.png&amp;lt;/icon&amp;gt; &lt;br /&gt;
        &amp;lt;options&amp;gt; &lt;br /&gt;
        	&amp;lt;option id=&amp;quot;privacy&amp;quot; type=&amp;quot;enumeration&amp;quot; default=&amp;quot;private&amp;quot;&amp;gt; &lt;br /&gt;
                &amp;lt;caption domain=&amp;quot;osso-sharing-ui&amp;quot; key=&amp;quot;share_bd_options_privacy&amp;quot;/&amp;gt; &lt;br /&gt;
                &amp;lt;value id=&amp;quot;private&amp;quot; domain=&amp;quot;osso-sharing-ui&amp;quot; key=&amp;quot;share_fi_options_privacy_private&amp;quot;/&amp;gt; &lt;br /&gt;
                &amp;lt;value id=&amp;quot;public&amp;quot; domain=&amp;quot;osso-sharing-ui&amp;quot; key=&amp;quot;share_fi_options_privacy_public&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/option&amp;gt;&lt;br /&gt;
         &amp;lt;/option&amp;gt;&lt;br /&gt;
     &amp;lt;/ui&amp;gt;&lt;br /&gt;
 &amp;lt;/service&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;File 1: Example service definition XML file&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The prefix of name &amp;quot;template.service.xml.in&amp;quot;, &amp;quot;template&amp;quot; in this case, defines the id of the plugin. The &amp;quot;plugin&amp;quot; value in the service definition defines the library that implements the Sharing Plug-in API. In this example file the library is libtemplate.so in the above example. &amp;quot;Provider&amp;quot; is the developer name, nick etc. In &amp;quot;accounts&amp;quot;, you define the plug-in account setup and edit flows described more in detail in the coming sections. Sign up URL is the URL that is opened in the browser when a new account is being created for a service.&lt;br /&gt;
&lt;br /&gt;
==Account Setup User Interface Flow==&lt;br /&gt;
Sharing accounts can either create a default flow where &amp;quot;username&amp;quot; and &amp;quot;password&amp;quot; parameters are set to the account or an optional custom flow. In File 1, the &amp;quot;accounts&amp;quot; tag has a parameter &amp;quot;plugInSetup&amp;quot;. If it is set to &amp;quot;1&amp;quot;, Sharing Accounts will call the Sharing Plugin API function &amp;quot;sharing_plugin_interface_account_setup&amp;quot; to create UI flow; it will use the default flow.&lt;br /&gt;
You can see the difference between UI flows when creating Flickr and Ovi account. Ovi uses the default flow and Flickr uses it&#039;s own UI flow.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;SharingPluginInterfaceAccountSetupResult sharing_plugin_interface_account_setup (GtkWindow* parent, SharingService* service, SharingAccount** worked_on, osso_context_t* osso)&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you decide to create your own account setup flow, please try to keep the same UI look as in other Sharing dialogs.&lt;br /&gt;
&lt;br /&gt;
==Account Validation==&lt;br /&gt;
Account validation is needed to reduce error cases in actual sending process. Of course you can use the dummy function at template plug-in, but for better user experience this function is recommended to be implemented so that Sharing Account account information is really validated against the service when new account is created.&lt;br /&gt;
&lt;br /&gt;
Next function is called after sharing_plugin_interface_account_setup call ends or when default account setup flow is done (=when &amp;quot;Validate&amp;quot; button is pressed).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 SharingPluginInterfaceAccountValidateResult sharing_plugin_interface_account_validate (SharingAccount* account, ConIcConnection* con, gboolean *cont, gboolean* dead_mans_switch)&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the last phase of account creation, the account must be validated. Sharing Plug-in API &#039;&#039;sharing_plugin_interface_test_account&#039;&#039; is the function called in the validation phase of the account creation flow.&lt;br /&gt;
Usually web services have a phase in account creation where you have put the needed information from your account, only then you get the actual credentials to upload images if your account information is valid. This is the phase that is implemented in the Sharing Plug-in API function.&lt;br /&gt;
&lt;br /&gt;
==Account Editing User Interface Flow==&lt;br /&gt;
&lt;br /&gt;
Sharing Accounts support here too either default flow where “username” and “password” parameters are edited or optional custom edit UI flow. The wanted flow can be set by setting the parameter &amp;quot;plugInEdit&amp;quot; from the service definition file either to &amp;quot;0&amp;quot; or to &amp;quot;1&amp;quot; where &amp;quot;0&amp;quot; means the default flow and &amp;quot;1&amp;quot; plug-in flow.&lt;br /&gt;
&lt;br /&gt;
The default flow can be used when you need only username and password to get needed information for sending. The plug-in flow is used when you need more than this or customised account validation flow. You can see the difference between UI flows here too when editing Flickr and Ovi accounts.&lt;br /&gt;
&lt;br /&gt;
Next function must be implemented only when plug-in account setup is used (when &amp;quot;plugInSetup&amp;quot; is set to &amp;quot;1&amp;quot;):&lt;br /&gt;
 &amp;lt;tt&amp;gt;SharingPluginInterfaceEditAccountResult sharing_plugin_interface_edit_account (GtkWindow* parent, SharingAccount* account, ConIcConnection* con, gboolean* dead_mans_switch)&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sending Functionality==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;SharingPluginInterfaceSendResult sharing_plugin_interface_send (SharingTransfer* transfer, ConIcConnection* con, gboolean* dead_mans_switch)&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After pressing the &#039;Share&#039; button in Sharing dialog (Figure 2.), the data is put into the Sharing Outbox (can be seen under /home/user/MyDocs/.sharing/outbox/). Sharing manager process is started and the status menu gets the icon to process the new Sharing Entry.&lt;br /&gt;
&#039;&#039;SharingHTTP&#039;&#039; provides an API to create common HTTP requests.&lt;br /&gt;
In order to create a better user experience following things are good to be implemented after you get the basic functionality working in your plug-in:&lt;br /&gt;
*Set progress of sending with sharing_transfer_set_progress between 0 and 1 to estimate the current transfer time / total transfer time.&lt;br /&gt;
*Set sent to &#039;&#039;SharingEntryMedia&#039;&#039; with &#039;&#039;sharing_entry_media_set_sent&#039;&#039; when file sending is done and check the send value with &#039;&#039;sharing_entry_media_get_sent&#039;&#039; to prevent sending same files multiple times for example in reboot scenarios.&lt;br /&gt;
*Poll cancel flag time to time, for example in curl or &#039;&#039;SharingHTTP&#039;&#039; progress function to end transferring when needed. Use &#039;&#039;sharing_transfer_continue&#039;&#039; to get the continue flag bit.&lt;br /&gt;
*If you are using &#039;&#039;libcurl&#039;&#039; instead of &#039;&#039;SharingHTTP&#039;&#039;, please listen to &#039;&#039;conic&#039;&#039; events to disconnect transfer when no connection available. It returns with &#039;no connection&#039; return value in this case.&lt;br /&gt;
&lt;br /&gt;
Next some example source for common tasks found in usual sending functionality:&lt;br /&gt;
==== Example sending loop ====&lt;br /&gt;
&lt;br /&gt;
When you process SharingEntryMedias from the SharingEntry you propably end up with loop where you go the list of SharingEntryMedias through. Here is a raw example, where some example lines commented out with &amp;quot;//&amp;quot;.&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 for (GSList* p = sharing_entry_get_media (entry); p != NULL; p = g_slist_next(p)) {&lt;br /&gt;
    SharingEntryMedia* media = p-&amp;gt;data;&lt;br /&gt;
    /* Process media */&lt;br /&gt;
    if (!sharing_entry_media_get_sent (media)) {&lt;br /&gt;
        /* Post media */&lt;br /&gt;
        //guint result = my_send_task_post_function (my_send_task, media);&lt;br /&gt;
        /* Process post result */&lt;br /&gt;
        if (result == 0 /* EXAMPLE: MY_SEND_RESULT_SUCCESS */) {&lt;br /&gt;
            /* If success mark media as sent */&lt;br /&gt;
            sharing_entry_media_set_sent (media, TRUE);&lt;br /&gt;
            /* And mark process to your internal data structure */&lt;br /&gt;
            //my_send_task-&amp;gt;upload_done += sharing_entry_media_get_size (media); &lt;br /&gt;
        } else {&lt;br /&gt;
            /* We have sent the file in last sharing-manager call */&lt;br /&gt;
            //my_send_task-&amp;gt;upload_done += sharing_entry_media_get_size (media);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example tags string ====&lt;br /&gt;
Usually services accept the tags in their API to be added to images. Here is example source to create nice string about tag information to be put  where &amp;quot;, &amp;quot; string used as separator. If service supports also geo tagging you should develop this source further by checking the tag type also.&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 static gchar* create_tags_str (const GSList* tags)&lt;br /&gt;
 {&lt;br /&gt;
    gchar* ret = NULL;&lt;br /&gt;
    for (const GSList* p = tags; p != NULL; p = g_slist_next (p)) {&lt;br /&gt;
        SharingTag* tag = (SharingTag*)(p-&amp;gt;data);&lt;br /&gt;
        const gchar* tmp = sharing_tag_get_word (tag);&lt;br /&gt;
        if (tmp != NULL) {&lt;br /&gt;
            gchar* new_ret = NULL;&lt;br /&gt;
            if (ret != NULL) {&lt;br /&gt;
                new_ret = g_strdup_printf (&amp;quot;%s, %s&amp;quot;, ret, tmp);&lt;br /&gt;
                g_free (ret); /* old return is freed */&lt;br /&gt;
            } else {&lt;br /&gt;
                new_ret = g_strdup (tmp);&lt;br /&gt;
            }&lt;br /&gt;
            ret = new_ret;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    return ret;&lt;br /&gt;
 }&lt;br /&gt;
 gchar* tags = create_tags_str (sharing_entry_media_get_tags (media));&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== SharingHTTP example ====&lt;br /&gt;
SharingHTTP is ment to be used for HTTP transfers. It is probably easier to use this than libcurl and libconic straightly in common cases. Give it a try at least if you are not familiar with libcurl!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 SharingHTTP * http = sharing_http_new ();&lt;br /&gt;
 SharingHTTPRunResponse res;&lt;br /&gt;
 res = sharing_http_run (http, &amp;quot;http://example.com/post&amp;quot;);&lt;br /&gt;
 if (res == SHARING_HTTP_RUNRES_SUCCESS) {&lt;br /&gt;
  g_print (&amp;quot;Got response (%d): %s\n&amp;quot;, sharing_http_get_res_code (http),&lt;br /&gt;
     sharing_http_get_res_body (http, NULL));&lt;br /&gt;
 } else {&lt;br /&gt;
     g_printerr (&amp;quot;Couldn&#039;t get stuff from service\n&amp;quot;);&lt;br /&gt;
 }&lt;br /&gt;
 sharing_http_unref (http); &lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Uninstallation==&lt;br /&gt;
Libsharing provides sharing-account-remover binary that can be used to clean Sharing Accounts created for your plugin. This binary is run by debian/ dir&#039;s prerm script. Prerm scripts are run just before the package is uninstalled. Change the plugin id from sharingplugintemplate to match your plug-in id in the script. Your plug-in&#039;s id is the service definitions files prefix. For template.service.xml, the prefix is &amp;quot;template&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Example prerm script:&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 # You can use sharing-account-remover to remove the accounts at plugin&lt;br /&gt;
 # uninstallation&lt;br /&gt;
 if [ &amp;quot;$1&amp;quot; = &amp;quot;remove&amp;quot; ]; then&lt;br /&gt;
 	/usr/bin/sharing-account-remover template&lt;br /&gt;
 fi&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Testing your plugin=&lt;br /&gt;
After setting up your scratchbox environment you can start using and testing your own plugin. &lt;br /&gt;
&lt;br /&gt;
Sharing framework consists following packages:&lt;br /&gt;
&lt;br /&gt;
 libsharing-plugin-dev&lt;br /&gt;
 libsharing0&lt;br /&gt;
 sharing-manager&lt;br /&gt;
 sharing-account-manager&lt;br /&gt;
 sharing-dialog&lt;br /&gt;
&lt;br /&gt;
All the needed packages should be installed along with nokia-binaries.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important:&#039;&#039;&#039; When testing inside scratchbox  remember to start the signond daemon after the desktop is started. Signond is used for storing the account information and it&#039;s needed in order to get Sharing framework working properly&lt;br /&gt;
&lt;br /&gt;
 [sbox] &amp;gt; signond &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Also remember to install the debian .deb package build from your sources.&lt;br /&gt;
&lt;br /&gt;
Creating sharing account is started from setting.&lt;br /&gt;
 &lt;br /&gt;
 settings -&amp;gt; Sharing accounts -&amp;gt; New&lt;br /&gt;
&lt;br /&gt;
Select your service and create new account. After one account is created you can use ImageViewer for sharing images and MediaPlayer for sharing video files.&lt;br /&gt;
&lt;br /&gt;
=Sharing your plugin with others=&lt;br /&gt;
Maemo Extras repository is the best place for your plug-in if you want to get users for it. More information on how you can upload packages to Extras repository can be found [[http://wiki.maemo.org/Uploading_to_Extras here]].&lt;br /&gt;
&lt;br /&gt;
Before uploading plugin to public repositories make sure you have updated the debian configuration files to match your information under ./debian folder.&lt;br /&gt;
&lt;br /&gt;
Also make sure that the section is set to user/other. This way the package will be installable by application manager. Below example version of debian control file.&lt;br /&gt;
&lt;br /&gt;
 Source: sharing-plugin-template&lt;br /&gt;
 Section: user/other&lt;br /&gt;
 Priority: optional&lt;br /&gt;
 Maintainer: Maemo Team &amp;lt;xxxx@maemo.org&amp;gt;&lt;br /&gt;
 Build-Depends: debhelper (&amp;gt;= 5.0.0), &lt;br /&gt;
    libgtk2.0-dev, libglib2.0-dev, &lt;br /&gt;
    libconic0-dev, libosso-dev, &lt;br /&gt;
    libsharing-plugin-dev&lt;br /&gt;
 Standards-Version: 3.8.0&lt;/div&gt;</summary>
		<author><name>192.100.124.218</name></author>
	</entry>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=Documentation/Maemo_5_Developer_Guide/Using_Data_Sharing/Sharing_Plug-in&amp;diff=7579</id>
		<title>Documentation/Maemo 5 Developer Guide/Using Data Sharing/Sharing Plug-in</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=Documentation/Maemo_5_Developer_Guide/Using_Data_Sharing/Sharing_Plug-in&amp;diff=7579"/>
		<updated>2009-10-06T12:05:04Z</updated>

		<summary type="html">&lt;p&gt;192.100.124.218: /* Testing your plugin */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Sharing Plug-in Creation=&lt;br /&gt;
Maemo 5 introduces a new library for handling Sharing related information and services. This chapter will walk you through the process of creating a sharing plug-in using a template plug-in as example. Basic knowledge of debian development and working in scratchbox environment is needed in order to follow these guides.&lt;br /&gt;
&lt;br /&gt;
Plugin example is located here [https://garage.maemo.org/svn/maemoexamples/trunk/data-sharing-plugin/ Data Sharing Plugin example]&lt;br /&gt;
&lt;br /&gt;
Detailed API documentation is available in sharing-plugin-doc package in gtk-doc format.&lt;br /&gt;
&lt;br /&gt;
==Sharing User Interfaces==&lt;br /&gt;
Sharing application abstracts the file sharing and implements common parts needed for file sharing application. Sharing Application service support can be extended by using Sharing Plug-ins. These plug-ins can be created by any 3rd party developer. The plug-ins should implement the Sharing Plug-in API functions and define some parameters to service definition XML file.&lt;br /&gt;
&lt;br /&gt;
Figure 1 below shows Sharing accounts dialog opened from the control panel. With the Sharing accounts, you can create a new Sharing account or edit an existing one. If you install a custom Sharing plug-in, you can see the service it provides in the &amp;quot;Select service list&amp;quot; when creating a new Sharing account.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:SharingAccounts.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Figure 1: Sharing Accounts&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Figure 2 shows the Sharing Dialog user interface that is used to share images to the selected account on some service. The images displayed can come for example from Photos application or from the device camera. You can choose the account created for your service from the &amp;quot;Account&amp;quot; combo box which holds all existing Sharing accounts.&lt;br /&gt;
&lt;br /&gt;
[[Image:SharingDialogInterface.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Figure 2: Sharing Dialog User Interface&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Getting Familiar With Target Service API==&lt;br /&gt;
Many web services provide APIs that are available for 3rd party developers. In this tutorial, we focus on services that provide APIs for image and video uploads. It is possible to give title, description and tags for the images using the common service API.&lt;br /&gt;
Sharing supports image scaling and meta data filtering as common options for any service. Sharing Plug-ins can have service specific options, like privacy. These settings can be accessed through Options dialog (in Figure 2.)&lt;br /&gt;
&lt;br /&gt;
==Getting Your Dummy Plugin To Sharing Menus==&lt;br /&gt;
As a pre-requisite, you will need a working Maemo 5 SDK to continue further.&lt;br /&gt;
We will first install the Sharing Plug-in template:&lt;br /&gt;
*Obtain the template source code &#039;&#039;sharing-plugin-template-0.1.tar.gz&#039;&#039; from &amp;lt;URL HERE&amp;gt;. It contains a good start up file structure for the plug-in creation.&lt;br /&gt;
*Extract and build the package from the folder using command:&lt;br /&gt;
 ./autogen.sh; dpkg-buildpackage -rfakeroot -d&lt;br /&gt;
*Install the package built to your Scratchbox environment or to device if it was build with ARM target.&lt;br /&gt;
*The template dummy service should be now visible in the Sharing account when creating new accounts. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 2px solid rgb(255, 215, 0); background-color: rgb(252, 233, 79); margin-left: 25px; margin-right: 25px; padding: 2px&amp;quot;&amp;gt; N.B: Note that this template plug-in does not send any data before you write the implementation for it. &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Editing Template Plug-in=&lt;br /&gt;
In this section, we peek under the hood by opening the files found from the template plug-in and get familiar with Sharing classes that are used in the Sharing Plugin API functions.&lt;br /&gt;
&lt;br /&gt;
==Sharing Internals==&lt;br /&gt;
Figure 3 shows the general overview of how Sharing Plug-in connects to Sharing Application using the Sharing Plug-in API. The basic plug-in components are the service definition file and the plug-in library. The Application Sharing-Dialog is used to create &#039;&#039;SharingEntries&#039;&#039; that are shared by &#039;&#039;SharingManager&#039;&#039;. Sharing Account Manager implements the Sharing Accounts. Libsharing is library for all common Sharing functionality.&lt;br /&gt;
&lt;br /&gt;
[[Image:SharingPluginAPI.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Figure 3: Sharing Plugin API&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Figure 4 shows the common &#039;&#039;Sharing&#039;&#039; classes found in &#039;&#039;libsharing&#039;&#039; that you would use while creating the plug-in. &lt;br /&gt;
&#039;&#039;SharingTransfer&#039;&#039; is the object that contains all the data of sharing task, overall status of the transfer process for one set of shared files. &lt;br /&gt;
&#039;&#039;SharingEntry&#039;&#039; contains the the &#039;&#039;SharingEntryMedia&#039;&#039; that are the selected files. It also knows  the &#039;&#039;SharingAccount&#039;&#039; that is the target of sharing. &lt;br /&gt;
&#039;&#039;SharingAccount&#039;&#039; contains the username and password along with other parameters that you have to save for your service&#039;s accounts. It also has the information about &#039;&#039;SharingService&#039;&#039; which is registered to the &#039;&#039;SharingAccount&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[Image:LibSharingClasses.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Figure 4: Libsharing classes&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To see more detail the sharing classes you can browse to: &amp;lt;PUT URL TO Sharing plug-in dev TO HERE&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Service XML File==&lt;br /&gt;
Service definition file, data/template.service.xml.in is the starting point for plug-in loading. It defines the library that implements Sharing Plug-in API functions, the sign up URL for totally new account creation by using web browser, service name, icon file names and some basic information from plug-in.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt; &lt;br /&gt;
 &amp;lt;service plugin=&amp;quot;libtemplate.so&amp;quot; provider=&amp;quot;Me&amp;quot;&amp;gt; &lt;br /&gt;
 &lt;br /&gt;
    &amp;lt;accounts plugInSetup=&amp;quot;0&amp;quot; plugInEdit=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;signup&amp;gt;www.maemo.org&amp;lt;/signup&amp;gt; &lt;br /&gt;
      &amp;lt;password maxlen=&amp;quot;32&amp;quot;/&amp;gt; &lt;br /&gt;
    &amp;lt;/accounts&amp;gt; &lt;br /&gt;
 &lt;br /&gt;
    &amp;lt;ui&amp;gt; &lt;br /&gt;
        &amp;lt;name&amp;gt;Template&amp;lt;/name&amp;gt;  &lt;br /&gt;
        &amp;lt;icon type=&amp;quot;post&amp;quot;&amp;gt;@servicesdir@/template-post.png&amp;lt;/icon&amp;gt; &lt;br /&gt;
        &amp;lt;icon type=&amp;quot;setup&amp;quot;&amp;gt;@servicesdir@/template-setup.png&amp;lt;/icon&amp;gt; &lt;br /&gt;
        &amp;lt;options&amp;gt; &lt;br /&gt;
        	&amp;lt;option id=&amp;quot;privacy&amp;quot; type=&amp;quot;enumeration&amp;quot; default=&amp;quot;private&amp;quot;&amp;gt; &lt;br /&gt;
                &amp;lt;caption domain=&amp;quot;osso-sharing-ui&amp;quot; key=&amp;quot;share_bd_options_privacy&amp;quot;/&amp;gt; &lt;br /&gt;
                &amp;lt;value id=&amp;quot;private&amp;quot; domain=&amp;quot;osso-sharing-ui&amp;quot; key=&amp;quot;share_fi_options_privacy_private&amp;quot;/&amp;gt; &lt;br /&gt;
                &amp;lt;value id=&amp;quot;public&amp;quot; domain=&amp;quot;osso-sharing-ui&amp;quot; key=&amp;quot;share_fi_options_privacy_public&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/option&amp;gt;&lt;br /&gt;
         &amp;lt;/option&amp;gt;&lt;br /&gt;
     &amp;lt;/ui&amp;gt;&lt;br /&gt;
 &amp;lt;/service&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;File 1: Example service definition XML file&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The prefix of name &amp;quot;template.service.xml.in&amp;quot;, &amp;quot;template&amp;quot; in this case, defines the id of the plugin. The &amp;quot;plugin&amp;quot; value in the service definition defines the library that implements the Sharing Plug-in API. In this example file the library is libtemplate.so in the above example. &amp;quot;Provider&amp;quot; is the developer name, nick etc. In &amp;quot;accounts&amp;quot;, you define the plug-in account setup and edit flows described more in detail in the coming sections. Sign up URL is the URL that is opened in the browser when a new account is being created for a service.&lt;br /&gt;
&lt;br /&gt;
==Account Setup User Interface Flow==&lt;br /&gt;
Sharing accounts can either create a default flow where &amp;quot;username&amp;quot; and &amp;quot;password&amp;quot; parameters are set to the account or an optional custom flow. In File 1, the &amp;quot;accounts&amp;quot; tag has a parameter &amp;quot;plugInSetup&amp;quot;. If it is set to &amp;quot;1&amp;quot;, Sharing Accounts will call the Sharing Plugin API function &amp;quot;sharing_plugin_interface_account_setup&amp;quot; to create UI flow; it will use the default flow.&lt;br /&gt;
You can see the difference between UI flows when creating Flickr and Ovi account. Ovi uses the default flow and Flickr uses it&#039;s own UI flow.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;SharingPluginInterfaceAccountSetupResult sharing_plugin_interface_account_setup (GtkWindow* parent, SharingService* service, SharingAccount** worked_on, osso_context_t* osso)&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you decide to create your own account setup flow, please try to keep the same UI look as in other Sharing dialogs.&lt;br /&gt;
&lt;br /&gt;
==Account Validation==&lt;br /&gt;
Account validation is needed to reduce error cases in actual sending process. Of course you can use the dummy function at template plug-in, but for better user experience this function is recommended to be implemented so that Sharing Account account information is really validated against the service when new account is created.&lt;br /&gt;
&lt;br /&gt;
Next function is called after sharing_plugin_interface_account_setup call ends or when default account setup flow is done (=when &amp;quot;Validate&amp;quot; button is pressed).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 SharingPluginInterfaceAccountValidateResult sharing_plugin_interface_account_validate (SharingAccount* account, ConIcConnection* con, gboolean *cont, gboolean* dead_mans_switch)&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the last phase of account creation, the account must be validated. Sharing Plug-in API &#039;&#039;sharing_plugin_interface_test_account&#039;&#039; is the function called in the validation phase of the account creation flow.&lt;br /&gt;
Usually web services have a phase in account creation where you have put the needed information from your account, only then you get the actual credentials to upload images if your account information is valid. This is the phase that is implemented in the Sharing Plug-in API function.&lt;br /&gt;
&lt;br /&gt;
==Account Editing User Interface Flow==&lt;br /&gt;
&lt;br /&gt;
Sharing Accounts support here too either default flow where “username” and “password” parameters are edited or optional custom edit UI flow. The wanted flow can be set by setting the parameter &amp;quot;plugInEdit&amp;quot; from the service definition file either to &amp;quot;0&amp;quot; or to &amp;quot;1&amp;quot; where &amp;quot;0&amp;quot; means the default flow and &amp;quot;1&amp;quot; plug-in flow.&lt;br /&gt;
&lt;br /&gt;
The default flow can be used when you need only username and password to get needed information for sending. The plug-in flow is used when you need more than this or customised account validation flow. You can see the difference between UI flows here too when editing Flickr and Ovi accounts.&lt;br /&gt;
&lt;br /&gt;
Next function must be implemented only when plug-in account setup is used (when &amp;quot;plugInSetup&amp;quot; is set to &amp;quot;1&amp;quot;):&lt;br /&gt;
 &amp;lt;tt&amp;gt;SharingPluginInterfaceEditAccountResult sharing_plugin_interface_edit_account (GtkWindow* parent, SharingAccount* account, ConIcConnection* con, gboolean* dead_mans_switch)&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sending Functionality==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;SharingPluginInterfaceSendResult sharing_plugin_interface_send (SharingTransfer* transfer, ConIcConnection* con, gboolean* dead_mans_switch)&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After pressing the &#039;Share&#039; button in Sharing dialog (Figure 2.), the data is put into the Sharing Outbox (can be seen under /home/user/MyDocs/.sharing/outbox/). Sharing manager process is started and the status menu gets the icon to process the new Sharing Entry.&lt;br /&gt;
&#039;&#039;SharingHTTP&#039;&#039; provides an API to create common HTTP requests.&lt;br /&gt;
In order to create a better user experience following things are good to be implemented after you get the basic functionality working in your plug-in:&lt;br /&gt;
*Set progress of sending with sharing_transfer_set_progress between 0 and 1 to estimate the current transfer time / total transfer time.&lt;br /&gt;
*Set sent to &#039;&#039;SharingEntryMedia&#039;&#039; with &#039;&#039;sharing_entry_media_set_sent&#039;&#039; when file sending is done and check the send value with &#039;&#039;sharing_entry_media_get_sent&#039;&#039; to prevent sending same files multiple times for example in reboot scenarios.&lt;br /&gt;
*Poll cancel flag time to time, for example in curl or &#039;&#039;SharingHTTP&#039;&#039; progress function to end transferring when needed. Use &#039;&#039;sharing_transfer_continue&#039;&#039; to get the continue flag bit.&lt;br /&gt;
*If you are using &#039;&#039;libcurl&#039;&#039; instead of &#039;&#039;SharingHTTP&#039;&#039;, please listen to &#039;&#039;conic&#039;&#039; events to disconnect transfer when no connection available. It returns with &#039;no connection&#039; return value in this case.&lt;br /&gt;
&lt;br /&gt;
Next some example source for common tasks found in usual sending functionality:&lt;br /&gt;
==== Example sending loop ====&lt;br /&gt;
&lt;br /&gt;
When you process SharingEntryMedias from the SharingEntry you propably end up with loop where you go the list of SharingEntryMedias through. Here is a raw example, where some example lines commented out with &amp;quot;//&amp;quot;.&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 for (GSList* p = sharing_entry_get_media (entry); p != NULL; p = g_slist_next(p)) {&lt;br /&gt;
    SharingEntryMedia* media = p-&amp;gt;data;&lt;br /&gt;
    /* Process media */&lt;br /&gt;
    if (!sharing_entry_media_get_sent (media)) {&lt;br /&gt;
        /* Post media */&lt;br /&gt;
        //guint result = my_send_task_post_function (my_send_task, media);&lt;br /&gt;
        /* Process post result */&lt;br /&gt;
        if (result == 0 /* EXAMPLE: MY_SEND_RESULT_SUCCESS */) {&lt;br /&gt;
            /* If success mark media as sent */&lt;br /&gt;
            sharing_entry_media_set_sent (media, TRUE);&lt;br /&gt;
            /* And mark process to your internal data structure */&lt;br /&gt;
            //my_send_task-&amp;gt;upload_done += sharing_entry_media_get_size (media); &lt;br /&gt;
        } else {&lt;br /&gt;
            /* We have sent the file in last sharing-manager call */&lt;br /&gt;
            //my_send_task-&amp;gt;upload_done += sharing_entry_media_get_size (media);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example tags string ====&lt;br /&gt;
Usually services accept the tags in their API to be added to images. Here is example source to create nice string about tag information to be put  where &amp;quot;, &amp;quot; string used as separator. If service supports also geo tagging you should develop this source further by checking the tag type also.&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 static gchar* create_tags_str (const GSList* tags)&lt;br /&gt;
 {&lt;br /&gt;
    gchar* ret = NULL;&lt;br /&gt;
    for (const GSList* p = tags; p != NULL; p = g_slist_next (p)) {&lt;br /&gt;
        SharingTag* tag = (SharingTag*)(p-&amp;gt;data);&lt;br /&gt;
        const gchar* tmp = sharing_tag_get_word (tag);&lt;br /&gt;
        if (tmp != NULL) {&lt;br /&gt;
            gchar* new_ret = NULL;&lt;br /&gt;
            if (ret != NULL) {&lt;br /&gt;
                new_ret = g_strdup_printf (&amp;quot;%s, %s&amp;quot;, ret, tmp);&lt;br /&gt;
                g_free (ret); /* old return is freed */&lt;br /&gt;
            } else {&lt;br /&gt;
                new_ret = g_strdup (tmp);&lt;br /&gt;
            }&lt;br /&gt;
            ret = new_ret;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    return ret;&lt;br /&gt;
 }&lt;br /&gt;
 gchar* tags = create_tags_str (sharing_entry_media_get_tags (media));&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== SharingHTTP example ====&lt;br /&gt;
SharingHTTP is ment to be used for HTTP transfers. It is probably easier to use this than libcurl and libconic straightly in common cases. Give it a try at least if you are not familiar with libcurl!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 SharingHTTP * http = sharing_http_new ();&lt;br /&gt;
 SharingHTTPRunResponse res;&lt;br /&gt;
 res = sharing_http_run (http, &amp;quot;http://example.com/post&amp;quot;);&lt;br /&gt;
 if (res == SHARING_HTTP_RUNRES_SUCCESS) {&lt;br /&gt;
  g_print (&amp;quot;Got response (%d): %s\n&amp;quot;, sharing_http_get_res_code (http),&lt;br /&gt;
     sharing_http_get_res_body (http, NULL));&lt;br /&gt;
 } else {&lt;br /&gt;
     g_printerr (&amp;quot;Couldn&#039;t get stuff from service\n&amp;quot;);&lt;br /&gt;
 }&lt;br /&gt;
 sharing_http_unref (http); &lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Uninstallation==&lt;br /&gt;
Libsharing provides sharing-account-remover binary that can be used to clean Sharing Accounts created for your plugin. This binary is run by debian/ dir&#039;s prerm script. Prerm scripts are run just before the package is uninstalled. Change the plugin id from sharingplugintemplate to match your plug-in id in the script. Your plug-in&#039;s id is the service definitions files prefix. For template.service.xml, the prefix is &amp;quot;template&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Example prerm script:&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 # You can use sharing-account-remover to remove the accounts at plugin&lt;br /&gt;
 # uninstallation&lt;br /&gt;
 if [ &amp;quot;$1&amp;quot; = &amp;quot;remove&amp;quot; ]; then&lt;br /&gt;
 	/usr/bin/sharing-account-remover template&lt;br /&gt;
 fi&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Testing your plugin=&lt;br /&gt;
After setting up your scratchbox environment you can start using and testing your own plugin. &lt;br /&gt;
&lt;br /&gt;
Sharing framework consists following packages:&lt;br /&gt;
&lt;br /&gt;
 libsharing-plugin-dev&lt;br /&gt;
 libsharing0&lt;br /&gt;
 sharing-manager&lt;br /&gt;
 sharing-account-manager&lt;br /&gt;
 sharing-dialog&lt;br /&gt;
&lt;br /&gt;
All the needed packages should be installed along with nokia-binaries.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important:&#039;&#039;&#039; When testing inside scratchbox  remember to start the signond daemon after the desktop is started. Signond is used for storing the account information and it&#039;s needed in order to get Sharing framework working properly&lt;br /&gt;
&lt;br /&gt;
 [sbox] &amp;gt; signond &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Also remember to install the debian .deb package build from your sources.&lt;br /&gt;
&lt;br /&gt;
Creating sharing account is started from setting.&lt;br /&gt;
 &lt;br /&gt;
 settings -&amp;gt; Sharing accounts -&amp;gt; New&lt;br /&gt;
&lt;br /&gt;
Select your service and create new account. After one account is created you can use ImageViewer for sharing images and MediaPlayer for sharing video files.&lt;br /&gt;
&lt;br /&gt;
=Sharing your plugin with others=&lt;br /&gt;
Maemo Extras repository is the best place for your plug-in if you want to get users for it. More information on how you can upload packages to Extras repository can be found [[http://wiki.maemo.org/Uploading_to_Extras here]].&lt;br /&gt;
&lt;br /&gt;
Before uploading plugin to public repositories make sure you have updated the debian configuration files to match your information under ./debian folder.&lt;br /&gt;
&lt;br /&gt;
Also make sure that the section is set to user/other. This way the package will be installable by application manager. Below example version of debian control file.&lt;br /&gt;
&lt;br /&gt;
 Source: sharing-plugin-template&lt;br /&gt;
 Section: user/other&lt;br /&gt;
 Priority: optional&lt;br /&gt;
 Maintainer: Maemo Team &amp;lt;xxxx@maemo.org&amp;gt;&lt;br /&gt;
 Build-Depends: debhelper (&amp;gt;= 5.0.0), &lt;br /&gt;
    libgtk2.0-dev, libglib2.0-dev, &lt;br /&gt;
    libconic0-dev, libosso-dev, &lt;br /&gt;
    libsharing-plugin-dev&lt;br /&gt;
 Standards-Version: 3.8.0&lt;/div&gt;</summary>
		<author><name>192.100.124.218</name></author>
	</entry>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=Maemo_Summit_2009&amp;diff=20209</id>
		<title>Maemo Summit 2009</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=Maemo_Summit_2009&amp;diff=20209"/>
		<updated>2009-09-30T11:58:08Z</updated>

		<summary type="html">&lt;p&gt;192.100.124.218: /* Friday, October 9 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Content will be the second most important aspect of the conference, after the social aspect of getting the Maemo community together.&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
=== Friday, October 9 ===&lt;br /&gt;
&lt;br /&gt;
[[9:00    Registration at the Community Room (Zuiveringshal Oost)]]&lt;br /&gt;
&lt;br /&gt;
10:00   &#039;&#039;&#039;Programme starts at N900 (Transformatorhuis)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
10:00    &#039;&#039;&#039;Welcome - Opening of Summit &#039;&#039;&#039; by [http://maemo.org/profile/view/peterschneider.html Peter Schneider], Head of Maemo Marketing @ Nokia&lt;br /&gt;
&lt;br /&gt;
10:15     &#039;&#039;&#039;[http://wiki.maemo.org/Maemo_Summit_2009/Schedule/Day_1#Maemo_5_and_the_N900 Maemo 5 and the Nokia N900] by [http://maemo.org/profile/view/jaaksi/ Ari Jaaksi], VP - Maemo Devices @ Nokia&lt;br /&gt;
&lt;br /&gt;
11:00    &#039;&#039;&#039;[http://wiki.maemo.org/Maemo_Summit_2009/Schedule/Day_1#Changing_PC_.26_Mobile_Landscape.3B_Why_Linux_will_play_a_Critical_Role Changing PC &amp;amp; Mobile Landscape; Why Linux will play a Critical Role]&#039;&#039;&#039;  by Jim Zemlin, Executive Director @ Linux Foundation&lt;br /&gt;
&lt;br /&gt;
11:30  &#039;&#039;&#039;Break&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
11:45    &#039;&#039;&#039;[http://wiki.maemo.org/Maemo_Summit_2009/Schedule/Day_1#Nokia_Nseries_Devices_on_Maemo Nokia Nseries Devices on Maemo]&#039;&#039;&#039; by Jose-Luis Martinez Merino, VP, Marketing @ Nokia&lt;br /&gt;
&lt;br /&gt;
12:15    &#039;&#039;&#039;[http://wiki.maemo.org/Maemo_Summit_2009/Schedule/Day_1#Harmattan_Highlights_-_Developer_Opportunities Harmattan Highlights - Developer Opportunities]&#039;&#039;&#039; by Janne Heikkinen, Director - Maemo Product Planning @ Nokia &lt;br /&gt;
&lt;br /&gt;
13:00  &#039;&#039;&#039;Lunch - Maemo Expo opens&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
14:15  &#039;&#039;&#039;[http://wiki.maemo.org/Maemo_Summit_2009/Schedule/Day_1#Why_the_Maemo_Community_matters_to_Nokia Why the Maemo Community matters to Nokia]&#039;&#039;&#039; - Alan &amp;quot;[http://maemo.org/profile/view/qole/ Qole]&amp;quot; Bruce of [[Community Council|Maemo Community Council]] interviewing Ari Jaaksi, VP - Maemo Devices @ Nokia&lt;br /&gt;
&lt;br /&gt;
15:00      &#039;&#039;&#039;Expert streams&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time&lt;br /&gt;
! Track 1 - &#039;&#039;chair: Anthony Fabbricino&#039;&#039;&lt;br /&gt;
! Track 2 - &#039;&#039;chair: John Loughney&#039;&#039;&lt;br /&gt;
! Track 3 - &#039;&#039;chair: Quim Gil&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 15:00 - 15:25 &lt;br /&gt;
| &#039;&#039;&#039;UI design of Maemo 5 apps&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Annu-Maaria Nivala, UX team, Digia&#039;&#039;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&#039;&#039;&#039;UX panel&#039;&#039;&#039; &lt;br /&gt;
&#039;&#039;Moderated by: [http://maemo.org/profile/view/timsamoff Tim Samoff], Maemo Council,&#039;&#039;&lt;br /&gt;
&#039;&#039;with Harri Kiljander, Director Maemo UX Design and Martin Schüle, Principal Designer Maemo 5&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Cross-platform with Qt - live&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Ariya Hidayat, Software Engineer, Nokia&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 15:30 - 15:55 &lt;br /&gt;
| &#039;&#039;&#039;Developing widgets on Maemo 5 - showcase Foreca Weather&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Juha Järvi, Software Designer, Foreca&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;[http://wiki.maemo.org/Maemo_Summit_2009/Schedule/Day_1#Mer_-_how_the_community_innovates Mer - how the community innovates]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Carsten Munk, Lead Developer, Mer project&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 16.00 - 16.25 &lt;br /&gt;
| &#039;&#039;&#039;Developing apps with Qt for Maemo5&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Kate Alhola, Forum Nokia, Chief Guru on Maemo&lt;br /&gt;
| &#039;&#039;&#039;Firefox on Maemo&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Stuart Parmenter, Director of Engineering, Mozilla&#039;&#039;&lt;br /&gt;
| | &#039;&#039;&#039;Your foundation for open-source innovation:  TI’s OMAP processor-based Zoom platform&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Ameet Suri, Texas Instruments&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 16.30 - 16.55 &lt;br /&gt;
| &#039;&#039;&#039;Developing apps with Qt on Harmattan&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Ville Lavonius, Product Manager Developer Offering, Nokia&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Present and future of Maemo digital marketing&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Isko Salminen, Production Manager, Activeark &lt;br /&gt;
&#039;&#039;and Jussi Mäkinen, Maemo Marketing, Nokia&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Feedservice and plug-ins development in Maemo 5&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Mikko Levonmaa, Ixonos&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 17.00 - 17.25 &lt;br /&gt;
| &#039;&#039;&#039;Developing apps with Nokia Web Runtime&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Santtu Ahonen, Head of Developer Offering, Nokia&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Biz apps on Maemo&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Kari Pikkarainen, Product Manager Productivity, Nokia&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Harmattan Architecture Overview&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Juha Tukkinen, Principal Engineer, Architecture and Sys, Nokia&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 17.30 - 18.00 &lt;br /&gt;
| &#039;&#039;&#039;Developer Support for Maemo by Forum Nokia&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Matt Collins, Director, Forum Nokia Marketing&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Skype on Maemo&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Mark Douglas, Mobile Product Manager, Skype&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Porting an OpenGL game to GL ES&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Oliver Mcfadden, Software Engineer, Nokia&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
20:00    &#039;&#039;&#039;Maemo Party&#039;&#039;&#039; coordinated by Jussi Mäkinen.&lt;br /&gt;
&lt;br /&gt;
=== [[/Day 2 | Saturday, October 10]] ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time&lt;br /&gt;
! Track 1&lt;br /&gt;
! Track 2&lt;br /&gt;
! Track 3&lt;br /&gt;
! BOFs/Workshops&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 9.00  &lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; align=&amp;quot;center&amp;quot; | Doors Open&lt;br /&gt;
|- &lt;br /&gt;
| 10.00 - 10.15 &lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; align=&amp;quot;center&amp;quot; | &#039;&#039;&#039;Welcome to Community days&#039;&#039;&#039;&amp;lt;br/&amp;gt;&#039;&#039;Maemo Community Council&#039;&#039;&lt;br /&gt;
|- &lt;br /&gt;
| 10.15 - 10:45 &lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; align=&amp;quot;center&amp;quot; | &#039;&#039;&#039;Keynote: Ton Roosendaal, the Blender Foundation&#039;&#039;&#039;&lt;br /&gt;
|- &lt;br /&gt;
| 10.45 - 11:00&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; align=&amp;quot;center&amp;quot; | Coffee-break&lt;br /&gt;
|- &lt;br /&gt;
| 11.00 - 11.25 &lt;br /&gt;
| [[/Day 2#Designing_UI_for_Maemo_5 | &#039;&#039;&#039;Designing UI for Maemo 5&#039;&#039;&#039;]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Mox Soini&#039;&#039;&lt;br /&gt;
| [[/Day 2#PyQt_application_development_on_Maemo | &#039;&#039;&#039;PyQt application development on Maemo&#039;&#039;&#039;]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Attila Csipa&#039;&#039;&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot; | [[/Day 2#Getting_started_session | &#039;&#039;&#039;Getting started session&#039;&#039;&#039;]]&amp;lt;br /&amp;gt;&#039;&#039;Daniel Wilms and others&#039;&#039;&lt;br /&gt;
| BOF&lt;br /&gt;
|-&lt;br /&gt;
| 11.30 - 11.55 &lt;br /&gt;
| [[/Day 2#Personalizing_your_Maemo_5_device | &#039;&#039;&#039;Personalizing your Maemo 5 device&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&#039;&#039;Hartti Suomela&#039;&#039;&lt;br /&gt;
| [[/Day 2#Canola_application_and_framework_for_rich_GUI | &#039;&#039;&#039;Canola application and framework for rich GUI&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Gustavo Sverzut Barbieri&#039;&#039;&lt;br /&gt;
| BOF&lt;br /&gt;
|-&lt;br /&gt;
| 12.00 - 12.25 &lt;br /&gt;
| [[/Day 2#Modest.2C_email_client_for_Fremantle | &#039;&#039;&#039;Modest, email client for Fremantle&#039;&#039;&#039;]] &amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Sergio Villar, Jose Dapena&#039;&#039;&lt;br /&gt;
| [[/Day_2#Introducing_the_Harmattan_UI_framework | &#039;&#039;&#039;Introducing the Harmattan UI framework&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Tomas Junnonen&#039;&#039;&lt;br /&gt;
| [[/Day 2#Maemomm:_Maemo_with_C.2B.2B_and_a_Gtkmm_flavour | &#039;&#039;&#039;Maemomm: Maemo with C++ and a Gtkmm flavour&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;David King&#039;&#039;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | [[/Day 2#Extras.2Fautobuilder.2Finterfaces_round-table | &#039;&#039;&#039;Extras/autobuilder/interfaces round-table&#039;&#039;&#039;]]&lt;br /&gt;
|-&lt;br /&gt;
| 12.30 - 12.55 &lt;br /&gt;
| [[/Day_2#Maemo_Co-creation | &#039;&#039;&#039;Maemo Co-Creation Showcase&#039;&#039;&#039;]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Jussi Mäkinen&#039;&#039;&lt;br /&gt;
| [[/Day 2#Creating_packages_for_the_Maemo_platform | &#039;&#039;&#039;Creating packages for the Maemo platform&#039;&#039;&#039;]] &amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Jeremiah Foster&#039;&#039;&lt;br /&gt;
| [[/Day 2#Developments_in_The_Qt_WebKit_Integration | &#039;&#039;&#039;Developments in The Qt WebKit Integration&#039;&#039;&#039;]] &amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Kenneth Rohde Christiansen&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 13.00 - 14.30 &lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; align=&amp;quot;center&amp;quot; | Lunch&lt;br /&gt;
|-&lt;br /&gt;
| 14.30 - 15.25&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | &#039;&#039;&#039;[[/Lightning talks | Lightning talks]]&#039;&#039;&#039;, 5 min each &lt;br /&gt;
# [[/Lightning talks#Giving_Great_Presentations | &#039;&#039;&#039;Giving Great Presentations&#039;&#039;&#039;]] - &#039;&#039;Dave Neary&#039;&#039;&lt;br /&gt;
# [[/Lightning talks#Development_Nirvana:_How_Maemo_Application_Development_Should_Be | &#039;&#039;&#039;Development Nirvana: How Maemo Application Development Should Be&#039;&#039;&#039;]] - &#039;&#039;Andrew Flegg&#039;&#039;&lt;br /&gt;
# [[/Lightning talks#Feedhandler_-_Integrating_RSS_newsreaders_with_the_browser | &#039;&#039;&#039;Feedhandler - Integrating RSS newsreaders with the browser&#039;&#039;&#039;]] - &#039;&#039;Thomas Perl&#039;&#039;&lt;br /&gt;
# [[/Lightning talks#python-mafw:_MAFW_framework_for_Python_developers | &#039;&#039;&#039;python-mafw: MAFW framework for Python developers&#039;&#039;&#039;]] - &#039;&#039;Andrea Grandi&#039;&#039;&lt;br /&gt;
# [[/Lightning talks#DVCS.3F_git.3F_-_How_does_that_work_then.3F | &#039;&#039;&#039;DVCS? git? - How does that work then?&#039;&#039;&#039;]] - &#039;&#039;David Greaves&#039;&#039;&lt;br /&gt;
# [[/Lightning_talks#BlueMaemo_-_Bluetooth_HID_mouse_.26_keyboard_for_Maemo | &#039;&#039;&#039;BlueMaemo - Bluetooth HID mouse &amp;amp; keyboard for Maemo&#039;&#039;&#039;]] - &#039;&#039;Valério Valério&#039;&#039;&lt;br /&gt;
# [[/Lightning_talks#Continous_Integration_with_CruiseControl_and_Scratchbox | &#039;&#039;&#039;Continous Integration with CruiseControl and Scratchbox&#039;&#039;&#039;]] - &#039;&#039;Jani Mikkonen&#039;&#039;&lt;br /&gt;
# [[/Lightning_talks#Conboy.2C_Tomboy_and_Snowy | &#039;&#039;&#039;Conboy, Tomboy and Snowy&#039;&#039;&#039;]] - &#039;&#039;Cornelius Hald&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 15:25 - 15:45&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; align=&amp;quot;center&amp;quot; | Break&lt;br /&gt;
|-&lt;br /&gt;
| 15.45 - 16.10 &lt;br /&gt;
| [[/Day 2#GUPnP_and_Rygel:_The_UPnP.2FDLNA_solution_for_Maemo | &#039;&#039;&#039;GUPnP and Rygel: The UPnP/DLNA solution for Maemo&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Zeeshan Ali&#039;&#039;&lt;br /&gt;
| [[/Day 2#Adapting_GNOME_applications_to_Maemo_Fremantle | &#039;&#039;&#039;Adapting GNOME applications to Maemo Fremantle&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Joaquim Rocha&#039;&#039;&lt;br /&gt;
| [[/Day 2#Contributing_with_Git_.26_Gitorious | &#039;&#039;&#039;Contributing with Git &amp;amp; Gitorious&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;Johan Sørensen&lt;br /&gt;
| [[/Day_2#High-resolution_image_processing_on_Maemo_devices | &#039;&#039;&#039;High-resolution image processing on Maemo devices&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Alexander Bokovoy&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 16.15 - 16.40 &lt;br /&gt;
| [[/Day 2#Mer:_A_year_after| &#039;&#039;&#039;Mer: A year after&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Carsten Valdemar Munk&#039;&#039;&lt;br /&gt;
| [[/Day_2#Intelligent_Usage_of_Fremantle_Location_Framework_For_Location-aware_Applications | &#039;&#039;&#039;Intelligent Usage of Fremantle Location Framework For Location-aware Applications&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Quanyi Sun&#039;&#039;&lt;br /&gt;
| [[/Day 2#Hildon_toolkit_for_Fremantle | &#039;&#039;&#039;Hildon toolkit for Fremantle&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Alberto Garcia, Claudio Saavedra&#039;&#039;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | [[/Day_2#Git_hands-on_workshop | &#039;&#039;&#039;Git hands-on workshop&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;David Greaves&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 16.45 - 17.10 &lt;br /&gt;
| [[/Day 2#maemo.org_Bug_Management | &#039;&#039;&#039;maemo.org Bug Management&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Andre Klapper&#039;&#039;&lt;br /&gt;
| [[/Day 2#Go-to_market_opportunities_for_mobile_application_developers | &#039;&#039;&#039;Go-to market opportunities for mobile application developers&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Boaz Zilberman&#039;&#039;&lt;br /&gt;
| [[/Day_2#Tracker:_Dial_M_for_Metadata | &#039;&#039;&#039;Tracker: Dial M for Metadata&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Ivan Frade, Iridian Kiiskinen&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 17.10 - 17.30 &lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; align=&amp;quot;center&amp;quot; | Break&lt;br /&gt;
|-&lt;br /&gt;
| 17.30 - 17.55 &lt;br /&gt;
| [[/Day 2#Canola:_Beyond_the_media_playback | &#039;&#039;&#039;Canola: Beyond the media playback&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&#039;&#039;Eduardo Lima&#039;&#039;&lt;br /&gt;
| [[/Day 2#Hands-on_development_with_Nokia_Web_Runtime | &#039;&#039;&#039;Hands-on development with Nokia Web Runtime&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Oren Levine&#039;&#039;&lt;br /&gt;
| [[/Day 2#The_Qt_Mobility_Project | &#039;&#039;&#039;The Qt Mobility Project&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&#039;&#039;Alex Luddy&#039;&#039;&lt;br /&gt;
| [[/Day_2#Hacking_officially_unsupported_Bluetooth_profiles_to_work_in_Fremantle | &#039;&#039;&#039;Hacking officially unsupported Bluetooth profiles to work in Fremantle&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Johan Hedberg&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 18.00 - 18.25 &lt;br /&gt;
| [[/Day_2#The_Maemo_5_Address_Book | &#039;&#039;&#039;The Maemo 5 Address Book&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Mathias Hasselmann, Travis Reiter&#039;&#039;&lt;br /&gt;
| [[/Day 2#Publishing_your_software_through_maemo.org | &#039;&#039;&#039;Publishing your software through maemo.org&#039;&#039;&#039;]] &amp;lt;br/&amp;gt;&#039;&#039;Niels Breet&#039;&#039;&lt;br /&gt;
| [[/Day_2#Maemo_and_oFono | &#039;&#039;&#039;Maemo and oFono&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Aki Niemi, Rémi Denis-Courmont&#039;&#039;&lt;br /&gt;
| [[/Day_2#The_future_of_GTK.2B.2FHildon_in_Maemo_Harmattan | &#039;&#039;&#039;The future of GTK+/Hildon in Maemo Harmattan&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Alberto Garcia, Claudio Saavedra&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== [[/Day 3 | Sunday, October 11]] ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time&lt;br /&gt;
! Track 1&lt;br /&gt;
! Track 2&lt;br /&gt;
! Track 3&lt;br /&gt;
! BOFs/Workshops&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 9.00  &lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; align=&amp;quot;center&amp;quot; | Doors Open&lt;br /&gt;
|- &lt;br /&gt;
| 10.00 - 10.45 &lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; align=&amp;quot;center&amp;quot; | [[/Day 3#Fremantle_Stars_showcase | &#039;&#039;&#039;Fremantle Stars showcase&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;Including liqbase, OSM2Go, Mauku, OMWeather, eCoach and more.&lt;br /&gt;
|- &lt;br /&gt;
| 10.45 - 11.00 &lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; align=&amp;quot;center&amp;quot; | Coffee-break&lt;br /&gt;
|- &lt;br /&gt;
| 11.00 - 11.25 &lt;br /&gt;
| [[/Day 3#Maemo_Browser_for_power_users  | &#039;&#039;&#039;Maemo Browser for power users&#039;&#039;&#039;]]&amp;lt;br/&amp;gt; &#039;&#039;Mikko Korpelainen&#039;&#039;&lt;br /&gt;
| [[/Day 3#JamMo_-_Jamming_mobile_game_for_children | &#039;&#039;&#039;JamMo - Jamming mobile game for children&#039;&#039;&#039;]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Aapo Rantalainen&#039;&#039;&lt;br /&gt;
| [[/Day_3#Building_for_Mer | &#039;&#039;&#039;Building for Mer&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&#039;&#039;David Greaves&#039;&#039;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | [[/Day 3#Hackathon:_Integrating_Canola_with_Fremantle | &#039;&#039;&#039;Canola Fremantle Hackathon&#039;&#039;&#039;]]&lt;br /&gt;
|-&lt;br /&gt;
| 11.30 - 11.55 &lt;br /&gt;
| [[/Day 3#Maemo_documentation_co-creation  | &#039;&#039;&#039;Maemo documentation co-creation &#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Dave Neary&#039;&#039;&lt;br /&gt;
| [[/Day_3#Designing_QT_application_for_Maemo_5_and_Maemo_6 | &#039;&#039;&#039;Designing QT application for Maemo 5 and Maemo 6&#039;&#039;&#039;]] &amp;lt;br/&amp;gt;&#039;&#039;Sergiy Dubovik, Ian Monroe&#039;&#039;&lt;br /&gt;
| [[/Day 3#Writing_plugins_for_MAFW | &#039;&#039;&#039;Writing plugins for MAFW &#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&#039;&#039;Iago Toral&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 12.00 - 12.25 &lt;br /&gt;
| [[/Day_3#Mobile_Office_based_on_KOffice_Open_Source_Project | &#039;&#039;&#039;Mobile Office based on KOffice Open Source Project&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Suresh Chande&#039;&#039;&lt;br /&gt;
| [[/Day 3#Handheld_Glom:_Easy_database_applications | &#039;&#039;&#039;Handheld Glom: Easy database applications&#039;&#039;&#039;]] &amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Murray Cumming&#039;&#039;&lt;br /&gt;
| [[/Day_3#Maemo_Platform_Security:_Principles_and_Concepts | &#039;&#039;&#039;Maemo Platform Security: Principles and Concepts&#039;&#039;&#039;]] &amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Elena Reshetova&#039;&#039;&lt;br /&gt;
|[[/Day_3#Extending_the_Hildon_desktop | &#039;&#039;&#039;Extending the Hildon desktop &#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Marc Ordinas i Llopis&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 12.30 - 12.55 &lt;br /&gt;
| [[/Day 3#Towards_painless_and_quality_translations | &#039;&#039;&#039;Towards painless and quality translations&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;Dimitris Glezos&lt;br /&gt;
| [[/Day_3#10_Tips_for_Designing_Mobile_Widgets | &#039;&#039;&#039;10 Tips for Designing Mobile Widgets&#039;&#039;&#039;]] &amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Rajesh Lal&#039;&#039;&lt;br /&gt;
| [[/Day_3#Telepathy_on_Maemo | &#039;&#039;&#039;Telepathy on Maemo&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Marco Barisione&#039;&#039;&lt;br /&gt;
| [[/Day_3#What_to_do_about_.2Fopt_in_Fremantle | &#039;&#039;&#039;What to do about /opt in Fremantle&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Marius Vollmer&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 13.00 - 14.30 &lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; align=&amp;quot;center&amp;quot; | Lunch&lt;br /&gt;
|-&lt;br /&gt;
| 14.30 - 15.25&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | &#039;&#039;&#039;[[/Lightning talks | Lightning talks]]&#039;&#039;&#039;, 5 min each &lt;br /&gt;
# [[/Lightning talks#Issues_on_adapting_Maemo_4_application_to_Maemo_5 | &#039;&#039;&#039;Issues on adapting Maemo 4 application to Maemo 5&#039;&#039;&#039;]] - &#039;&#039;Aniello del Sorbo&#039;&#039;&lt;br /&gt;
# [[/Lightning_talks#How_to_speed_up_your_Maemo_application_development | &#039;&#039;&#039;How to speed up your Maemo application development&#039;&#039;&#039;]] - &#039;&#039;Raul Herbster&#039;&#039;&lt;br /&gt;
# [[/Lightning talks#GSoC_presentation:_BitTorrent_plugin_for_Canola | &#039;&#039;&#039;GSoC presentation: BitTorrent plugin for Canola&#039;&#039;&#039;]] - &#039;&#039;Lauri Võsandi&#039;&#039;&lt;br /&gt;
# [[/Lightning talks#GSoC_Project_presentation:_Picasa_plugin_for_Canola | &#039;&#039;&#039;GSoC Project presentation: Picasa plugin for Canola&#039;&#039;&#039;]] - &#039;&#039;Andrei Mirestean&#039;&#039;&lt;br /&gt;
# [[/Lightning_talks#Behaviour-Driven_Development_on_Maemo | &#039;&#039;&#039;Behaviour-Driven Development on Maemo&#039;&#039;&#039;]] - &#039;&#039;Jose Teixeira&#039;&#039;&lt;br /&gt;
# [[/Lightning_talks#N900_HW_architecture_overview_.26_power_management | N900 HW architecture overview &amp;amp; power management]] - &#039;&#039;Igor Stoppa&#039;&#039;&lt;br /&gt;
# [[/Lightning_talks#From_corporations_to_communities:_responsible_and_effective_engagement | &#039;&#039;&#039;From corporations to communities: responsible and effective engagement&#039;&#039;&#039;]] - &#039;&#039;Randall &amp;quot;Texrat&amp;quot; Arnold&#039;&#039;&lt;br /&gt;
# [[/Lightning talks#Mer_from_a_user.27s_perspective | &#039;&#039;&#039;Mer from a user&#039;s perspective&#039;&#039;&#039;]] - &#039;&#039;Tomasz Dominikowski&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 15.30 - 16.00 &lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; align=&amp;quot;center&amp;quot; | Grand Finale&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
See [[../Submissions | the submission queue]] for current proposals under consideration.&lt;br /&gt;
&lt;br /&gt;
== Registration ==&lt;br /&gt;
&lt;br /&gt;
[http://maemo.org/news/events/registrations/register/e840196271eb11deb15535a00f6d72187218 Register for the summit]:&lt;br /&gt;
&lt;br /&gt;
Free entrance! Registration needed to grant you food, drinks, a maemo.org shirt and a seat.&lt;br /&gt;
&lt;br /&gt;
300 participants expected: developers and engaged users, community members and curious newcomers, from many countries.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Principles for defining the schedule ===&lt;br /&gt;
* Defaulting to three tracks for Users (Transformatorhuis - big), App Developers (Machinegebow - medium) and Platform Developers (De Kapel - small). Exceptions can be made of course but the idea is that each profile should have a suggested session to go at any time.&lt;br /&gt;
* Keynotes and Lightning Sessions are organized in Transformatorhuis without other activities at the same time.&lt;br /&gt;
* The tiny lovely Oostelijk Meterhuis is available for longer sessions with 25 people or less e.g. a 2h workshop. De Kapel can also serve that purpose if needed.&lt;/div&gt;</summary>
		<author><name>192.100.124.218</name></author>
	</entry>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=Documentation/Maemo_5_Developer_Guide/Development_Environment/Maemo_Programming_Environments&amp;diff=6905</id>
		<title>Documentation/Maemo 5 Developer Guide/Development Environment/Maemo Programming Environments</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=Documentation/Maemo_5_Developer_Guide/Development_Environment/Maemo_Programming_Environments&amp;diff=6905"/>
		<updated>2009-09-11T06:57:01Z</updated>

		<summary type="html">&lt;p&gt;192.100.124.218: QT -&amp;gt; Qt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Maemo Programming Environments =&lt;br /&gt;
&lt;br /&gt;
This is place holder for Maemo Programming Environments documentation &lt;br /&gt;
&lt;br /&gt;
Current official high level Diablo documentation for Python and C/C++ environments is available from maemo.org [http://maemo.org/development/documentation/programming_languages/ Maemo Programming Languages] page. This page is still valid also for Fremantle.&lt;br /&gt;
&lt;br /&gt;
Current &amp;quot;under development&amp;quot; versions of the documentation can be found from these Garage projects:&lt;br /&gt;
* [http://pymaemo.garage.maemo.org/ Maemo Python support] &lt;br /&gt;
* [http://maemomm.garage.maemo.org/ Maemo C++ support]&lt;br /&gt;
* [http://qt4.garage.maemo.org/ Maemo Qt 4.5 support]&lt;br /&gt;
** [http://wiki.maemo.org/Qt4Hildon#Getting_started Getting Started]&lt;br /&gt;
** [http://wiki.maemo.org/Qt4Hildon/Maemo_differences_from_QT4.5 Maemo 5.0 Differences from Standard Qt 4.5 (new document to be created)]&lt;br /&gt;
** [http://wiki.maemo.org/Qt4Hildon#Porting_a_Qt_application_in_Maemo Porting Qt Application to Maemo]&lt;br /&gt;
** [http://wiki.maemo.org/Packaging_a_Qt_application Packaging Qt Application]&lt;br /&gt;
** [[Documentation/Maemo 5 Developer Guide/Development Environment/Maemo Programming Environments/Using accelerometer by Qt application | Using accelerometer by Qt application]]&lt;/div&gt;</summary>
		<author><name>192.100.124.218</name></author>
	</entry>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=Eclipse_integration/ReleaseNotes_prefinal&amp;diff=9393</id>
		<title>Eclipse integration/ReleaseNotes prefinal</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=Eclipse_integration/ReleaseNotes_prefinal&amp;diff=9393"/>
		<updated>2009-09-10T07:18:15Z</updated>

		<summary type="html">&lt;p&gt;192.100.124.218: Release notes for prefinal&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Release Notes for Maemo Eclipse Integration Edition 2 PreFinal release =&lt;br /&gt;
&lt;br /&gt;
This Maemo Eclipse Integration Edition 2 PreFinal release supports Maemo Diablo 4.1.2 development environment with N800, N810 and N810 Wimax Edition devices and Maemo Fremantle 5.0 Beta 2 development environment N900 device.&lt;br /&gt;
&lt;br /&gt;
Possible feedback can be sent to eclipse-integration@maemo.org.&lt;br /&gt;
&lt;br /&gt;
== Release Information ==&lt;br /&gt;
&lt;br /&gt;
* Project: Maemo Eclipse Integration Edition 2&lt;br /&gt;
* Version: PreFinal&lt;br /&gt;
* Baselines: Maemo Diablo 4.1.2 SDK and Maemo Fremantle 5.0 SDK Beta 2&lt;br /&gt;
* Date: 2009-09-11&lt;br /&gt;
&lt;br /&gt;
== General Information ==&lt;br /&gt;
&lt;br /&gt;
Eclipse Integration components now support the latest Debian based Linuxes, Windows XP SP3, Windows Vista SP2 and Mac OS X 10.5 Leopard all with x86/32bit architectures. &lt;br /&gt;
&lt;br /&gt;
Support for other than above listed operating systems has not been tested but should be possible if operating system supports Eclipse IDE, if equal functionality to Host PC Connectivity is available (for example most Linuxes have) and if operating system is able to run Maemo SDK Virtual Image (in practise supports either QEmu, VMWare or VirtualBox).&lt;br /&gt;
&lt;br /&gt;
Maemo Eclipse Integration includes the following parts:&lt;br /&gt;
&lt;br /&gt;
* Eclipse 3.4.2 IDE (Ganymede SP2) for C/C++ Developers (official release from eclipse.org)&lt;br /&gt;
* Maemo PC Connectivity (Diablo extras-devel and Fremantle extras-devel repository versions) &lt;br /&gt;
* Host PC Connectivity for Linux, Windows XP/Vista and Mac OS X (PC Connectivity Garage project versions)&lt;br /&gt;
* Maemo ESbox plugin for Eclipse v2.0.0M6 (Esbox Garage project version)&lt;br /&gt;
* Maemo Pluthon plugin for Eclipse v2.0.0M6 (Pluthon Garage project version)&lt;br /&gt;
* Maemo Mica plugin framework for Eclipse v2.0.0M6 (Mica Garage project version)&lt;br /&gt;
* Maemo SDK Virtual Images v0.11 (to support other than Debian based Linuxes)&lt;br /&gt;
* Maemo C/C++ and Python programming language support (Diablo extras and Fremantle extras-devel repository versions)&lt;br /&gt;
* Maemo Flasher-3.5 Tool Beta versions&lt;br /&gt;
   &lt;br /&gt;
Detailed list of new features implemented to Maemo Eclipse Integration since previous Beta 2 release together with feature plan for final release is here http://wiki.maemo.org/Eclipse_integration.&lt;br /&gt;
&lt;br /&gt;
Known issues for this PreFinal release are here http://wiki.maemo.org/Eclipse_integration/KnownIssues_prefinal.&lt;br /&gt;
&lt;br /&gt;
This Release Notes file is here http://wiki.maemo.org/Eclipse_integration/ReleaseNotes_prefinal.&lt;br /&gt;
&lt;br /&gt;
Basic product information and installation instructions for all PreFinal components can be found from their http://garage.maemo.org projects.&lt;br /&gt;
&lt;br /&gt;
== Operating Systems Supported ==&lt;br /&gt;
&lt;br /&gt;
* full support for same x86 32-bit Linux Ubuntu distributions that Maemo SDK releases support (Ubuntu Intrepid fully tested)&lt;br /&gt;
* good support for x86 32-bit Windows XP with SP3 and Vista with SP2, Cygwin used as Linux porting framework&lt;br /&gt;
* good support for x86 32-bit Mac OS X 10.5 Leopard, MacPorts used as Linux porting framework&lt;br /&gt;
* see instructions how to setup and configure different operating system support: http://pc-connectivity.garage.maemo.org/2nd_edition/installation.html and http://esbox.garage.maemo.org/2nd_edition/virtual_machines.html&lt;br /&gt;
&lt;br /&gt;
== Eclipse IDE for C/C++ Developers ==&lt;br /&gt;
&lt;br /&gt;
* product information: http://www.eclipse.org/&lt;br /&gt;
* Eclipse download if separate download wanted: http://www.eclipse.org/downloads/&lt;br /&gt;
* list of generic Eclipse components included: http://mica.garage.maemo.org/2nd_edition/documentation.html&lt;br /&gt;
* ESbox and Pluthon installation packages available from Garage include all needed Eclipse components for the release, including Eclipse 3.4.2 IDE itself (recommended installation method for this Beta 2 release)&lt;br /&gt;
** http://esbox.garage.maemo.org/2nd_edition/installation_product.html&lt;br /&gt;
** http://pluthon.garage.maemo.org/2nd_edition/installation_product.html&lt;br /&gt;
* For already installed Eclipse 3.4.2 IDE ESBox and Pluthon environments can be upgraded using Maemo Eclipse Update Site (not fully tested or supported installation method for Beta 2 release)&lt;br /&gt;
** http://esbox.garage.maemo.org/2nd_edition/installation_update_site.html &lt;br /&gt;
** http://pluthon.garage.maemo.org/2nd_edition/installation_update_site.html&lt;br /&gt;
&lt;br /&gt;
== Maemo PC Connectivity ==&lt;br /&gt;
&lt;br /&gt;
* product information: http://pc-connectivity.garage.maemo.org/2nd_edition&lt;br /&gt;
* installation instructions for Maemo device and Linux, Windows and Mac OS X host PCs: http://pc-connectivity.garage.maemo.org/2nd_edition/installation.html&lt;br /&gt;
* documentation and configuration instructions: http://pc-connectivity.garage.maemo.org/2nd_edition/documentation.html&lt;br /&gt;
* main features:&lt;br /&gt;
** support for Linux (Debian based), Windows (XP and Vista) and Mac OS X (Leopard)&lt;br /&gt;
** connectivity support with USB, BlueTooth and WLAN for Linux, Windows and Mac OS X &lt;br /&gt;
** SSH, SFTP, VNC and RSYNC support for Linux, Windows and Mac OS X host PCs&lt;br /&gt;
** NFS and SSHFS mount support (with Linux and Mac OS X) and Samba disk mount support (with Windows) between Maemo device and host PC&lt;br /&gt;
** IP Forwarding support between Maemo device and host PC &lt;br /&gt;
** ZeroConf support with Avahi to automatically configure connectivity between host PC and Maemo device&lt;br /&gt;
** support for configuring Maemo device with control panel applet and status bar plugin &lt;br /&gt;
** support for easy storing, restoring and switching connectivity environments/configurations&lt;br /&gt;
** support for both Diablo and Fremantle SDK environments&lt;br /&gt;
** support for VNC clients (native and Eclipse VNC plugin clients) &lt;br /&gt;
** native SBRSH (Scratchbox Remote Shell) support for Linux, Win and Mac OS X to launch applications from SDK to run on Maemo device&lt;br /&gt;
** SFTP support to access Maemo device file system with host PC GUI clients &lt;br /&gt;
** support for installing Host PC Connectivity components for Linux, Windows and Mac OS X host PCs &lt;br /&gt;
** easy installation using either single click installation or apt-tool in Maemo device to install from Maemo Diablo or Fremantle extras-devel repository&lt;br /&gt;
** specific applet can be used to easily switch between predefined connectivity environments/configuration &lt;br /&gt;
** Maemo PC Connectivity functionality is independent from Eclipse IDE e.g. usable also without installing Eclipse IDE&lt;br /&gt;
** Maemo PC Connectivity environment settings can be backed up with osso-backup application (for example before reflashing Maemo device)&lt;br /&gt;
&lt;br /&gt;
== Maemo ESBox plugin for Eclipse ==&lt;br /&gt;
&lt;br /&gt;
* product information: http://esbox.garage.maemo.org/2nd_edition&lt;br /&gt;
* installation and configuration instructions for Maemo device and Linux, Windows and Mac OS X host PCs: http://esbox.garage.maemo.org/2nd_edition/installation.html&lt;br /&gt;
* main features:&lt;br /&gt;
** easy PC-Device connectivity with Maemo PC Connectivity&lt;br /&gt;
** C, C++ and Python programming language support&lt;br /&gt;
** templates for the most common type of Maemo applications&lt;br /&gt;
** full support for Linux and good support for Windows and Mac OS X host PCs&lt;br /&gt;
** full connectivity support for Maemo device with SSH, RSE and SBRSH from Linux, Windows and Mac OS X &lt;br /&gt;
** support for both Diablo and Fremantle SDKs &lt;br /&gt;
** import Eclipse projects from Maemo SDK and Debian packages &lt;br /&gt;
** C/C++ debug/optimized configuration support &lt;br /&gt;
** support for P2 update site for ESbox &lt;br /&gt;
** installation wizard for Scratchbox, Diablo SDK and Fremantle SDK &lt;br /&gt;
** installation wizard for Maemo SDK development environments (like Python, C/C++, Flasher-3.5, OProfile, ...)&lt;br /&gt;
** build application with x86 target&lt;br /&gt;
** launch and test application on x86 target&lt;br /&gt;
** debug application on x86 target&lt;br /&gt;
** search for memory leaks using Valgrind on x86 target&lt;br /&gt;
** cross-compile application with ARMEL target &lt;br /&gt;
** debug application on the Maemo device using GDB or GDB Server&lt;br /&gt;
** performance test on Maemo device using OProfile&lt;br /&gt;
** Maemo installation package creation wizard&lt;br /&gt;
** Maemo Flasher-3.5 tool wizard&lt;br /&gt;
&lt;br /&gt;
== Maemo Pluthon plugin for Eclipse ==&lt;br /&gt;
&lt;br /&gt;
* product information: http://pluthon.garage.maemo.org/2nd_edition&lt;br /&gt;
* installation and configuration instructions for Maemo device and Linux, Windows and Mac OS X host PCs: http://pluthon.garage.maemo.org/2nd_edition/installation.html&lt;br /&gt;
* main features:&lt;br /&gt;
** easy PC-Device connectivity with Maemo PC Connectivity&lt;br /&gt;
** Python programming language support&lt;br /&gt;
** templates for the most common type of Maemo applications&lt;br /&gt;
** develop application directly on the Maemo device&lt;br /&gt;
** debug application on the Maemo device using pyDev&lt;br /&gt;
** full support for Linux, Windows and Mac OS X host PCs&lt;br /&gt;
** full connectivity support for Maemo device with SSH, RSE and SBRSH from Linux, Windows and Mac OS X &lt;br /&gt;
** support for P2 update site for Pluthon &lt;br /&gt;
** installation wizard to setup Python development environment for host PC and Maemo device&lt;br /&gt;
** Maemo installation package creation wizard&lt;br /&gt;
** Maemo Flasher-3.5 tool wizard&lt;br /&gt;
** Updated Fremantle Python tutorial and manual http://pymaemo.garage.maemo.org/documentation_fremantle.html &lt;br /&gt;
&lt;br /&gt;
== Maemo Mica plugin framework for Eclipse ==&lt;br /&gt;
&lt;br /&gt;
* product information: http://mica.garage.maemo.org/2nd_edition&lt;br /&gt;
* documentation for developers who want to develop their own Maemo plugins using Mica: http://mica.garage.maemo.org/2nd_edition/documentation.html&lt;br /&gt;
* main features:&lt;br /&gt;
** general framework for Maemo Eclipse plugin development&lt;br /&gt;
** uses latest stable Eclipse components (compatible with Eclipse Ganymede SR2)&lt;br /&gt;
** Scratchbox 1 installer wizard and SDK installer wizard &lt;br /&gt;
** support for both Diablo and Fremantle SDK &lt;br /&gt;
** supports SSH, RSE and SBRSH for Linux, Windows and Mac OS X &lt;br /&gt;
** Flasher-3.5 wizard for flashing Maemo device from Eclipse IDE &lt;br /&gt;
** support for P2 update site&lt;br /&gt;
** Mica Garage site releases, documentation and services usable for plugin developers&lt;br /&gt;
&lt;br /&gt;
== Maemo SDK Virtual Image ==&lt;br /&gt;
&lt;br /&gt;
* product information: http://maemovmware.garage.maemo.org/2nd_edition&lt;br /&gt;
* installation and configuration instructions: http://maemovmware.garage.maemo.org/2nd_edition/installation.html&lt;br /&gt;
* images can be downloaded from here: http://tablets-dev.nokia.com/maemo-dev-env-downloads.php&lt;br /&gt;
* instructions how to upgrade Ubuntu Desktop images from Beta 1 to Beta 2 level are here: http://maemovmware.garage.maemo.org/2nd_edition/update_maemo_vm.html&lt;br /&gt;
* main features:&lt;br /&gt;
** Ubuntu Intrepid Server based Maemo SDK Virtual Image for Linux, Windows and Mac OS X &lt;br /&gt;
*** full support for VMWare and QEMU virtualization technologies &lt;br /&gt;
*** do-it-yourself support for VirtualBox &lt;br /&gt;
*** server image includes basic Ubuntu Intrepid Server and Host PC Connectivity environment preconfigured and Maemo Diablo and Fremantle Development Environments can be installed with Eclipse installation wizard automatically &lt;br /&gt;
*** server image does not include installers for GuestAdditions (for VirtualBox) and OpenVMTools (for VMWare) but they can be installed separatelly is needed as instructed here http://maemovmware.garage.maemo.org/2nd_edition/update_maemo_vm.html&lt;br /&gt;
** Ubuntu Intrepid Desktop based Maemo SDK Virtual Image for Linux, Windows and Mac OS X &lt;br /&gt;
*** out-of-the-box ready Ubuntu Intrepid Desktop based image&lt;br /&gt;
*** desktop image includes fully configured Maemo Diablo Development Environment for Eclipse and Fremantle Development Environment can be installed with Eclipse installation wizard automatically &lt;br /&gt;
*** desktop image preinstalled ESbox Beta 1 environment can be updated to Beta 2 level with these instructions http://maemovmware.garage.maemo.org/2nd_edition/update_maemo_vm.html&lt;br /&gt;
*** desktop image includes installers for GuestAdditions (for VirtualBox) and OpenVMTools (for VMWare) &lt;br /&gt;
** installer/tool to configure Maemo SDK Virtual Images for VirtualBox usage &lt;br /&gt;
** instructions how to use SDK Virtual Images with Eclipse IDE on different operating systems: http://esbox.garage.maemo.org/2nd_edition/virtual_machines.html&lt;br /&gt;
&lt;br /&gt;
== Maemo C++ and Python programming language support ==&lt;br /&gt;
&lt;br /&gt;
* product information: http://maemo.org/development/documentation/programming_languages/&lt;br /&gt;
* C++ documentation: http://maemomm.garage.maemo.org/docs/&lt;br /&gt;
* Python documentation: http://pymaemo.garage.maemo.org/&lt;br /&gt;
&lt;br /&gt;
* By default, the Maemo development environment supports C programming language but you may add support for other programming languages. Instructions how to install Maemo support for C++ and Python application development can be found from here http://maemo.org/development/documentation/programming_languages/.&lt;br /&gt;
&lt;br /&gt;
* The Maemo development environment defines helpful meta packages that install all the components and tools for C++ and Python development for the for Maemo SDK and Maemo device. Maemo Eclipse Integration will install these meta packages automatically into your environment if you have not done it already when you create your first C++ or Python project.&lt;br /&gt;
&lt;br /&gt;
== Known Issues ==&lt;br /&gt;
&lt;br /&gt;
* latest version for Beta 2 known issues is here http://wiki.maemo.org/Eclipse_integration/KnownIssues_beta2 (feel free to update this wiki page)&lt;br /&gt;
* Diablo 4.1.2 device requires kernel patch from here http://tablets-dev.nokia.com/maemo-dev-env-downloads.php to be flashed to the Maemo device for USB Networking to work with Windows host PC &lt;br /&gt;
* Diablo 4.1.2 device requires hildon-desktop patch to be installed to the Maemo device from pc-connectivity Garage repository (see instructions from here http://pc-connectivity.garage.maemo.org/beta1/installation.html) for VNC client to work on host PC &lt;br /&gt;
* Ubuntu Desktop based Maemo SDK Virtual Image (out-of-the-box ready development environment) includes Beta 1 level Eclipse and PC Connectivity environment but can be easily updated to Beta 2 level with these instructions http://maemovmware.garage.maemo.org/2nd_edition/update_maemo_vm.html&lt;br /&gt;
* Updating process from Eclipse Update Site (update from beta 1 to beta 2) may not work for some plug-ins&lt;br /&gt;
&lt;br /&gt;
== Installation Notices ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notice 1&#039;&#039;&#039;: If only Maemo Pluthon plugin for Eclipse is used for Python on device development it does not reguire Maemo SDK installation on host PC.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notice 2&#039;&#039;&#039;: All configurations require Maemo PC Connectivity to be installed and configured to work to the Maemo device and Host PC Connectivity to the host PC BEFORE installation of Eclipse components can be started. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notice 3&#039;&#039;&#039;: All Eclipse components can be installed from ESbox or Pluthon garage projects, PC Connectivity from Diablo extras-devel or Fremantle extras-devel repository and SDK Virtual Images and Flasher-3.5 tool from maemo development environment download page http://tablets-dev.nokia.com/maemo-dev-env-downloads.php&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notice 4&#039;&#039;&#039;: Eclipse 3.4.2 IDE for C/C++ Developers and all needed generic Eclipse plugins and ESbox and Pluthon plugins can be installed together with installation packages available from ESbox and Pluthon garage projects.  &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Feedback can be sent to eclipse-integration@maemo.org&lt;/div&gt;</summary>
		<author><name>192.100.124.218</name></author>
	</entry>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=Maemo_Summit_2009/Submissions&amp;diff=21062</id>
		<title>Maemo Summit 2009/Submissions</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=Maemo_Summit_2009/Submissions&amp;diff=21062"/>
		<updated>2009-09-09T15:38:39Z</updated>

		<summary type="html">&lt;p&gt;192.100.124.218: /* Talk submissions for Maemo Summit 2009 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Talk submissions for Maemo Summit 2009 =&lt;br /&gt;
&lt;br /&gt;
Please add your submission to this page at the bottom. Have a look at the [[../Call for content| Call for content]] for some guidelines.&lt;br /&gt;
&lt;br /&gt;
Please follow the template for each presentation that you would like to submit. Thanks!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Maemo Summit community content committee:&lt;br /&gt;
* Dave Neary&lt;br /&gt;
* Jamie Bennett&lt;br /&gt;
* Valério Valério&lt;br /&gt;
&#039;&#039;&lt;br /&gt;
== Submission template ==&lt;br /&gt;
&lt;br /&gt;
Copy &amp;amp; paste the following template, and fill in the details specific to your presentation.&lt;br /&gt;
&lt;br /&gt;
=== Talk Title Goes Here ===&lt;br /&gt;
*Author name and contact details&lt;br /&gt;
*Intended audience (users/application developers/platform developers)&lt;br /&gt;
*Talk type (presentation/lightning talk)&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: Abstract goes here. A two paragraph overview of the proposed talk content is sufficient.&lt;br /&gt;
*Additional Information (optional)&lt;br /&gt;
: Additional information on extra equipment you might need or something else goes here&lt;br /&gt;
*Author bio&lt;br /&gt;
: A short (1 paragraph) note about who the author is goes here&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== Talk Submissions ==&lt;br /&gt;
&lt;br /&gt;
=== PySide: Python for Qt And Automatic Bindings Generation ===&lt;br /&gt;
&lt;br /&gt;
* Marcelo Lira dos Santos - marcelo.lira@openbossa.org - setanta on #maemo&lt;br /&gt;
* Intended audience: application developers/platform developers&lt;br /&gt;
* Talk type: presentation&lt;br /&gt;
* Abstract/description:&lt;br /&gt;
: The Python bindings for the Maemo Platform provided by PyMaemo are an all-time favorite among the Maemo developer community. Python must keep up with the recent addition of Qt to the Nokia offering for Maemo developers.&lt;br /&gt;
: PySide are the Python bindings for Qt framework developed by INdT (Instuto Nokia de Tecnologia) [http://www.indt.org.br], and recently released under a LGPL license. The PySide [http://www.pyside.org] bindings target not only the desktop but were conceived to provide Qt for Python on the Maemo platform.&lt;br /&gt;
: Qt being a huge library, the task of creating bindings for any high level language must be automated as much as possible, while retaining the developer ability to adjust details to satisfy the particular target language demands. To tackle this problem, a binding generator for Python was developed based on QtScript Generator from Qt Development Frameworks. Developers of bindings for other Qt-based libraries could also benefit of this automated generation scheme.&lt;br /&gt;
: This talk will present PySide, describe its characteristics, show its current status on Maemo Platform and where the project is headed to. The binding generation tool will also be explained, as well as the common problems that arise when wrapping C++ libraries to high level languages such as Python.&lt;br /&gt;
&lt;br /&gt;
*Author bio&lt;br /&gt;
: Marcelo is an active developer of PySide and PyMaemo projects at INdT and has been involved with Maemo apps development since N800. Nowadays he is working with automatic binding generation for C++ based libraries, like Qt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== From corporations to communities: responsible and effective engagement ===&lt;br /&gt;
*Randall &amp;quot;Texrat&amp;quot; Arnold, fabricator at cynicalsigns dot com, http://tabulacrypticum.wordpress.com&lt;br /&gt;
*Intended audience is Nokia PR; Nokia Maemo team; Maemo developer, tester and superuser community; other interested parties&lt;br /&gt;
*Talk type : best practice/lessons learned presentation&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: The presentation covers the following subject areas: general best practices in the area of corporate/community relations and how they apply to Maemo, as well as possibly a post mortem of lessons learned vis a vis community outreach from both Maemo and user perspectives (via interviews).&lt;br /&gt;
&lt;br /&gt;
: This will not be a &amp;quot;what Nokia did wrong&amp;quot; as much as it is a clear, appropriate guide for future public relations in the murky world of commercial enterprise meets open source development; a path forward&lt;br /&gt;
.&lt;br /&gt;
*Author bio&lt;br /&gt;
: I am a former Nokia employee (Alliance factory and DSNM trade customer logistics) who was a principal on the US launch team for the N800.  As Quality Engineer I managed the delivery of 200 devices to CES 2007 and ensured quality on devices delivered until their production relocation to Mexico.  I became one of the first Nokia employees to reach out to the new community of tablet software developers and have continued in a voluntary representative role.  I also tested internal applications such as the enterprise support suite (including VPN) and field tested the N810 WiMAX Edition tablet.  I also developed a prototype mobile auditing solution using the internet tablets.  Today I still cover the internet tablets and their applications at http://tabulacrypticum.wordpress.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Midgard2: Content repository for your tablet and the web ===&lt;br /&gt;
*Author: Henri Bergius, henri.bergius at iki dot fi&lt;br /&gt;
*Intended audience: Application Developers&lt;br /&gt;
*Talk type: presentation&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: Midgard2 is an Open Source Content Repository providing an objectified view to the data and services surrounding it. At the basic level it abstracts the database access (SQLite, MySql, PostgreSQL) but this is only where it all starts. Serialization &amp;amp; replication, managing own storage objects, multi-process access to data are all covered. The fully object-oriented (GObject-oriented) API allows you to focus on the data, not the database syntax, regardless of what programming language you are working with. Midgard&#039;s content repository services allow you to easily write applications that keep their data synchronized between tablets, web and user&#039;s desktop computers.&lt;br /&gt;
&lt;br /&gt;
*Author bio&lt;br /&gt;
: Henri Bergius is a former Viking based in the Nordic country of Finland. When he is not exploring the cave cities of Georgia or running with bulls in Pamplona, Bergie works on web services built on top of the Midgard toolkit. His company Nemein provides web solutions for several major companies in Finland and abroad. After half decade of regular web development, Henri got involved with free software in 1999 when he coordinated the public release of the Midgard content management system. Since then he has been actively working on integrating standards like RSS and Microformats into the system and traveling the world advocating for interoperation between open source CMSs. Henri&#039;s current passion is combining web services, mobile applications and socially produced geographical data together to build useful tools for travelers and mobile companies. To this end he is working on the GeoClue library that allows mobile Linux applications to easily become geo-aware. When duties allow, Bergie escapes the crunch to explore the hills of Lapland or rides his classic motorcycle. He is also an amateur pilot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Developing applications using Plasma ===&lt;br /&gt;
* Artur Duque de Souza - asouza AT kde DOT org / morpheuz AT gmail DOT com&lt;br /&gt;
* Intended audience: application developers&lt;br /&gt;
*Talk type: presentation&lt;br /&gt;
*Abstract/description&lt;br /&gt;
&lt;br /&gt;
: KDE4 brought a new concept of desktop called &amp;quot;Plasma&amp;quot; where everything is a &amp;quot;live object&amp;quot;. To achieve this, a library called libplasma was created and this is a very powerful library that enables any application to create modular and rich UIs. During this presentation I&#039;ll talk more about libplasma and how it can help the developer to create more attractive and rich UIs easily.&lt;br /&gt;
&lt;br /&gt;
*Author bio&lt;br /&gt;
&lt;br /&gt;
: Linux user since 1997, MoRpHeUz (a.k.a. Artur de Souza) worked for IBM (Linux Technology Center) and currently is working for INdT as a researcher at the openBossa stream, developing open-source solutions for mobile devices. One of the main core developers of Canola 2, now he works on bringing rich UIs to Qt applications.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Extras/autobuilder/interfaces round-table ===&lt;br /&gt;
*Author: Ed Bartosh, Alexander Kanevskiy, Niels Breet&lt;br /&gt;
*Intended audience: application and platform developers &lt;br /&gt;
*Talk type: round-table&lt;br /&gt;
*Room: Oostelijk Meterhuis&lt;br /&gt;
*Duration: 1 hour&lt;br /&gt;
*Abstract/description&lt;br /&gt;
:The purpose of this round-table is to discuss future features that can be added to autobuilder and all Extras related services. We want to gather opinions and see what the needs of developers are. Suggestions about enhancements or new features are appreciated. &lt;br /&gt;
*Author bio&lt;br /&gt;
: Ed Bartosh and Alexander Kanevskiy both work at Nokia, in their spare time they work on the autobuilder for Extras. Niels Breet is the maemo.org webmaster, working on web services available at maemo.org.&lt;br /&gt;
&lt;br /&gt;
=== Designing Emulators for Mobile Devices ===&lt;br /&gt;
*Marat Fayzullin - RST38h on #maemo &lt;br /&gt;
*Intended audience: application developers&lt;br /&gt;
*Talk type: presentation&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: Computer system emulation has been known for years. Recent revolution in mobile hardware makes it possible to run usable emulators on mobile devices, but some problems still remain. Limited performance, lack of proper controls, and widely varying screen sizes make it difficult to provide users with proper experience. This presentation will describe how the above problems can be worked around.&lt;br /&gt;
*Author bio&lt;br /&gt;
: Marat Fayzullin is an independent application developer specializing in software emulation of computer hardware. He has authored and maintains eight different emulators (some free, others commercial) for multiple platforms, from MSDOS to Maemo and Symbian. See http://fms.komkon.org/ for details.&lt;br /&gt;
&lt;br /&gt;
=== WebKit Community: How It Works ===&lt;br /&gt;
*Ariya Hidayat, ariya dot hidayat at nokia dot com&lt;br /&gt;
*Intended audience: application developers&lt;br /&gt;
*Talk type: introduction and workshop&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: WebKit has evolved over time into one of the most compelling HTML rendering engine currently in use. As an open-source project it stands out because of its size and because of the special collaboration between volunteer developers and companies. &lt;br /&gt;
: This presentation is not so much a presentation in the classic sense but planned as an introduction to the team rules of the WebKit project, e.g. how to create patches, ask for review, get in contact with the developer, etc. It will be followed by an extended question and answers session that should cover the most important and mots common questions.&lt;br /&gt;
&lt;br /&gt;
*Author bio&lt;br /&gt;
: Ariya is a software engineer at Nokia, Qt Development Frameworks in Oslo. He is an open-source advocate for almost a decade, writing code for projects like KDE, WebKit and of course Qt. He posts lots of examples for Qt Labs Blogs on a biweekly basis, under the pretext of attracting more developers to use Qt (and hopefully grabbing the Most Prolific Blogger award). Ariya obtained his PhD in the field of high-speed optical communications. He speaks English with an Asian accent and cannot play any musical instruments.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 10 Tips for Designing Mobile Widgets ===&lt;br /&gt;
*Author: [http://maemo.org/profile/view/rajeshlal Rajesh Lal], rajesh.lal at nokia dot com&lt;br /&gt;
*Intended audience: Widget Developers/Mobile Application Developers&lt;br /&gt;
*Talk type: Presentation&lt;br /&gt;
&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: Do you know why only 1 percent of Mobile Widgets are successful ? What makes some widgets thrive and used by millions, and others with equal functionality bite the dust ? Make no mistakes, design of a widget is not about graphics, color or fonts. This presentation will demystify this &#039;invisible&#039; layer below the surface with 10 pragmatic tips. The tips will uncover some of the most useful, and often ignored standard design principles and how to apply them in a mobile context.&lt;br /&gt;
&lt;br /&gt;
*Author bio&lt;br /&gt;
: Rajesh lal is a Designer, Author, Technology Evangelist, and a Senior Nokia Engineer with a decade of experience in Information Technology. He has been involved in Widget design and development for last 5 years and have authored multiple books on Gadgets and Widgets. He has experience in a variety of Mobile devices, namely Sony Mylo, Window&#039;s Mobile, Apple&#039;s Iphone, Nokia S60 and Maemo devices. His blog on design and user experience can be found at http://abcofdesign.com&lt;br /&gt;
&lt;br /&gt;
=== Conboy, Tomboy and Snowy ===&lt;br /&gt;
*[http://maemo.org/profile/view/conny Cornelius Hald]&lt;br /&gt;
*Intended audience: users and application developers&lt;br /&gt;
*Talk type: lightning talk&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: Short introduction to Conboy and the new (not yet released) features, which are online synchronization with Tomboy/Gnote via the Snowy web service and plug-in support. Could include a demo if wanted.&lt;br /&gt;
&lt;br /&gt;
*Author bio&lt;br /&gt;
: I&#039;m a computer science student looking for distraction while writing my final thesis.&lt;br /&gt;
&lt;br /&gt;
=== Behaviour-Driven Development on Maemo ===&lt;br /&gt;
*[http://wiki.maemo.org/User:Japolinario Jose Teixeira] &lt;br /&gt;
*Intended audience: Application developers &amp;amp; platform developers &lt;br /&gt;
*Talk type: Kightning talk&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: &#039;&#039;&#039;What&#039;&#039;&#039; is Behaviour-Driven Development (BDD)? &#039;&#039;&#039;Why&#039;&#039;&#039; BDD matters to Maemo developers? And &#039;&#039;&#039;How&#039;&#039;&#039; to setup and open-source BDD tool-chain for Maemo ? And, finally &#039;&#039;&#039;How&#039;&#039;&#039; to make BDD funnier on a N810 device with [http://www.ruby-lang.org Ruby], [http://rspec.info/ Rspec], [http://cukes.info/ Cucumber] and [http://doc.trolltech.com/4.5/qtscript.html QtScript]. &lt;br /&gt;
* I already made a deep dive in the subject. I try now to capture the attention of others to follow. &lt;br /&gt;
*Author bio&lt;br /&gt;
: [http://wiki.maemo.org/User:Japolinario Jose Teixeira] participated in the development of the Maemo Application Framework as Nokia trainer. Right now, he his a full-time researcher, teaching IT in a Finnish university as well. On his free-time, he contributes to open-source projects and incite many others to to the same.&lt;br /&gt;
&lt;br /&gt;
=== Maemo and oFono  ===&lt;br /&gt;
&lt;br /&gt;
* By Rémi Denis-Courmont (remi dot denis-courmont at nokia dot com) and Aki Niemi (aki dot niemi at nokia dot com)&lt;br /&gt;
* For platform developers&lt;br /&gt;
* Presentation (could be shortened to lightning talk but...)&lt;br /&gt;
* oFono is an open source telephony stack for Linux. It provides an easy-to-use D-Bus interface and has support for a variety of cellular modem hardware, including Nokia cellular modems. The project is a joint effort between Intel and Nokia.&lt;br /&gt;
&lt;br /&gt;
:How is it different from earlier attempts? What is it all about? What can you do with Ofono and Nokia N900?&lt;br /&gt;
&lt;br /&gt;
* For demoing purpose, the presenter will need to use his own laptop and Nokia devices.&lt;br /&gt;
&lt;br /&gt;
* Rémi Denis-Courmont currently works for Nokia, where he maintains the Phonet stack for the Linux kernel, the Maemo platform and the Ofono project. Outside Nokia, he&#039;s also been involved in the VideoLAN project.&lt;br /&gt;
&lt;br /&gt;
=== Maemo Platform Security: Consepts, Architecture, Implementation ===&lt;br /&gt;
&lt;br /&gt;
* Elena Reshetova - elena.reshetova@nokia.com&lt;br /&gt;
* Intended audience: users, application developers, platform developers&lt;br /&gt;
* Talk type: presentation&lt;br /&gt;
* Abstract/description:&lt;br /&gt;
&lt;br /&gt;
: The purpose of the Platform Security in the Maemo platform is to protect the owner of a Maemo-powered device from getting her personal, private data and passwords from being stolen and used for malicious purposes, to prevent a malware from misusing a device and incurring costs on user, to prevent a user from accidentally breaking the device and to make the platform meet the requirements set by such third party software that requires a safe execution environment. &lt;br /&gt;
&lt;br /&gt;
: The main design goal is to have all this accomplished without any significant penalty in terms of performance or usability, by using established open standards and having as much of the implementation open-sourced as possible. Another goal is to minimize an entry barrier for 3rd party programmers by reusing the existing Linux programming environment and introducing only needed additional features. &lt;br /&gt;
&lt;br /&gt;
: The presentation will cover the main concepts, architecture choices and implementation of the Maemo Platform Security.&lt;br /&gt;
&lt;br /&gt;
*Author bio&lt;br /&gt;
: Elena is a senior security engineer and representative of Maemo security team at the Maemo summit. The current task of the team is development of the Maemo Security FW. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hacking officially unsupported Bluetooth profiles to work in Fremantle ===&lt;br /&gt;
*Johan Hedberg - johan.hedberg at nokia.com&lt;br /&gt;
*Intended audience: users,application developers,platform developers&lt;br /&gt;
*Talk type: presentation&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: Fremantle doesn&#039;t come with out-of-the-box support of several Bluetooth profiles that are could in theory be supported with upstream components. These include e.g. DUN, HID and PAN. The presentation intends to be a hands-on session demonstrating how to enable support for these profiles through the act of changing config files and random hacking. &lt;br /&gt;
*Author bio&lt;br /&gt;
: Johan has been a software developer in the Maemo team ever since the first Maemo device, the 770 came out. His main responsibility area is Bluetooth and through active upstream involvement he has become a co-maintainer of BlueZ.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Continous Integration with CruiseControl and Scratchbox ===&lt;br /&gt;
*Jani Mikkonen, ext dash jani dot mikkonen at nokia dot com, rasjani @ #mer&lt;br /&gt;
*Application developers / QA People&lt;br /&gt;
*Lightning talk / Can extend to presentation if interest demands&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: Topic is about how to harness Cruisecontrol to full build / packaging / testing and repository update cycle for development teams big and small.&lt;br /&gt;
*Additional Information (optional)&lt;br /&gt;
: Projector for showing live demostration and own laptop.&lt;br /&gt;
*Author bio&lt;br /&gt;
: Jani has been working with Maemo since Diablo/N800 on various tasks from maintenance to testing and is a long time linux user with developer &amp;amp; bofh background.&lt;br /&gt;
&lt;br /&gt;
=== Intelligent Usage of Fremantle Location Framework For Location-aware Applications ===&lt;br /&gt;
&lt;br /&gt;
*Quanyi Sun&lt;br /&gt;
*Intended audience: users/application developers/platform developers&lt;br /&gt;
*Talk type: presentation&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: Abstract:&lt;br /&gt;
Location API is part of the Maemo 5 (Fremantle) API offerings. The location API for the first time now has introduced concept of hybrid locationing methods, i.e., supports of multiple locationing technologies seemlessly in a transparent way. In addition to the benefits of hybrid locationing methods, there are some issues, e.g., power consumption, that must be handled properly in order to maximize the benefits. &lt;br /&gt;
&lt;br /&gt;
This presentation intends to hightlight the major issues when using location API, and provides best recommendations for developing location-aware applications in Maemo 5. &lt;br /&gt;
&lt;br /&gt;
*Author bio:&lt;br /&gt;
Quanyi Sun has been working for Maemo as technical product owner in location area, with 13+ years of industrial experiences, e.g., in mission-critical realtime onboard software project in my early days.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tracker: Dial M for Metadata ===&lt;br /&gt;
*Ivan Frade &amp;lt;ifrade@gnome.org&amp;gt;&lt;br /&gt;
*Intended audience: application developers/platform developers&lt;br /&gt;
*Presentation&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: Tracker is a freedesktop project (with GNOME roots) included in the maemo platform for the first time in maemo5. In fremantle it is a simple index engine with support for basic metadata. For harmattan Tracker takes a great leap forward becoming a central storage for *user information*. The important data for the user (contacts, messages, multimedia, ...) will not only be stored in an application independent way, but also in a &amp;quot;linkable&amp;quot; format. This enables a new user experience: it makes it possible to integrate contacts everywhere, mix IM/email/twitter history of a contact, and so on.&lt;br /&gt;
&lt;br /&gt;
In this presentation, Application developers can see how data is linked and obtained from Tracker to enrich their applications; platform contributors can learn how to integrate new information sources.&lt;br /&gt;
&lt;br /&gt;
*Author bio&lt;br /&gt;
: Ivan Frade is an open source enthusiast who works in nokia building a data management solution for maemo based on tracker. On his free time, helps the world to tag properly their Mp3s with his pet-project.&lt;br /&gt;
&lt;br /&gt;
=== Mobile Office based on KOffice Open Source Project===&lt;br /&gt;
*Suresh Chande, suresh.chande at nokia.com&lt;br /&gt;
*Intended audience: Application &amp;amp; Platform developers&lt;br /&gt;
*Talk type: Presentation&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: We will present here Mobile Office project developed for Fremantle based on KOffice, a QT based open source project.&lt;br /&gt;
&lt;br /&gt;
*Additional Information (optional)&lt;br /&gt;
: We will demonstrate Mobile Office (KOffice) running on the N900.&lt;br /&gt;
&lt;br /&gt;
*Author bio&lt;br /&gt;
: Suresh Chande, works for Nokia  in Device R&amp;amp;D(Maemo ) as Technical Product Owner for the Office Domain. Suresh has worked at Nokia Research Center for over 11 years focusing Mobile Business and Enterprise Application research. His vision is to have Office tools free for use by everybody.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Designing QT application for Maemo 5 and Maemo 6===&lt;br /&gt;
*Sergiy Dubovik, sergiy dot dubovik &amp;quot;at sign&amp;quot; nokia point com&lt;br /&gt;
*Intended audience: application developers&lt;br /&gt;
*Talk type: presentation&lt;br /&gt;
*Abstract/description&lt;br /&gt;
&lt;br /&gt;
:How application developers should design their applications to work on Maemo 5 and Maemo 6 platforms? Which widgets will be supported? How to handle possible virtual keyboard? Where to store application settings? Which QT services will be available? These questions will be answered.&lt;br /&gt;
&lt;br /&gt;
*Additional information on extra equipment you might need or something else goes here&lt;br /&gt;
:Just a projector&lt;br /&gt;
&lt;br /&gt;
*Author bio&lt;br /&gt;
:Sergiy Dubovik is a senior software developer working in Nokia, designing and developing UI frameworks for Harmattan program.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== MicroB browser, why it fastest &amp;quot;Mozilla based&amp;quot; browser, features, extensions for MicroB ===&lt;br /&gt;
*Oleg Romashin, oleg dot romashin at nokia dot com / Nagineni Sudarsana&lt;br /&gt;
*Intended audience: application developers&lt;br /&gt;
*Talk type: presentation&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: Maemo 5, MicroB browser currently is fastest &amp;quot;Mozilla based&amp;quot; browser available on mobile platform. &lt;br /&gt;
: This presentation is some sort of description of architecture and principles of MicroB browser, why it so fast, what is difference between MicroB and Fennec browser.&lt;br /&gt;
: Also some description about how to write extensions for MicroB browser.&lt;br /&gt;
&lt;br /&gt;
=== ContextKit - context awareness for Maemo and everybody else ===&lt;br /&gt;
*Author: Marius Vollmer &amp;lt;marius.vollmer@nokia.com&amp;gt;&lt;br /&gt;
*Intended audience: application developers/platform developers)&lt;br /&gt;
*Type: presentation&lt;br /&gt;
*Abstract&lt;br /&gt;
A lot of information is available from sensors and other sources that can make applications more &#039;aware&#039; of the situation that a mobile device is in. The current location is an obvious example.&lt;br /&gt;
&lt;br /&gt;
A new ContextKit collects these information about the environment of a device, combines many of them into something more abstract and exports it all in the form of simple key/value pairs to applications and other consumers. A long list of &#039;standard&#039; properties is defined.&lt;br /&gt;
&lt;br /&gt;
This presentation introduces the ContextKit to application and platform developers.&lt;br /&gt;
&lt;br /&gt;
*Author bio:&lt;br /&gt;
Marius moved to Helsinki some uncounted years ago to work for Nokia on the Maemo platform. Now he has to re-learn C++ and compensates for this by finally learning Perl as well.&lt;/div&gt;</summary>
		<author><name>192.100.124.218</name></author>
	</entry>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=Maemo_Summit_2009/Submissions&amp;diff=21083</id>
		<title>Maemo Summit 2009/Submissions</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=Maemo_Summit_2009/Submissions&amp;diff=21083"/>
		<updated>2009-09-08T13:23:41Z</updated>

		<summary type="html">&lt;p&gt;192.100.124.218: Add oFono presentation proposal&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Talk submissions for Maemo Summit 2009 =&lt;br /&gt;
&lt;br /&gt;
Please add your submission to this page at the bottom. Have a look at the [[../Call for content| Call for content]] for some guidelines.&lt;br /&gt;
&lt;br /&gt;
Please follow the template for each presentation that you would like to submit. Thanks!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Maemo Summit community content committee:&lt;br /&gt;
* Dave Neary&lt;br /&gt;
* Jamie Bennett&lt;br /&gt;
* Valério Valério&lt;br /&gt;
&#039;&#039;&lt;br /&gt;
== Submission template ==&lt;br /&gt;
&lt;br /&gt;
Copy &amp;amp; paste the following template, and fill in the details specific to your presentation.&lt;br /&gt;
&lt;br /&gt;
=== Talk Title Goes Here ===&lt;br /&gt;
*Author name and contact details&lt;br /&gt;
*Intended audience (users/application developers/platform developers)&lt;br /&gt;
*Talk type (presentation/lightning talk)&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: Abstract goes here. A two paragraph overview of the proposed talk content is sufficient.&lt;br /&gt;
*Additional Information (optional)&lt;br /&gt;
: Additional information on extra equipment you might need or something else goes here&lt;br /&gt;
*Author bio&lt;br /&gt;
: A short (1 paragraph) note about who the author is goes here&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== Talk Submissions ==&lt;br /&gt;
&lt;br /&gt;
=== Hacking officially unsupported Bluetooth profiles to work in Fremantle ===&lt;br /&gt;
*Johan Hedberg - johan.hedberg at nokia.com&lt;br /&gt;
*Intended audience: users,application developers,platform developers&lt;br /&gt;
*Talk type: presentation&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: Fremantle doesn&#039;t come with out-of-the-box support of several Bluetooth profiles that are could in theory be supported with upstream components. These include e.g. DUN, HID and PAN. The presentation intends to be a hands-on session demonstrating how to enable support for these profiles through the act of changing config files and random hacking. &lt;br /&gt;
*Author bio&lt;br /&gt;
: Johan has been a software developer in the Maemo team ever since the first Maemo device, the 770 came out. His main responsibility area is Bluetooth and through active upstream involvement he has become a co-maintainer of BlueZ.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Harmattan Platform Security: Consepts, Architecture, Implementation ===&lt;br /&gt;
*Elena Reshetova - elena.reshetova@nokia.com &lt;br /&gt;
*Intended audience: users, application developers, platform developers &lt;br /&gt;
*Talk type: presentation &lt;br /&gt;
*Abstract/description &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The presentation will cover the main concepts, architecture choices and implementation of the Harmattan Platform Security.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Author bio &lt;br /&gt;
: Elena is a Senior Security Engineer at Nokia and representative of the Maemo Security team at the Maemo Summit. The current activity of the team is developing the Security Framework for the Harmattan Program.&lt;br /&gt;
&lt;br /&gt;
=== PySide: Python for Qt And Automatic Bindings Generation ===&lt;br /&gt;
&lt;br /&gt;
* Marcelo Lira dos Santos - marcelo.lira@openbossa.org - setanta on #maemo&lt;br /&gt;
* Intended audience: application developers/platform developers&lt;br /&gt;
* Talk type: presentation&lt;br /&gt;
* Abstract/description:&lt;br /&gt;
: The Python bindings for the Maemo Platform provided by PyMaemo are an all-time favorite among the Maemo developer community. Python must keep up with the recent addition of Qt to the Nokia offering for Maemo developers.&lt;br /&gt;
: PySide are the Python bindings for Qt framework developed by INdT (Instuto Nokia de Tecnologia) [http://www.indt.org.br], and recently released under a LGPL license. The PySide [http://www.pyside.org] bindings target not only the desktop but were conceived to provide Qt for Python on the Maemo platform.&lt;br /&gt;
: Qt being a huge library, the task of creating bindings for any high level language must be automated as much as possible, while retaining the developer ability to adjust details to satisfy the particular target language demands. To tackle this problem, a binding generator for Python was developed based on QtScript Generator from Qt Development Frameworks. Developers of bindings for other Qt-based libraries could also benefit of this automated generation scheme.&lt;br /&gt;
: This talk will present PySide, describe its characteristics, show its current status on Maemo Platform and where the project is headed to. The binding generation tool will also be explained, as well as the common problems that arise when wrapping C++ libraries to high level languages such as Python.&lt;br /&gt;
&lt;br /&gt;
*Author bio&lt;br /&gt;
: Marcelo is an active developer of PySide and PyMaemo projects at INdT and has been involved with Maemo apps development since N800. Nowadays he is working with automatic binding generation for C++ based libraries, like Qt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== From corporations to communities: responsible and effective engagement ===&lt;br /&gt;
*Randall &amp;quot;Texrat&amp;quot; Arnold, fabricator at cynicalsigns dot com, http://tabulacrypticum.wordpress.com&lt;br /&gt;
*Intended audience is Nokia PR; Nokia Maemo team; Maemo developer, tester and superuser community; other interested parties&lt;br /&gt;
*Talk type : best practice/lessons learned presentation&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: The presentation covers the following subject areas: general best practices in the area of corporate/community relations and how they apply to Maemo, as well as possibly a post mortem of lessons learned vis a vis community outreach from both Maemo and user perspectives (via interviews).&lt;br /&gt;
&lt;br /&gt;
: This will not be a &amp;quot;what Nokia did wrong&amp;quot; as much as it is a clear, appropriate guide for future public relations in the murky world of commercial enterprise meets open source development; a path forward&lt;br /&gt;
.&lt;br /&gt;
*Author bio&lt;br /&gt;
: I am a former Nokia employee (Alliance factory and DSNM trade customer logistics) who was a principal on the US launch team for the N800.  As Quality Engineer I managed the delivery of 200 devices to CES 2007 and ensured quality on devices delivered until their production relocation to Mexico.  I became one of the first Nokia employees to reach out to the new community of tablet software developers and have continued in a voluntary representative role.  I also tested internal applications such as the enterprise support suite (including VPN) and field tested the N810 WiMAX Edition tablet.  I also developed a prototype mobile auditing solution using the internet tablets.  Today I still cover the internet tablets and their applications at http://tabulacrypticum.wordpress.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Midgard2: Content repository for your tablet and the web ===&lt;br /&gt;
*Author: Henri Bergius, henri.bergius at iki dot fi&lt;br /&gt;
*Intended audience: Application Developers&lt;br /&gt;
*Talk type: presentation&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: Midgard2 is an Open Source Content Repository providing an objectified view to the data and services surrounding it. At the basic level it abstracts the database access (SQLite, MySql, PostgreSQL) but this is only where it all starts. Serialization &amp;amp; replication, managing own storage objects, multi-process access to data are all covered. The fully object-oriented (GObject-oriented) API allows you to focus on the data, not the database syntax, regardless of what programming language you are working with. Midgard&#039;s content repository services allow you to easily write applications that keep their data synchronized between tablets, web and user&#039;s desktop computers.&lt;br /&gt;
&lt;br /&gt;
*Author bio&lt;br /&gt;
: Henri Bergius is a former Viking based in the Nordic country of Finland. When he is not exploring the cave cities of Georgia or running with bulls in Pamplona, Bergie works on web services built on top of the Midgard toolkit. His company Nemein provides web solutions for several major companies in Finland and abroad. After half decade of regular web development, Henri got involved with free software in 1999 when he coordinated the public release of the Midgard content management system. Since then he has been actively working on integrating standards like RSS and Microformats into the system and traveling the world advocating for interoperation between open source CMSs. Henri&#039;s current passion is combining web services, mobile applications and socially produced geographical data together to build useful tools for travelers and mobile companies. To this end he is working on the GeoClue library that allows mobile Linux applications to easily become geo-aware. When duties allow, Bergie escapes the crunch to explore the hills of Lapland or rides his classic motorcycle. He is also an amateur pilot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Developing applications using Plasma ===&lt;br /&gt;
* Artur Duque de Souza - asouza AT kde DOT org / morpheuz AT gmail DOT com&lt;br /&gt;
* Intended audience: application developers&lt;br /&gt;
*Talk type: presentation&lt;br /&gt;
*Abstract/description&lt;br /&gt;
&lt;br /&gt;
: KDE4 brought a new concept of desktop called &amp;quot;Plasma&amp;quot; where everything is a &amp;quot;live object&amp;quot;. To achieve this, a library called libplasma was created and this is a very powerful library that enables any application to create modular and rich UIs. During this presentation I&#039;ll talk more about libplasma and how it can help the developer to create more attractive and rich UIs easily.&lt;br /&gt;
&lt;br /&gt;
*Author bio&lt;br /&gt;
&lt;br /&gt;
: Linux user since 1997, MoRpHeUz (a.k.a. Artur de Souza) worked for IBM (Linux Technology Center) and currently is working for INdT as a researcher at the openBossa stream, developing open-source solutions for mobile devices. One of the main core developers of Canola 2, now he works on bringing rich UIs to Qt applications.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Extras/autobuilder/interfaces round-table ===&lt;br /&gt;
*Author: Ed Bartosh, Alexander Kanevskiy, Niels Breet&lt;br /&gt;
*Intended audience: application and platform developers &lt;br /&gt;
*Talk type: round-table&lt;br /&gt;
*Room: Oostelijk Meterhuis&lt;br /&gt;
*Duration: 1 hour&lt;br /&gt;
*Abstract/description&lt;br /&gt;
:The purpose of this round-table is to discuss future features that can be added to autobuilder and all Extras related services. We want to gather opinions and see what the needs of developers are. Suggestions about enhancements or new features are appreciated. &lt;br /&gt;
*Author bio&lt;br /&gt;
: Ed Bartosh and Alexander Kanevskiy both work at Nokia, in their spare time they work on the autobuilder for Extras. Niels Breet is the maemo.org webmaster, working on web services available at maemo.org.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hackathon: Integrating Canola with Fremantle ===&lt;br /&gt;
*Author: [http://maemo.org/profile/view/etrunko Eduardo Lima (Etrunko)]&lt;br /&gt;
*Intended audience: Application Developers&lt;br /&gt;
*Talk type: Hands-on/Hackathon&lt;br /&gt;
*Duration: All Saturday/Sunday long&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: The idea of this session is to get a reasonable number of people interested in integrating Canola with the new technologies introduced in Fremantle, mostly Tracker and MAFW, together, so we can trace a plan and start getting our hands dirty.&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;Why??&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: Some Canola components were conceived aiming to provide alternate solutions for some Nokia closed-source libraries and others that were not available by the time we started the project (mid-2007, back then we only had the N800 with Bora/Chinook). That&#039;s why we created our own media scanner (lightmediascanner+canolad) and media engine (atabake). Now I think it is time for us to evolve to the new and open solutions provided by Fremantle, yet keeping compatibility with &amp;quot;legacy&amp;quot; platforms, such as Diablo.&lt;br /&gt;
&lt;br /&gt;
: People interested in developing plugins for Canola and/or developing using EFL/PyEFL are more than welcome to join us.&lt;br /&gt;
*Extra equipment&lt;br /&gt;
**&amp;lt;strike&amp;gt;&#039;&#039;Guns, lots of guns.&#039;&#039;&amp;lt;/strike&amp;gt;&lt;br /&gt;
**Brave hacker souls&lt;br /&gt;
**Power outlets galore&lt;br /&gt;
**Internet Connection&lt;br /&gt;
**Whiteboard/Flipchart&lt;br /&gt;
**Coffe&lt;br /&gt;
*Author bio&lt;br /&gt;
: Open Source Software enthusiast, involved with Maemo since the very beginning (mid 2005), and had the opportunity to be part of the first Maemo Community Council. Started porting various GTK+/GNOME applications (Gnumeric, Evince, Abiword, Leafpad, Xournal, etc), to the platform. Worked on the first version of Carman, written in Python + GTK. After that, joined the team developing the Canola media player, coding and maintaining its packages for Maemo since then. Also maintains packages of the Enlightenment Foundation Libraries (EFL) for Maemo. Works for openBossa/INdT, where has been having the opportunity to present and talk about Maemo in events in Brazil and worldwide.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Designing Emulators for Mobile Devices ===&lt;br /&gt;
*Marat Fayzullin - RST38h on #maemo &lt;br /&gt;
*Intended audience: application developers&lt;br /&gt;
*Talk type: presentation&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: Computer system emulation has been known for years. Recent revolution in mobile hardware makes it possible to run usable emulators on mobile devices, but some problems still remain. Limited performance, lack of proper controls, and widely varying screen sizes make it difficult to provide users with proper experience. This presentation will describe how the above problems can be worked around.&lt;br /&gt;
*Author bio&lt;br /&gt;
: Marat Fayzullin is an independent application developer specializing in software emulation of computer hardware. He has authored and maintains eight different emulators (some free, others commercial) for multiple platforms, from MSDOS to Maemo and Symbian. See http://fms.komkon.org/ for details.&lt;br /&gt;
&lt;br /&gt;
=== WebKit Community: How It Works ===&lt;br /&gt;
*Ariya Hidayat, ariya dot hidayat at nokia dot com&lt;br /&gt;
*Intended audience: application developers&lt;br /&gt;
*Talk type: introduction and workshop&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: WebKit has evolved over time into one of the most compelling HTML rendering engine currently in use. As an open-source project it stands out because of its size and because of the special collaboration between volunteer developers and companies. &lt;br /&gt;
: This presentation is not so much a presentation in the classic sense but planned as an introduction to the team rules of the WebKit project, e.g. how to create patches, ask for review, get in contact with the developer, etc. It will be followed by an extended question and answers session that should cover the most important and mots common questions.&lt;br /&gt;
&lt;br /&gt;
*Author bio&lt;br /&gt;
: Ariya is a software engineer at Nokia, Qt Development Frameworks in Oslo. He is an open-source advocate for almost a decade, writing code for projects like KDE, WebKit and of course Qt. He posts lots of examples for Qt Labs Blogs on a biweekly basis, under the pretext of attracting more developers to use Qt (and hopefully grabbing the Most Prolific Blogger award). Ariya obtained his PhD in the field of high-speed optical communications. He speaks English with an Asian accent and cannot play any musical instruments.&lt;br /&gt;
&lt;br /&gt;
===Preparing your Qt Application for Fremantle and Harmattan===&lt;br /&gt;
*Ian Monroe &amp;lt;ian.monroe at collabora.co.uk&amp;gt;&lt;br /&gt;
*Intended audience: application developers&lt;br /&gt;
*Talk type: Presentation/BoF&lt;br /&gt;
*Abstract/description&lt;br /&gt;
:An initial short presentation about Qt on Fremantle, what the Qt platform might look like on Harmattan and the status of the QtMobility project will be followed by a guided audience discussion.&lt;br /&gt;
&lt;br /&gt;
The group discussion will be about the unique issues of developing on this new Qt platform, and the challenges and feasiblity of porting existing desktop applicaitons.&lt;br /&gt;
*Integrating with Tracker&lt;br /&gt;
:*Telepathy&lt;br /&gt;
:*...and other (traditionally Gnome) parts of the Maemo stack.&lt;br /&gt;
*How much existing desktop GUI (if any) can be used on the small touch-screen device? &lt;br /&gt;
*Core/UI separation&lt;br /&gt;
*Developing touch screen UIs&lt;br /&gt;
*Additional Information&lt;br /&gt;
: Non-fixed chairs so that they can be put in a circular fashion (which is best for a BoF when possible).&lt;br /&gt;
*Author bio&lt;br /&gt;
: Ian is a software developer at Collabora Ltd where he works from home in Iowa City, Iowa USA. He has been a developer of the popular desktop music manager Amarok for four years. He is the maintainer of KDE&#039;s video player, Dragon Player.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 10 Tips for Designing Mobile Widgets ===&lt;br /&gt;
*Author: [http://maemo.org/profile/view/rajeshlal Rajesh Lal], rajesh.lal at nokia dot com&lt;br /&gt;
*Intended audience: Widget Developers/Mobile Application Developers&lt;br /&gt;
*Talk type: Presentation&lt;br /&gt;
&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: Do you know why only 1 percent of Mobile Widgets are successful ? What makes some widgets thrive and used by millions, and others with equal functionality bite the dust ? Make no mistakes, design of a widget is not about graphics, color or fonts. This presentation will demystify this &#039;invisible&#039; layer below the surface with 10 pragmatic tips. The tips will uncover some of the most useful, and often ignored standard design principles and how to apply them in a mobile context.&lt;br /&gt;
&lt;br /&gt;
*Author bio&lt;br /&gt;
: Rajesh lal is a Designer, Author, Technology Evangelist, and a Senior Nokia Engineer with a decade of experience in Information Technology. He has been involved in Widget design and development for last 5 years and have authored multiple books on Gadgets and Widgets. He has experience in a variety of Mobile devices, namely Sony Mylo, Window&#039;s Mobile, Apple&#039;s Iphone, Nokia S60 and Maemo devices. His blog on design and user experience can be found at http://abcofdesign.com&lt;br /&gt;
&lt;br /&gt;
=== Conboy, Tomboy and Snowy ===&lt;br /&gt;
*[http://maemo.org/profile/view/conny Cornelius Hald]&lt;br /&gt;
*Intended audience: users and application developers&lt;br /&gt;
*Talk type: lightning talk&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: Short introduction to Conboy and the new (not yet released) features, which are online synchronization with Tomboy/Gnote via the Snowy web service and plug-in support. Could include a demo if wanted.&lt;br /&gt;
&lt;br /&gt;
*Author bio&lt;br /&gt;
: I&#039;m a computer science student looking for distraction while writing my final thesis.&lt;br /&gt;
&lt;br /&gt;
=== Behaviour-Driven Development on Maemo ===&lt;br /&gt;
*[http://wiki.maemo.org/User:Japolinario Jose Teixeira] &lt;br /&gt;
*Intended audience: Application developers &amp;amp; platform developers &lt;br /&gt;
*Talk type: Kightning talk&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: &#039;&#039;&#039;What&#039;&#039;&#039; is Behaviour-Driven Development (BDD)? &#039;&#039;&#039;Why&#039;&#039;&#039; BDD matters to Maemo developers? And &#039;&#039;&#039;How&#039;&#039;&#039; to setup and open-source BDD tool-chain for Maemo ? And, finally &#039;&#039;&#039;How&#039;&#039;&#039; to make BDD funnier on a N810 device with [http://www.ruby-lang.org Ruby], [http://rspec.info/ Rspec], [http://cukes.info/ Cucumber] and [http://doc.trolltech.com/4.5/qtscript.html QtScript]. &lt;br /&gt;
* I already made a deep dive in the subject. I try now to capture the attention of others to follow. &lt;br /&gt;
*Author bio&lt;br /&gt;
: [http://wiki.maemo.org/User:Japolinario Jose Teixeira] participated in the development of the Maemo Application Framework as Nokia trainer. Right now, he his a full-time researcher, teaching IT in a Finnish university as well. On his free-time, he contributes to open-source projects and incite many others to to the same.&lt;br /&gt;
&lt;br /&gt;
=== Maemo and oFono  ===&lt;br /&gt;
&lt;br /&gt;
* By Rémi Denis-Courmont (remi.denis-courmont@nokia.com) and Aki Niemi (aki.niemi@nokia.com)&lt;br /&gt;
* For platform developers&lt;br /&gt;
* Presentation (could be shortened to lightning talk but...)&lt;br /&gt;
* oFono is an open source telephony stack for Linux. It provides an easy-to-use D-Bus interface and has support for a variety of cellular modem hardware, including Nokia cellular modems. The project is a joint effort between Intel and Nokia.&lt;br /&gt;
&lt;br /&gt;
:How is it different from earlier attempts? What is it all about? What can you do with Ofono and Nokia N900?&lt;br /&gt;
&lt;br /&gt;
* For demoing purpose, the presenter will need to use his own laptop and Nokia devices.&lt;br /&gt;
&lt;br /&gt;
* Rémi Denis-Courmont currently works for Nokia, where he maintains the Phonet stack for the Linux kernel, the Maemo platform and the Ofono project. Outside Nokia, he&#039;s also been involved in the VideoLAN project.&lt;/div&gt;</summary>
		<author><name>192.100.124.218</name></author>
	</entry>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=Maemo.org_Sprints/August_09&amp;diff=16881</id>
		<title>Maemo.org Sprints/August 09</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=Maemo.org_Sprints/August_09&amp;diff=16881"/>
		<updated>2009-09-01T11:30:14Z</updated>

		<summary type="html">&lt;p&gt;192.100.124.218: /* Tasks */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== August 2009 Sprint planning ==&lt;br /&gt;
&lt;br /&gt;
* [http://bleb.org/software/maemo/maemo-meeting-2009-08-04.txt Planning meeting]: [http://www.timeanddate.com/worldclock/fixedtime.html?month=8&amp;amp;day=4&amp;amp;year=2009&amp;amp;hour=13&amp;amp;min=30&amp;amp;sec=0 Tuesday, 4th August 13:30 UTC] in [[IRC|#maemo-meeting]].&lt;br /&gt;
* Follows [[maemo.org Sprints/July 09|July 09]]. Precedes [[maemo.org Sprints/September 09|September 09]].&lt;br /&gt;
* Main themes: September council election; October summit&lt;br /&gt;
&lt;br /&gt;
== Tasks ==&lt;br /&gt;
[[:Category:Ongoing|Ongoing]] tasks carried here from the previous sprint + New tasks committed by their owners in the sprint meeting. They come from the tasks in the [[Maemo.org_backlog|Backlog]] and the [[Maemo.org_proposals|Proposals]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| style=&amp;quot;background:LightGreen&amp;quot; | Completed&lt;br /&gt;
| style=&amp;quot;background:LightBlue&amp;quot; | Good progress&lt;br /&gt;
| Just standing&lt;br /&gt;
| style=&amp;quot;background:Orange&amp;quot; | Some help needed!&lt;br /&gt;
| style=&amp;quot;background:Tomato&amp;quot; | Really stuck/delayed&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Task ID&lt;br /&gt;
! Task&lt;br /&gt;
! Sprint priority&lt;br /&gt;
! Owner&lt;br /&gt;
! Percentage complete&lt;br /&gt;
! Notes&lt;br /&gt;
|- style=&amp;quot;&amp;quot;&lt;br /&gt;
| 9.08-01&lt;br /&gt;
| Get &amp;quot;Nokia patches&amp;quot; cleanly into Bugzilla .4 test install, dropping as many deltas as possible&lt;br /&gt;
| Must&lt;br /&gt;
| Ferenc&lt;br /&gt;
| 0%&lt;br /&gt;
|- style=&amp;quot;background:LightGreen&amp;quot;&lt;br /&gt;
| 9.08-02&lt;br /&gt;
| [https://bugs.maemo.org/show_bug.cgi?id=3692 #3692] Re-import discussion karma&lt;br /&gt;
| Must&lt;br /&gt;
| Ferenc&lt;br /&gt;
| Done&lt;br /&gt;
| The dev list import has completed.&lt;br /&gt;
|- style=&amp;quot;background:LightGreen&amp;quot;&lt;br /&gt;
| 9.08-03&lt;br /&gt;
| Fix any other logged karma issues&lt;br /&gt;
| Must&lt;br /&gt;
| Ferenc&lt;br /&gt;
| Done&lt;br /&gt;
| Checked all bugs that refer to &amp;quot;karma&amp;quot;. There is no outstanding issue which should not be solved by re-importing the mailing lists. &lt;br /&gt;
|- style=&amp;quot;&amp;quot;&lt;br /&gt;
| 9.06-05&lt;br /&gt;
| Package promotion/repository management/community QA interface&lt;br /&gt;
| Must&lt;br /&gt;
| [http://maemo.org/profile/view/xfade/ X-Fade]&lt;br /&gt;
| 90%&lt;br /&gt;
| Basic interface is in place, most tests look promising.&lt;br /&gt;
|- style=&amp;quot;background:LightBlue&amp;quot;&lt;br /&gt;
| 9.08-04&lt;br /&gt;
| Integrate minimae into package promotion to get infrastructure &amp;amp; UI in place&lt;br /&gt;
| Must&lt;br /&gt;
| [http://maemo.org/profile/view/jeremiah/ Jeremiah]&lt;br /&gt;
| 90%&lt;br /&gt;
|[http://wiki.maemo.org/Extras-testing#Maemian.2FMinimae_checks_after_builds minimae checks implemented this sprint]&amp;lt;BR&amp;gt;[https://garage.maemo.org/plugins/ggit/browse.php/?p=maemian;a=blob;f=minimae;h=b0e3b3a3da646fe3e6f4e91fbf698c28798d8c30;hb=HEAD minimae in git] Have a working hook into the build system, but need to modify it.&lt;br /&gt;
|- style=&amp;quot;&amp;quot;&lt;br /&gt;
| 9.06-07&lt;br /&gt;
| [http://bugs.maemo.org/show_bug.cgi?id=2179 Karma for applications - get agreement on formula]&lt;br /&gt;
| Must&lt;br /&gt;
| [http://maemo.org/profile/view/indeyets/ indeyets]&lt;br /&gt;
| 25%&lt;br /&gt;
| This sprint &#039;&#039;must&#039;&#039;: get data, come up with proposals, communicate to -community/developers and push for consensus.&lt;br /&gt;
|- style=&amp;quot;&amp;quot;&lt;br /&gt;
| 9.07-01&lt;br /&gt;
| Setup [[Task:Single_sign-on|SSO]]-integration (GForge)&lt;br /&gt;
| Must&lt;br /&gt;
| [http://maemo.org/profile/view/danielwilms/ danielwilms]&lt;br /&gt;
| 60%&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background: LightGreen&amp;quot;&lt;br /&gt;
| 9.08-05&lt;br /&gt;
| Identify/communicate to tmo users about upcoming election&lt;br /&gt;
| Must&lt;br /&gt;
| [http://maemo.org/profile/view/jaffa/ Jaffa]&lt;br /&gt;
| 100%&lt;br /&gt;
| Email sent to 1,599 tmo users giving them instructions on how to link accounts&lt;br /&gt;
|- style=&amp;quot;background:Tomato&amp;quot;&lt;br /&gt;
| 9.08-06&lt;br /&gt;
| Produce [[Maemo Summit 2009]] budget v0.99&lt;br /&gt;
| Must&lt;br /&gt;
| [http://maemo.org/profile/view/qgil/ qgil]&lt;br /&gt;
| 0%&lt;br /&gt;
| Haven&#039;t done it but the main areas are well resourced with minimum budgets committed (infra, sponsorship, merchandising and party). Planning to have the final budget ready by Sep 15.&lt;br /&gt;
|- style=&amp;quot;background: LightGreen&amp;quot;&lt;br /&gt;
| 9.08-07&lt;br /&gt;
| Drive [[Community Council|election process]]&lt;br /&gt;
| Must&lt;br /&gt;
| [http://maemo.org/profile/view/jaffa/ Jaffa]&lt;br /&gt;
| 100%&lt;br /&gt;
| Announcements [http://lists.maemo.org/pipermail/maemo-community/2009-August/002665.html have] [http://maemo.org/community/council/maemo_community_council-election_announcement/ been] [http://talk.maemo.org/showthread.php?p=310976 published]. List of tmo users from 9.08-05 passed on to dneary.&lt;br /&gt;
|- style=&amp;quot;background:LightBlue&amp;quot;&lt;br /&gt;
| 9.08-08&lt;br /&gt;
| Co-ordinate summit council responsibilities&lt;br /&gt;
| Must&lt;br /&gt;
| [http://maemo.org/profile/view/timsamoff/ timsamoff]&lt;br /&gt;
| 60%&lt;br /&gt;
| Merchandising/accomodation etc.&lt;br /&gt;
|- style=&amp;quot;background:LightGreen&amp;quot;&lt;br /&gt;
| 9.08-09&lt;br /&gt;
| Promote summit &amp;amp; buzz/communication plan&lt;br /&gt;
| Must&lt;br /&gt;
| [http://maemo.org/profile/view/vdvsx/ VDVsx]&lt;br /&gt;
| Done&lt;br /&gt;
|[[Maemo_Summit_2009/Marketing]], [http://www.valeriovalerio.org/?p=251 Call for help] and [https://twitter.com/#search?q=%23maesum Twitter buzz]&lt;br /&gt;
|- style=&amp;quot;background:Tomato&amp;quot;&lt;br /&gt;
| 9.08-10&lt;br /&gt;
| Draft [http://wiki.maemo.org/Extras_repository_process_definition#Quality_Assurance quality guidelines] for extras-testing to extras promotion&lt;br /&gt;
| Should&lt;br /&gt;
| [http://maemo.org/profile/view/qgil/ qgil]&lt;br /&gt;
| 10%&lt;br /&gt;
| Drafting at [[Extras-testing#Quality_criteria|Extras-testing Quality_criteria]] + [http://talk.maemo.org/showthread.php?t=30541 tmo discussion]. Well started but not concluded. Will do in this sprint, rather soon since it&#039;s needed to define 100% the promotion to Extras.&lt;br /&gt;
|- style=&amp;quot;background:LightGreen&amp;quot;&lt;br /&gt;
| 9.06-12&lt;br /&gt;
| [https://bugs.maemo.org/show_bug.cgi?id=4405 #4405]: [[Task:Proof-read Human Interface Guidelines]]&lt;br /&gt;
| Should&lt;br /&gt;
| [http://maemo.org/profile/view/dneary/ dneary]&lt;br /&gt;
| DONE&lt;br /&gt;
| Changes are merged into official docs and are in wiki at [[Documentation/Maemo 5 Developer Guide/Human Interface Guidelines]]&lt;br /&gt;
|- style=&amp;quot;&amp;quot;&lt;br /&gt;
| 9.04-05&lt;br /&gt;
| [[Task:Implement new maemo.org layout and style|Implement new maemo.org layout and style - Bugzilla]]&lt;br /&gt;
| Should&lt;br /&gt;
| [http://maemo.org/profile/view/andre/ Andre]&lt;br /&gt;
| 80%&lt;br /&gt;
| Rough version in place.&lt;br /&gt;
|- style=&amp;quot;&amp;quot;&lt;br /&gt;
| 9.08-11&lt;br /&gt;
| Document &amp;amp; communicate packages interface to testers&lt;br /&gt;
| Should&lt;br /&gt;
| [http://maemo.org/profile/view/jaffa/ Jaffa]&lt;br /&gt;
| 0%&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;&amp;quot;&lt;br /&gt;
| 9.06-09&lt;br /&gt;
| [[Vendor Hardware Repositories]] - decide on sub-tasks for next sprint&lt;br /&gt;
| Should&lt;br /&gt;
| [http://maemo.org/profile/view/stskeeps/ Stskeeps]&lt;br /&gt;
| 0%&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background:Tomato&amp;quot;&lt;br /&gt;
| 9.06-14&lt;br /&gt;
| Plan for the OMAP2 acceleration [[Drivers justification|drivers]]&lt;br /&gt;
| Could&lt;br /&gt;
| [http://maemo.org/profile/view/qgil/ qgil]&lt;br /&gt;
| 10%&lt;br /&gt;
| TI contact has resources ready. They are getting access to the source code from TI and maemo in order to start the work. Maybe completed during the September sprint?&lt;br /&gt;
|- style=&amp;quot;&amp;quot;&lt;br /&gt;
| 9.08-12&lt;br /&gt;
| Improve reporting feed appearance on sprint page&lt;br /&gt;
| Could&lt;br /&gt;
| Ferenc&lt;br /&gt;
| 0%&lt;br /&gt;
| To liaise with [http://maemo.org/profile/view/jaffa/ Jaffa]&lt;br /&gt;
|- style=&amp;quot;&amp;quot;&lt;br /&gt;
| 9.04-08&lt;br /&gt;
| [[ITP]] process/workflow around [http://test.maemo.org/cgi-bin/itp.cgi prototype]&lt;br /&gt;
|Could&lt;br /&gt;
| [http://maemo.org/profile/view/jeremiah/ Jeremiah]&lt;br /&gt;
| 90%&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Actions ==&lt;br /&gt;
* [http://maemo.org/profile/view/jaffa/ Jaffa]: &amp;lt;s&amp;gt;try and get some UI love for 9.06-05&amp;lt;/s&amp;gt; [http://talk.maemo.org/showthread.php?p=308799 done]&lt;br /&gt;
* [http://maemo.org/profile/view/timsamoff/ timsamoff]: to talk to [http://maemo.org/profile/view/keesj/ keesj] about accomodation and merchandise production in Amsterdam as part of 9.08-08.&lt;br /&gt;
*[http://maemo.org/profile/view/vdvsx/ VDVsx]: 9.08-09 done for this sprint, I&#039;ll continue with the task in the next sprint.&lt;br /&gt;
&lt;br /&gt;
== Activity log ==&lt;br /&gt;
Latest activity report goes on top. Activity will be reported here, [http://www.qaiku.com/channels/show/maemork/ Qaiku #maemork channel] ([http://www.qaiku.com/feeds/channels/maemork Atom feed]) or talk.maemo.org.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;rss title=&amp;quot;off&amp;quot; desc=&amp;quot;off&amp;quot; number=&amp;quot;40&amp;quot; time=&amp;quot;3600&amp;quot;&amp;gt;http://pipes.yahoo.com/pipes/pipe.run?_id=mvdCJrB_3hGfIDijIDfpSg&amp;amp;_render=rss&amp;lt;/rss&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Community]]&lt;br /&gt;
[[Category:maemo.org]]&lt;/div&gt;</summary>
		<author><name>192.100.124.218</name></author>
	</entry>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=Maemo_Summit_2009&amp;diff=20303</id>
		<title>Maemo Summit 2009</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=Maemo_Summit_2009&amp;diff=20303"/>
		<updated>2009-08-19T05:27:08Z</updated>

		<summary type="html">&lt;p&gt;192.100.124.218: /* Friday, October 9 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Content will be the second most important aspect of the conference, after the social aspect of getting the Maemo community together.&lt;br /&gt;
&lt;br /&gt;
== DRAFT Schedule ==&lt;br /&gt;
&lt;br /&gt;
=== Friday, October 9 ===&lt;br /&gt;
&lt;br /&gt;
9:30	Doors open&lt;br /&gt;
&lt;br /&gt;
10:00	&#039;&#039;&#039;Welcome - Opening of Summit &#039;&#039;&#039; by [http://maemo.org/profile/view/peterschneider.html Peter Schneider], Head of Maemo Marketing @ Nokia&lt;br /&gt;
&lt;br /&gt;
10:15 	&#039;&#039;&#039;Maemo – Designed for Mobile Computing Experience&#039;&#039;&#039; 	by [http://maemo.org/profile/view/jaaksi/ Ari Jaaksi], VP - Maemo Devices @ Nokia&lt;br /&gt;
&lt;br /&gt;
11:00	&#039;&#039;&#039;The Changing PC &amp;amp; Mobile Landscape; Why Linux will play a Critical Role&#039;&#039;&#039;  by Jim Zemlin, Executive Director @ Linux Foundation&lt;br /&gt;
&lt;br /&gt;
11:30  &#039;&#039;&#039;Break&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
11:45	&#039;&#039;&#039;Nokia Nseries Devices on Maemo &#039;&#039;&#039; by J-P. Sipponen, Director - Maemo Products @ Nokia&lt;br /&gt;
&lt;br /&gt;
12:15	&#039;&#039;&#039;Harmattan Highlights - Developer Opportunities   &#039;&#039;&#039; by Janne Heikkinen, Director - Maemo Product Planning @ Nokia &lt;br /&gt;
&lt;br /&gt;
13:00  &#039;&#039;&#039;Lunch - Maemo 5 Experience Area opens&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
14:15  &#039;&#039;&#039;Why the Maemo Community matters to Nokia &#039;&#039;&#039; - Alan &amp;quot;[http://maemo.org/profile/view/qole/ Qole]&amp;quot; Bruce of [[Community Council|Maemo Community Council]] interviewing Ari Jaaksi, VP - Maemo Devices @ Nokia&lt;br /&gt;
&lt;br /&gt;
15:00  	&#039;&#039;&#039;Expert streams&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time&lt;br /&gt;
! Track 1&lt;br /&gt;
! Track 2&lt;br /&gt;
! Track 3&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 15:00 - 15:25 &lt;br /&gt;
| &#039;&#039;&#039;UI design of Maemo 5 apps&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Digia/User Experience Team&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&#039;&#039;&#039;UX panel&#039;&#039;&#039; &lt;br /&gt;
&#039;&#039;Moderated by: [http://maemo.org/profile/view/timsamoff Tim Samoff], Maemo Council,&#039;&#039;&lt;br /&gt;
&#039;&#039;with Harri Kiljander, Director Maemo UX Design and Martin Schüle, Principal Designer Maemo 5&#039;&#039;&lt;br /&gt;
| Platform Developers 1&lt;br /&gt;
|-&lt;br /&gt;
| 15:30 - 15:55 &lt;br /&gt;
| &#039;&#039;&#039;Developing widgets on Maemo 5 - showcase Foreca Weather&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Juha Järvi, Software Designer, Foreca&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Mer - how the community innovates&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Carsten Munk, Lead Developer, Mer project&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 16.00 - 16.25 &lt;br /&gt;
| App developers 3&lt;br /&gt;
| &#039;&#039;&#039;Firefox on Maemo&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Stuart Parmenter, Director of Engineering, Mozilla&#039;&#039;&lt;br /&gt;
| | &#039;&#039;&#039;Your foundation for open-source innovation:  TI’s OMAP processor-based Zoom platform&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Ameet Suri, Texas Instruments&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 16.30 - 16.55 &lt;br /&gt;
| &#039;&#039;&#039;Developing apps with Qt on Harmattan&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Ville Lavonius, Product Manager Developer Offering, Nokia&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Making of maemo.nokia.com&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Isko Salminen, Production Manager, Activeark &lt;br /&gt;
&#039;&#039;and Jussi Mäkinen, Maemo Marketing, Nokia&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| Platform developers 4&lt;br /&gt;
|-&lt;br /&gt;
| 17.00 - 17.25 &lt;br /&gt;
| &#039;&#039;&#039;Developing apps with Nokia Web Runtime&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Santtu Ahonen, Head of Developer Offering, Nokia&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Biz apps on Maemo&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Kari Pikkarainen, Product Manager Productivity, Nokia&#039;&#039;&lt;br /&gt;
| Platform developers&lt;br /&gt;
|-&lt;br /&gt;
| 17.30 - 18.00 &lt;br /&gt;
| &#039;&#039;&#039;Developer Support for Maemo by Forum Nokia&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Srikanth Raju, Director, Forum Nokia Marketing&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Skype on Maemo&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Mark Douglas, Mobile Product Manager, Skype&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Developing apps with Open GL ES 2.0&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Kate Ahola, Forum Nokia, Chief Guru on Maemo&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
18:00	&#039;&#039;&#039;Maemo 5 Experience Area opens again&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
20:00	&#039;&#039;&#039;Maemo Party&#039;&#039;&#039; coordinated by Jussi Mäkinen.&lt;br /&gt;
&lt;br /&gt;
=== [[/Day 2 | Saturday, October 10]] ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time&lt;br /&gt;
! Track 1&lt;br /&gt;
! Track 2&lt;br /&gt;
! Track 3&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 9.00  &lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; | Doors Open&lt;br /&gt;
|- &lt;br /&gt;
| 10.00 - 10.15 &lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; | &#039;&#039;&#039;Welcome to Community days&#039;&#039;&#039;&amp;lt;br/&amp;gt;&#039;&#039;Maemo Community Council&#039;&#039;&lt;br /&gt;
|- &lt;br /&gt;
| 10.15 - 11:00 &lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; | Keynote 1&lt;br /&gt;
|- &lt;br /&gt;
| 11.00 - 11.25 &lt;br /&gt;
| Users 1&lt;br /&gt;
| [[/Day 2#PyQt_application_development_on_Maemo | &#039;&#039;&#039;PyQt application development on Maemo&#039;&#039;&#039;]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Attila Csipa&#039;&#039;&lt;br /&gt;
| Platform developers 1&lt;br /&gt;
|-&lt;br /&gt;
| 11.30 - 11.55 &lt;br /&gt;
| Users 2&lt;br /&gt;
| [[/Day 2#Canola_application_and_framework_for_rich_GUI | &#039;&#039;&#039;Canola application and framework for rich GUI&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Gustavo Sverzut Barbieri&#039;&#039;&lt;br /&gt;
| [[/Day 2#Maemomm:_Maemo_with_C.2B.2B_and_a_Gtkmm_flavour | &#039;&#039;&#039;Maemomm: Maemo with C++ and a Gtkmm flavour&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;David King&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 12.00 - 12.25 &lt;br /&gt;
| [[/Day_2#Maemo_Co-creation | &#039;&#039;&#039;Maemo Co-Creation Showcase&#039;&#039;&#039;]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Jussi Mäkinen&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
| [[/Day 2#Developments_in_The_Qt_WebKit_Integration | &#039;&#039;&#039;Developments in The Qt WebKit Integration&#039;&#039;&#039;]] &amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Kenneth Rohde Christiansen&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 12.30 - 12.55 &lt;br /&gt;
| [[/Day 2#Modest.2C_email_client_for_Fremantle | &#039;&#039;&#039;Modest, email client for Fremantle&#039;&#039;&#039;]] &amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Sergio Villar, Jose Dapena&#039;&#039;&lt;br /&gt;
| [[/Day 2#Creating_packages_for_the_Maemo_platform | &#039;&#039;&#039;Creating packages for the Maemo platform&#039;&#039;&#039;]] &amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Jeremiah Foster&#039;&#039;&lt;br /&gt;
| Platform developers 4&lt;br /&gt;
|-&lt;br /&gt;
| 13.00 - 14.30 &lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; | Lunch&lt;br /&gt;
|-&lt;br /&gt;
| 14.30 - 15.25&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | &#039;&#039;&#039;[[/Lightning talks | Lightning talks]]&#039;&#039;&#039;, 5 min each &lt;br /&gt;
# [[/Lightning talks#Mobile_web_apps_on_tablets_:_the_web2py_framework_revisited | &#039;&#039;&#039;Mobile web apps on tablets : the web2py framework revisited&#039;&#039;&#039;]] - &#039;&#039;Fred Pacquier&#039;&#039;&lt;br /&gt;
# [[/Lightning talks#Giving_Great_Presentations | &#039;&#039;&#039;Giving Great Presentations&#039;&#039;&#039;]] - &#039;&#039;Dave Neary&#039;&#039;&lt;br /&gt;
# [[/Lightning talks#Development_Nirvana:_How_Maemo_Application_Development_Should_Be | &#039;&#039;&#039;Development Nirvana: How Maemo Application Development Should Be&#039;&#039;&#039;]] - &#039;&#039;Andrew Flegg&#039;&#039;&lt;br /&gt;
# Lightning talk &lt;br /&gt;
# Lightning talk &lt;br /&gt;
# Lightning talk &lt;br /&gt;
# Lightning talk &lt;br /&gt;
# Lightning talk &lt;br /&gt;
# Lightning talk &lt;br /&gt;
# Lightning talk &lt;br /&gt;
|-&lt;br /&gt;
| 15.30 - 15.55 &lt;br /&gt;
| Users 5&lt;br /&gt;
| [[/Day 2#Adapting_GNOME_applications_to_Maemo_Fremantle | &#039;&#039;&#039;Adapting GNOME applications to Maemo Fremantle&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Joaquim Rocha&#039;&#039;&lt;br /&gt;
| Platform developers 5 &lt;br /&gt;
|-&lt;br /&gt;
| 16.00 - 16.25 &lt;br /&gt;
| [[/Day 2#Mer:_A_year_after| &#039;&#039;&#039;Mer: A year after&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Carsten Valdemar Munk&#039;&#039;&lt;br /&gt;
| [[/Day 2#Money_for_nothing:_Making_money_off_free_software | &#039;&#039;&#039;Money for nothing: Making money off free software&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Dave Neary&#039;&#039;&lt;br /&gt;
| [[/Day 2#Hildon_toolkit_for_Fremantle | &#039;&#039;&#039;Hildon toolkit for Fremantle&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Alberto Garcia, Claudio Saavedra&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 16.30 - 16.55 &lt;br /&gt;
| [[/Day 2#maemo.org_Bug_Management | &#039;&#039;&#039;maemo.org Bug Management&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Andre Klapper&#039;&#039;&lt;br /&gt;
| [[/Day 2#Go-to_market_opportunities_for_mobile_application_developers | &#039;&#039;&#039;Go-to market opportunities for mobile application developers&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Boaz Zilberman&#039;&#039;&lt;br /&gt;
| Platform developers 7&lt;br /&gt;
|-&lt;br /&gt;
| 17.00 - 17.25 &lt;br /&gt;
| Users 8&lt;br /&gt;
| App developers 8 &lt;br /&gt;
| Platform developers 8 &lt;br /&gt;
|-&lt;br /&gt;
| 17.30 - 17.55 &lt;br /&gt;
| Users 9&lt;br /&gt;
| App developers 9&lt;br /&gt;
| Platform developers 9&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== [[/Day 3 | Sunday, October 11]] ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time&lt;br /&gt;
! Track 1&lt;br /&gt;
! Track 2&lt;br /&gt;
! Track 3&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 9.00  &lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; | Doors Open&lt;br /&gt;
|- &lt;br /&gt;
| 10.00 - 10.55 &lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; | [[/Day 3#Fremantle_Stars_showcase | &#039;&#039;&#039;Fremantle Stars showcase&#039;&#039;&#039;]]&amp;lt;br/&amp;gt;Including liqbase, OSM2Go, Mauku, OMWeather and more.&lt;br /&gt;
|- &lt;br /&gt;
| 11.00 - 11.25 &lt;br /&gt;
| Users 1 &lt;br /&gt;
| [[/Day 3#JamMo_-_Jamming_mobile_game_for_children | &#039;&#039;&#039;JamMo - Jamming mobile game for children&#039;&#039;&#039;]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Aapo Rantalainen&#039;&#039;&lt;br /&gt;
| Platform developers 1&lt;br /&gt;
|-&lt;br /&gt;
| 11.30 - 11.55 &lt;br /&gt;
| [[/Day 3#Maemo_documentation_co-creation  | &#039;&#039;&#039;Maemo documentation co-creation &#039;&#039;&#039;]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Dave Neary&#039;&#039;&lt;br /&gt;
| App developers 2&lt;br /&gt;
| Platform developers 2&lt;br /&gt;
|-&lt;br /&gt;
| 12.00 - 12.25 &lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot; | [[/Day 2#Maemo_Co-creation | &#039;&#039;&#039;Maemo Co-Creation Working Session&#039;&#039;&#039;]]&amp;lt;br /&amp;gt; &#039;&#039;Jussi Mäkinen&#039;&#039;&lt;br /&gt;
| [[/Day 3#Handheld_Glom:_Easy_database_applications | &#039;&#039;&#039;Handheld Glom: Easy database applications&#039;&#039;&#039;]] &amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Murray Cumming&#039;&#039;&lt;br /&gt;
| Platform developers 3&lt;br /&gt;
|-&lt;br /&gt;
| 12.30 - 12.55 &lt;br /&gt;
| App developers 4&lt;br /&gt;
| Platform developers 4&lt;br /&gt;
|-&lt;br /&gt;
| 13.00 - 14.30 &lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; | Lunch&lt;br /&gt;
|-&lt;br /&gt;
| 14.30 - 15.25&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | &#039;&#039;&#039;[[/Lightning talks | Lightning talks]]&#039;&#039;&#039;, 5 min each &lt;br /&gt;
# Lightning talk&lt;br /&gt;
# Lightning talk &lt;br /&gt;
# Lightning talk &lt;br /&gt;
# Lightning talk &lt;br /&gt;
# Lightning talk &lt;br /&gt;
# Lightning talk &lt;br /&gt;
# Lightning talk &lt;br /&gt;
# Lightning talk &lt;br /&gt;
# Lightning talk &lt;br /&gt;
# Lightning talk &lt;br /&gt;
|-&lt;br /&gt;
| 15.30 - 16.30 &lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; | Final Session (round table ???)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
See [[../Submissions | the submission queue]] for current proposals under consideration.&lt;br /&gt;
&lt;br /&gt;
=== Principles for defining the schedule ===&lt;br /&gt;
* Defaulting to three tracks for Users (Transformatorhuis - big), App Developers (Machinegebow - medium) and Platform Developers (De Kapel - small). Exceptions can be made of course but the idea is that each profile should have a suggested session to go at any time.&lt;br /&gt;
* Keynotes and Lightning Sessions are organized in Transformatorhuis without other activities at the same time.&lt;br /&gt;
* The tiny lovely Oostelijk Meterhuis is available for longer sessions with 25 people or less e.g. a 2h workshop. De Kapel can also serve that purpose if needed.&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
&lt;br /&gt;
* Decide on conference infrastructure and put it in place: DONE: Using Wiki&lt;br /&gt;
* Decide on process for getting content: DONE: Call for content + committee to choose presentations&lt;br /&gt;
* Issue call for content if necessary: DONE: Call for content issued, we need to do some more communication work &amp;amp; get proposals&lt;br /&gt;
* Deadline for content proposals: September 13&lt;br /&gt;
* Presenters notified: On going&lt;br /&gt;
&lt;br /&gt;
== Suggestions ==&lt;br /&gt;
:I think that 2009 will be Fremantle year, so I expect a summit focused on:&lt;br /&gt;
:* New technologies showcase (i.e., what can be done with clutter?)&lt;br /&gt;
:* New hardware features&lt;br /&gt;
:And I would add one or two roundtables to talk and discuss:&lt;br /&gt;
:* What&#039;s next?&lt;br /&gt;
:* What about past hardware? What about third party development?&lt;br /&gt;
:* Would you like a Maemo App Store?&lt;br /&gt;
:—[[user:jsmanrique|jsmanrique]]&lt;br /&gt;
&lt;br /&gt;
: Mer would like to talk about bringing as much of Fremantle as possible to older devices and how it works with Nokia and the community. Would there be interest in:&lt;br /&gt;
:* Talks about Mer?&lt;br /&gt;
:* Mer&#039;s development SDK/processes?&lt;br /&gt;
:* Hands-on Mer development sessions?&lt;br /&gt;
:* Mer/Maemo/Garage/Nokia integration (although this is already a fast moving target)&lt;br /&gt;
:-- [[User:lbt|lbt]] 21:04, 17 June 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Please, do not put similar themes overlapping on simultaneous tracks. For example, UI Design, UX panel and OpenGL would have the same audience although the presentations are from different point of view. (As an application developer, I would participate in all of those!) Try to organize the themes more sequentially.&lt;br /&gt;
: --[[User:hhedberg|hhedberg]] 06:29, 2 July 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>192.100.124.218</name></author>
	</entry>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=Maemo_Summit_2009/Submissions&amp;diff=21201</id>
		<title>Maemo Summit 2009/Submissions</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=Maemo_Summit_2009/Submissions&amp;diff=21201"/>
		<updated>2009-08-05T06:49:57Z</updated>

		<summary type="html">&lt;p&gt;192.100.124.218: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Talk submissions for Maemo Summit 2009 =&lt;br /&gt;
&lt;br /&gt;
Please add your submission to this page at the bottom. Have a look at the [[../Call for content| Call for content]] for some guidelines.&lt;br /&gt;
&lt;br /&gt;
Please follow the template for each presentation that you would like to submit. Thanks!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Maemo Summit community content committee:&lt;br /&gt;
* Dave Neary&lt;br /&gt;
* Jamie Bennett&lt;br /&gt;
* Valério Valério&lt;br /&gt;
&#039;&#039;&lt;br /&gt;
== Submission template ==&lt;br /&gt;
&lt;br /&gt;
Copy &amp;amp; paste the following template, and fill in the details specific to your presentation.&lt;br /&gt;
&lt;br /&gt;
=== Talk Title Goes Here ===&lt;br /&gt;
*Author name and contact details&lt;br /&gt;
*Intended audience (users/application developers/platform developers)&lt;br /&gt;
*Talk type (presentation/lightning talk)&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: Abstract goes here. A two paragraph overview of the proposed talk content is sufficient.&lt;br /&gt;
*Additional Information (optional)&lt;br /&gt;
: Additional information on extra equipment you might need or something else goes here&lt;br /&gt;
*Author bio&lt;br /&gt;
: A short (1 paragraph) note about who the author is goes here&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== Talk Submissions ==&lt;br /&gt;
&lt;br /&gt;
=== How to speed up your Maemo application development ===&lt;br /&gt;
*Author: Raul Herbster, raul.herbster at signove dot com&lt;br /&gt;
*Intended audience: Application/Platform Developers&lt;br /&gt;
*Talk type: presentation&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: Integrated Development Environments (IDEs) positively impacts on the development process of maemo applications, increasing productivity, improving standardization and reducing coding error. In addition, IDEs definitely help maemo newbies getting started a lot quicker on technologies by providing templates and useful tools under a consistent and integrated graphical interface. IDE Integration project consists of IDEs (ESbox and PluThon), development environments for different languages (Python and C/C++) and PC-Connectivity, a tool to simplify setting up of communication between the Internet Tablet and the host PC. This presentation shows how IDE Integration can be used to help you to develop Maemo applications (C/C++ and Python).&lt;br /&gt;
&lt;br /&gt;
*Author bio&lt;br /&gt;
: Raul Herbster has got his BSc. and Master degrees in Computer Science at Federal University of Campina Grande, Brazil. He is a key developer and maintainer of the ESbox and PluThon, which are part of the official maemo IDE Integration environment. He is a Nokia Certified Trainer and Forum Nokia Champion since 2008. Currently, Raul is a senior developer of Signove and works on IDE Integration project.&lt;br /&gt;
&lt;br /&gt;
=== Life outdoor event with Maemo ===&lt;br /&gt;
*Author: Till Harbaum&lt;br /&gt;
*Intended audience: everyone&lt;br /&gt;
*Talk type: lightning talk + outdoor thing&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: Location based services are en vogue. GPXView and OSM2Go are two examples for this and a live outdoor demo can sure be real fun. While OSM2Go has a more serious background something like guided real life mapping (there are sure things close to the event that need mapping/correction) may be cool. GPXView is a fun thing and e.g. a special summit related geocache could be hidden. This needs some planning but would likely even attract some geocachers from that region. Also this could be used for some fancy promo things. There could be prizes t win (to be found in a cache) or Maemo related travel bugs could be started. Even a Maemo &amp;quot;geocoin&amp;quot; could be made for this event.&lt;br /&gt;
*Author bio&lt;br /&gt;
: Till Harbaum is a spare time maemo developer and has been working with maemo since he sold his last palm device. His projects include maemo related hardware hacks, games, the aforementioned GPXView and OSM2Go.&lt;br /&gt;
&lt;br /&gt;
=== Writing plugins for MAFW ===&lt;br /&gt;
*Author: Iago Toral - itoral at igalia dot com&lt;br /&gt;
*Intended audience: platform and application developers.&lt;br /&gt;
*Talk type: Presentation (Tutorial)&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: A tutorial on how developers can write source and renderer plugins for the Media Application Framework (MAFW). The audience will learn how to develop new plugins that provide access to new sources of media content or implement different rendering backends and how they can use these plugins from their own media applications. The tutorial will also include an introduction to MAFW for those not familiar with the framework.&lt;br /&gt;
*Author bio&lt;br /&gt;
: I am a Software Engineer at Igalia and user of the Gnome Desktop and Linux OS for quite many years. Currently I am most interested in Multimedia, specially around MAFW, for which I am one of the main developers, and GStreamer.&lt;br /&gt;
&lt;br /&gt;
=== Creating packages for the Maemo platform ===&lt;br /&gt;
&lt;br /&gt;
* Jeremiah C. Foster &amp;lt;jeremiah at maemo dot org&amp;gt;&lt;br /&gt;
* Intended audience -&amp;gt; application developers and platform developers&lt;br /&gt;
* Talk type -&amp;gt; presentation&lt;br /&gt;
* This talk will go through packaging from beginning to end providing a template to use. While one cannot go into every corner case, we can cover the entire process for the average package. In this case we will describe the process for packaging a python app since those are quite common on the maemo platform.  &lt;br /&gt;
&lt;br /&gt;
* Author Bio&lt;br /&gt;
&lt;br /&gt;
: I am the current &amp;quot;debmaster&amp;quot; at maemo.org and have been working with the debian perl team for several years now. I have been using debian for nearly a decade.&lt;br /&gt;
&lt;br /&gt;
=== GUPnP and Rygel: The UPnP/DLNA solution for Maemo ===&lt;br /&gt;
*Author: Zeeshan Ali, Lead-Developer at Maemo Devices, Nokia.&lt;br /&gt;
*Intended audience: everyone&lt;br /&gt;
*Talk type: presentation&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: I will be introducing the work we have been putting up for the past two and half years to provide a complete well-documented solution for UPnP needs of Maemo and GNOME (Mobile) in general.&lt;br /&gt;
*Author bio&lt;br /&gt;
: Zeeshan Ali is a Lead Developer at Nokia Maemo Devices in Helsinki, Finland and a GNOME developer. He started as a GStreamer plugin and application developer and got his first share of fame in the GNOME community for his video-whale project. For the past two year, he had been obsessed with UPnP/DLNA and in turn the GUPnP and Rygel projects. Thanks to Nokia, he now work full-time on Rygel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Handheld Glom: Easy database applications. ===&lt;br /&gt;
* Murray Cumming &amp;lt;murrayc at openismus dot com&amp;gt;&lt;br /&gt;
* Intended audience: application developers&lt;br /&gt;
* Talk type: Presentation&lt;br /&gt;
* Abstract/description:&lt;br /&gt;
: Many custom Maemo applications just need the user to navigate through some data and enter new information. Glom lets you quickly throw together a database structure and UI layout, providing a Maemo UI with no coding. You can then use Python for anything more complicated, though Glom itself already supports features such as related records, related fields, related choices, field lookups, calculated fields, and translated UIs.&lt;br /&gt;
*Author bio:&lt;br /&gt;
: Murray Cumming runs Openismus GmbH in Berlin and Munich. We work on Maemo&#039;s development platform and applications and maintain the GNOME C++ API (gtkmm). When we have extra time we work on Glom, gradually getting it ready for real-world use.&lt;br /&gt;
&lt;br /&gt;
=== maemo.org Bug Management ===&lt;br /&gt;
*Andre Klapper, aklapper at openismus dot com, andre__ in #maemo&lt;br /&gt;
*Intended audience: Everyone (Users, Developers, Non-coders, ...)&lt;br /&gt;
*Talk type: Presentation (and discussion/BoF after that?)&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: Provide an overview of the current situation in maemo.org Bugzilla and Brainstorm (stats, numbers, success cases), its people (Bugsquad), workflows, problems (especially with regard to Nokia &amp;amp; community participation). Inform how to participate (report in bugzilla / brainstorm; bugsquad) and how it can help Nokia developers&amp;amp;managers and the maemo.org community to be more productive in the Maemosphere.&lt;br /&gt;
*Additional Information&lt;br /&gt;
: I always fail to convince my laptop to work with beamers at conferences. Be warned. ;-)&lt;br /&gt;
*Author bio&lt;br /&gt;
: Andre Klapper is the maemo.org Bugmaster and works for Openismus GmbH. He is also part of the GNOME Release Team &amp;amp; Bugsquad.&lt;br /&gt;
&lt;br /&gt;
=== Automatic binding generation for Qt based libraries ===&lt;br /&gt;
&lt;br /&gt;
* Marcelo Lira dos Santos - marcelo.lira@openbossa.org - setanta on #maemo&lt;br /&gt;
* Intended audience: application developers/platform developers&lt;br /&gt;
* Talk type: presentation&lt;br /&gt;
* Abstract/description:&lt;br /&gt;
: The mantra &amp;quot;Qt Everywhere&amp;quot; certainly refers not only to platforms but also to languages which have bindings for the Qt4 libraries. Creators of bindings for Qt based libraries could also benefit of an automated generation scheme. With this in mind the generator must be a tool easy to use and extend.&lt;br /&gt;
: This talk will present the binding generator architecture and its use, with particular focus on the Python case, how it can be changed to generate binding source code for other languages, and problems that could arise in such tasks. We&#039;ll also show examples of applications running on top of automatically generated bindings.&lt;br /&gt;
&lt;br /&gt;
*Author bio&lt;br /&gt;
: Marcelo is an active developer of PyMaemo project at INdT and has been involved with Maemo apps development since N800. Nowadays he is working with automatic binding generation for C++ based libraries, like Qt4.&lt;br /&gt;
&lt;br /&gt;
=== python-mafw: MAFW framework for Python developers ===&lt;br /&gt;
&lt;br /&gt;
*Author: Andrea Grandi (andy80), a.grandi at gmail dot com&lt;br /&gt;
*Intended audience: Application/Platform Developers&lt;br /&gt;
*Talk type: light talk&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: I&#039;ll do a short introduction of this (still in development stage) python binding for MAFW, letting people know that this library exist, upgrading people about the stage of the development, showing a very short example of code and asking feedback from python applications developers to be able to understand on which tasks we should concentrate and how to improve this library.&lt;br /&gt;
*Author bio&lt;br /&gt;
: I&#039;m a student of Computer Science at &amp;quot;Università degli Studi di Firenze&amp;quot; (Italy) and currently I&#039;m going to spend a whole year at &amp;quot;Universidad Politecnica de Valencia&amp;quot;. I follow Maemo project and the community since the arrive of Nokia 770 device, I ported Spim (a MIPS emulator) on Maemo and helped other developers fixing bugs. Last year I did a light talk at Maemo Summit 2008 about ESBox and Pluthon. Currently I&#039;m doing a work stage at Igalia (a spanish free software company) and I&#039;m working on a Python binding of a Maemo library.&lt;br /&gt;
&lt;br /&gt;
=== From corporations to communities: responsible and effective engagement ===&lt;br /&gt;
*Randall &amp;quot;Texrat&amp;quot; Arnold, fabricator at cynicalsigns dot com, http://tabulacrypticum.wordpress.com&lt;br /&gt;
*Intended audience is Nokia PR; Nokia Maemo team; Maemo developer, tester and superuser community; other interested parties&lt;br /&gt;
*Talk type : best practice/lessons learned presentation&lt;br /&gt;
*Abstract/description&lt;br /&gt;
: The presentation covers the following subject areas: general best practices in the area of corporate/community relations and how they apply to Maemo, as well as possibly a post mortem of lessons learned vis a vis community outreach from both Maemo and user perspectives (via interviews).&lt;br /&gt;
&lt;br /&gt;
: This will not be a &amp;quot;what Nokia did wrong&amp;quot; as much as it is a clear, appropriate guide for future public relations in the murky world of commercial enterprise meets open source development; a path forward&lt;br /&gt;
.&lt;br /&gt;
*Author bio&lt;br /&gt;
: I am a former Nokia employee (Alliance factory and DSNM trade customer logistics) who was a principal on the US launch team for the N800.  As Quality Engineer I managed the delivery of 200 devices to CES 2007 and ensured quality on devices delivered until their production relocation to Mexico.  I became one of the first Nokia employees to reach out to the new community of tablet software developers and have continued in a voluntary representative role.  I also tested internal applications such as the enterprise support suite (including VPN) and field tested the N810 WiMAX Edition tablet.  I also developed a prototype mobile auditing solution using the internet tablets.  Today I still cover the internet tablets and their applications at http://tabulacrypticum.wordpress.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Designing UI for Maemo 5 – Fit for the Product ===&lt;br /&gt;
* Mox Soini, mox.soini at movial.com&lt;br /&gt;
* Intended audience: Platform/Application Developers, users&lt;br /&gt;
* Talk type: presentation&lt;br /&gt;
* Abstract/description:&lt;br /&gt;
: How to make the applications work together as an integrated whole?&lt;br /&gt;
 &lt;br /&gt;
: This talk will discuss the UI Design of the Maemo 5 product as an &amp;quot;application portfolio&amp;quot;. Design patterns as well as application specific designs are presented, and the reasoning for the design decisions.&lt;br /&gt;
&lt;br /&gt;
* Author bio:&lt;br /&gt;
: Mox Soini, Interaction Designer at Movial. His work additionally includes application design and occasional code patches. He contributes to open source community also in some other projects. Soini strives for design process that is engaging collaboration, out of the box thinking and dedication to the fit and finish.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;/div&gt;</summary>
		<author><name>192.100.124.218</name></author>
	</entry>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=Maemo_Summit_2009/Schedule/MaemoCoCreation&amp;diff=21002</id>
		<title>Maemo Summit 2009/Schedule/MaemoCoCreation</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=Maemo_Summit_2009/Schedule/MaemoCoCreation&amp;diff=21002"/>
		<updated>2009-07-01T12:56:21Z</updated>

		<summary type="html">&lt;p&gt;192.100.124.218: Maemo co-creation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;About&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Maemo co-creation workshops are annual sessions where selected [http://en.wikipedia.org/wiki/Lead_user lead users] + Maemo product managers, designers and marketeers together imagine the future use-cases for Maemo Devices.  &lt;br /&gt;
&lt;br /&gt;
Maemo co-creation 2009 will now open up for the Maemo community by presenting the workshop results on the Saturday showcase and crafting the ideas forward with anyone willing to participate on our Sunday working session.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Organizer:&lt;br /&gt;
    &lt;br /&gt;
[http://twitter.com/luovanto Jussi Mäkinen] is responsible for consumer marketing &amp;amp; co-creation activities @ Maemo Devices. Cool stuff to put it shortly.&lt;/div&gt;</summary>
		<author><name>192.100.124.218</name></author>
	</entry>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=Maemo_Summit_2009&amp;diff=20381</id>
		<title>Maemo Summit 2009</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=Maemo_Summit_2009&amp;diff=20381"/>
		<updated>2009-07-01T12:55:25Z</updated>

		<summary type="html">&lt;p&gt;192.100.124.218: /* Sunday 11 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Content will be the second most important aspect of the conference, after the social aspect of getting the Maemo community together.&lt;br /&gt;
&lt;br /&gt;
== DRAFT Schedule ==&lt;br /&gt;
&lt;br /&gt;
=== Friday 9 ===&lt;br /&gt;
&lt;br /&gt;
9:30	Doors open&lt;br /&gt;
&lt;br /&gt;
10:00	&#039;&#039;&#039;Welcome - Opening of Summit &#039;&#039;&#039; by [http://maemo.org/profile/view/peterschneider.html Peter Schneider], Head of Maemo Marketing @ Nokia&lt;br /&gt;
&lt;br /&gt;
10:15 	&#039;&#039;&#039;Maemo – Designed for Mobile Computing Experience&#039;&#039;&#039; 	by [http://maemo.org/profile/view/jaaksi/ Ari Jaaksi], VP - Maemo Devices @ Nokia&lt;br /&gt;
&lt;br /&gt;
11:00	&#039;&#039;&#039;Linux Foundation view&#039;&#039;&#039;  by Jim Zemlin, Executive Director @ Linux Foundation&lt;br /&gt;
&lt;br /&gt;
11:30  &#039;&#039;&#039;Break&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
11:45	&#039;&#039;&#039;Nokia Nseries Devices on Maemo &#039;&#039;&#039; by J-P. Sipponen, Director - Maemo Products @ Nokia&lt;br /&gt;
&lt;br /&gt;
12:15	&#039;&#039;&#039;Harmattan Highlights - Developer Opportunities   &#039;&#039;&#039; by Janne Heikkinen, Director - Maemo Product Planning @ Nokia &lt;br /&gt;
&lt;br /&gt;
13:00  &#039;&#039;&#039;Lunch - Maemo 5 Experience Area opens&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
14:15  &#039;&#039;&#039;Why the Maemo Community matters to Nokia &#039;&#039;&#039; - Alan &amp;quot;[http://maemo.org/profile/view/qole/ Qole]&amp;quot; Bruce of [[Community Council|Maemo Community Council]] interviewing Ari Jaaksi, VP - Maemo Devices @ Nokia&lt;br /&gt;
&lt;br /&gt;
15:00  	&#039;&#039;&#039;Expert streams&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time&lt;br /&gt;
! Track 1&lt;br /&gt;
! Track 2&lt;br /&gt;
! Track 3&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 15:00 - 15:25 &lt;br /&gt;
| &#039;&#039;&#039;UI design of Maemo 5 apps&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Digia/User Experience Team&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
| Power users 1&lt;br /&gt;
| &#039;&#039;&#039;Developing apps with Open GL ES 2.0&#039;&#039;&#039; &lt;br /&gt;
&#039;&#039;Kate Ahola, Forum Nokia, Chief Guru on Maemo&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 15:30 - 15:55 &lt;br /&gt;
| App developers 2&lt;br /&gt;
| Power users 2&lt;br /&gt;
| Platform developers 2&lt;br /&gt;
|-&lt;br /&gt;
| 16.00 - 16.25 &lt;br /&gt;
| App developers 3&lt;br /&gt;
| Power users 3&lt;br /&gt;
| Platform developers 3&lt;br /&gt;
|-&lt;br /&gt;
| 16.30 - 17.55 &lt;br /&gt;
| App developers 4&lt;br /&gt;
| &#039;&#039;&#039;Making of Maemo digital marketing - maemo.nokia.com&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Isko Salminen, Production Manager, Activeark &lt;br /&gt;
&#039;&#039;and Jussi Mäkinen, Maemo Marketing, Nokia&#039;&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| Platform developers 4&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
18:00	&#039;&#039;&#039;Maemo 5 Experience Area opens again&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
20:00	&#039;&#039;&#039;Maemo Party&#039;&#039;&#039; coordinated by Jussi Mäkinen&lt;br /&gt;
&lt;br /&gt;
=== Saturday 10 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time&lt;br /&gt;
! Track 1&lt;br /&gt;
! Track 2&lt;br /&gt;
! Track 3&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 9.00  &lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; | Doors Open&lt;br /&gt;
|- &lt;br /&gt;
| 10.00 - 10.55 &lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; | Keynote 1&lt;br /&gt;
|- &lt;br /&gt;
| 11.00 - 11.25 &lt;br /&gt;
| Users 1 &lt;br /&gt;
| [[/Day 2#PyQt_application_development_on_Maemo | PyQt application development on Maemo (attila77)]]&lt;br /&gt;
| Platform developers 1&lt;br /&gt;
|-&lt;br /&gt;
| 11.30 - 11.55 &lt;br /&gt;
| Users 2 &lt;br /&gt;
| App developers 2&lt;br /&gt;
| Platform developers 2&lt;br /&gt;
|-&lt;br /&gt;
| 12.00 - 12.25 &lt;br /&gt;
| Users 3&lt;br /&gt;
| App developers 3&lt;br /&gt;
| Platform developers 3&lt;br /&gt;
|-&lt;br /&gt;
| 12.30 - 12.55 &lt;br /&gt;
| Users 4&lt;br /&gt;
| App developers 4&lt;br /&gt;
| Platform developers 4&lt;br /&gt;
|-&lt;br /&gt;
| 13.00 - 14.30 &lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; | Lunch&lt;br /&gt;
|-&lt;br /&gt;
| 14.30 - 15.25&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | &#039;&#039;&#039;[[/Lightning talks | Lightning talks]]&#039;&#039;&#039;, 5 min each &lt;br /&gt;
# [[/Lightning talks#Mobile_web_apps_on_tablets_:_the_web2py_framework_revisited | Mobile web apps on tablets : the web2py framework revisited]] &lt;br /&gt;
# Lightning talk &lt;br /&gt;
# Lightning talk &lt;br /&gt;
# Lightning talk &lt;br /&gt;
# Lightning talk &lt;br /&gt;
# Lightning talk &lt;br /&gt;
# Lightning talk &lt;br /&gt;
# Lightning talk &lt;br /&gt;
# Lightning talk &lt;br /&gt;
# Lightning talk &lt;br /&gt;
# Lightning talk &lt;br /&gt;
|-&lt;br /&gt;
| 15.30 - 15.55 &lt;br /&gt;
| Users 5&lt;br /&gt;
| App developers 5 &lt;br /&gt;
| Platform developers 5 &lt;br /&gt;
|-&lt;br /&gt;
| 16.00 - 16.25 &lt;br /&gt;
| Users 6&lt;br /&gt;
| App developers 6 &lt;br /&gt;
| Platform developers 6 &lt;br /&gt;
|-&lt;br /&gt;
| 16.30 - 16.55 &lt;br /&gt;
| Users 7&lt;br /&gt;
| App developers 7&lt;br /&gt;
| Platform developers 7&lt;br /&gt;
|-&lt;br /&gt;
| 17.00 - 17.25 &lt;br /&gt;
| Users 8&lt;br /&gt;
| App developers 8 &lt;br /&gt;
| Platform developers 8 &lt;br /&gt;
|-&lt;br /&gt;
| 17.30 - 17.55 &lt;br /&gt;
| [[/MaemoCoCreation | &#039;&#039;&#039;Maemo Co-Creation Showcase&#039;&#039;&#039;]]&lt;br /&gt;
| App developers 9&lt;br /&gt;
| Platform developers 9&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Sunday 11 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time&lt;br /&gt;
! Track 1&lt;br /&gt;
! Track 2&lt;br /&gt;
! Track 3&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 9.00  &lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; | Doors Open&lt;br /&gt;
|- &lt;br /&gt;
| 10.00 - 10.55 &lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; | Keynote 1&lt;br /&gt;
|- &lt;br /&gt;
| 11.00 - 11.25 &lt;br /&gt;
| Users 1 &lt;br /&gt;
| App developers 1 &lt;br /&gt;
| Platform developers 1&lt;br /&gt;
|-&lt;br /&gt;
| 11.30 - 11.55 &lt;br /&gt;
| Users 2 &lt;br /&gt;
| App developers 2&lt;br /&gt;
| Platform developers 2&lt;br /&gt;
|-&lt;br /&gt;
| 12.00 - 12.25 &lt;br /&gt;
| [[/MaemoCoCreation | &#039;&#039;&#039;Maemo Co-Creation Working Session&#039;&#039;&#039;]]&lt;br /&gt;
| App developers 3&lt;br /&gt;
| Platform developers 3&lt;br /&gt;
|-&lt;br /&gt;
| 12.30 - 12.55 &lt;br /&gt;
| [[/MaemoCoCreation | &#039;&#039;&#039;Maemo Co-Creation Working Session&#039;&#039;&#039;]]&lt;br /&gt;
| App developers 4&lt;br /&gt;
| Platform developers 4&lt;br /&gt;
|-&lt;br /&gt;
| 13.00 - 14.30 &lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; | Lunch&lt;br /&gt;
|-&lt;br /&gt;
| 14.30 - 15.25&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | &#039;&#039;&#039;Lightning talks&#039;&#039;&#039;, 5 min each &lt;br /&gt;
# Lightning talk&lt;br /&gt;
# Lightning talk &lt;br /&gt;
# Lightning talk &lt;br /&gt;
# Lightning talk &lt;br /&gt;
# Lightning talk &lt;br /&gt;
# Lightning talk &lt;br /&gt;
# Lightning talk &lt;br /&gt;
# Lightning talk &lt;br /&gt;
# Lightning talk &lt;br /&gt;
# Lightning talk &lt;br /&gt;
# Lightning talk &lt;br /&gt;
|-&lt;br /&gt;
| 15.30 - 16.30 &lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; | Final Session (round table ???)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
See [[../Submissions | the submission queue]] for current proposals under consideration.&lt;br /&gt;
&lt;br /&gt;
=== Principles for defining the schedule ===&lt;br /&gt;
* Defaulting to three tracks for Users (Transformatorhuis - big), App Developers (Machinegebow - medium) and Platform Developers (De Kapel - small). Exceptions can be made of course but the idea is that each profile should have a suggested session to go at any time.&lt;br /&gt;
* Keynotes and Lightning Sessions are organized in Transformatorhuis without other activities at the same time.&lt;br /&gt;
* The tiny lovely Oostelijk Meterhuis is available for longer sessions with 25 people or less e.g. a 2h workshop. De Kapel can also serve that purpose if needed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
&lt;br /&gt;
* Decide on conference infrastructure and put it in place: DONE: Using Wiki&lt;br /&gt;
* Decide on process for getting content: DONE: Call for content + committee to choose presentations&lt;br /&gt;
* Issue call for content if necessary: DONE: Call for content issued, we need to do some more communication work &amp;amp; get proposals&lt;br /&gt;
* Deadline for content proposals: September 13&lt;br /&gt;
* Presenters notified: On going&lt;br /&gt;
&lt;br /&gt;
== Suggestions ==&lt;br /&gt;
:I think that 2009 will be Fremantle year, so I expect a summit focused on:&lt;br /&gt;
:* New technologies showcase (i.e., what can be done with clutter?)&lt;br /&gt;
:* New hardware features&lt;br /&gt;
:And I would add one or two roundtables to talk and discuss:&lt;br /&gt;
:* What&#039;s next?&lt;br /&gt;
:* What about past hardware? What about third party development?&lt;br /&gt;
:* Would you like a Maemo App Store?&lt;br /&gt;
:—[[user:jsmanrique|jsmanrique]]&lt;br /&gt;
&lt;br /&gt;
: Mer would like to talk about bringing as much of Fremantle as possible to older devices and how it works with Nokia and the community. Would there be interest in:&lt;br /&gt;
:* Talks about Mer?&lt;br /&gt;
:* Mer&#039;s development SDK/processes?&lt;br /&gt;
:* Hands-on Mer development sessions?&lt;br /&gt;
:* Mer/Maemo/Garage/Nokia integration (although this is already a fast moving target)&lt;br /&gt;
:-- [[User:lbt|lbt]] 21:04, 17 June 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>192.100.124.218</name></author>
	</entry>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=Maemo_Summit_2009&amp;diff=20382</id>
		<title>Maemo Summit 2009</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=Maemo_Summit_2009&amp;diff=20382"/>
		<updated>2009-07-01T12:45:49Z</updated>

		<summary type="html">&lt;p&gt;192.100.124.218: /* Saturday 10 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Content will be the second most important aspect of the conference, after the social aspect of getting the Maemo community together.&lt;br /&gt;
&lt;br /&gt;
== DRAFT Schedule ==&lt;br /&gt;
&lt;br /&gt;
=== Friday 9 ===&lt;br /&gt;
&lt;br /&gt;
9:30	Doors open&lt;br /&gt;
&lt;br /&gt;
10:00	&#039;&#039;&#039;Welcome - Opening of Summit &#039;&#039;&#039; by [http://maemo.org/profile/view/peterschneider.html Peter Schneider], Head of Maemo Marketing @ Nokia&lt;br /&gt;
&lt;br /&gt;
10:15 	&#039;&#039;&#039;Maemo – Designed for Mobile Computing Experience&#039;&#039;&#039; 	by [http://maemo.org/profile/view/jaaksi/ Ari Jaaksi], VP - Maemo Devices @ Nokia&lt;br /&gt;
&lt;br /&gt;
11:00	&#039;&#039;&#039;Linux Foundation view&#039;&#039;&#039;  by Jim Zemlin, Executive Director @ Linux Foundation&lt;br /&gt;
&lt;br /&gt;
11:30  &#039;&#039;&#039;Break&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
11:45	&#039;&#039;&#039;Nokia Nseries Devices on Maemo &#039;&#039;&#039; by J-P. Sipponen, Director - Maemo Products @ Nokia&lt;br /&gt;
&lt;br /&gt;
12:15	&#039;&#039;&#039;Harmattan Highlights - Developer Opportunities   &#039;&#039;&#039; by Janne Heikkinen, Director - Maemo Product Planning @ Nokia &lt;br /&gt;
&lt;br /&gt;
13:00  &#039;&#039;&#039;Lunch - Maemo 5 Experience Area opens&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
14:15  &#039;&#039;&#039;Why the Maemo Community matters to Nokia &#039;&#039;&#039; - Alan &amp;quot;[http://maemo.org/profile/view/qole/ Qole]&amp;quot; Bruce of [[Community Council|Maemo Community Council]] interviewing Ari Jaaksi, VP - Maemo Devices @ Nokia&lt;br /&gt;
&lt;br /&gt;
15:00  	&#039;&#039;&#039;Expert streams&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time&lt;br /&gt;
! Track 1&lt;br /&gt;
! Track 2&lt;br /&gt;
! Track 3&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| 15:00 - 15:25 &lt;br /&gt;
| &#039;&#039;&#039;UI design of Maemo 5 apps&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Digia/User Experience Team&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
| Power users 1&lt;br /&gt;
| &#039;&#039;&#039;Developing apps with Open GL ES 2.0&#039;&#039;&#039; &lt;br /&gt;
&#039;&#039;Kate Ahola, Forum Nokia, Chief Guru on Maemo&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 15:30 - 15:55 &lt;br /&gt;
| App developers 2&lt;br /&gt;
| Power users 2&lt;br /&gt;
| Platform developers 2&lt;br /&gt;
|-&lt;br /&gt;
| 16.00 - 16.25 &lt;br /&gt;
| App developers 3&lt;br /&gt;
| Power users 3&lt;br /&gt;
| Platform developers 3&lt;br /&gt;
|-&lt;br /&gt;
| 16.30 - 17.55 &lt;br /&gt;
| App developers 4&lt;br /&gt;
| &#039;&#039;&#039;Making of Maemo digital marketing - maemo.nokia.com&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Isko Salminen, Production Manager, Activeark &lt;br /&gt;
&#039;&#039;and Jussi Mäkinen, Maemo Marketing, Nokia&#039;&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| Platform developers 4&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
18:00	&#039;&#039;&#039;Maemo 5 Experience Area opens again&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
20:00	&#039;&#039;&#039;Maemo Party&#039;&#039;&#039; coordinated by Jussi Mäkinen&lt;br /&gt;
&lt;br /&gt;
=== Saturday 10 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time&lt;br /&gt;
! Track 1&lt;br /&gt;
! Track 2&lt;br /&gt;
! Track 3&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 9.00  &lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; | Doors Open&lt;br /&gt;
|- &lt;br /&gt;
| 10.00 - 10.55 &lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; | Keynote 1&lt;br /&gt;
|- &lt;br /&gt;
| 11.00 - 11.25 &lt;br /&gt;
| Users 1 &lt;br /&gt;
| [[/Day 2#PyQt_application_development_on_Maemo | PyQt application development on Maemo (attila77)]]&lt;br /&gt;
| Platform developers 1&lt;br /&gt;
|-&lt;br /&gt;
| 11.30 - 11.55 &lt;br /&gt;
| Users 2 &lt;br /&gt;
| App developers 2&lt;br /&gt;
| Platform developers 2&lt;br /&gt;
|-&lt;br /&gt;
| 12.00 - 12.25 &lt;br /&gt;
| Users 3&lt;br /&gt;
| App developers 3&lt;br /&gt;
| Platform developers 3&lt;br /&gt;
|-&lt;br /&gt;
| 12.30 - 12.55 &lt;br /&gt;
| Users 4&lt;br /&gt;
| App developers 4&lt;br /&gt;
| Platform developers 4&lt;br /&gt;
|-&lt;br /&gt;
| 13.00 - 14.30 &lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; | Lunch&lt;br /&gt;
|-&lt;br /&gt;
| 14.30 - 15.25&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | &#039;&#039;&#039;[[/Lightning talks | Lightning talks]]&#039;&#039;&#039;, 5 min each &lt;br /&gt;
# [[/Lightning talks#Mobile_web_apps_on_tablets_:_the_web2py_framework_revisited | Mobile web apps on tablets : the web2py framework revisited]] &lt;br /&gt;
# Lightning talk &lt;br /&gt;
# Lightning talk &lt;br /&gt;
# Lightning talk &lt;br /&gt;
# Lightning talk &lt;br /&gt;
# Lightning talk &lt;br /&gt;
# Lightning talk &lt;br /&gt;
# Lightning talk &lt;br /&gt;
# Lightning talk &lt;br /&gt;
# Lightning talk &lt;br /&gt;
# Lightning talk &lt;br /&gt;
|-&lt;br /&gt;
| 15.30 - 15.55 &lt;br /&gt;
| Users 5&lt;br /&gt;
| App developers 5 &lt;br /&gt;
| Platform developers 5 &lt;br /&gt;
|-&lt;br /&gt;
| 16.00 - 16.25 &lt;br /&gt;
| Users 6&lt;br /&gt;
| App developers 6 &lt;br /&gt;
| Platform developers 6 &lt;br /&gt;
|-&lt;br /&gt;
| 16.30 - 16.55 &lt;br /&gt;
| Users 7&lt;br /&gt;
| App developers 7&lt;br /&gt;
| Platform developers 7&lt;br /&gt;
|-&lt;br /&gt;
| 17.00 - 17.25 &lt;br /&gt;
| Users 8&lt;br /&gt;
| App developers 8 &lt;br /&gt;
| Platform developers 8 &lt;br /&gt;
|-&lt;br /&gt;
| 17.30 - 17.55 &lt;br /&gt;
| [[/MaemoCoCreation | &#039;&#039;&#039;Maemo Co-Creation Showcase&#039;&#039;&#039;]]&lt;br /&gt;
| App developers 9&lt;br /&gt;
| Platform developers 9&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Sunday 11 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time&lt;br /&gt;
! Track 1&lt;br /&gt;
! Track 2&lt;br /&gt;
! Track 3&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 9.00  &lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; | Doors Open&lt;br /&gt;
|- &lt;br /&gt;
| 10.00 - 10.55 &lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; | Keynote 1&lt;br /&gt;
|- &lt;br /&gt;
| 11.00 - 11.25 &lt;br /&gt;
| Users 1 &lt;br /&gt;
| App developers 1 &lt;br /&gt;
| Platform developers 1&lt;br /&gt;
|-&lt;br /&gt;
| 11.30 - 11.55 &lt;br /&gt;
| Users 2 &lt;br /&gt;
| App developers 2&lt;br /&gt;
| Platform developers 2&lt;br /&gt;
|-&lt;br /&gt;
| 12.00 - 12.25 &lt;br /&gt;
| Users 3&lt;br /&gt;
| App developers 3&lt;br /&gt;
| Platform developers 3&lt;br /&gt;
|-&lt;br /&gt;
| 12.30 - 12.55 &lt;br /&gt;
| Users 4&lt;br /&gt;
| App developers 4&lt;br /&gt;
| Platform developers 4&lt;br /&gt;
|-&lt;br /&gt;
| 13.00 - 14.30 &lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; | Lunch&lt;br /&gt;
|-&lt;br /&gt;
| 14.30 - 15.25&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | &#039;&#039;&#039;Lightning talks&#039;&#039;&#039;, 5 min each &lt;br /&gt;
# Lightning talk&lt;br /&gt;
# Lightning talk &lt;br /&gt;
# Lightning talk &lt;br /&gt;
# Lightning talk &lt;br /&gt;
# Lightning talk &lt;br /&gt;
# Lightning talk &lt;br /&gt;
# Lightning talk &lt;br /&gt;
# Lightning talk &lt;br /&gt;
# Lightning talk &lt;br /&gt;
# Lightning talk &lt;br /&gt;
# Lightning talk &lt;br /&gt;
|-&lt;br /&gt;
| 15.30 - 16.30 &lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; | Final Session (round table ???)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
See [[../Submissions | the submission queue]] for current proposals under consideration.&lt;br /&gt;
&lt;br /&gt;
=== Principles for defining the schedule ===&lt;br /&gt;
* Defaulting to three tracks for Users (Transformatorhuis - big), App Developers (Machinegebow - medium) and Platform Developers (De Kapel - small). Exceptions can be made of course but the idea is that each profile should have a suggested session to go at any time.&lt;br /&gt;
* Keynotes and Lightning Sessions are organized in Transformatorhuis without other activities at the same time.&lt;br /&gt;
* The tiny lovely Oostelijk Meterhuis is available for longer sessions with 25 people or less e.g. a 2h workshop. De Kapel can also serve that purpose if needed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
&lt;br /&gt;
* Decide on conference infrastructure and put it in place: DONE: Using Wiki&lt;br /&gt;
* Decide on process for getting content: DONE: Call for content + committee to choose presentations&lt;br /&gt;
* Issue call for content if necessary: DONE: Call for content issued, we need to do some more communication work &amp;amp; get proposals&lt;br /&gt;
* Deadline for content proposals: September 13&lt;br /&gt;
* Presenters notified: On going&lt;br /&gt;
&lt;br /&gt;
== Suggestions ==&lt;br /&gt;
:I think that 2009 will be Fremantle year, so I expect a summit focused on:&lt;br /&gt;
:* New technologies showcase (i.e., what can be done with clutter?)&lt;br /&gt;
:* New hardware features&lt;br /&gt;
:And I would add one or two roundtables to talk and discuss:&lt;br /&gt;
:* What&#039;s next?&lt;br /&gt;
:* What about past hardware? What about third party development?&lt;br /&gt;
:* Would you like a Maemo App Store?&lt;br /&gt;
:—[[user:jsmanrique|jsmanrique]]&lt;br /&gt;
&lt;br /&gt;
: Mer would like to talk about bringing as much of Fremantle as possible to older devices and how it works with Nokia and the community. Would there be interest in:&lt;br /&gt;
:* Talks about Mer?&lt;br /&gt;
:* Mer&#039;s development SDK/processes?&lt;br /&gt;
:* Hands-on Mer development sessions?&lt;br /&gt;
:* Mer/Maemo/Garage/Nokia integration (although this is already a fast moving target)&lt;br /&gt;
:-- [[User:lbt|lbt]] 21:04, 17 June 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>192.100.124.218</name></author>
	</entry>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=Maemo_Summit_2009/Schedule/MaemoCoCreation&amp;diff=21003</id>
		<title>Maemo Summit 2009/Schedule/MaemoCoCreation</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=Maemo_Summit_2009/Schedule/MaemoCoCreation&amp;diff=21003"/>
		<updated>2009-07-01T12:40:30Z</updated>

		<summary type="html">&lt;p&gt;192.100.124.218: Maemo Co-Creation Showcase&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;About&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Maemo co-creation workshops are annual sessions where selected [http://en.wikipedia.org/wiki/Lead_user lead users] + Maemo product managers, designers and marketeers together imagine the future use-cases for Maemo Devices.  &lt;br /&gt;
&lt;br /&gt;
Maemo Co-Creation 2009 will now open up for the Maemo community by presenting the workshop results on the Saturday showcase and crafting the ideas forward with anyone willing to participate on our Sunday working session.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Organizer:&lt;br /&gt;
    &lt;br /&gt;
[http://twitter.com/luovanto Jussi Mäkinen] is responsible for consumer marketing &amp;amp; co-creation activities @ Maemo Devices. Cool stuff to put it shortly.&lt;/div&gt;</summary>
		<author><name>192.100.124.218</name></author>
	</entry>
</feed>